1. Ana Sayfa
  2. Java
  3. Log4j Zafiyeti ve ELK Üstünde Alınabilecek Önlemler

Log4j Zafiyeti ve ELK Üstünde Alınabilecek Önlemler

featured

Geçen haftanın en kötü haberlerinden birisini aldık, siber güvenlik camiasının ve milyonlarca sistem adminin mesai harcadığı büyük Log4j zafiyeti. Google da son 7 gün aramalarda da Log4j keywordunun nasıl yükseldiğini görebiliyoruz.

Resim-1

Peki nedir bu Log4j ;

Log4j Java tabanlı yazılmış olan isteğe göre seviye bazlı loglama yapan apache lisansı olan loglama frameworkudur. Ceki GÜLCÜ tarafından geliştirilmeye başlanmış ve Apache Software Foundation tarafından geliştirilmesine devam edilmiş.

Yine internette araştırmalarıma göre Ceki GÜLCÜ nin geliştirdiği Log4j 1.x sürümü değil Apache Software Foundation tarafından geliştirilen log4j2 sürümünde zafiyet olduğunu görmem diğer dikkatimi çeken nokta olmuştur.

Resim-2

Dünya üzerinde milyarlarca java kullanan sistem olması bu açığın nedenli kritik seviyede olduğunu gözler önüne sermektedir.

Eğer Log4j 2.0-beta9 ve 2.14.1 sürümleri ve arasında bir sürüm kullanıyorsanız veya kullandığınız uygulamada log4j kütüphanelerinde bu sürümü kullanıyorsa zafiyetten etkilendiniz veya etkilenebilirsiniz deemektir.

Kaynak :https://logging.apache.org/log4j/2.x/security.html

Peki hangi uygulamalar bu zafiyetten etkileniyor derseniz,

Manufacturer/Component Notes Verified
Apple TRUE
Tencent TRUE
Steam TRUE
Twitter TRUE
Baidu TRUE
DIDI TRUE
JD TRUE
NetEase TRUE
CloudFlare TRUE
Amazon TRUE
Tesla TRUE
Apache Solr TRUE
Apache Druid TRUE
Apache Flink FALSE
Apache Struts2 TRUE
flume FALSE
dubbo FALSE
IBM Qradar SIEM TRUE
PaloAlto Panorama TRUE
Redis FALSE
logstash FALSE
ElasticSearch TRUE
kafka FALSE
ghidra TRUE
ghidra server TRUE
Minecraft TRUE
PulseSecure TRUE
UniFi TRUE
VMWare TRUE
Blender TRUE
Google TRUE
Webex TRUE
LinkedIn TRUE
VMWarevCenter TRUE
Speed camera LOL TRUE

Kaynak: https://github.com/YfryTchsGD/Log4jAttackSurface

Bu liste sürekli güncelleniyor ve artmaktadır. Etkilenen servisler için verified True ise zafiyet çalıştırılmış ve test edilmiş demektir. False olanlar için durum şu an belirsizdir.

Eğer tamamen internete açık ve portları açık bir sunucunuz var ve yeterli güvenlik ürününe sahip değilseniz , sunucunuz bu zafiyetten etkilenmiş olabilir.

Log4j Zafiyeti Nasıl Çalışıyor ?

Kaynak : https://socradar.io/what-do-you-know-about-the-log4j-critical-vulnerability-and-what-can-we-do/

Node4j Açığının Tespiti

Node4j için henüz bilinen bir patch veya yama çıkmadı her platform ayrı ayrı kendi kütüphanesi için önlemler ve sürüm yükseltme önermektedir.

Öncelikle bu ürün veya kütüphane bizim sunucularımızda var mı öğrenmemiz gerekecek.

Linux sunucularda bunu anlayabilmenin bazı yolları var.

Öncelikle sunucumuzda log4j framework mevcut mu öğrenmek için aşağıdaki basit komut satırları ile arama yapabiliriz.

grep -r “org/apache/logging/log4j/core/lookup/JndiLookup.class” / (/etc veya /opt gibi klasörlerde arama yapmak daha çabuk sürecektir ama  garanti sonuç için root altında arama yapmalısınız bunun sonucu çok uzun sürecektir bilginize.

Yukardaki komutu çalıştırdınız ama kaynak yetersizliğinden dolayı veya linuxta ulimite takıldığınızdan dolayı

grep: memory exhausted şeklinde bir hata alabilirsiniz.

Bu hatayı aldığınız için aşağıdaki komutu yerine kullanabilirsiniz.

find /etc -type f -exec grep -rn “org/apache/logging/log4j/core/lookup/JndiLookup.class” /dev/null {} +

Aramanıza göre binary exact matches jar gibi bir sonuç alırsanız log4j kullanıyorsunuz demektir.

Aşağıdaki kaynak verdiğim linklerden de yararlanabilirsiniz.

https://gist.github.com/Neo23x0/e4c8b03ff8cdf1fa63b7d15db6e3860b

Windows için ilgili komut satırı ile aratabilirsiniz.

gci ‘C:\’ -rec -force -include *.jar -ea 0 | foreach {select-string “JndiLookup.class” $_} | select -exp Path

Güncel : Log4j paketlerini bulmak için oluşturulmuş bir java uygulaması

https://github.com/mergebase/log4j-detector

 

Log4j Zafiyetinden Etkilendim mi ?

Log4j zafiyetinden dolayı sunucunuzda bir tarama yapılıp yapılmadığını veya exploit çalıştırıldığını anlamak için ise

Aşağıdaki komut dizisini kullanabilirsiniz

egrep -i -r ‘\$\{jndi:(ldap[s]?|rmi|dns):/[^\n]+’ /var/log

veya bir python betiği ile bu taramayı yapabilirsiniz.

İlgili python betiği ve nasıl çalıştırılcağı hakkında link:

https://github.com/Neo23x0/log4shell-detector

Apache Software Foundation tarafından yayınlanan bildiriye göre jvm options üzerinde ilgili ayarları yaptığınızda açığı şimdilik kapatabiliyorsunuz.

“Users of Log4j 2.10 or greater may add -Dlog4j.formatMsgNoLookups=true as a command line option or add log4j.formatMsgNoLookups=true to a log4j2.component.properties file on the classpath to prevent lookups in log event messages”

Elastic Search Üstünde Node4j Açığının Kapatılması

Ben ELK üstünde manuel aldığım önlemi burda sizinle paylaşacağım sizlerde bu ayarları yapabilir, şimdilik zafiyetten korunabilirsiniz.

Kaynak : https://discuss.elastic.co/t/apache-log4j2-remote-code-execution-rce-vulnerability-cve-2021-44228-esa-2021-31/291476

 

Eğer ELK sunucunuzda servis olarak kurulu ise

Elasticsearch servisinin kurulu olduğu dizine giderek jvm.options dosyasına ilgili satırı ekleyin.

-Dlog4j2.formatMsgNoLookups=true

Bu satırı ekledikten sonra servisi restart edin. Tüm ELK nodelarında bu işlemi sırasıyla yapınız.

Eğer elk servisininde kullanıldığı bir docker yapınız varsa elk servisinin bulunduğu docker yaml dosyasına girerek aşağıdaki satırı editleyiniz.

Servislerin altında elasticsearch: ile başlayan satırı bulun orda

“ES_JAVA_OPTS=-Xms2g –Xmx2g” olan satıra gelin bu satırı aşağıdaki şekilde editleyin.

“ES_JAVA_OPTS=-Xms6g -Xmx6g -Dlog4j2.formatMsgNoLookups=true”

Ardından

docker-compose –f     *-compose.yaml up –d komutu ile dockerlarınızı reload edinizi.

SPARK servisi için internette yaptığım araştırmalarda aşağıdaki sonucu buldum.

https://discourse.igniterealtime.org/t/log4j-vulnerability/91111

 

SAP HANA Sistemler İçin Log4j Zafiyet Tespiti ve Önlemler

https://blogs.sap.com/2021/12/14/hana-xsa-log4j-cve-2021-44228/

 

Konu ile ilgili bu postu sürekli güncel tutacağım ve yeni bilgiler ile editleyeceğim.

Bu konuyla ilgili sorularınızı http://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz. 

Referanslar

www.mshowto.org 

TAGs:Log4j Zafiyeti,Log4j Zafiyeti nedir,Log4j, Log4j Zafiyetinin tespiti, Log4j Zafiyeti için alınabilecek önlemler

Yorum Yap

Yazar Hakkında

1988 İstanbul doğumluyum, Küçük yaşlardan beri bilişim sektörüne derinden tutkum ve merakım var. Bilişim sektöründeki iş hayatına 2005 yılında başladım, üniversite öncesi, üniversite öğrenimim içerisinde ve üniversite öğrenim hayatını 4 sene içerisinde başarı ile bitirdiğim andan sonra 2013 yılı itibari ile ATOS firmasında helpdesk olarak başladım. Askerlik görevimi yerine getirmek için ayrıldığım ATOS firmasından sonra Eczacıbaşı Bilişim, Teknotel firmalarında sistem uzmanı olarak çalıştım. Ardından Radore Veri Merkezinde Operasyon Takım Lideri ve Kıdemlı Uzman olarak çalıştım. Şu an Ford Otosan firmasında Linux Admin olarak çalışmaktayım. İlgi alanlarım : Linux işletim sistemleri ve OpenSource Projeler Uzmanlık Alanlarım : Linux (Centos, Ubuntu,SUSE,OEL,ShellScript), Windows İşletim Sistemleri, E-Mail Sistemleri (Postfix, Qmail, Zimbra, Mailenable, Exchange, Zimbra) Hosting Sistemleri Kurulum ve Yönetim (cPanel,plesk,whmcs,wordpress)

Yorum Yap