GhostCat:
Yeni Yüksek Riskli Güvenlik Açığı Apache Tomcat Çalışan Sunucuları Etkiliyor
Apache
Tomcat'in tüm sürümleri (9.x / 8.x / 7.x / 6.x) yeni bir kritik zaafiyet ortaya
çıktı. Web sunucunuz Apache Tomcat üzerinde çalışıyorsa, saldırganların sunucu
üzerinde yetkisiz bir şekilde kontrolü eline almasını önlemek için sunucu
uygulamasının en son sürümünü hemen yüklemelisiniz. Ayrıca internette bu
istismarın yer almasıyla herkesin erişebileceği savunmasız web sunucularını
hacklemesini kolaylaştırdı. 'Ghostcat' olarak adlandırılan ve CVE-2020-1938
olarak geçen istismar, kimliği doğrulanmamış saldırganların savunmasız bir web
sunucusundaki herhangi bir dosyanın içeriğini okumasına ve hassas yapılandırma
dosyaları veya kaynak kodu almasına, sunucu dosyaya izin veriyorsa rastgele kod
yürütmesine izin verebilir.
Güvenlik açığı, bir özelliğin yanlış işlenmesi
nedeniyle ortaya çıkan Apache Tomcat yazılımının AJP protokolünde yatmaktadır. Site,
kullanıcıların dosya yüklemesine izin veriyorsa, saldırgan önce sunucuya kötü
amaçlı JSP komut dosyası kodu içeren bir dosya yükleyebilir (yüklenen dosya
resim, düz metin dosyaları vb. herhangi bir dosya türünde olabilir) ve ardından
yüklenen dosya ile uzaktan kod yürütülmesine neden olabilecek Ghostcat'ten
yararlanılır. Apache JServ Protokolü (AJP) protokolü, Tomcat'in bir Apache web
sunucusuyla iletişim kurmasını sağlamak için temel olarak HTTP protokolünün
optimize edilmiş bir sürümüdür.
AJP protokolü varsayılan olarak
etkinleştirilmiş ve TCP bağlantı noktası 8009'da dinlese de, 0.0.0.0 IP
adresine bağlıdır ve ancak güvenilmeyen istemciler tarafından erişilebilir
olduğunda istismar edilebilir. Açık kaynaklı ve siber tehdit istihbarat
verileri için bir arama motoru olan 'onyphe' e göre, bir AJP Bağlayıcısı'nı
yazma sırasında internet üzerinden herkese açık hale getiren 170.000'den fazla
cihaz var.
Exploite ait
kaynak kodu: https://www.exploit-db.com/exploits/48143
Etkilenen
Sürümler
· Apache Tomcat 9.x <9.0.31
· Apache Tomcat 8.x <8.5.51
· Apache Tomcat 7.x <7.0.100
· Apache Tomcat 6.x
Apache Tomcat bu güvenlik açığını gidermek için
9.0.31, 8.5.51 ve 7.0.100 sürümleri yayınlandı.
Güvenlik açığını gidermek veya en aza indirmek
için yapılacak birkaç adım aşağıdaki gibidir:
Bu güvenlik açığını doğru bir şekilde gidermek
için, önce Tomcat AJP Connector hizmetinin sunucu ortamınızda kullanılıp
kullanılmadığını belirlemeniz gerekir. Eğer cluster veya reverse proxy
kullanılmıyorsa, AJP’nin kullanılmadığını anlayabilirsiniz. Aksi takdirde, cluster veya reverse sunucunun
Tomcat AJP connector hizmetiyle iletişim kurup kurmadığını tespit etmeniz
gerekli.
1. AJP
Bağlayıcı hizmeti kullanılmıyorsa:
(1) <CATALINA_BASE> /conf/server.xml
aşağıdaki satırı düzenleyin
<Connector port=”8009″ protocol=”AJP/1.3″
redirectPort=”8443″ />
(2) Yorum satırı hale getirin (veya silin):
<!–<Connector port=”8009″
protocol=”AJP/1.3″ redirectPort=”8443″ />–>
(3) Düzenlemeyi kaydedin ve ardından Tomcat’i
yeniden başlatın.
Yukarıdaki önlemlere ek olarak, güvenilmeyen
kaynakların Tomcat AJP Connector hizmet portuna erişmesini önlemek için firewallda
da gerekli erişim izinlerini düzenleyiniz.
2- AJP
Connector hizmeti kullanılıyorsa:
AJP Connector hizmeti kullanılıyorsa, Tomcat’i
9.0.31, 8.5.51 veya 7.0.100 sürümüne yükseltmenizi ve ardından AJP Connector
kimlik doğrulama bilgilerini ayarlamak için AJP Connector için “scret”
özelliğini yapılandırmanız öneriliyor.
<Connector port=”8009″ protocol=”AJP/1.3″
redirectPort=”8443″ address=”YOUR_TOMCAT_IP_ADDRESS”
secret=”YOUR_TOMCAT_AJP_SECRET” />
Yükseltme yapamıyorsanız, AJP Bağlayıcısı için
AJP protokolü kimlik doğrulama bilgilerini ayarlamak üzere “requiredSecret”
özniteliğini yapılandırabilirsiniz.
<Connector port=”8009″ protocol=”AJP/1.3″
redirectPort=”8443″ address=”YOUR_TOMCAT_IP_ADDRESS”
requiredSecret=”YOUR_TOMCAT_AJP_SECRET” />
(Yukarıdaki “YOUR_TOMCAT_AJP_SECRET” i kolayca
tahmin edilemeyen veya kırılamayan daha güvenli bir şifre ile değiştirmeyi
unutmayınız.)
Çözüm Önerisi
· Bu istismarı önlemek için Apache Tomcat'i en son
sürümüne güncellemek önerilmektedir.En son sürümler ayrıca diğer 2 düşük önem
düzeyli HTTP request smuggling sorununu (CVE-2020-1935 ve CVE-2019-17569)
giderir.
· Web yöneticilerinin yazılım güncellemelerini
mümkün olan en kısa zamanda uygulaması önemle tavsiye edilir ve güvenli olmayan
kanal üzerinden iletişim kurduğu ve güvenilir bir ağda kullanılması gerektiği
için AJP bağlantı noktasını güvenilmeyen istemcilere asla göstermemeleri
önerilir.
· Bununla birlikte, herhangi bir nedenle
etkilenen web sunucunuzu hemen yükseltemezseniz, AJP Bağlayıcısı'nı doğrudan
devre dışı bırakabilir veya dinleme adresini localhost olarak
değiştirebilirsiniz.
· AJP kullanmıyorsanız, server.xml dosyasındaki
8009 numaralı bağlantı noktasında AJP bağlantısını devre dışı bırakın. AJP'nin
gelecekte yanlışlıkla yeniden etkinleştirilmesi durumunda bağlantı noktasına
harici erişimi engellenmelidir.
· AJP kullanıyorsanız, yamalanmış AJP koduyla
Tomcat sürümünüzü yeni güncellenen sürümlerle güncelleyin.
· Yalnızca güvenilir ana bilgisayarlardan AJP
bağlantılarına izin veren firewall kuralları belirleyin.
Referanslar
0 yorum:
Yorum Gönder