18 yıl önce ortaya çıkan ve “0.0.0.0 Day” adı verilen bir güvenlik açığı, kötü amaçlı web sitelerinin Google Chrome, Mozilla Firefox ve Apple Safari’deki güvenliği aşmasına ve yerel ağdaki hizmetlerle etkileşime girmesine olanak tanıyor.
Ancak bunun yalnızca Linux ve macOS cihazlarını etkilediğini, Windows’ta çalışmadığını belirtmek gerekir.
Etkilenen cihazlarda tehdit aktörleri, ayarları uzaktan değiştirmek, korunan bilgilere yetkisiz erişim sağlamak ve bazı durumlarda uzaktan kod yürütmek için bu açığı kullanabilir.
2008 yılında, yani 18 yıl önce bildirilmesine rağmen bu sorun Chrome, Firefox ve Safari’de hala çözülebilmiş değil, ancak üçü de sorunu kabul etmiş ve bir düzeltme üzerinde çalışıyor.
Oligo Security araştırmacıları, söz konusu riskin yalnızca saldırıları teorik olarak mümkün kılmakla kalmayıp, aynı zamanda çok sayıda tehdit aktörünün saldırı zincirlerinin bir parçası olarak bu güvenlik açığından faydalandığını gözlemlediklerini bildiriyor.
0.0.0.0 Gün kusuru
0.0.0.0 Day güvenlik açığı, farklı tarayıcılar arasında tutarsız güvenlik mekanizmalarından ve genel web sitelerinin yerel ağ servisleriyle “joker” IP adresi 0.0.0.0’ı kullanarak iletişim kurmasına olanak tanıyan standardizasyonun eksikliğinden kaynaklanmaktadır.
Genellikle 0.0.0.0, yerel makinedeki tüm IP adreslerini veya ana bilgisayardaki tüm ağ arayüzlerini temsil eder. DHCP isteklerinde yer tutucu adres olarak kullanılabilir veya yerel ağda kullanıldığında localhost (127.0.0.1) olarak yorumlanabilir.
Kötü amaçlı web siteleri, kullanıcının yerel makinesinde çalışan bir hizmeti hedef alarak 0.0.0.0 adresine HTTP istekleri gönderebilir ve tutarlı bir güvenliğin olmaması nedeniyle bu istekler genellikle hizmete yönlendirilir ve işlenir.
Oligo, Çapraz Kaynak Paylaşımı (CORS) ve Özel Ağ Erişimi (PNA) gibi mevcut koruma mekanizmalarının bu riskli faaliyeti durdurmada başarısız olduğunu açıklıyor.
Varsayılan olarak, web tarayıcıları bir web sitesinin üçüncü taraf bir web sitesine istekte bulunmasını ve döndürülen bilgileri kullanmasını engeller. Bu, kötü amaçlı web sitelerinin bir ziyaretçinin web tarayıcısındaki, çevrimiçi bankacılık portalı, e-posta sunucuları veya başka bir hassas site gibi kimlik doğrulaması yapılabilecek diğer URL’lere bağlanmasını önlemek için yapıldı.
Web tarayıcıları, web sitelerinin açıkça izin verildiği takdirde başka bir sitedeki verilere erişebilmelerini sağlamak için Kaynaklar Arası Paylaşım (CORS) özelliğini tanıttı.
“CORS da harika ve interneti çok daha güvenli hale getiriyor. CORS yanıtların saldırgana ulaşmasını engelliyor, bu sayede saldırganlar geçersiz isteklerde bulunurken verileri okuyamıyor. Bir istek gönderirken, CORS başlıkları yanıtta mevcut değilse, saldırganın Javascript kodu yanıtın içeriğini okuyamaz.
CORS, yanıtı yalnızca JavaScript’e yayılmadan önce durdurur, ancak opak istekler “no-cors” modunda gönderilebilir ve sunucuya başarılı bir şekilde ulaşabilir; eğer yanıtları önemsemiyorsak.
❖ Oligo
Örneğin, bir tehdit aktörünün amacı yalnızca bir ayarı değiştirmek veya bir görevi yürütmek için kullanılabilecek yerel bir cihazda çalışan bir HTTP uç noktasına ulaşmaksa, o zaman çıktı gereksizdir.
Oligo, Özel Ağ Erişimi (PNA) güvenlik özelliğinin, yerel veya özel olarak kabul edilen IP adreslerine bağlanmaya çalışan tüm istekleri engelleyerek bunu COR’lardan biraz farklı bir şekilde yaptığını açıklıyor.
Ancak Oligo’nun araştırması, özel 0.0.0.0 IP adresinin, örneğin 127.0.0.1 gibi kısıtlı PNA adresleri listesinde yer almadığını, dolayısıyla uygulamanın zayıf olduğunu ortaya koydu.
Dolayısıyla, bu özel adrese “no-cors” modunda bir istek yapılırsa, PNA’yı atlayıp yine de 127.0.0.1 üzerinde çalışan bir web sunucusu URL’sine bağlanabilir.
BleepingComputer, Linux’ta Firefox tarayıcısı ile yapılan bir testte söz konusu açığın çalıştığını doğruladı.
Aktif olarak sömürüldü
Ne yazık ki, risk sadece teorik değil. Oligo Security, “0.0.0.0 Day” güvenlik açığının vahşi ortamda istismar edildiği birkaç vaka tespit etti.
İlk vaka, aynı araştırmacıların geçen Mart ayında belgelediği ShadowRay kampanyasıdır. Bu kampanya, geliştiricilerin makinelerinde yerel olarak çalışan AI iş yüklerini (Ray kümeleri) hedef alır.
Saldırı, kurbanın e-postayla gönderilen veya JavaScript’in ‘http://0′ adresine bir HTTP isteği göndermesini tetikleyen kötü amaçlı bir sitede bulunan bir bağlantıya tıklamasıyla başlar.[.]0[.]0[.]0:8265’, genellikle Ray tarafından kullanılır.
Bu istekler yerel Ray kümesine ulaşır ve keyfi kod yürütme, ters kabuklar ve yapılandırma değişiklikleri senaryolarının önünü açar.
Başka bir örnek ise Wiz’in geçen ay keşfettiği Selenium Grid’i hedef alan bir kampanyadır. Bu kampanyada saldırganlar, ‘http://0’a istekler göndermek için genel bir alanda JavaScript kullanırlar.[.]0[.]0[.]0:4444.’
Bu istekler Selenium Grid sunucularına yönlendirilir ve saldırganların kod yürütmesine veya ağ keşfi yapmasına olanak tanır.
Son olarak Oligo tarafından Ekim 2023’te bildirilen “ShellTorch” güvenlik açığında TorchServe web panelinin localhost yerine varsayılan olarak 0.0.0.0 IP adresine bağlandığı ve bu sayede kötü amaçlı isteklere açık hale geldiği ortaya çıktı.
Tarayıcı geliştiricilerinin yanıtları
Oligo, geçen aydan bu yana 0.0.0.0 ile iletişim kuran genel web sitesi sayısında ani bir artış olduğunu ve şu anda yaklaşık 100.000’e ulaştığını bildirdi.
Oligo’nun bu faaliyeti ifşa etmesinin ardından web tarayıcısı geliştiricileri nihayet harekete geçmeye başladı:
Google ChromeDünyanın en popüler web tarayıcısı , 128. sürümünden (yakında çıkacak) 133. sürüme kadar kademeli bir dağıtımla 0.0.0.0 sürümüne erişimi engellemeye karar verdi.
Mozilla Firefox PNA’yı uygulamaz, ancak yüksek bir geliştirme önceliğidir. PNA uygulanana kadar geçici bir düzeltme harekete geçirildi, ancak herhangi bir dağıtım tarihi verilmedi.
Elma ek IP kontrolleri uyguladı Safari WebKit’teki değişiklikler ve macOS Sequoia ile birlikte sunulacak olan 18. sürümde (yakında çıkacak) 0.0.0.0’a erişimin engellenmesi yoluyla.
Tarayıcı düzeltmeleri gelene kadar Oligo, uygulama geliştiricilerinin aşağıdaki güvenlik önlemlerini uygulamasını öneriyor:
- PNA başlıklarını uygulayın.
- DNS yeniden bağlama saldırılarına karşı koruma sağlamak için HOST başlıklarını doğrulayın.
- Localhost’a güvenmeyin; yerel olarak bile yetkilendirme ekleyin.
- Mümkün olduğunca HTTPS kullanın.
- Yerel uygulamalar için bile CSRF belirteçlerini uygulayın.
En önemlisi, geliştiriciler düzeltmeler yayınlanana kadar kötü amaçlı web sitelerinin HTTP isteklerini dahili IP adreslerine yönlendirmesinin hala mümkün olduğunu unutmamalıdır. Bu nedenle, uygulamalarını geliştirirken bu güvenlik hususunu akıllarında tutmalıdırlar.