Tüm dünyayı arkadaşına kötüye kullanım bildirimi göndermeye zorlayan IP spoofing saldırısı
(delroth.net)- Hetzner,
195.201.9.37adresinden SSH port taraması yapıldığına dair bir kötüye kullanım bildirimi iletti, ancak sunucunun içinde kötü amaçlı süreçler, dosya değişiklikleri veya anormal trafik olduğuna dair kanıt bulunmadı tcpdumpile görülen gerçek akışta, sunucu dışarıdaki22/tcpadresine bağlanmıyor; bunun yerine birçok internet ana makinesi sunucuya TCP RST geri gönderiyordu; bu durum backscatter'a yakındı- Temel neden, BCP38 filtrelemesi yapmayan ağlar üzerinden istenen kaynak IP adresiyle paket gönderilebilmesi; TCP·QUIC·TLS gibi gidiş-dönüş yanıt gerektiren protokollerde saldırgan yanıtları doğrudan göremez
- Aynı örüntü yazarın diğer iki Tor relay düğümünde de görüldü;
tor-relayse-posta listesi ve Tor Project issue kayıtlarında da benzer olaylar günler öncesinden raporlanmıştı ve bazı düğümler geçici olarak devre dışı kalmıştı - Saldırgan, kurbanın IP’sini kaynak adres olarak sahteleyip birçok SSH hedefine bağlantı denemesi gönderebilir; bunun sonucunda otomatik kötüye kullanım bildirimleri, engelleme listeleri ve hosting sağlayıcısı aksiyonları tetiklenebilir
Hetzner kötüye kullanım bildirimi ve sunucu incelemesi
- Hetzner,
195.201.9.37IP’si için bir AbuseInfo e-postası gönderdi- Bildirimi yapan:
abuse@watchdogcyberdefense.com - Kayıtlarda çeşitli
202.91.16x.xhedeflerinin22/tcpportuna gidenDENIEDgirdileri yer alıyordu
- Bildirimi yapan:
- İlk bakışta sunucu internete SSH bağlantıları göndermeye başlamış gibi görünüyordu; bu da normalde zararlı yazılım bulaşması şüphesi doğuracak bir durumdu
- 1-2 saatlik incelemede sunucu durumu normale çok yakındı
- Anormal süreç yok
- Dosya sisteminde değişiklik yok
- Hypervisor açısından anormal ağ trafiği yok
- Bu sunucuda birden fazla dağıtık ve federatif servis çalışıyordu
- Syncthing relay
- Mastodon instance
- Tor relay
- Matrix homeserver
- Tor relay bazı
22/tcprelay düğümlerine bağlanıyordu, ancak bunlar bildirideki ağlarla eşleşmiyordu; Matrix ve Mastodon loglarında, ayrıca Mastodon Sidekiq kuyruğunda da rastgele IP veya port isteklerinin izi yoktu
tcpdumpun gösterdiği gerçek paket akışı
- İlk olarak
dst port 22filtresiyle sunucudan dışarıya22/tcpyönünde giden trafiği doğrulamaya çalıştı - Filtre
not src host 195.201.9.37olarak değiştirildiğinde, çeşitli dış IP’lerin22/tcpportundan yazarın sunucusundaki geçici portlara gelen TCP RST paketleri görüldü - Yani gerçekte sunucu rastgele ana makinelerin
22/tcpportuna bağlantı göndermiyordu; bunun yerine rastgele internet ana makineleri sunucuya reset paketleri yolluyordu - Bu örüntü, kaynak IP sahteciliği nedeniyle yanıt paketlerinin sahte IP’ye dönmesiyle oluşan backscatter ile uyumluydu
Kaynak IP sahteciliği ve BCP38’deki boşluk
- İnternette hedef IP’nin doğru olması gerekir, ancak kaynak IP’si sahte olan paketleri birçok hedefe göndermek mümkündür
- BCP38, eş ağların yalnızca kendilerinden beklenen IP adreslerini kaynak olarak kullanmasına izin verilmesini öneren güncel en iyi uygulamadır
- Bu filtreleme, etkili olabilmesi için paket yolunun erken aşamasında uygulanmalıdır
- Büyük transit provider seviyesinde anlamlı filtreleme zordur; çünkü eş ağlar bu provider üzerinden tüm internet trafiğini taşımayı bekler
- BCP38 uygulamayan tek bir transit provider bulmak bile istenen kaynak IP ile paket göndermeye yeterlidir
- APNIC, 2023’te kaynak adres doğrulamanın neden hâlâ sorun olduğunu anlatan bir yazı yayımladı
- TCP, QUIC ve TLS ailesi protokoller gidiş-dönüş iletişim gerektirdiği için, kaynak IP sahte olduğunda saldırgan yanıtları göremez
- Bu yüzden normal port taraması sonuçlarını görmek için uygun değildir
- Yine de yansıma DDoS gibi bilinen kötüye kullanım biçimleri vardır
Bu sahtecilik neden zarara yol açıyor?
- En makul akış, birinin yazarın IP’sini kaynak adres olarak kullanıp birçok internet ana makinesinin
22/tcpportuna bağlantı denemeleri göndermesidir - Amaç sıradan açık port taraması olsaydı, sahteleyen taraf yanıtları göremeyeceği için bu mantıklı olmazdı
- Geçmişte Idle Scanning adlı bir teknik vardı, ancak bu daha az meşgul sunuculara ve öngörülebilir ağ yığını sayaçlarına dayanıyordu; onlarca yıldır pratik değerini yitirmiş durumda
- Trafik hacmi çok düşüktü ve süre çok uzundu; bu yüzden tarayıcı ayarında kaynak IP’nin yanlış girilmiş olması da ikna edici görünmüyor
- Asıl zarar kötüye kullanım bildirimi otomasyonu üzerinden oluşuyor
- Sahte bağlantı denemeleri honeypot veya izinsiz giriş tespit sistemi bulunan ağlara ulaşıyor
- Bazı sistemler otomatik olarak kötüye kullanım bildirimi gönderiyor
- Hosting sağlayıcıları, kurban sunucunun ele geçirilmiş veya kötü niyetli olduğunu sanabiliyor
Aynı örüntü diğer Tor relay düğümlerinde de tekrarlandı
- Yazar, kendi sunucusunun bir Tor relay olarak çalıştığını yeniden doğruladı
- Tor relay, Tor ağı içindeki bir düğümdür; exit node değilse genel internetle doğrudan iletişim kurmaz
- Relay, Tor ağına katılan düğümler arasında şifreli anonim trafiği taşır
- Bazı relay düğümleri Guard Node olarak çalışıp Tor ağına giriş noktası olabilir
- Farklı ülkelerde ve farklı ISP’lerde bulunan iki ek relay üzerinde de
tcpdumpçalıştırdı- Ev internet hattındaki relay
- Japonya’daki Linode VPS üzerindeki relay
- Her iki relay’de de dış
22/tcpportlarından relay IP’sine yönelen aynı sahte TCP yanıtı örüntüsü görüldü - Yazar,
tor-relayse-posta listesine yazdı; ayrıca Tor Project’te birkaç gün önceden aynı olayı inceleyen bir issue zaten vardı - Bu spoofing saldırısı, relay düğümlerinden önce başka tür düğümlerde başlamıştı ve daha büyük ölçekli sahte bağlantılar nedeniyle bazı düğümlerin geçici olarak devre dışı kaldığı örnekler olmuştu
Herkesin hedef olabileceği saldırı akışı
- Olası saldırı akışı şöyle
- Saldırgan BCP38 filtrelemesi olmayan bir ağa erişir
- Birçok rastgele internet ana makinesinin
22/tcpportuna TCP bağlantı isteği gönderir - Kaynak IP olarak kurbanın IP’sini sahteleyerek kullanır
- Hedef ana makineler veya güvenlik sistemleri, bağlantıyı kurbanın başlattığını sanıp kötüye kullanım bildirimi yollar
- Ölçek yeterince büyürse kurbanın IP’si çeşitli engelleme listelerine girer ve hosting sağlayıcısı sunucuyu askıya alabilir
- Bu saldırıda Tor’a özgü bir unsur yok
- Tek bir motivasyon sahibi saldırgan için uygulanması özellikle zor görünen bir yöntem değil
- Kurban, gerçek saldırgan değil; yalnızca sahte kaynak IP’nin sahibidir. Ancak otomatik kötüye kullanım bildirimleri ve hosting sağlayıcısının tepkisi nedeniyle operasyonel zarar görebilir
2024’te de süren internet işletim sorunu
- Sahte kaynak IP kullanımının 2024’te hâlâ sorun olması, internet işletimi açısından neredeyse bir başarısızlık sayılabilir
- Yalnızca BCP38 değil, RPKI de dağıtım açısından benzer sorunlar yaşadı; ancak büyük internet şirketleri doğrudan eş ağlara şart dayatmaya başlayınca yaygınlaşabildi
- Bu saldırı için sonraki adımlar net değil
- Zaten fiilen yaşanıyor
- Yazar bunun daha önce belgelenmiş bir saldırı olup olmadığını bilmiyor
- Sahte IP paketlerinin gerçek kaynağını sonradan izleyebilecek bir yöntem de bilmiyor
- Benzer kötüye kullanım bildirimleri alan operatörlerin, sunucunun fail değil kurban olabileceğini doğrulaması ve hosting sağlayıcısına bunu açıklayacak kanıt toplaması gerekiyor
1 yorum
Hacker News görüşleri
Bu tür sorunlarla uğraşmak gerçekten çok can sıkıcı. Kötüye kullanım bildirimine verilebilecek meşru yanıt olan “birisi benim IP’mi spoof etti, bunu ben yapmadım ve cihazlarım da ele geçirilmedi” sözü, kötü niyetli birinin öne süreceği bahaneyle tamamen aynı
Sonuçta, yazıda anlatıldığı gibi aslında hiç ilgilenmeyen bir tarafa yokluğun kanıtını sunmanız gerekiyor; bu da pratikte neredeyse imkânsız
Kolayca spoof edilebilen şeylere dair otomatik kötüye kullanım bildirimleri bildirimin kendisini meşru kılmaz, ama sunucumun normal çalıştığını ve ele geçirilmediğini hızlıca kontrol etmek için bir sebep olabilir
En azından kimlik ve yargı yetkisine dair dayanak, belki bir görüntülü arama bile gerekebilir. İnternette anonim şekilde “iyi biriyim” deyip buna inanılmasını istemek yeterli değil
Spoof edilmiş MAC adresleri, e-posta adresleri, ARP mesajları, Neighbor Discovery ve ortadaki adam TLS sertifikaları için de aynı durum geçerli
Buna rağmen bir şeylerin hâlâ çalışıyor olması bile şaşırtıcı
Kusursuz biçimde tasarlanıp işletilecek şekilde yapılmış olsaydı, muhtemelen aksine oldukça sık büyük arızalar yaşardı. Bir miktar kusuru tolere edebilmesi, internetin sağlamlığına ve kullanışlılığına büyük katkı yaptı
Bu, iyileştirme yapmayalım demek değil; daha çok mükemmeliyetçiliğin peşinden giderken her şeyi bozacak büyük hatalar yapmanın kolay olduğuna dair bir uyarı
Eskiden benzer bir yöntemle DrDoS yansıtma sunucularını tarardım. Hiçbir barındırma sağlayıcısı port tarama bildirimi almak istemez, bu yüzden taramanın kaynak adresini itibarlı ve masum bir bulut sağlayıcısının IP’si gibi gösterirseniz yansıtma sunucuları UDP yanıtlarını oraya gayet güzel gönderirdi
Bulut sağlayıcısı doğal olarak bir sürü bildirim alırdı, ama benim sunucumdan tarama yapılmadığını söylediğinizde sağlayıcı bunu doğrular ve hizmeti kapatmazdı. Spoof edilmiş tarama paketlerini gönderen sunucu tespit edilemediğinden, olağan kötüye kullanım bildirimleri sorununa takılmadan tüm interneti tekrar tekrar taramak mümkün olurdu
Bunun gerçekte ne kadar sık olduğunu bilmiyorum ama iletim sağlayıcılarıyla iş birliği yapıp atlamaları geriye doğru izlerseniz spoof edilmiş paketlerin kaynağını bulmak mümkün. Bir keresinde JPMorgan, Cogent ile birlikte çalışıp kendi IP adreslerine paket göndermemem gerektiğini bildirmişti. Bu arada Cogent, internetin Tier 1 sağlayıcıları arasında spoofing’e epey müsamahalı olanlardan biri
Bu yöntemin özellikle Tor hedef alınarak kullanıldığını ilk kez duyuyorum ve bu biraz sezgilere aykırı. Çünkü spoof paketleri gönderen tarafın Tor destekçisi olmasını beklersiniz. Muhtemelen sadece bir trol ve neyse ki Tor barındıran sağlayıcılar bu tür şeyleri çok da umursamayacaktır
Sadece bir trol olabilir ama Tor gözetim faaliyetlerine engel olduğu için, ona radyoaktif atık muamelesi yaptırmaya çalışan bir taraf da olabilir
Bu yeni bir şey değil. Yıllar önce çok basit bir güvenlik duvarı kuralı yazmıştım; hedef portu 22 olan ve SYN=1, ACK=0 taşıyan gelen TCP paketlerinde kaynak IP’yi bir günlüğüne engelliyordu
Sonra bazı site ve hizmetlerin çalışmadığına dair şikâyetler geldi; meğer birkaç günde bir 8.8.8.8, 1.1.1.1, Steam, Roblox, Microsoft, Facebook, Instagram ve çeşitli sohbet hizmetleri gibi popüler sunucuların IP’lerinden bu tür paketler geliyormuş. Elbette bunların hepsi spoof paketleriydi ve sonunda güvenlik duvarı kuralına biraz daha doğrulama ekledim
Bu yüzden bunun oldukça yaygın olduğundan eminim. Kişisel olarak birden fazla IP adresi işleten istisnai bir durumda olduğumu biliyorum, ama kaynak adreslerimden herhangi birini kullanarak herhangi bir ISP üzerinden paket gönderebilme esnekliğine ihtiyacım var. Bu benim için önemli; ISP kaynak adresine göre filtreleme yaparsa bunu sözleşmeyi sonlandırma sebebi sayar ve başka bir ISP’ye geçerim
İkincisi daha çok “spacebar ile ısıtmayı yeniden açmak” gibi bir kategoriye giriyor ve ISP’lerin bozuk ağlarını düzeltmesini umuyorum
Bir şirkette şubenin şirket içi ortamında bazı web varlıkları barındırılıyordu ve orada 1Gbps hat vardı. Merkezde ise birkaç 10G hat ve oldukça iyi bir veri merkezi olduğundan, web VM’lerini merkeze taşıdık ama atanmış IP adresini, yani ISP-A’nın herkese açık statik IP’sini koruduk. Merkeze VPN ile yönlendirme yaptık ve sunucu, varsayılan ağ geçidini kullanarak ISP-B’nin 10G hattı üzerinden ISP-A kaynak IP’li yanıtlar gönderdi
Böylece gelen trafik 1G ile sınırlı olsa da giden trafikte 10G kullanılabildi. Zaten sadece GET istekleriydi. En iyi kurulum değildi ve sonunda IP’yi değiştirdik ama geçerli bir kullanım senaryosu gibi görünüyor
İkinci olarak, iki farklı ISP hattımız, kendi ASN’imiz ve kendi /23 bloğumuz vardı. Bir miktar trafiği yük dengelemek için IP’lerin yarısını ISP-A’ya, geri kalanını ISP-B’ye verdik. Güzel çalıştı ama dengeyi biraz karıştırmaya çalışınca ilginç bir sorun ortaya çıktı. İlk /24’ü ISP-A’ya, ikinci /24’ü ISP-B’ye duyurmuştuk ama ISP-A tarafında RP filtering vardı. Bu yüzden tüm IP’leri oraya da duyurmak zorunda kaldık
RP filtresinin çalışma biçimi yüzünden prepend gibi şeyler yapamazsınız ve tüm trafiğin onlar üzerinden gelmesi gerekir. İlgili prefix için daha iyi bir yol görürse filtreler. Aylarca bunu güvenlik gerekçesiyle düzeltmeyi reddettiler. Madem güvenlik için en iyi uygulama diyorlardı, ISP’nin adını da verebilirim: Virgin Media
Bu arada rp_filter olan internet hattı aylık 20 dolarlık değil, aylık 5 bin doların üzerindeydi. O bölgede alternatif olmadığı için değiştiremedik ama olsaydı sözleşmeyi kimin kaybedeceği belliydi
“Birileri Tor relay’lerinden nefret ediyor” hipotezi, harcanan çabaya kıyasla pek ikna edici görünmüyor
Kötü niyetli relay’leri işleten taraf, meşru relay’leri etik dışı yollarla devre dışı bırakarak kendi kontrol ettikleri ağ oranını artırmaya çalışıyor olabilir
Birkaç BitTorrent indirmesi çalıştırmak bile yeterli olabilir
Spoofing’in artık mümkün olmaması için, BCP38 uygulamayan tüm AS’lerin trafiğini yeterli sayıda ağ işletmecisinin reddetmesi için ne gerekir?
Zaten yeterince fazla inbound trafiği kontrol ediyor, dolayısıyla “bağlantı güvenliği kontrol ediliyor” ifadesi gerçekten bir anlam taşıyabilir
Yine de yansıma amplifikasyon katsayısını düşürmek çok daha kolay. Çünkü IPv4’te yansıma vektörleri taranabiliyor ve giren baytın 10 katı kadar yanıt verenlere itiraz edilebiliyor
Bu, swatting ile benzer bir sorun. Doğrulanmamış bir sorun ihbarına dayanarak yetkili bir tarafın güçlü önlemler almasına bel bağlıyor
Farkı ise, yetkili kişiyle doğrudan iletişime geçmek yerine alakasız üçüncü tarafların ihbar göndermesini sağlaması gibi görünüyor
Tek paketlik ve gidiş-dönüşü bile olmayan isteklerde, hizmet reddi düzeyinde trafik söz konusu değilse sistem otomatik olarak kötüye kullanım bildirimi göndermemeli gibi görünüyor
Özellikle SSH için, herhangi bir handshake gerçekleşmeden önce bunun geçerli bir bağlantı denemesi olduğunu söylemenin bir yolu yok
Benim ana sunucum da sahte bir kötüye kullanım bildirimi yüzünden kapatılmıştı. Benim IP’mden 1Gbps’yi aşan bir DoS saldırısı geldiğini iddia etmişlerdi, ama sunucu hattım 400Mbps ile sınırlıydı. Biri bildirimi sadece okusaydı bile bunun imkânsız olduğunu anlardı ve tatildeyken telefon desteğiyle iki gün kavga etmek zorunda kalmazdım
Bu, IP sürümü bir swatting, patent zorbalığı, masum birine suç atma ya da rakibi ortadan kaldırmak için kullanılan bir DMCA yayından kaldırma talebi gibi
Özünde, kötüye kullanım önleme mekanizmalarını silaha çevirip hoşlanılmayan hedeflere saldırma yöntemi. Yetkili tarafın zayıf halka hâline gelmesi ve ahlaksız aktörlerin amaçlarına ulaşması için etkin biçimde kullanılabilmesi ilginç, ama tamamen yeni bir olgu değil
metrics.torproject.org’daki relay sayısı ve “advertised bandwidth” grafiğine bakınca büyük bir fark yaratmış gibi görünmüyor, ama yine de ilginç
En kötü tarafı ise, “Watchdog Cyber Defense”, Spamhaus, Shadowserver veya UCEPROTECT gibi zorba taklidi yapan yerlerin otomatik olarak milyonlarca bildirim gönderebilmesi ve host’ların da IP aralıklarının engelleme listelerine girmesini istemiyorlarsa fiilen bu bildirimlere uymak zorunda kalmaları
Bu soruna yönelik in-band bir çözüm yok, ama out-of-band bir çözüm olabilir
Örneğin (1) hedef ISP’ye ters yönlü trafik aldığı bildirilir, (2) o ISP paketlerin nereden geldiğini doğrular ve ilgili ISP’ye haber verir, (3) kaynak bulunana kadar 2. adım tekrarlanır, (4) ağın o kısmı düzgün çalışana kadar izole edilir
Sonuçta internet insanlardan oluşuyor