Herkese Merhabalar son bir kaç günden beri öneli olan konuya değineceğim. Tüm dünyayı ayağa kaldıran Apache Log4j kullanan servis vb benzeri tüm yapılar kolayca hack edilebiliyor. Detaylara buradan erişebilirsiniz.
VMware için açıklanan bülten içinde burayı kontrol edebilirsiniz.
VMware firması etkilenen ürünler için henüz bir yama yayınlamış değil maalesef. Ancak kullandığınız ürünler için geçici çözümler ile bu açığı kapatabilirsiniz.
Küçük bir hatırlatma eğer VMware vCenter HA yapınız var ise önce bu yapıyı iptal etmeniz gerekiyor. PSC yapınız var ise bu işlemi hem PSC hemde vCenter’da yapmanız gerekmekte.
Yapmamız gerekenleri aşağıda anlatmaya çalışacağım. İşlemlere başlamadan önce mutlaka vCenter Server’in backup‘nı almayı ihmal etmeyin. Daha sonra vCenter Server’e SSH ile bağlantı yapmanız gerekmektedir.
Şimdi sırası ile aşağıdaki komut setlerini çalıştırmanız gerekmekte.
Öncelikle vMON Service için komut çalıştırıyoruz.
“java-wrapper-vmon” dosyasını yedekliyoruz öncelikle.
cp -rfp /usr/lib/vmware-vmon/java-wrapper-vmon /usr/lib/vmware-vmon/java-wrapper-vmon.bak
vi editör yardımı ile “java-wrapper-vmon” dosyasını açıyoruz.
vi /usr/lib/vmware-vmon/java-wrapper-vmon
Şimdi burada önemli olan nokta kullandığınız sürüme göre aşağıdaki satırlarda değişiklik yapmanız gerekmekte.
vCenter 7.0 Update 3, 3a, vCenter 7.0 Update 2, 2a, 2b, 2c, 2d sürümleri için;
Mevcut satır:
exec $java_start_bin $jvm_dynargs $security_dynargs $original_args
Değiştirilecek kod:
log4j_arg=”-Dlog4j2.formatMsgNoLookups=true”
exec $java_start_bin $jvm_dynargs $log4j_arg $security_dynargs $original_args
Eğer kullandığınız sistem vCenter 7.0 GA, 7.0.0a, 7.0.0b, 7.0.0c, 7.0.0d, vCenter 7.0 Update 1, U1a, U1c, U1d ise aşağıdaki satırları eklemeniz gerekmekte.
Mevcut Satır:
exec $java_start_bin $jvm_dynargs “$@”
Değiştirilecek Kod:
log4j_arg=”-Dlog4j2.formatMsgNoLookups=true”
exec $java_start_bin $jvm_dynargs $log4j_arg “$@”
İlgili satırı ekledikten sonra vCenter servislerini restart ediyoruz.
service-control –stop –all
service-control –start –all
Eğer servis başlamaz ise dosya yetkilerini aşağıdaki gibi düzenlememiz gerekli.
chown root:cis /usr/lib/vmware-vmon/java-wrapper-vmon
chmod 754 /usr/lib/vmware-vmon/java-wrapper-vmon
Şimdi ise Update Manager Service dosyasını değiştiriyoruz.
“start.ini” Dosyasını yedekliyoruz öncelikle.
cp -rfp /usr/lib/vmware-updatemgr/bin/jetty/start.ini /usr/lib/vmware-updatemgr/bin/jetty/start.ini.bak
Şimdi ilgili satırı aşağıdaki gibi değiştiriyoruz.
vi /usr/lib/vmware-updatemgr/bin/jetty/start.ini
sayfanın son satırın altına bunları ekliyoruz.i “-Dlog4j2.formatMsgNoLookups=true”
Şimdi Update Manager servisini yeniden başlatıyoruz.
service-control –restart vmware-updatemgr
Şimdide Analytics Service dosyasını değiştiriyoruz.
Öncelikle yine log4j-core-2.8.2.jar dosyasını yedekliyoruz.
cp -rfp /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar.bak
Jawa ile ilgili Class’ları disable etmek için aşağıdaki komutu kullanıyoruz.
zip -q -d /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
Şimdi ilgili servisi restart ediyoruz.
service-control –restart vmware-analytics
Son olarak DBCC Utility üzerinde değişiklikleri yapıyoruz.
Yine öncelikle ilgili dosyayı yedekliyoruz.
cp /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar.bak
java class disable için komutumuzu giriyoruz.
zip -q -d /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
Eğer bu komutu çalıştırdıktan sonra “zip error: Nothing to do!” uyarısı alırsanız bu adımı atlayabilirsiniz.
Şimdi yaptıklarımızı kontrol ediyoruz.
vMon hizmeti için komut setimiz;
“ps auxww | grep formatMsgNoLookups” İşlemlerin -Dlog4j2.formatMsgNoLookps=true olarak görmemiz gerekli.
Update Manager kontrol için komut setimiz.
cd /usr/lib/vmware-updatemgr/bin/jetty/
“java -jar start.jar –list-config”
System Properties tabı altında log4j2.formatMsgNoLookups = true (/usr/lib/vmware-updatemgr/bin/jetty/start.ini) kontrol ediyoruz.
Analytics Service değişikliğini kontrol etmek için komut setimiz aşağıdaki gibidir.
“grep -i jndilookup /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar | wc -l” Bu komut size 0 mesajı dönmeli.
Son olarak DBCC Utility değişikliğini doğruluyoruz. Komut setimiz aşağıdaki gibidir.
“grep -i jndilookup /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar | wc -l” Bu komutta size 0 mesajı dönecektir.
Evet LOG4J ve VMware Çözümü yazımızın sonuna geldik. Yukarıda anlattıklarım VMware sitesinde belirtilen tamamen geçici çözümdür. 7.x öncesi sürümler için yine buradan VMware sitesinde belirtilen yönergeleri takip edebilisiniz. Herkese sorunsuz ve sağlıklı günler dilerim.
Kaynak: https://kb.vmware.com/s/article/87081?lang=en_US