Merhabalar,
Çok yakın bir zaman önce tespit edilen CVE-2021-44228 zafiyetinin, Apache Log4j açık kaynak bileşeni aracılığıyla vCenter Server 7.0.x, vCenter 6.7.x ve vCenter 6.5.x’i etkilediği belirlendi. Buna yönelik henüz güvenlik güncellemesi yok, fakat bu güncelleme hazırlanana kadar kullanılmak üzere, bu açığı kapatan bir geçici çözüm bugün yayınlandı.
Bu makalede, test ortamımdaki bir VMware vCenter Server Appliance 7.x için bu geçici çözümün nasıl uygulanabileceğini inceleyeceğiz. İlgili makalenin VMware orjinal linkine buradan ulaşabilirsiniz.
Benim kullandığım vCenter sunucu versiyonu aşağıdaki gibidir.
Version : 7.0.3
Build : 18778458
Şimdi işlemlerimize hızlıca başlayalım.
Başlamadan önce, sunucu yedeğini ya da snapshot’ını almayı unutmayınız.
vMON Service işlemleri
1. Öncelikle java-wrapper-vmon dosyasının bir yedeğini oluşturuyoruz.
cp -rfp /usr/lib/vmware-vmon/java-wrapper-vmon /usr/lib/vmware-vmon/java-wrapper-vmon.bak
2. Sonrasında java-wrapper-vmon dosyasını düzenleyeceğiz. vi komutunu kullanıyoruz.
vi /usr/lib/vmware-vmon/java-wrapper-vmon
3. Dosyanın en altında bulunan, en son satırı, aşağıda verdiğim 2 yeni satırla değiştirin.
NOT: Bu adımı, ortamınızda çalışan vCenter sürümüne göre uygulamalısınız.
3.1. vCenter sunucu versiyonu aşağıdaki versiyonlardan biri ise, bu başlık altındakileri uygulayınız.
vCenter 7.0 Update 3, 3a
vCenter 7.0 Update 2, 2a, 2b, 2c, 2d
Orjinal içerik
exec $java_start_bin $jvm_dynargs $security_dynargs $original_args
Yukarıda gördüğünüz, dosyanın sonundaki bu satırı, aşağıdaki 2 satır ile değiştirin ve dosyayı kaydedip çıkın.
log4j_arg=”-Dlog4j2.formatMsgNoLookups=true”
exec $java_start_bin $jvm_dynargs $log4j_arg $security_dynargs $original_args
3.2. Eğer vcenter sunucunuz aşağıdaki versiyonlardan biri ise, bu başlık altındakileri uygulayınız.
vCenter 7.0 GA, 7.0.0a, 7.0.0b, 7.0.0c, 7.0.0d
vCenter 7.0 Update 1, U1a, U1c, U1d
Orjinal içerik
exec $java_start_bin $jvm_dynargs “$@”
yazılması gereken,
log4j_arg=”-Dlog4j2.formatMsgNoLookups=true”
exec $java_start_bin $jvm_dynargs $log4j_arg “$@”
Uygun versiyona göre yaptığınız değişiklikler sonrası, vcenter servislerini restart ediyoruz.
4. vCenter Service restart işlemini yapıyoruz.
service-control –stop –all
service-control –start –all
NOT: Servisler başlamazsa, aşağıdaki komutlarla dosya sahipliklerinin ve izinlerinin doğru şekilde ayarlanmasını sağlayınız.
chown root:cis /usr/lib/vmware-vmon/java-wrapper-vmon
chmod 754 /usr/lib/vmware-vmon/java-wrapper-vmon
Update Manager Service işlemleri
1. start.ini dosyasının bir yedeğini oluşturuyoruz.
cp -rfp /usr/lib/vmware-updatemgr/bin/jetty/start.ini /usr/lib/vmware-updatemgr/bin/jetty/start.ini.bak
2. start.ini dosyasını, aşağıdaki komut ile düzenliyoruz.
vi /usr/lib/vmware-updatemgr/bin/jetty/start.ini
3. Dosyanın sonuna aşağıdaki satırı ekleyin ve kaydedip çıkış yapın.
-Dlog4j2.formatMsgNoLookups=true
4. Update Manager Service restart işlemi yapıyoruz.
service-control –restart vmware-updatemgr
Analytics Service işlemleri
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. class devre dışı bırakmak için zip komutunu çalıştırı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 restart işlemini yapıyoruz.
service-control –restart vmware-analytics
DBCC Utility işlemleri
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. class devre dışı bırakmak için zip komutunu çalıştırıyoruz.
zip -q -d /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
İşlem sonrası DBCC servisini yeniden başlatmaya gerek yoktur.
NOT: Bu komut “zip error: Nothing to do!” hatasıyla bitebilir. Bu durumda değişiklik yapmaya gerek yoktur. Doğrulama bölümüne geçerek devam edebilirsiniz.
Değişikliklerin kontrolleri ve doğrulanması
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ı izleyeceğiz.
1. vMon hizmetlerinin yeni -Dlog4j2.formatMsgNoLookps=true parametresiyle başlatılıp başlatılmadığını doğrulayalım ve kontrol edelim.
ps auxww | grep formatMsgNoLookups
Çalışan process’lerin -Dlog4j2.formatMsgNoLookps=true içerip içermediğini kontrol edin.
2. Update manager için yapılan değişikliklerin, aşağıdaki iki komutun çıktısında “System Properties” altında aşağıdaki gibi gösterildiğini doğrulayalım.
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şikliklerinin kontrolünü sağlıyoruz.
grep -i jndilookup /usr/lib/vmware/common-jars/log4j-core-2.8.2.jar | wc -l
0 değeri döndürülüyor olmalıdır.
4. DBCC Yardımcı Programı değişikliklerinin kontrolünü sağlayalım.
grep -i jndilookup /usr/lib/vmware-dbcc/lib/log4j-core-2.8.2.jar | wc -l
0 değeri döndürülüyor olmalıdır.
Kontrol adımlarımız da bu adımlardan ibaret. Yaptığımız değişiklikler uygulanmış ve herhangi bir sorun görünmemekte. İlgili makale linkini tekrar paylaşıyorum. vCenter versiyonunuz daha düşük ise, bu makaledeki diğer versiyonlarla ilgili başlıkları kullanabilirsiniz. https://kb.vmware.com/s/article/87081?lang=en_US
Yararlı olması dileğiyle.
Yusuf İşleyen