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

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

0

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/ComponentNotesVerified
AppleTRUE
TencentTRUE
SteamTRUE
TwitterTRUE
BaiduTRUE
DIDITRUE
JDTRUE
NetEaseTRUE
CloudFlareTRUE
AmazonTRUE
TeslaTRUE
Apache SolrTRUE
Apache DruidTRUE
Apache FlinkFALSE
Apache Struts2TRUE
flumeFALSE
dubboFALSE
IBM Qradar SIEMTRUE
PaloAlto PanoramaTRUE
RedisFALSE
logstashFALSE
ElasticSearchTRUE
kafkaFALSE
ghidraTRUE
ghidra serverTRUE
MinecraftTRUE
PulseSecureTRUE
UniFiTRUE
VMWareTRUE
BlenderTRUE
GoogleTRUE
WebexTRUE
LinkedInTRUE
VMWarevCenterTRUE
Speed camera LOLTRUE

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ı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz. 

Referanslar

www.mshowto.org 

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

Bu İçeriğe Tepkin Ne Oldu?
  • 6
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 1
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

SKILS: Linux Administrator | Bash Script | Big Data Administrator | Application Management | Apache Hadoop , Kafka , Spark | Oracle , Sles , Centos | Docker | Udemy Advisor

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir