Hetzner ve Linode’da Jabber.ru şifreli trafiğinin araya girilerek yakalandığına dair bulgular keşfedildi
(notes.valdikss.org.ru)- Rus XMPP hizmeti jabber.ru/xmpp.ru’nun Hetzner dedicated sunucusu ve Linode VPS’lerinde, 5222 numaralı porttaki XMPP STARTTLS bağlantılarının şeffaf bir MiTM proxy ile araya girilerek yakalandığına dair bulgular doğrulandı
- Saldırgan, Let’s Encrypt üzerinden birden fazla TLS sertifikası alarak şifreli bağlantıyı arada sonlandırdı; Hetzner’daki jabber.ru 5222 portunun süresi dolmuş bir sertifika sunmasıyla sorun ortaya çıktı
- Sunucu ihlali ya da aynı ağ segmentinde ARP spoofing izine rastlanmadı; Linode instance’ı ise normal VM’lerden farklı rota ve gateway MAC’i gösterdiği için hosting ağı yeniden yapılandırması olasılığı güçlendi
- MiTM en az 21 Temmuz 2023’ten 19 Ekim’e kadar doğrulandı; 18 Nisan 2023’ten beri sürmüş olma ihtimali de var. 5222 portu bağlantılarının %100’ü etkilendi, 5223 portu hariç kaldı
- Bu dönem içindeki jabber.ru/xmpp.ru iletişimleri ihlal edilmiş kabul edilmeli; OMEMO, OTR, PGP gibi uçtan uca şifreleme de yalnızca iki taraf anahtarları doğrulamışsa koruma sağlar
Süresi dolmuş sertifikayla ortaya çıkan araya girme
jabber.ru, 2000’de başlamış bir Rus XMPP hizmetidir vexmpp.ruolarak da bilinir- 16 Ekim 2023’te hizmete bağlanırken “Certificate has expired” mesajı göründü, ancak sunucuda kurulu sertifikaların tamamı günceldi
- Anomali yalnızca XMPP STARTTLS için kullanılan 5222 numaralı portta görüldü; XMPP TLS için kullanılan 5223 numaralı port gibi diğer portlarda gözlenmedi
- Etkilenen sunucular Almanya’daki bir Hetzner dedicated sunucusu ve iki Linode sanal sunucusuydu
- 5222 portu trafiğinde, sunucunun istemcinin özgün ClientHello’sunu değil değiştirilmiş bir ClientHello aldığını gösteren bir durum gözlendi
Sunucu içi ihlal incelemesinin sonuçları
- İncelemenin odağı, sunucunun hacklenmiş olma ihtimali ve yerel ağ spoofing ihtimaliydi
- Sunucu tarafında şu kalemler kontrol edildi ancak olağandışı bir bulguya rastlanmadı
- Logların geneli
- Çalıştırılabilir dosyalar ve kütüphanelerin değişiklik zamanları
- Çalışan süreçler, bellek haritaları, dangling file descriptor’lar
- Statik derlenmiş
busyboxkullanılarak kullanıcı alanındaLD_PRELOADhijacking kütüphanesi varlığı - LiME ile kernel belleği dump edilip volatility ile analiz edilerek kernel düzeyinde hijacking modülü olup olmadığı
- Hetzner dedicated sunucusunun kernel loglarında, istisnai olarak yalnızca 18 Temmuz 2023’te fiziksel ağ bağlantısının 19 saniye boyunca koptuğuna dair kayıt bulundu
- Linode sunucuları yalnızca Hetzner sunucusuna alternatif rota tünelleri için kullanılıyordu ve SSH, NTP gibi temel servisler dışında bir şey çalıştırmıyordu
- Hetzner↔Linode tüneli içinde Hetzner sunucusunun normal ServerHello’su görülüyordu; ancak Linode ağ arayüzünden istemciye gönderilirken değişiyordu
- Aynı tür şifreli bağlantı araya girme işlemi hem Hetzner hem Linode tarafında gerçekleşmişti
Linode ağında görülen anormallikler
- Ağ açısından şu kalemler denetlendi, ancak sunucuların çevresindeki ağda hijacking izine rastlanmadı
- Gateway MAC adresinde ARP spoofing olup olmadığı
- L2 segmentinde tek bir IP’nin ARP isteklerine birden çok kez yanıt verip vermediği
- ICMP redirect vb. ile enjekte edilmiş anormal routing kuralları
- Netfilter kuralları
- IPsec gibi tespiti kolay olmayan tünellerin varlığı
- Etkilenen Linode makineleri aynı ağ segmentindeki komşu IP’leri ARP ile bulamıyor veya ping’leyemiyordu; ancak dış ağlardan bakıldığında bu komşu IP’ler normal çalışıyordu
- Etkilenmeyen üçüncü taraf bir Linode VM, komşu host’ları ping’leyebiliyor ve Cisco Systems router’a bağlı görünüyordu
- Buna karşılık etkilenen VPS, üreticisi tanımlanamayan MAC adresine sahip bir gateway’e bağlıydı
- Bu fark nedeniyle etkilenen Linode VM’in normal Linode instance’larından farklı bir ağ yapılandırmasında olduğu ya da ayrı bir VLAN’da izole edildiği ihtimali güçlendi
Sahte sertifikalar ve Certificate Transparency izleri
- crt.sh certificate transparency database üzerinde, jabber.ru sunucularının almadığı rogue certificates bulundu
- Normal XMPP hizmetinde iki tür sertifika kullanılıyordu
xmpp.ru, *.xmpp.rujabber.ru, *.jabber.ru
- Kötü amaçlı alınan sertifikalar, normal sertifikalardan yapı olarak biraz farklıydı
- Wildcard Subject Alternative Name eksikti veya
jabber.ru, xmpp.rutek bir sertifikada birleştirilerek alınmıştı
xmpp.rualan adına işaret eden Linode tarafındaki MiTM yapılandırması kısmen hatalıydı- Asıl sunucu, istenen XMPP alan adına göre hem
jabber.ruhemxmpp.rusertifikalarını sunacak şekilde yapılandırılmıştı - MiTM tarafı yalnızca
xmpp.rusertifikasını sunuyordu
- Asıl sunucu, istenen XMPP alan adına göre hem
- 18 Temmuz 2023’teki sertifika alınma zamanı, Hetzner sunucusunun ağ bağlantısının birkaç saniyeliğine koptuğu zamanla neredeyse aynıydı
- Harici ağ tarayıcısı, Linode sunucusunun en az 21 Temmuz 2023’ten itibaren 5222 portunda
04:b7:85…sertifikasını sunduğunu doğruladı - Söz konusu tarayıcı Hetzner aralığını işlememişti
5222 portunun önündeki cihaz ve rota farkı
- Linode VPS hedeflenerek dışarıdan ek ağ testleri yapıldı
- Aynı Linode segmentindeki komşu host’lara dizüstü bilgisayarın internet bağlantısından hop 13’te ulaşılabiliyordu
dawn.jabber.ruLinode sunucusunun araya girilmiş 5222 portuna da hop 13’te ulaşılabiliyordu- Ancak aynı sunucunun SSH portu 22 gibi araya girilmemiş portlarına, ek bir özel hop üzerinden geçilerek yalnızca hop 14’te ulaşılabiliyordu
- Bu sonuç, Linode VM’in IP adresinin ek bir cihazın arkasına yerleştirildiği; bu cihazın TCP 5222 portunu doğrudan işlediği ve diğer portları gerçek hedefe yönlendirdiği anlamına geliyor
- VPS içinden source port 5222 ile yeni bağlantı oluşturulamıyordu
- Router, bu source porttan çıkan paketlere yanıt vermiyordu
- TTL=0 veya TTL=1 outgoing packet’lar için ICMP error ya da Time-to-Live Exceeded da göndermiyordu
STARTTLS sonlandırma yöntemi ve tespit parmak izi
- testssl.sh ile yapılan incelemede, araya giren proxy’nin hem Linode
xmpp.ruhem de Hetznerjabber.rutarafında anonymous ciphers’a izin verdiği görüldü - Bu nadir bir yanlış yapılandırmadır ve XMPP MiTM tespit parmak izi olarak kullanılabilir
- Genel SSL/TLS kütüphaneleri çoğunlukla anonymous cipher desteği olmadan derlenir; yapılandırma dosyasında açıkça izin verilse bile servisi bunları kullanacak şekilde yapılandırmak çoğu zaman zordur
- Asıl sunucuda anonymous cipher yapılandırılmamıştı
- Aynı
testssl.shkomutuyla yaklaşık 20 popüler XMPP hizmeti test edildi, ancak Anonymous NULL Ciphers desteği gibi anormal bir belirti bulunmadı
Doğrulanan sonuçlar ve kullanıcı etkisi
- Saldırgan, 18 Nisan 2023’ten itibaren jabber.ru ve xmpp.ru alan adları için Let’s Encrypt üzerinden birden fazla SSL/TLS sertifikası aldı
- jabber.ru/xmpp.ru istemci XMPP trafiğini çözmek için yapılan Man-in-the-Middle saldırısı en az 21 Temmuz 2023’ten 19 Ekim’e kadar doğrulandı
- 18 Nisan 2023’ten itibaren başlamış olma ihtimali var, ancak doğrulanmış değil
- Etki kapsamı XMPP STARTTLS 5222 portu bağlantılarının %100’ü; 5223 portu buna dahil değil
- Saldırgan TLS sertifikasını yenilemede başarısız oldu ve Hetzner’daki jabber.ru 5222 portunda MiTM proxy süresi dolmuş sertifika sunmaya başladı
- MiTM saldırısı, 18 Ekim 2023’teki inceleme ve ağ testleri ile Hetzner·Linode destek taleplerinin gönderilmesinden kısa süre sonra durdu
- Ancak en az bir Linode sunucusunda ek routing hop biçiminde pasif dinleme devam ediyordu
- Sunucunun hacklendiğine dair iz yoktu; Hetzner ve Linode ağlarının, XMPP hizmeti IP adreslerini hedef alacak şekilde bu saldırı için yeniden yapılandırıldığı görülüyor
- Bu dönem içindeki jabber.ru/xmpp.ru iletişimleri ihlal edilmiş kabul edilmeli
- Saldırgan, hesap parolasını bilmeden de işlemler kimliği doğrulanmış bir hesaptan yapılmış gibi davranabiliyordu
- Hesap roster’ını indirebilir, şifrelenmemiş sunucu tarafı tüm mesaj geçmişine erişebilir, yeni mesaj gönderebilir ve gerçek zamanlı mesajları değiştirebilirdi
- OMEMO, OTR, PGP gibi uçtan uca şifreli iletişimler, yalnızca iki taraf şifreleme anahtarlarını doğrulamışsa araya girmeye karşı korunur
- Kullanıcılar PEP depolarında yeni onaylanmamış OMEMO·PGP anahtarı olup olmadığını kontrol etmeli ve parolalarını değiştirmelidir
Operatörlerin alabileceği önlemler ve izleme
- Yeni sertifika alımları Certificate Transparency’ye kaydedildiğinden Certificate Transparency izleme kurulabilir
- Örnek: Cert Spotter, GitHub kaynağı
- RFC 8657 kapsamındaki CAA Record Extensions for Account URI and ACME Method Binding kullanılarak sertifika alma yöntemi ve sertifika alabilecek hesap tanımlayıcıları sınırlandırılabilir
- Tüm hizmetlerin SSL/TLS sertifika değişiklikleri harici bir servisle izlenebilir
- Varsayılan gateway’in MAC adresi değişiklikleri izlenebilir
- XMPP’de channel binding, araya giren taraf geçerli bir sertifika sunsa bile MiTM’i tespit edebilir
- Hem istemci hem sunucu SCRAM PLUS kimlik doğrulama mekanizmasını desteklemelidir
- Saldırı sırasında jabber.ru’da etkin değildi
- ACME geliştiricisi Hugo Landau’nun ek tavsiyeleri More recommendations from ACME developer Hugo Landau sayfasında derlenmiştir
Hetzner ve Linode’un yanıtları
- 20 Ekim 2023 itibarıyla Hetzner ve Linode’dan yeterli yanıt alınamamıştı
- 3 Kasım 2023 güncellemesinde de iki şirketin bu olaya uygun bir yanıt vermediği belirtildi
- Hetzner, dedicated root sunucuları ve Cloud sunucuları için yalnızca donanım, ağ erişimi ve gerekli altyapıyı sağladığını, ek bir çözüm sunamayacağını belirtti
- Linode, logları aldığını ancak hizmeti etkileyen yasa dışı bir faaliyet gözlemlemediğini söyleyerek ticket’ı kapattı
- Operasyon tarafı, bunun Alman polisinin talebiyle yapılan yasal dinleme olduğu ve Hetzner ile Linode’un yapılandırmayı zorunlu olarak uyguladığı görüşüne daha fazla ağırlık veriyor
- Diğer bir olasılık ise Hetzner ve Linode’un her ikisinin iç ağlarına jabber.ru’yu özel olarak hedefleyen bir sızma gerçekleşmiş olması; ancak bu çok daha az inandırıcı, tamamen imkânsız olmayan bir senaryo olarak kalıyor
1 yorum
Hacker News yorumları
Rusya’daki siber suç soruşturmalarıyla bağlantılı olma ihtimali çok yüksek görünüyor. Krebs’i okuduysanız ya da daha yeraltı Rus forumlarına baktıysanız xmpp.ru size tanıdık gelecektir; gerçekten de böyle bir bağlam var.
Operatöre bir şey yıkmaya çalışmıyorum; anonim bir hizmet işletince işin doğası böyle bir hâl alıyor demek istiyorum.
https://ddanchev.blogspot.com/2021/03/exposing-currently-act...
https://ddanchev.blogspot.com/2019/07/profiling-currently-ac...
https://blog.talosintelligence.com/picking-apart-remcos/
https://flashpoint.io/wp-content/uploads/Plea-Agreement-USA-...
Yazının kendisi gerçekten ilginç ve herkesin sertifika şeffaflığı izleme hizmetlerini kullanması gerektiğine dair pratik bir örnek gibi görünüyor.
Önerilen azaltma önlemlerinin çoğuna katılıyorum. Yüksek riskli bir hedefseniz, güvenilir sertifika otoritelerine dayanmayan ek bir kimlik doğrulama katmanı bindirmeyi de düşünmeye değer: Tor onion services, SSH, WireGuard gibi.
Verilen tüm SSL/TLS sertifikalarının sertifika şeffaflığı kapsamında olduğuna katılıyorum; crt.sh’nin RSS akışı da var.
CAA kullanmak genel olarak iyi bir fikir, ancak bu durumda işe yarayıp yaramayacağından emin değilim. Çünkü saldırgan CAA’da izin verilen tam sertifika yapılandırmasını isteyebilir; belirli doğrulama yöntemleri daha sıkı kısıtlanabilirse yardımcı olabilir.
Tüm hizmetlerin SSL/TLS sertifika değişikliklerinin harici bir hizmetle izlenmesi gerektiğine de katılıyorum. Yüksek riskli hedefler hangi sertifikanın geçerli olduğunu her zaman bilmeli ve bunu kontrol etmeli.
Varsayılan ağ geçidinin MAC adresi değişikliklerini izleme yöntemine gelince; daha sofistike bir saldırı MAC adresini aynı tutabilir.
XMPP’deki “channel binding”in, geçerli bir sertifika sunan ortadaki adam saldırılarını da tespit edebildiğini ilk kez öğrendim.
Elbette ad sunucusunun DNSSEC ile korunduğu varsayımıyla. Aksi hâlde sertifika otoritesi sorgularken DNS isteği de ele geçirilebilir.
Güvenlik notlarının tamamı için RFC 8657’ye bakabilirsiniz. Bu RFC, normal RFC’lere göre daha okunabilir olacak şekilde tasarlandı.
Arka plan açıklaması içeren blog yazım: https://www.devever.net/~hl/acme-caa-live
Gerçek bir ortadaki adam saldırısını kusursuz şekilde yapıp sertifika yenilemeyi unutmuşlarsa, bu oldukça Alman işi bir durum :-)
Ya da birileri emri fazlasıyla harfiyen yerine getirmiş olabilir. Sertifikayı kurma emri vardı ama otomatik yenileme gereksinimi yoktu :)
Arşiv: https://archive.ph/C0jYJ
Teoriler ilginç ve doğruysa sertifikayı nasıl aldıklarını açıklıyor. Buradan çıkarılacak ders, birden fazla sağlayıcıda birden fazla probe bulundurmak, tüm TLS parmak izlerini kontrol etmek ve bilinmeyen bir parmak izi ortaya çıktığında uyarı alıp sertifika şeffaflığı loglarının varlığını da kontrol etmek olabilir.
openssl s_client -servername news.ycombinator.com -connect news.ycombinator.com:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdinSHA1 Fingerprint=7E:49:BA:40:86:87:B3:39:66:93:94:9E:9C:45:71:85:3C:8D:95:16Verilen tüm SSL/TLS sertifikaları sertifika şeffaflığı kapsamındadır; bu nedenle Cert Spotter gibi bir sertifika şeffaflığı izleme aracı kurup alan adınız için yeni sertifika verildiğinde e-posta uyarısı almak iyi olur.
RFC 8657’deki CAA kayıt uzantıları, yani Account URI ve ACME Method Binding ile doğrulama yöntemini kısıtlayıp yeni sertifika verebilecek tam hesap tanımlayıcısını belirtirseniz, başka sertifika otoriteleri, ACME hesapları veya doğrulama yöntemleri üzerinden alan adınız için sertifika verilmesini engelleyebilirsiniz.
Harici bir hizmetle tüm hizmetlerin SSL/TLS sertifika değişiklikleri izlenmeli, varsayılan ağ geçidinin MAC adresi değişiklikleri de takip edilmelidir.
MAC adresinin yerel olarak yönetilen bir adres olmaması biraz merakımı çekti. Birinin bu adres aralığını özellikle seçmiş olma ihtimali var gibi görünüyordu
https://www.google.com/search?q=%2290%253Ade%253A01%22+linod...
"90:de:01" linodeve"90:de:00" linodediye aratınca, bu bloktaki adreslerin yakın zamanda başka Linode VM’lerine de atanmış olduğu görülüyor. Şu anda doğrudan karşılaştırabileceğim bir Linode VM’im yok ama trafik Linode altyapısındaki başka bir VM’e yönlendirilmiş gibi görünüyorDayanağı olmayan bir tahmin ama Jabber’ın hedef alınmasının, darknet pazarlarında uyuşturucu ticareti veya başka yasa dışı faaliyetler için yaygın biçimde kullanılması yüzünden olduğunu düşünüyorum
Bu, yalnızca “şifreli, o yüzden sorun yok” varsayımına güvenmemek gerektiğini gösteriyor. En azından mesajlar PGP ile şifrelenmeli
PGP’nin kuantum bilgisayarlarla kırılıp kırılamayacağını, gelecekte bu tür saldırılara karşı güçlendirmeler gelip gelmeyeceğini de merak ediyorum. Mesajlar şifreli biçimde toplu olarak toplandıysa, sonunda çözülmeleri sadece zaman meselesi olabilir
Ayrıca ele geçirilebilen neredeyse tüm web trafiğinde buna benzer şeyler oluyor gibi görünüyor. Bkz. https://en.wikipedia.org/wiki/Utah_Data_Center
Elbette internette anonim bir uyuşturucu satıcısıyla güvenli biçimde anahtar değiş tokuşu yapmak hataya çok açık
https://therecord.media/genesis-market-takedown-cybercrime
PGP’nin çok sorunu var ve ondan kaçınılmasını öneren çok kişi bulunuyor. Örn: https://www.latacora.com/blog/2019/07/16/the-pgp-problem/ / https://news.ycombinator.com/item?id=20455780
OMEMO, OTR, PGP gibi uçtan uca şifreli iletişimler, yalnızca iki taraf da şifreleme anahtarlarını doğruladığında araya girilmesine karşı koruma sağlar. Saldırganın kullanılan her uçtan uca şifreleme yöntemi için ayrı bir ortadaki adam saldırısı kurması gerekir
Gördüğüm bazı XMPP istemcileri, belirli bir şifreleme kimliğinin açıkça doğrulandığını göstermediğiniz sürece kullanılmasına izin vermiyordu
Yine de iyi bir hatırlatma. Akıl almaz uzunlukta bir sayıyı ya da buna denk bir değeri görüp işlem yapmadıysanız, uçtan uca şifrelemenin gerçekten kurulduğunu varsaymak zor
Bu hikâyede anlamadığım bir nokta var. Bu yasal dinleme ise Hetzner ve Linode neden ayrı LE sertifikası ve anahtarıyla ortadaki adam dinlemesi kurmuş olsun ki?
TLS özel anahtarını doğrudan VPS’in RAM’inden veya depolamasından çıkarabilirlerdi. Fiziksel adanmış sunucu olsa bile, haber vermeden yeniden başlattıktan sonra RAM dökümü alıp özel anahtarı çıkarabilirler
Özel anahtar çıkarma CT loglarında görünmez; bu yüzden çok daha gizlidir ve pratikte tespit edilmesi zordur
Bir başka olasılık da bir tarafın “arama”, diğer tarafın “dinleme” sayılması ve onay seviyelerinin farklı olması olabilir. Yine de Almanya’daki mevcut hukuki durumu iyi bilmiyorum
Kolluk kuvvetleri için fazla standart bir yöntem gibi geliyor; bu tür ekipmanların hazır ürün olarak bulunması muhtemel
Bir kullanıcı bunu 3 gün önce Reddit’te zaten paylaşmıştı: https://www.reddit.com/r/hetzner/comments/17ankoh/does_hetzn...
Hetzner/Linode’dan bu durum hakkında yorum yapmalarını hukuken talep etmenin bir yolu var mı merak ediyorum. Dinlemenin arkasında büyük olasılıkla bir devlet kurumu veya polis var gibi görünüyor
Tersine, yasal dinleme değilse Hetzner’ın buna izin vermiş olacağını sanmıyorum. Çünkü bu da hukuka aykırı olur