12 Aralık 2021 Pazar

LOG4J VMware Çözümü


Merhaba biraz acil bir durum bu konu tüm dünya genelinde Apache Log4j kullanan servis vb benzeri tüm yapılar kolayca hack edilebiliyor. Durumun çok detayı var. Detaylara buradan erişebilirsiniz.

Apache Log4j: https://logging.apache.org/log4j/2.x/

The Hacker News:  https://thehackernews.com/2021/12/extremely-critical-log4j-vulnerability.html

VMware: https://www.vmware.com/security/advisories/VMSA-2021-0028.html

VMware ürünlerinde bu durum için üsteki linki var olan VMware ürününüz için Workarounds ( geçici çözümleri ) uygulayabilirsiniz.

vCenter 7.x ve 6.x sürümleri için geçici çözüm burada. KB87081 Kaynak : VMware

Kısaca : aşağıdaki komutları yazarak vcenter ortamınızı geçici çözüm ile güvenli hale getirebilirsiniz.

Notlar : * Eğer VMware vCenter HA ( 2 vCenter yani ) yapınız var ise önce bu yapıyı iptal etmeniz gerekiyor, işlemlerden önce.

* PSC ( Platform Service Controller ) yapınız var ise kısaca vCenterve veritabanı yapınız ayrı ise aynı işlemleri yapmanız gerekiyor bilginize. hem vCenter hemde PSC appliance makinelerinizde yani.

vMON Service
1 - java-wrapper-vmon dosyasını yedekleyerek başlayın.

cp -rfp /usr/lib/vmware-vmon/java-wrapper-vmon /usr/lib/vmware-vmon/java-wrapper-vmon.bak

2 - java-wrapper-vmon dosyasını bir text editor ile açın örnek : vi
vi /usr/lib/vmware-vmon/java-wrapper-vmon

Burada versiyon vCenter için çok önemli :
vCenter 7.0 Update 3, 3a
vCenter 7.0 Update 2, 2a, 2b, 2c, 2d

3 - Aşağıdaki satırları alanları vi editör açtığınız dosya içine ekleyin.
Bu satırı bulun :
exec $java_start_bin $jvm_dynargs $security_dynargs $original_args

Bu satırlar ile değiştirin :
log4j_arg="-Dlog4j2.formatMsgNoLookups=true"
exec $java_start_bin $jvm_dynargs $log4j_arg $security_dynargs $original_args

Yine versiyonunuza göre çok çok önemli doğru değişimi sağlayın. 3. adımdaki gibi.
vCenter 7.0 GA, 7.0.0a, 7.0.0b, 7.0.0c, 7.0.0d
vCenter 7.0 Update 1, U1a, U1c, U1d

Bu satırı bulun :
exec $java_start_bin $jvm_dynargs "$@"

Bu satırlar ile değiştirin :
log4j_arg="-Dlog4j2.formatMsgNoLookups=true"
exec $java_start_bin $jvm_dynargs $log4j_arg "$@"

4- vCenter Servislerini restar edin.
service-control --stop --all
service-control --start --all

Not : Eğer servsislerini değişimden sonra başlamaz ise dosya erişim yetkilerinden emin olun. İşte yeki komutları şöyle: 
chown root:cis /usr/lib/vmware-vmon/java-wrapper-vmon
chmod 754 /usr/lib/vmware-vmon/java-wrapper-vmon

Update Manager Service
1 - start.ini dosyasını yedekleyerek başlıyoruz.
cp -rfp /usr/lib/vmware-updatemgr/bin/jetty/start.ini /usr/lib/vmware-updatemgr/bin/jetty/start.ini.bak

2 - start.ini dosyasını güncelliyoruz
Bu komutu girip dosyanın son satırına 
vi /usr/lib/vmware-updatemgr/bin/jetty/start.ini

sayfanın son satırın altına bunları ekliyoruz
-Dlog4j2.formatMsgNoLookups=true

3- Update Manager Service restart ediyoruz.
service-control --restart vmware-updatemgr

Analytics Service
1 - 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

2 - Bu jawa sınıfını disable etmek için aşaığıdaki komut kullanıyoruz
zip -q -d /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

3 - Analytics service restar ediyoruz.
service-control --restart vmware-analytics

DBCC Utility
1 - log4j-core-2.8.2.jar dosyasını 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

2 - Bu java sınıfını disable etmek için aşaığıdaki komut kullanıyoruz
zip -q -d /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
 
Not: Bu komuttan sonra yapılacak birşey yok mesajı alırsanız "zip error: Nothing to do!". bu adımı geçiniz ve restart etmenize gerek yok.

Yaptıklarımızı kontol edelim : 
Tüm bölümler tamamlandıktan sonra, başarılı bir şekilde uygulanıp uygulanmadıklarını doğrulamak için aşağıdaki adımları kullanın. 

1 - vMon hizmetlerinin yeni -Dlog4j2.formatMsgNoLookps=true parametresiyle başlatılıp başlatılmadığını doğrulayın:
ps auxww | grep formatMsgNoLookups
İşlemlerin -Dlog4j2.formatMsgNoLookps=true içerip içermediğini kontrol edin

2 - Verify the Update Manager değişikliklerinin aşağıdaki iki komutun çıktısında "System Properties" altında gösterildiğini doğrulayın:

cd /usr/lib/vmware-updatemgr/bin/jetty/
java -jar start.jar --list-config
 
System Properties:
------------------
log4j2.formatMsgNoLookups = true (/usr/lib/vmware-updatemgr/bin/jetty/start.ini)

3 - Analytics Service değişikliklerini doğrulayın:
grep -i jndilookup /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar | wc -l
Bu komut size  0  döndürmelidir.

4 - DBCC Utility değişikliklerini doğrulayın:
grep -i jndilookup /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar | wc -l
Bu komut size  0  döndürmelidir.


Yukarıda yazdıklarım sadece VMware sitesinden alınan ve geçici çözüm olarak sunulmuştur. Her zaman size tavsiyem bavkup yazılımınız ile vCenter ortamınızı yedeklemeniz. vCenter 6.x için bu linkten faydalanbilirsiniz. Yine yeniliyorum bu geçici çözümdür.
Kolay gelsin.

Hiç yorum yok:

Yorum Gönder

Yorumunuz için teşekkürler.