Çeşitli haber kaynkları, Apache Log4j kütüphanesinde CVE-2021-44228 no.lu (CVSS önem düzeyi 10 üzerinden 10 olan) kritik bir güvenlik açığı keşfedildiğini duyurdu. Milyonlarca Java uygulaması, hata mesajlarını günlüğe kaydetmek için bu kütüphaneyi kullanıyor. Daha da kötüsü, saldırganlar halihazırda bu güvenlik açığından aktif olarak yararlanıyor. Bu nedenle Apache Foundation, tüm geliştiricilerin kullandıkları kütüphaneyi 2.15.0 sürümüne güncellemelerini, eğer bu mümkün değilse Apache Log4j Güvenlik Açıkları sayfasında belirtilen yöntemlerden birini kullanmalarını öneriyor.
CVE-2021-44228 neden bu kadar tehlikeli?
Log4Shell veya LogJam olarak da adlandırılan CVE-2021-44228 güvenlik açığı, Uzaktan Kod Yürütme (Remote Code Execution – RCE) sınıfında yer alan bir güvenlik açığıdır. Saldırganlar herhangi bir sunucuda bu güvenlik açığından yararlandığında, isteğe bağlı kod yürütme ve potansiyel olarak sistemin tüm kontrolünü ele geçirme imkanına sahip olurlar.
CVE-2021-44228’i özellikle tehlikeli yapan şey, bu güvenlik açığından yararlanmanın kolay olmasıdır: Deneyimsiz bir hacker bile bu güvenlik açığını kullanarak başarılı bir saldırı gerçekleştirebilir. Araştırmacılara göre saldırganların uygulamanın günlüğe tek bir dize (string) yazmaya zorlaması yeterli, ardından message lookup substitution (mesaj arama değişim) fonksiyonu sayesinde kendi kodlarını uygulamaya yükleyebiliyorlar.
CVE-2021-44228 güvenlik açığından yararlanan saldırılarla ilgili Kavram Kanıtlarına (Proof of Concept – PoC) internetten ulaşılabiliyor. Bu nedenle, siber güvenlik şirketlerinin güvenlik açığına sahip uygulamaları bulmak için gerçekleştirilen büyük çaplı ağ taramaları ve bal küplerine (honeypots) yönelik saldırılarla karşılaşması hiç de şaşırtıcı değil.
Güvenlik açığı, Alibaba Bulut Güvenlik Ekibinden Chen Zhaojun tarafından keşfedildi.
Apache Log4J nedir ve bu kütüphane neden bu kadar popüler?
Apache Log4j, Apache Günlükleme Projesinin (Logging Project) bir parçasıdır. Genel olarak, hataları günlüğe kaydetmenin en kolay yollarından biri bu kütüphanenin kullanılması olduğu için çoğu Java geliştiricisi bu kütüphaneyi kullanmayı tercih ediyor.
Amazon, Apple iCloud, Cisco, Cloudflare, ElasticSearch, Red Hat, Steam, Tesla, Twitter ve daha birçoğu da dahil olmak üzere çok sayıda büyük yazılım şirketi ve online servis Log4j kütüphanesini kullanıyor. Kütüphanenin bu kadar popüler olması nedeniyle bazı bilgi güvenliği araştırmacıları, önümüzdeki birkaç gün içinde savunmasız sunuculara yönelik saldırılarda önemli ölçüde artış yaşanmasını bekliyor.
#Log4Shell pic.twitter.com/1bKDwRQBqt
— Florian Roth (@cyb3rops) December 10, 2021
Hangi Log4j kütüphanesi sürümleri güvenlik açığından etkileniyor ve sunucunuzu saldırılara karşı nasıl korursunuz?
2.0-beta9’dan 2.14.1’e kadar hemen hemen tüm Log4j sürümleri savunmasız durumda ve güvenlik açığına karşı kullanılabilecek <en basit ve en etkili koruma yöntemi, kütüphanenin en yeni sürümü olan 2.15.0’ı yüklemektir. Son sürümü proje sayfasından indirebilirsiniz.
Herhangi bir nedenle kütüphaneyi güncellemeniz mümkün değilse, Apache Foundation, güvenlik açığının etkilerinin azaltılmasına yönelik açıklanan yöntemlerden birinin kullanılmasını öneriyor. Log4J’nin 2.10’dan 2.14.1’e kadar olan sürümlerinden birinin kullanılması durumunda, log4j2.formatMsgNoLookps sistem özelliğinin veya LOG4J_FORMAT_MSG_NO_LOOKUPS ortam değişkeninin true olarak ayarlanmasını öneriyorlar.
Kütüphanenin geliştiricileri Log4j’nin önceki sürümlerine (2.0-beta9’dan 2.10.0’a kadar) ilişkin koruma sağlamak için ise, JndiLookup< sınıfının şu komut ile sınıf yolundan kaldırılmasını öneriyor: zip -q -d log4j-core – *. Jar org / apache / logging / log4j / core / lookup / JndiLookup .class.
Ek olarak, sunucularınıza güvenlik çözümleri yüklemenizi öneriyoruz — bunu yapmak çoğu durumda kötü amaçlı kodun çalıştırıldığını tespit etmenizi ve saldırının gelişimini durdurmanızı sağlar.