Log4j Güvenlik Açığı Nasıl Taranır ve Düzeltilir?

Yayınlanan: 2022-05-10

Log4j güvenlik açığı, modern sistemlerdeki en ölümcül güvenlik sorunları arasındadır.

Günlüğe kaydetme, modern uygulamalarda önemli bir özelliktir ve günlük kaydı kitaplığı Log4j, bu alanda liderdir.

Bu kitaplık çoğu uygulamada, hizmette ve sistemde kullanılır. Bu nedenle, Log4j'nin kullanıldığı tüm uygulamalar, geçen yıl bulunan bu Log4j güvenlik açığından etkilenir.

Dünya çapında artan siber güvenlik endişeleri ile kuruluşlar ve bireyler uygulamalarını, sistemlerini ve verilerini korumak için adımlar atıyor.

Ve bu güvenlik açığı keşfedildiğinde, profesyonelleri ve işletmeleri daha da fazla strese soktu.

Bu nedenle, verilerinizi, ağınızı, itibarınızı ve müşteri güvenini korumak istiyorsanız Log4j güvenlik açığını tespit etmek ve düzeltmek çok önemlidir.

Bu yazıda, Log4j güvenlik açığının ne olduğunu ve onu tespit etme ve düzeltme adımlarını tartışacağım.

Log4j'yi ve neden buna ihtiyacınız olduğunu anlayarak başlayalım.

Log4j Nedir?

Log4j, Java ile yazılmış, çoğunlukla uygulamalar ve sistemler tarafından oluşturulan günlük kayıtlarını depolamak, biçimlendirmek ve yayınlamak ve ardından hataları kontrol etmek için kullanılan açık kaynaklı bir günlük kaydı yardımcı programıdır. Kayıtlar, bir web sayfası ve tarayıcı verilerinden Log4j'nin çalıştığı bir sistemin teknik detaylarına kadar çeşitli tiplerde olabilir.

Geliştiriciler, sıfırdan kod yazmak yerine, kodunu uygulamalarına entegre ederek Log4j kitaplığını kullanabilir.

Log4j kullanarak geliştiriciler, uygulamalarıyla ilişkili tüm olayları doğru günlük bilgileriyle izleyebilirler. Uygulamaları izlemelerine, sorunları zamanında tespit etmelerine ve performans ve/veya güvenlik açısından daha büyük bir soruna dönüşmeden sorunları çözmelerine yardımcı olur.

Java tabanlı bu kitaplık Çeki Gülcü tarafından yazılmıştır ve 2001 yılında Apache Lisansı 2.0 altında yayınlanmıştır. Uygulamaların LDAP, DNS, CORBA vb. gibi diğer uygulamalarla etkileşime girmesine ve Java tabanlı uygulamalar için bir dizin ve adlandırma işlevi almasına izin vermek için Java adlandırma ve Dizin Arabirimi (JNDI) hizmetlerini kullanır. Log4j'nin görevlerini yerine getirmek için üç bileşeni vardır:

  • Günlük kayıtlarını yakalamak için kaydediciler
  • Günlük kayıtlarını farklı stillerde biçimlendirmek için düzenler
  • Günlük kayıtlarını farklı hedeflere yayınlamak için ekleyiciler

Log4j, aslında, web'deki en ünlü kayıt kitaplıklarından biridir ve birden fazla sektör ve ülkeden kuruluşlar tarafından kullanılmaktadır. Bu kayıt kitaplığını Google, Microsoft, Apple, Cloudflare, Twitter vb.'nin en iyi bulut hizmetleri de dahil olmak üzere birçok uygulamaya entegre ettiler.

Geliştiricisi Apache Software Foundation, önceki sürümlerde bulunan sorunları gidermek için Log4j'ye yükseltme olan Log4j 2'yi geliştirdi. Geçen yıl, Log4j'de, adreslenmeden bırakıldığında, saldırganların uygulamalara ve sistemlere girmesine, veri çalmasına, bir ağa bulaşmasına ve diğer kötü niyetli faaliyetlerde bulunmasına izin verebilecek bir güvenlik açığı bulundu.

Onu daha iyi anlayalım.

Log4Shell – Log4j Güvenlik Açığı Nedir?

Log4Shell, Log4j kitaplığındaki, kitaplığın temel işleyişini etkileyen kritik bir siber güvenlik açığıdır. Bir saldırganın uzaktan kod yürütme gerçekleştirerek internete bağlı bir cihazı veya uygulamayı kontrol etmesine olanak tanır. Başarılı olduklarında şunları yapabilirler:

  • Cihazda veya sistemde herhangi bir kodu çalıştırın
  • Tüm ağ ve verilere erişin
  • Etkilenen uygulama veya cihazdaki herhangi bir dosyayı değiştirin veya şifreleyin

Bu güvenlik açığı ilk olarak 24 Kasım 2021'de Alibaba'da (Çinli bir e-ticaret devi) güvenlik araştırmacısı olan Chen Zhaojun tarafından bildirildi. Güvenlik açığı, Alibaba'nın bulut güvenlik ekibinin 9 Aralık'ta keşfettiği Minecraft sunucularını etkiledi.

Daha sonra, NIST bu güvenlik açığını Ulusal Güvenlik Açığı Veritabanında yayınladı ve CVE-2021-44228 olarak adlandırdı. Apache Software Foundation daha sonra bu güvenlik açığını CVSS önem derecesinde 10 olarak derecelendirdi. Bu, nadiren atanır ve çok şiddetlidir, çünkü geniş çapta ve kolayca istismar edilme potansiyeline sahiptir, bu da kuruluşlar ve bireyler için büyük zararlara yol açar.

Apache, yanıt olarak bu güvenlik açığı için bir yama yayınladı, ancak yine de bazı kısımlar ele alınmadan kaldı ve bu da diğer güvenlik açıklarına yol açtı:

  • JNDI aramaları aracılığıyla Hizmet Reddi (DoS) saldırılarını kolaylaştıran CVE-2021-45046
  • Bilgisayar korsanlarının İş Parçacığı Bağlam Haritası bilgilerini kontrol etmesine ve hazırlanmış bir dizeyi yorumlayarak DoS saldırılarına neden olmasına izin veren CVE-2021-45105
  • CVE-2021-44832, Uzaktan Kod Enjeksiyonu (RCE) aracılığıyla tüm Log4j 2 sürümlerini etkiler

Log4Shell Nasıl Çalışır?

Ciddiyetini ve Log4Shell'in ne kadar zarar verebileceğini anlamak için bu Log4j güvenlik açığının nasıl çalıştığını öğrenmek önemlidir.

Log4Shell güvenlik açığı, bir saldırganın herhangi bir rastgele kodu bir ağa uzaktan enjekte etmesine ve üzerinde tam kontrol sahibi olmasına olanak tanır.

Bu siber saldırı dizisi, günlük bilgilerini toplayan ve saklayan Log4j gibi günlük kitaplığıyla başlar. Kayıt kitaplığı yoksa, veriler toplandıktan sonra sunucudaki tüm veriler anında arşivlenir.

Ancak bu verileri analiz etmek istiyorsanız veya belirli günlük bilgilerine dayalı olarak bazı eylemler gerçekleştirmeniz gerekiyorsa, günlük verilerini arşivlenmeden önce ayrıştırmak için bir günlük kitaplığına ihtiyacınız olacaktır.

Log4j güvenlik açığı nedeniyle, Log4j kullanan herhangi bir sistem veya uygulama siber saldırılara karşı savunmasız hale gelir. Günlük kitaplığı, girişe göre kodu yürütür. Bir bilgisayar korsanı, güvenlik açığı girişi manipüle etmelerine izin vereceğinden, günlük kitaplığını zararlı kod yürütmeye zorlayabilir.

Bu arada, arka planda birçok şey oluyor. Log4j özel olarak hazırlanmış bir dize iletildiğinde, bir LDP sunucusunu çağırır ve kodu yürütmek için dizininde barındırılan bu kodu indirir. Bu şekilde saldırganlar, kodun yürütüldüğü herhangi bir sunucuyu kontrol etmelerine yardımcı olabilecek kötü amaçlı kodu depolamak için bir LDAP sunucusu oluşturabilir. Ardından, kötü amaçlı kodlarını hedeflenen bir uygulamaya veya sisteme yönlendiren bir dize gönderecek ve bunun tam kontrolünü ele alacaktır.

Log4j güvenlik açığı şu şekilde kullanılabilir:

  • Saldırgan, güvenlik açığı bulunan Log4j sürümüne sahip bir sunucu bulur.
  • Hedeflenen sunucuya, kötü niyetli LDAP sunucusunun bağlantısıyla bir alma isteği gönderirler.
  • Hedeflenen sunucu, isteği doğrulamak yerine doğrudan bu LDAP sunucusuna bağlanacaktır.
  • Saldırganlar artık hedeflenen sunucuya kötü amaçlı kod içeren bir LDAP sunucu yanıtı gönderecektir. Log4j'nin kodun alınmasına ve doğrulama olmadan yürütülmesine izin veren güvenlik açığı nedeniyle, bilgisayar korsanı hedef sunucuya girmek ve bağlı sistemlerden, ağlardan ve cihazlardan yararlanmak için bu zayıflıktan yararlanabilir.

Log4j Güvenlik Açığı Kullanıcılara Nasıl Zarar Verebilir?

Log4j güvenlik açığı, çok çeşitli yazılım uygulamalarında ve sistemlerinde kullanıldığından endişe vericidir.

Günlük kaydı çoğu yazılım uygulamasında önemli bir özellik olduğundan ve Log4j bu alanda lider bir çözüm olduğundan, Log4j çeşitli yazılım sistemlerinde uygulamalar bulur.

Log4j kullanan popüler hizmet ve uygulamalardan bazıları Minecraft, AWS, iCloud, Microsoft, Twitter, internet yönlendiricileri, yazılım geliştirme araçları, güvenlik araçları vb. Bu nedenle, saldırganlar ev kullanıcıları, kod geliştiriciler, hizmet sağlayıcılar ve diğer ilgili profesyoneller ve bireylerden çok sayıda uygulamayı, hizmeti ve sistemi hedefleyebilir.

Ek olarak, Log4j güvenlik açığı, bir saldırganın istismar etmesi için son derece kolaydır. Genel süreç, bir saldırı gerçekleştirmek için uzman düzeyinde değil, daha az beceri seti gerektirir. Bu nedenle, bu güvenlik açığından yararlanan saldırıların sayısı artıyor.

Log4j güvenlik açığının etkileri şunlardır:

  • DoS saldırıları
  • Tedarik zinciri saldırıları
  • madeni para madenciliği
  • Fidye yazılımı ve truva atları gibi kötü amaçlı yazılım enjeksiyonları
  • keyfi kod enjeksiyonu
  • Uzaktan kod yürütme

Ve dahası.

Bu saldırıların sonucunda uygulamalarınızı, sistemlerinizi ve cihazlarınızı kaybedebilirsiniz ve verileriniz, verilerinizi satabilecek, manipüle edebilecek veya dış dünyaya ifşa edebilecek saldırganların eline düşebilir. Bu nedenle, uyumluluk riskleri bir yana, işletmeniz müşteri verilerinin gizliliği, güveni, kuruluş sırları ve hatta satışlarınız ve geliriniz açısından zarar görebilir.

Bir rapora göre, küresel kurumsal ağların %40'ından fazlası bu güvenlik açığı nedeniyle saldırılara maruz kaldı.

Bu nedenle, uygulamalarınızda savunmasız Log4j sürümleri kullanmasanız bile, üçüncü taraf entegrasyonlarınız bunu kullanıyor olabilir ve bu da uygulamanızı saldırılara karşı savunmasız hale getirir.

Log4j 2.17.0'dan önceki tüm Log4j sürümlerinin olduğunu unutmayın. etkilenir; bu nedenle, kullanıyorsanız günlükçüsünü yükseltmeniz gerekir. Ayrıca bu Log4j güvenlik açığından etkilenen ünlü satıcılar Adobe, AWS, IBM, Cisco, VMware, Okta, Fortinet vb.'dir. Bunlardan herhangi birini kullanıyorsanız, uygulamalarınızı sürekli olarak izleyin ve sorunları en kısa sürede gidermek için güvenlik sistemlerini kullanın. doğar.

Log4j Etkilenen Programları Tespit Etme ve Sorunları Düzeltme

Log4Shell güvenlik açığı CVSS puanında 10'a sahiptir. Bu nedenle, Log4j'deki tüm sorunlar henüz yamalanmamıştır. Ancak, sizin veya üçüncü taraf satıcınızın, uygulamanızda kullandığınız Log4j'yi kullanma ihtimali vardır.

Bu nedenle, verilerinizi, sistemlerinizi ve ağınızı korumak istiyorsanız, bazı düzeltme adımlarını uyguladığınızdan emin olun.

#1. Log4j Sürümünüzü Güncelleyin

Mevcut Log4j sürümünüzü Log 4j 2.17.1'e güncellemek, cihazınızı ve uygulamalarınızı Log4j güvenlik açığının bir sonucu olarak saldırılara karşı korumak istiyorsanız en etkili düzeltme tekniğidir.

Log4Shell, yazılım ekosisteminizi potansiyel olarak etkileyebilecek bir tür sıfırıncı gün saldırısıdır. Apache, son sürümlerdeki bazı güvenlik açıklarını düzeltti, ancak yükseltme işleminden önce sisteminizin güvenliği ihlal edildiyse, yine de risk altındasınız.

Bu nedenle, bunu varsayarak, yalnızca sürümü yükseltmekle kalmamalı, aynı zamanda sistemlerinizde ve uygulamalarınızda hiçbir güvenlik açığı olmadığından emin olmak ve saldırıları azaltmak için olay müdahale prosedürlerinizi hemen başlatmalısınız. Ayrıca, Uzlaşma Göstergelerini (IOC) bulmak için tüm sunucu günlüklerinizi gözden geçirmeli ve sistemlerinizi ve ağınızı sürekli izlemelisiniz.

#2. En Son Güvenlik Duvarlarını ve Güvenlik Sistemlerini Kullanın

Web Uygulaması Güvenlik Duvarı (WAF) ve yeni nesil güvenlik duvarları gibi güvenlik duvarları, gelen ve giden veri paketlerini tarayarak ve şüpheli olanları engelleyerek ağ çevrenizi saldırganlardan korumaya yardımcı olabilir. Bu nedenle, Log4j güvenlik açığıyla ilişkili saldırıları önlemeye yardımcı olmak için ağınızdaki en yeni güvenlik duvarlarını kullanın ve sunucularınızda katı giden kurallar belirleyin.

Saldırganlar güvenlik duvarlarını atlayabilse de, bir saldırganın isteklerini engelleyebilecek güvenlik duvarlarıyla bir dereceye kadar güvenlik elde edeceksiniz.

Ayrıca İzinsiz Giriş Tespit Sistemleri (IDS), İzinsiz Giriş Önleme Sistemleri (IPS) vb. tüm güvenlik sistemlerinizi en son imza ve kurallarla güncelleyin. Bu sistemler, RMI ve LDAP trafiğinin kötü niyetli bir LDAP sunucusuna bağlanmasını engellemeye veya filtrelemeye yardımcı olacaktır.

#3. MFA'yı uygula

Uygulamalarınızda ve sisteminizde çok faktörlü kimlik doğrulama (MFA) kurmak, saldırganlara karşı daha iyi güvenlik sağlayacaktır. Saldırgan birinci katmanı kırmayı başarsa bile, ikinci bir güvenlik katmanı sağlayacaktır. Bunu parmak izleri, iris taraması vb. gibi biyometrik yöntemlerle, bir güvenlik sorusu belirleyerek veya bir güvenlik PIN'ini etkinleştirerek yapabilirsiniz.

MFA kullanmak, saldırganların tam kapsamlı bir saldırı gerçekleştirme zorluğunu ve süresini artıracaktır. Bu arada, hala zamanınız varken gerekli iyileştirme adımlarını atabilmeniz için sizi olay hakkında hemen bilgilendirebilir.

Ayrıca, veri ihlallerini azaltmak için katı VPN politikaları da uygulamalısınız. Bu, kullanıcıların saldırganlardan korkmadan sistemlerinize her yerden güvenli bir şekilde erişmelerini sağlayacaktır.

#4. Sistem Özelliklerini Değiştir

Log4j kitaplığının en son sürümüne yükseltme yapamıyorsanız, Log4j 2.10'dan Log4j 2.14.1'e kadar bir sürüm kullanıyorsanız Java sistem özelliklerinizi hemen değiştirmelisiniz.

Bunu, saldırganların güvenlik açıklarını tespit etmek için kullandığı aramaları önleyecek ve ardından bunlardan yararlanmanın yollarını bulacak şekilde ayarlamalısınız.

#5. JNDI'yi kaldır

Bu kritik güvenlik açığının nedeni tasarımında yatmaktadır. JNDI Lookup eklentisi, saldırganların saldırı gerçekleştirebileceği bir tasarım kusuruna sahiptir.

JNDI, günlüğündeki giriş verilerine dayalı olarak kod yürütmek için kullanılır; günlükçü herhangi bir isteği doğrulamadan kabul ettiğinden, herkes bunu kolayca değiştirebilir.

Güvenlik araştırmacıları, bu eklentinin 2013'te piyasaya sürülmesinden bu yana her zaman çözümlenmemiş verilere izin verdiğini ve Log4j kitaplığına gönderdiğini keşfetti.

Bu nedenle, Log4j güvenlik açığı, basit bir dize yerleştirmeyle istismara açıktır. Saldırgan bunu enjekte ettiğinde, günlükçü dizide istenen işlemi kabul edecek ve doğrulama yapmadan anında yürütecektir.

Bu nedenle, sistemlerinizi ve uygulamanızı güvence altına almak istiyorsanız, JndiLookup sınıfını devre dışı bırakmalısınız. Bu, kaydedicinin günlük verilerine dayalı olarak işlem yapmasını önleyecektir.

Aslında, JNDI araması, uygulamalarınızı ve sistemlerinizi güvence altına almak amacıyla Log4j 2.16.0'da varsayılan olarak zaten devre dışı bırakılmıştır.

Bu nedenle, 2.16.0'dan daha düşük bir Log4j sürümü kullanıyorsanız, JNDI Arama'yı devre dışı bıraktığınızdan emin olun.

#6. Satıcılarınızla Konuşun

Her şeyi doğru yaptıysanız, güvenlik duvarlarınız ve güvenlik sistemleriniz güncellendi, Log4j sürümü güncellendi, JNDI Lookup devre dışı bırakıldı vb., henüz gevşemeyin.

Uygulamalarınızda güvenlik açığı bulunan bir Log4j sürümü kullanmasanız bile, üçüncü taraf satıcılarınız bunu kullanıyor olabilir. Bu nedenle, asıl sorun üçüncü taraf entegrasyonunuzla ilgili olduğu için uygulamanızın veya sisteminizin nasıl saldırıya uğradığını asla bilemezsiniz.

Bu nedenle, satıcılarınızla konuşun ve onların da Log4j'yi en son sürüme yükselttiklerinden ve yukarıda tartışılan diğer güvenlik uygulamalarını uyguladıklarından emin olun.

#7. Log4j Güvenlik Açığı Tarayıcısı kullanın

Sistemlerinizdeki ve uygulamalarınızdaki Log4j güvenlik açıklarını tespit etmenizi kolaylaştırmak için piyasada birçok Log4j güvenlik açığı tarama aracı bulunmaktadır.

Bu nedenle, bu araçları aradığınızda, birçoğu yanlış pozitifler ürettiğinden doğruluk oranlarını kontrol edin. Ayrıca, Log4j güvenlik açığını belirlemeye, maruz kalmayı bildirmeye ve güvenlik açığını gidermeye odaklanabilecekleri için ihtiyaçlarınızı karşılayabilecek bir araç bulun.

Bu nedenle, odak noktanız algılamaysa, sorunu algılayabilen bir Log4j güvenlik açığı tarayıcısı bulun veya sorunu algılayıp düzeltebileni kullanın.

En iyi Log4j tarama araçlarından bazıları şunlardır:

  • Microsoft 365 Defende r: Microsoft, ağınızdaki Log4j açıklarını tespit etmenize ve önlemenize yardımcı olacak bir dizi güvenlik çözümü ve aracı sunar. Uzaktan kod yürütme ve yararlanma girişimlerini tespit edebilecek ve sizi Windows ve Linux cihazlarındaki Log4j güvenlik açıklarından koruyabileceksiniz.
  • Amazon Inspector ve AWS: Amazon, Amazon EC2 bulut sunucularında ve Amazon ECR'de Log4j güvenlik açığını bulmak için bir tarama aracı oluşturdu.
  • CloudStrike Arşiv Tarama Aracı (CAST): CloudStrike, Log4j güvenlik açığını tespit etmek için mükemmel bir tarama aracı da oluşturmuştur.
  • Google Bulut Günlüğü algılama: Google'ın bulut günlük kaydı algılama çözümü, Günlük Gezgini'ni kullanarak Log4j istismarlarını algılamanıza olanak tanır. Bu araçta bir günlük sorgusu oluşturabilir ve olası yararlanma dizelerini tarayabilirsiniz.
  • Google ayrıca, Log4j güvenlik açığını tespit etmek için açık kaynaklı bir dosya sistemi tarayıcısı olan log4jscanner'ı da oluşturmuştur.
  • BurpSuite Log4j Tarayıcı: Bu, profesyoneller ve işletmeler için Log4j güvenlik açığını tespit etmelerine yardımcı olacak bir güvenlik eklentisidir.
  • Huntress Log4Shell Güvenlik Açığı Test Aracı: Bu araç, giriş alanlarınızı test ederken kullanabileceğiniz rastgele benzersiz bir tanımlayıcı oluşturur. Uygulamada veya giriş alanında bir güvenlik açığı bulduğunda, güvenli LDAP sunucusu kötü amaçlı bağlantıyı anında sonlandıracak ve sizi güvende tutacaktır.
  • WhiteSource Log4j Detect: WhiteSource, Log4j güvenlik açıklarını tespit etmenize ve düzeltmenize yardımcı olmak için GitHub'da barındırılan WhiteSource Log4j Detect adlı ücretsiz bir CLI aracı oluşturdu – CVE-2021-445046 ve CVE-2021-44228.
  • Log4j için JFrog Açık Kaynak Tarama araçları: JFrog, ikili dosyalarınızdaki ve kaynak kodunuzdaki Log4j güvenlik açıklarını bulmak için çeşitli açık kaynaklı çözümler ve araçlar yarattı.

Çözüm

Log4j güvenlik açığı kritik bir güvenlik sorunudur. Bu günlük kitaplığı çeşitli uygulamalarda ve sistemlerde yaygın olarak kullanıldığından, Log4j güvenlik açığı yaygınlaştı ve saldırganların çok çeşitli sistem ve uygulamalardan yararlanmasına izin verdi.

Bu nedenle, sistemlerinizi ve uygulamalarınızı bu güvenlik açığından korumak istiyorsanız, Log4j kitaplığını en son sürüme yükselttiğinizden ve yukarıda açıklanan en iyi güvenlik uygulamalarını uyguladığınızdan emin olun.