Ağustos 31, 2023
Log4j güvenlik açığı veya “Log4Shell,” şimdiye kadarki en yıkıcı yazılım kusurlarından biri olarak kabul ediliyor. Apache, kusuru Aralık 2021'de yamaladı ancak bu durum güvenlik ekipleri için endişe kaynağı olmaya devam ediyor. Aslında hala arasında en çok istismar edilen güvenlik açıkları.
Log4Shell varlığını sürdürüyor çünkü etkilediği Apache Log4j 2 yazılım paketi dünyanın en yaygın kullanılan günlük kitaplıklarından biri. Log4Shell'in her örneğini bulmanın ve düzeltmenin on yıl sürmesi bekleniyor. ABD İç Güvenlik Bakanlığı.
Bu arada güvenlik ekipleri, ağlarında Log4Shell azaltma ve iyileştirme işlemlerini hızlandırmak için bazı adımlar atabilir.
Log4j güvenlik açıklarını anlama
Log4Shell'in nasıl tespit edilip yamalanacağı konusuna girmeden önce, güvenlik açığının doğasını anlamak önemlidir.
log4j bir programdaki bilgileri ve olayları kaydeden açık kaynaklı bir günlükçüdür (Apache Yazılım Vakfı tarafından korunur). Log4j bağımsız bir yazılım değil, geliştiricilerin kendi Java uygulamalarına ekleyebilecekleri bir kod paketidir. Apache Log4j çerçevesi, Amazon Web Services (AWS) ve Cisco çözümleri gibi ağ altyapısından Twitter ve Minecraft gibi popüler uygulamalara kadar web üzerindeki en büyük hizmetlerden bazılarında kullanılmaktadır.
Log4j'nin bazı sürümleri (özellikle Log4j 2.17.0 ve altı) ciddi güvenlik açıklarına sahiptir. Bunlardan en tehlikelisi Log4Shell (CVE-2021-44228; CVSS derecesi: 10), uzaktan kod yürütme (RCE) sıfır gün güvenlik açığı Log4j'nin 2.14.1 ve önceki sürümlerinde bulunur.
Log4Shell, Log4j'nin savunmasız sürümlerinin Java Adlandırma ve Dizin Arayüzünü (JNDI) nasıl işlediğinin bir sonucudur. API Java uygulamalarının harici sunucularda barındırılan kaynaklara erişmek için kullandığı. Tehdit aktörleri, Log4j aracılığıyla kötü amaçlı JNDI arama komutları göndererek savunmasız sistemlerin neredeyse tüm kontrolünü ele geçirebilir. Bu komutlar, uygulamayı hemen hemen her şeyi yapabilen rastgele kod çalıştırması için kandırır: veri çalmakyüklemek fidye, cihazları çevrimdışına alın ve daha fazlasını yapın.
Log4Shell saldırıları
Tipik bir Log4Shell cyberattack şu şekilde çalışır:
- Bilgisayar korsanı, Basit Dizin Erişim Protokolü (LDAP) veya Etki Alanı Adı Sistemi (DNS) gibi ortak bir protokolü kullanarak bir sunucu kurar.
- Bilgisayar korsanı, kötü amaçlı yazılım veya başka bir kötü amaçlı yükü sunucuda depolar.
- Bilgisayar korsanı, Log4j çalıştıran bir uygulamaya bir JNDI araması göndererek uygulamayı bilgisayar korsanının sunucusuna yönlendirir.
- JNDI araması, uygulamanın bilgisayar korsanının sunucusuna bağlanmasına, kötü amaçlı yükü indirmesine ve kötü amaçlı kodu yürütmesine neden olur.
İlgili Log4j güvenlik açıkları ve bunların nasıl istismar edildiği
Apache, Log4Shell'e yama yapmaya çalışırken, güvenlik araştırmacıları Log4j'nin bazı sürümlerinde bir takım ilgili kusurları tespit etti. Bunlar şunları içerir:
- CVE-2021-45046 Bilgisayar korsanlarının, belirli varsayılan olmayan ayarları kullanan sistemlere, söz konusu sistemler Log4Shell'i düzeltmiş olsa bile, kötü amaçlı JNDI aramaları göndermesine olanak tanır. Log4j 2.15 ve altındaki sürümlerde mevcuttur.
- CVE-2021-45105 bilgisayar korsanlarının başlatılmasını sağlar hizmet reddi saldırıları Log4j'e kötü amaçlı mesajlar göndererek. Log4j 2.16 ve altındaki sürümlerde mevcuttur.
- CVE-2021-44832 uzaktan kod yürütme güvenlik açığıdır. Bu kusur Log4Shell'e göre daha az kritiktir çünkü bilgisayar korsanlarının bundan faydalanabilmesi için yüksek izinler alması gerekir. Log4j 2.17 ve altındaki sürümlerde mevcuttur.
Log4j güvenlik açıkları nasıl tespit edilir
Bir ağda Log4j'nin savunmasız her örneğini bulmak zor olabilir. Log4j tahmini olarak görünüyor milyonlarca uygulamaBu, güvenlik ekiplerinin incelemesi gereken çok sayıda varlık olduğu anlamına gelir.
Ayrıca Log4j genellikle dolaylı bir bağımlılık olarak mevcuttur. Bu, doğrudan bir varlığın kaynak kodunda yer almadığı, ancak varlığın bağlı olduğu bir yazılım paketine veya entegrasyona bağımlılık olarak göründüğü anlamına gelir. Google raporları En savunmasız Log4j örneklerinin bağımlılık zincirinde birden fazla seviye derinliğinde olduğu ve bazılarının dokuz seviyeye kadar derinlikte olduğu görülüyor.
Bununla birlikte, güvenlik ekipleri Log4j açıklarını doğru taktikler ve araçlarla tespit edebilir.
Bakılacak şey
Log4j 2'nin 2.0-beta9'dan 2.17'ye kadar her sürümü Log4Shell'e veya ilgili bir kusura karşı savunmasızdır. Başka bir deyişle, güvenlik ekipleri Log4j'nin 2.17.1'den önceki herhangi bir sürümünü bulmalı ve ele almalıdır.
Log4Shell ve ilgili kusurları yalnızca Log4j'nin temel işlevlerini sağlayan "Log4j-core" dosyalarında mevcuttur. Kusurlar, uygulamalar ve Log4j kaydediciler arasındaki arayüzü kontrol eden "Log4j-api" dosyalarında mevcut değil.
Log4j, şirketin kontrol ettiği varlıklarda, şirketin kullandığı üçüncü taraf varlıklarında (örneğin bulut hizmetleri) ve şirket ağına erişimi olan hizmet sağlayıcıların kullandığı varlıklarda görünebilir. Log4j büyük olasılıkla Java tabanlı uygulamalarda görünse de, bağımlılıklar ve entegrasyonlar yoluyla Java dışı uygulamalarda da mevcut olabilir.
Java uygulamalarında Log4j gibi kitaplıklar genellikle Java Arşivi dosyalarında veya "JAR dosyalarında" paketlenir. JAR dosyaları diğer JAR dosyalarını içerebilir ve bunlar da kendi JAR dosyalarını vb. içerebilir. Log4j'nin tüm savunmasız sürümlerini bulmak için güvenlik ekiplerinin yalnızca üst düzey dosyaları değil, tüm JAR dosyalarını incelemesi gerekir.
nasıl bulunur
Uzmanlar, Log4j açıklarını bulmak için çeşitli tekniklerin bir arada kullanılmasını öneriyor.
Manuel aramalar. Güvenlik ekipleri Log4j kusurlarını manuel olarak arayabilir. Bir uygulamadaki tüm bağımlılıkları haritalayan bağımlılık ağaçları oluşturmak için Apache Maven gibi geliştirme araçlarını kullanabilirler veya harici tehdit istihbaratı Etkilenen varlıkları belirlemek için. Örneğin Siber Güvenlik ve Altyapı Güvenliği Ajansı (CISA), Log4Shell'den zarar gördüğü bilinen yazılımların bir listesini derledi. Liste mevcut GitHub'da.
Linux, Microsoft Windows ve macOS işletim sistemlerinde güvenlik ekipleri, komut satırı arayüzünü kullanarak Log4j örnekleri için dosya dizinlerinde arama yapabilir.
Güvenlik açığı tarama araçları. Log4Shell'in keşfinin ardından bazı kuruluşlar Log4j açıklarını bulmak için tasarlanmış ücretsiz araçlar yayınladı. Örnekler şunları içerir: Palantir'in Log4j algılayıcısı ve CERT Koordinasyon Merkezi'nin tarayıcısı, Diğerleri arasında.
Özel tarayıcılar hâlâ mevcut olsa da, birçok standart güvenlik çözümü gibi güvenlik açığı tarayıcıları, saldırı yüzeyi yönetimi (ASM) platformları ve uç nokta algılama ve yanıt (EDR) çözümleri artık Log4j açıklarını tespit edebiliyor.
Log4Shell bağımlılık zincirlerinin derinliklerine gizlenebildiği için güvenlik ekipleri otomatik taramaları aşağıdakiler gibi daha uygulamalı yöntemlerle destekleyebilir: penetrasyon testleri.
Tehdit avcılığı. CISA'ya göreSaldırganların bir ağa sızmak için Log4Shell'i kullandıkları ve ardından izini kaybettirmek için ele geçirdikleri varlığa yama yaptıkları biliniyor. Bu nedenle, güvenlik ekiplerinin bir ihlalin zaten gerçekleştiğini varsayması ve aktif olarak avlanmak Log4Shell'in kötüye kullanıldığına dair işaretler için.
Siber güvenlik araçları gibi güvenlik bilgileri ve etkinlik yönetimit (SIEM) çözümleri ve genişletilmiş algılama ve yanıt (XDR) platformları, garip günlük girişleri veya şüpheli trafik modelleri gibi Log4Shell ile ilişkili anormal etkinliklerin tespit edilmesine yardımcı olabilir. Güvenlik ekipleri tam olarak başlamalı olay yanıtı ve bir saldırının sonuçlarının ne kadar ciddi olabileceği göz önüne alındığında, Log4Shell'e dair olası herhangi bir ipucu için soruşturma prosedürleri.
Log4j güvenlik açıkları nasıl düzeltilir
Güvenlik ekiplerinin Log4j güvenlik açıklarını ele alırken birkaç seçeneği vardır.
En iyi durum: Savunmasız sistemlerin yamalanması
Log4Shell ve ilgili kusurların tamamen giderilmesi için kuruluşların ağlarındaki tüm Log4j örneklerini en son sürüme (veya en azından sürüm 2.17.1'e) güncellemesi gerekir. Log4j'nin en son sürümleri, saldırganların yararlanabileceği işlevleri ve LDAP gibi yaygın olarak kötüye kullanılan protokollere yönelik desteği ortadan kaldırır.
Sistem çapında tek bir yama mevcut değildir ve Java'nın güncellenmesi sorunu gidermez. Güvenlik ekipleri, etkilenen her varlıktaki Log4j'nin her örneğini güncellemelidir.
Diğer azaltıcı önlemler
Güvenlik araştırmacıları bu konuda hemfikir yamama ideal çözümdür. Yama uygulamak mümkün değilse kuruluşlar, saldırı olasılığını en aza indirmek için diğer azaltma adımlarını kullanabilir.
Savunmasız uygulamalarda mesaj aramalarına izin verilmemesi. Saldırganlar, savunmasız uygulamalara kötü amaçlı komutlar göndermek için Log4j'nin "mesaj arama değiştirmeleri" adı verilen bir özelliğini kullanıyor. Güvenlik ekipleri, "Log4j2.formatMsgNoLokups" sistem özelliğini "true" olarak değiştirerek veya "LOG4J_FORMAT_MSG_NO_LOOKUPS" ortam değişkeninin değerini "true" olarak ayarlayarak bu işleve manuel olarak izin vermeyebilir.
Mesaj arama değiştirme fonksiyonunun kaldırılması saldırganların saldırmasını zorlaştırsa da kusursuz değildir. Kötü niyetli aktörler, varsayılan olmayan ayarlara sahip uygulamalara kötü amaçlı JNDI aramaları göndermek için CVE-2021-45046'yı kullanmaya devam edebilir.
JNDIlookup sınıfını savunmasız uygulamalardan kaldırmak. Log4j'de JNDIlookup sınıfı, kaydedicinin JNDI aramalarını nasıl işleyeceğini yönetir. Bu sınıf Log4j'nin sınıflar dizininden kaldırılırsa JNDI aramaları artık gerçekleştirilemez.
Apache JNDIlookup sınıfını savunmasız uygulamalardan kaldırmak için aşağıdaki komutun kullanılabileceğini belirtiyor:
zip -q -d Log4j-core-*.jar org/Apache/logging/Log4j/core/lookup/JndiLookup.class
Bu yöntem, mesaj aramalarına izin vermemekten daha etkili olsa da, saldırganların yinelemeli aramalar yoluyla hizmet reddi saldırılarını tetiklemek gibi diğer istismar girişimlerini gerçekleştirmesini engellemez.
Potansiyel Log4Shell saldırı trafiğini engelleme. Güvenlik ekipleri kullanabilir web uygulaması güvenlik duvarları (WAF'ler), saldırı tespit ve önleme sistemleri (IDPS), EDR'ler ve diğer siber güvenlik araçları, LDAP veya RMI gibi yaygın olarak kullanılan protokolleri engelleyerek saldırgan tarafından kontrol edilen sunuculara giden ve sunuculardan gelen trafiği engellemek için kullanılır. Güvenlik ekipleri de engelleyebilir Saldırılarla ilişkili IP adresleri veya saldırganların kötü amaçlı isteklerde yaygın olarak kullandığı "jndi", "ldap" ve "rmi" gibi dizeler.
Ancak saldırganlar yeni protokoller ve IP adresleri kullanarak veya kötü amaçlı dizeleri gizleyerek bu savunmaları aşabilirler.
Etkilenen varlıkların karantinaya alınması. Her şey başarısız olursa, güvenlik ekipleri bir yama beklerken etkilenen varlıkları karantinaya alabilir. Bunu yapmanın bir yolu, savunmasız varlıkları doğrudan internetten erişilemeyen izole bir ağ bölümüne yerleştirmektir. Ekstra koruma için bu ağ kesiminin etrafına bir WAF yerleştirilebilir.
Log4Shell'i uzak tutmak
Log4Shell'i düzeltmenin en zor yanlarından biri, her zaman yamalı kalmamasıdır. Kasım 2022'de, savunulabilir rapor edildi Log29Shell'e karşı hala savunmasız olan varlıkların %4'unun "tekrarlama" olduğu, yani yama uygulandıkları ancak kusurun yeniden ortaya çıktığı anlamına geliyor. Geliştiriciler, uygulamaları oluşturmak veya güncellemek için yanlışlıkla Log4j'nin yama yapılmamış sürümlerini içeren yazılım kitaplıklarını kullandığında yinelenmeler meydana gelir.
Geliştiriciler kullandıkları çerçeveleri daha yakından inceleyebilirken, JAR dosyalarının birkaç düzeyde derinlerinde bulunan Log4j'nin savunmasız sürümlerini gözden kaçırmak kolaydır.
Resmi uygulama güvenlik açığı yönetimi ve yama yönetimi programlar, güvenlik ekiplerine Log4j güvenlik açıklarının geri dönüşüne karşı varlıkları izlemenin daha etkili bir yolunu sunabilir. Düzenli güvenlik açığı taraması ve sızma testleri, Log4Shell veya başka şekilde yeni güvenlik açıklarının hızla yakalanmasına yardımcı olabilir. Yama yönetimi, satıcılar düzeltmeleri yayınlar yayınlamaz yeni güvenlik açıklarının kapatılmasını sağlar.
Log4Shell ve diğer sıfır gün güvenlik açıklarıyla mücadelede daha fazla yardım
Bilgisayar korsanları, Log4Shell gibi sıfır gün güvenlik açıklarından kolaylıkla yararlanmak ve fidye yazılımı saldırıları ve diğer siber tehditleri başlatmak için otomatikleştirilmiş araçları giderek daha fazla kullanıyor. Geleneksel uç nokta güvenlik yaklaşımlarıyla çalışan güvenlik ekipleri, uyarı yorgunluğu, karmaşık araçlar ve uzun araştırmalarla karşı karşıya kalıyor ve bunlara ayak uydurmak için mücadele ediyor.
Eski adıyla ReaQta olan IBM Security® QRadar® EDR, çok az insan etkileşimi gerektiren veya hiç gerektirmeyen, kullanımı kolay akıllı otomasyonla bilinen ve bilinmeyen uç nokta tehditlerini neredeyse gerçek zamanlı olarak düzeltir. QRadar EDR ile analistler hızlı, bilgiye dayalı kararlar alabilir ve en önemli tehditlere odaklanmak için otomatik uyarı yönetimini kullanabilir. Gelişmiş sürekli öğrenme yapay zeka yetenekleri ve kullanıcı dostu arayüz, güvenlik personelinin kontrolü tekrar ele almasını sağlar ve iş sürekliliğinin korunmasına yardımcı olur.
IBM Security QRadar EDR'yi keşfedin
Güvenlik'ten daha fazlası
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- PlatoData.Network Dikey Üretken Yapay Zeka. Kendine güç ver. Buradan Erişin.
- PlatoAiStream. Web3 Zekası. Bilgi Genişletildi. Buradan Erişin.
- PlatoESG. Otomotiv / EV'ler, karbon, temiz teknoloji, Enerji, Çevre, Güneş, Atık Yönetimi. Buradan Erişin.
- PlatoSağlık. Biyoteknoloji ve Klinik Araştırmalar Zekası. Buradan Erişin.
- ChartPrime. Ticaret Oyununuzu ChartPrime ile yükseltin. Buradan Erişin.
- Blok Ofsetleri. Çevre Dengeleme Sahipliğini Modernleştirme. Buradan Erişin.
- Kaynak: https://www.ibm.com/blog/how-to-detect-and-patch-a-log4j-vulnerability/