IP adresleri “taklit etmek önemsiz” mi?


65

Google’ın yeni kamuya açık DNS servisindeki bazı notları okuyordum :

Güvenlik bölümünde bu fıkranın farkına vardım:

DNSSEC2 protokolü gibi evrensel olarak DNS güvenlik açıklarına yönelik sistem genelinde bir çözüm uygulanıncaya kadar, açık DNS çözümleyicilerinin bilinen tehditlere karşı önlem almak için bağımsız olarak bazı önlemler almaları gerekir. Birçok teknik önerilmiştir; bkz. IETF RFC 4542: DNS'lerin çoğuna genel bir bakış için sahte cevaplara karşı daha esnek hale getirme önlemleri . Google Public DNS’de aşağıdaki yaklaşımları uyguladık ve tavsiye ediyoruz:

  • Çözücülerin kendilerine doğrudan DoS saldırılarına karşı koruma sağlamak için makine kaynaklarını aşırı tedarik etmek. IP adresleri saldırganların taklit etmesi açısından önemsiz olduğu için, IP adresi veya alt ağa dayalı sorguları engellemek mümkün değildir; Bu tür saldırıları idare etmenin tek etkili yolu yükü basitçe emmektir.

Bu moral bozucu bir realizasyondur; Yığın Taşması / Sunucu Arızası / Süper Kullanıcı bile olsa, her türlü yasak ve bloklar için IP adreslerini sık sık kullanıyoruz.

"Yetenekli" bir saldırganın istediği IP adresini önemsiz bir şekilde kullanabileceğini ve istedikleri kadar benzersiz sahte IP adresi sentezleyebileceğini düşünmek gerçekten de korkutucu!

Öyleyse benim sorum (lar):

  • Bir saldırganın vahşi bir IP adresi oluşturması gerçekten bu kadar kolay mı?
  • Öyleyse, hangi hafifletmeler yapılabilir?

Sahte IP'ler IP tabanlı yasaklar için bir sorun olmamalıdır; Ancak daha büyük risklerin bazıları şunlardır: IP'ler birçok kişi (okullar, işyerleri, internet kafeler, ...) tarafından paylaşılır ve statik olmayan DSL'lerde modem sıfırlama işleminden sonra gibi bir şeyle değişebilen IP'ler.
Halil Özgür

Erişim kazanmak, sahte adresleri kullanan birçok saldırının birincil amacı değildir. DNS kullanarak yapılan çeşitli büyütme saldırılarının daha sık meydana geldiğinden şüpheleniyorum. DNS güzeldir (DNSSEC kötü olduğunda) - sahte kaynak adresli küçük, <100 baytlık bir paket gönderebilirsiniz, sahte adresin yanıt olarak 7x - 40x amplifikasyon almasına neden olur.
Michael Graff

Yanıtlar:


50

Diğerlerinin de belirttiği gibi, IP başlıkları, bir yanıt almayı önemsemediği sürece, taklit etmeye önemsizdir. TCP 3 yollu el sıkışma gerektirdiğinden, çoğunlukla UDP ile görülmesinin nedeni budur. Dikkat çeken bir istisna, TCP kullanan ve alıcı ana bilgisayardaki kaynakları bağlamaya çalışan SYN taşmasıdır ; Yine, cevaplar atıldığı için, kaynak adres önemli değildir.

Saldırganların kaynak adreslerini bozma kabiliyetinin özellikle kötü bir yan etkisi, geri saçılma saldırısıdır. Burada mükemmel bir açıklama var , ama kısaca, geleneksel bir DDoS saldırısının tersi:

  1. Bir botnet'in kontrolünü kazanın.
  2. Tüm düğümlerinizi kötü amaçlı paketler için aynı kaynak IP adresini kullanacak şekilde yapılandırın . Bu IP adresi sizin nihai kurbanınız olacaktır.
  3. Tüm kontrol düğümlerinizden gelen paketleri, internet üzerindeki çeşitli adreslere, genellikle açık olmayan portları hedeflemeye veya mevcut bir işlemin parçası olduğunu iddia eden geçerli portlara (TCP / 80) bağlanmaya gönderin.

(3) 'te belirtilen vakaların herhangi birinde, birçok ana bilgisayar , kötü niyetli paketin kaynak adresini hedef alan bir ICMP'ye erişilemez veya bir TCP sıfırlamasıyla yanıt verecektir . Saldırganın şu anda ağda potansiyel olarak seçtiği kurbanına DDoS saldırısı yapan, hepsi sahte bir kaynak IP adresi kullanarak, potansiyel olarak ödün verilmeyen makineleri var.

Azaltma açısından, bu risk gerçekten sadece ISS'lerin (ve özellikle transit yerine müşteri erişimi sağlayan ISS'lerin) ele alabileceği risktir. Bunu yapmanın iki ana yöntemi vardır:

  1. Giriş filtreleme - ağınıza gelen paketlerin, gelen arabirimin uzak tarafındaki adres aralıklarından kaynaklandığından emin olun. Birçok yönlendirici satıcısı , gelen bir paketin kaynak adresinin bir sonraki sekmesinin gelen arabirim olduğunu doğrulamak için yönlendiricinin yönlendirme ve iletme tablolarını kullanan tek noktaya yayın ters yol iletme gibi özellikler uygular . Bu en iyi, ağdaki ilk katman 3 sekmesinde (yani varsayılan ağ geçidiniz) gerçekleştirilir.

  2. Çıkış filtresi - ağınızdan çıkan paketlerin yalnızca sahip olduğunuz adres aralıklarından kaynaklanmasını sağlama. Bu, giriş filtrelemenin doğal tamamlayıcısıdır ve temel olarak “iyi bir komşu” olmanın bir parçasıdır; Ağınız kötü amaçlı trafikten ödün verse bile, bu trafiğin eşleştiğiniz ağlara yönlendirilmemesi.

Bu tekniklerin her ikisi de, müşterilerin tedarikçiyle ara yüz kurduğu 'uç' veya 'erişim' ağlarında yapıldığında en etkili ve kolay şekilde uygulanır. Birden fazla yolun karmaşıklığı ve asimetrik yönlendirme nedeniyle erişim katmanının üzerine giriş / çıkış filtreleme uygulamak daha zor hale gelir.

Bir işletme ağında çok etkili olan bu teknikleri (özellikle içeri filtrelemeyi) kullandım. Belki de daha fazla hizmet sağlayıcı deneyimine sahip biri, internette giriş / çıkış filtrelemenin yaygınlaştırılmasının zorlukları hakkında daha fazla fikir verebilir. Donanım / ürün yazılımı desteğinin büyük bir zorluk olduğunu ve diğer ülkelerdeki yukarı akış sağlayıcıları benzer politikaları uygulamaya zorlayamayacağını hayal ediyorum ...


Kulağa kötü geliyor. Öyleyse bir yöneticinin sunucusunu bu şekilde hedeflendiğini tespit ederse yapabileceği bir şey var mı? ICMP paketlerini ve TCP sıfırlama mesajlarını tüm IP'lerden geçici olarak engellemek mümkün olabilir mi? Bunun gibi yarı normal bir şekilde çalışabilir miydin?
UpTheCreek

45

Bir saldırganın vahşi bir IP adresi oluşturması gerçekten bu kadar kolay mı?

Elbette herhangi bir yanıt almayı umursamıyorum, sevdiğim herhangi bir kaynak adresini kullanarak çok kolay bir şekilde paketler gönderebilirim. Birçok ISS gerçekten iyi çıkış kurallarına sahip olmadığından, genellikle oluşturduğum her şey teslim edilecektir.

Saldırganın gerçekten iki yönlü iletişime ihtiyacı varsa, çok zorlaşır. İki yönlü iletişime ihtiyaçları varsa, basitçe bir tür proxy kullanmak daha kolay olur. Ne yaptığınızı biliyorsanız, kurulumu çok kolaydır.

İnsanları IP adresine göre yasaklamak, site iki yönlü iletişim gerektiren http / https kullandığından SF / SO / SU'da oldukça etkilidir.


16
http (s) burada anahtardır. DNS, UDP kullanır, bu nedenle tüm iletişim protokolde onaylanmayan tek paketler aracılığıyla gerçekleşir.
noah

16
Sanırım e-posta gibi. Cevapları almak istemediğiniz sürece, istediğiniz adresi kullanarak gönderebilirsiniz
Jorge Bernal

@Jorge: Kesinlikle. E-posta / posta posta benzetmesi, bunu son kullanıcılara açıklamak için kullanılabilecek harika bir mesajdır.
Evan Anderson,

DNS’de, TCP de kullanılabilir, ancak bu şu anda insanları korkutuyor. Ancak, ACK yerleşik değil çünkü cevap ACK.
Michael Graff

6
@noah - aslında TCP , HTTP değil anahtardır. TCP taklit etmek imkansız değildir, ancak UDP'den 100 kat daha zordur.
Alnitak

22

Zordeche'nin Cevabı için Küçük Konsept Kanıtı (ubuntu ile):

$ sudo apt-get install hping3
$ sudo hping3 -1 --spoof 11.10.10.20 www.google.com
HPING www.google.com (eth0 64.233.169.105): icmp mode set, 28 headers + 0 data bytes

Sonra başka bir konsolda:

$ sudo tcpdump -i eth0 'icmp'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
13:30:19.439737 IP 11.10.10.20 > yo-in-f105.1e100.net: ICMP echo request, id 31297, seq 0, length 8

Yani evet, önemsizdir, ancak 11.10.10.20’ye erişiminiz olmadığı veya www.google.com ile 11.10.10.20 tarihleri ​​arasında herhangi bir yerde bir snifferiniz olmadığı sürece daha önce belirtildiği gibi cevap alamazsınız. iki ucundan biri, çünkü paketlerin rotasını tahmin edemezsiniz). Ayrıca, spoofer'ın ağ geçidi (ISS), bir tür ip incelemesi yapmaları ve kaynağın kötü koktuğunu görmeleri durumunda, bu paketin kapıdan çıkmasına izin vermeyebilir.


1
Ancak ISS'ler genellikle paket incelemesiyle kendilerini rahatsız etmiyorlar mı?
Pacerier

13

IP adreslerinin tek yönlü UDP trafiği için oluşturulması kolaydır . TCP paketleri için, sadece SYN paketleriyle yarı açık bir TCP bağlantısı elde etmek için taklit edebilirsiniz. Bu, bir çeşit DOS saldırısının da temelidir. Ancak, sahte adresli bir HTTP bağlantısı kuramazsınız (örneğin, aynı IP adresini kullanmak için oturumları filtreliyorsanız). Evet, paketlerdeki bir IP adresini taklit edebilirsiniz, ancak yalnızca belirli hizmet reddi saldırıları için kullanışlıdır.


Ürünün var demek istiyorsunuz sert bir sahte adresli bir HTTP bağlantısı kurma, hatta değil onun o mümkün bunu?
Pacerier

Açık internette, imkansız. Aynı LAN’daysanız , diğer bilgisayarı size trafik göndermesi için kandırabilecek bazı hileler vardır ( web.eecs.umich.edu/~zhiyunq/pub/… ). Bunu bu şekilde düşünebilirsiniz. UDP kartpostal göndermek gibidir. İstediğiniz adrese istediğiniz ismi yazabilirsiniz. TCP, doğru dönüş adresini vermezseniz konuşmaya devam edemeyeceğiniz bir sohbet gibidir. Buradaki diğer cevapların bazıları daha iyi açıklıyor.
FryGuy

10

GOOG makalesi açıkça DNS'i tartışıyordu. DNS, hem UDP hem de TCP paketlerini kullanır. UDP olanlar sahte olabilir, ancak TCP ile değil. TCP, 3 yollu bir el sıkışma gerektirir . Bir TCP paketinin IP adresi sahte ise, sahte bilgisayar yanıt alamaz ve bağlantı başarısız olur. UDP, diğer cevaplarda belirtildiği gibi, 'ateş ve unut' şeklindedir ve yanıt iletişimi gerektirmez. DoS saldırıları neredeyse sadece UDP paketleri biçiminde geliyor bu nedenle.

Yığın Taşması ve aile siteleri bağlamında, Takaun Daikon tarafından gündeme getirilen konu çok geçerlidir. İSS'den yeni bir IP adresi almanın birçok yolu vardır. Bir MAC adresini değiştirmek açıkça en kolay olanıdır ve birçok ISS için çalışır. Ek olarak, aptallığa kadar olan pek çok kişi bir kamu vekili veya TOR kullanıyor olabilir. Bu paketler için IP adresinin açıkça engellenmesi, proxy veya TOR sonlandırma düğümünü engeller.

Öyleyse IP adreslerini engellemek geçerli midir? Cehennem evet öyle. Ancak hatalarla biteceksin. Sorunun kaynağı olmayan bazı IP'leri engelleyeceksiniz (örneğin, proxy'ler) ve IP'leri değiştirerek engellemekten kaçan insanlara sahip olacaksınız. Daha sonra yasaklanan IP'yi almak için yeterince şanssız olan kişi, SO sitelerine erişemez. Ancak hata oranı küçük olmalıdır. Çok büyük IP kümelerini engellemiyorsanız. Fakat günde bir veya iki kişiyi engelliyorsanız, iyi olmalısınız.

Engellediğiniz, ancak sadece bir yıl gibi bir süre için biraz daha karmaşık bir şema tanıtmak isteyebilirsiniz. Ağınız bant genişliği azaltma ya da bağlantı sınırlama yeteneğine sahipse, sitenizde Apache Benchmarkları çalıştıran duş çantalarının sadece çok sınırlı bant genişliğine sahip bir kafese kondukları bir şema düşünebilirsiniz.


1
Sahte olabilirsiniz. Sadece TCP oturumlarını kaçırma konusuna bakın. google.com/search?q=hijack+tcp+session
Dan

Saldırganın başlaması gereken trafik akışına erişimi olmadığı sürece, modern işletim sistemlerine sahip TCP sıralama saldırıları oldukça pratik değildir. Zaten ortadaki bir adamlarsa, muhtemelen yine de TCP bağlantısı ele geçirmeleri gerekmez.
Evan Anderson,

10

ISS'ler tembel olduğu için IP sahtekarlığı devam edecek.

İnternet servis sağlayıcım, belirli bir adreste olduğumu veya en azından bulunduğum alt ağda olduğumu çok iyi biliyor. Yine de herhangi bir kaynak adresini kullanabilirim. Neden? Basitçe, maliyet.

Burada ve orada birkaç adres taklit edersem, bu ISS'ime hiçbir şey yapmaz. İnternet servis sağlayıcımın her kullanıcısı 1: 00-02: 00 arasında bir paket taklit ederse, radarda neredeyse bir engel olmaz. Bununla birlikte, bir botnet birçok ISS'deki birçok ana bilgisayardan çok sayıda sahte paket gönderdiğinde, hedef makine veya ağ çöker.

Finansal gerçeklik şudur: saldırıya uğrayan siz değilseniz, kandırmanın hiçbir maliyeti yoktur. Müşteriye yakın filtrelemeyi uygulamak paraya mal olur ve parayı harcayan kişi onların iyi bir ağ vatandaşı olduğunu bilmekten başka çok az bir getiri elde eder.

UDP ve ICMP'nin taklit edilmesi en kolay olanıdır, ancak TCP de mümkündür. Bu, yararlanmak için öngörülebilir dizi numaralarını kullanan güvensiz bir uzak işletim sistemi gerektirir. Bazen sıra numaralarını değiştiren ve tahmin edilebilir kılan yük dengeleme makineleridir. Yani, TCP mümkündür - ama daha zordur.

DNS sahteciliği önleme, çoğunlukla bir özyinelemeli çözücüye yanlış cevap göndermesini engellemenin güvenlik tarafına odaklanır. UDP'nin taşkın yönleri, tek bir küçük sorgudan başka bir DNS'e özgü değildir (örneğin '.' İçin) oldukça büyük bir tepkiye neden olacaktır. Böylece güzel bir amplifikasyon vektörü oluşturur. Orada çalışan birçok başka UDP protokolü var, ancak DNS her yerde kullanılıyor ve saldırıları arttırmak için kullanılacak makineleri bulmak kolay.

DNSSEC, 4k boyutuna ulaşabilen UDP paketleri ile bunu daha da kötüleştirir.


6

IP adresleri, DNS tabanlı (D) DOS saldırıları söz konusu olduğunda, genellikle bir ateşle ve unut UDP paketleri durumunda oldukları için sahtedir. HTTP trafiği için durum böyle değildir, bu yüzden ya web sunucusuyla aynı yerel ağda olmanız (elbette sitenizin bulunduğu yere bağlı olarak tamamen mümkündür) veya ara yönlendiricileri kontrol etmeniz gerekir.


6

Kimseye bir mektup gönderebilir ve zarfın üzerine bir iade adresi koymazsanız (veya yanlış olanı koyarsanız), dünyadaki tüm önemsiz posta süzgeçlerini işe alabilir ve mesajınızı açmadan filtreleyemez (işleme koyabilir). ) o.

Bununla birlikte, eğer gönderen bir cevap isterse, dönüş adresi daha doğru olur, ya da doğru adresi almak için bir uygulama katmanı mekanizması olması gerekir. Size Nana'dan bir mektup açtığınızı düşünmenizi sağlayabilirim, ancak sizi mektubun içeriği ile kandırsam da, Nana'yı CASH'a Nijerya'daki bir adrese yapılan bir çek göndermeyeceksiniz (Nana Nijeryalı değilse) ). Bu yüzden meydan okuma / cevap, Middled'de İnsan olmadığınız sürece etkili bir savunmadır.


5

Bir datagramda istediğim kaynak IP adresini ayarlayabilirim.
ISS'mizin böyle bir paketin çılgınca içeriye girmesine izin verip vermeyeceği başka bir sorudur.


ISS filtresini atlamak için yine de var mı?
Pacerier

5

Bu kesinlikle ele alınması gereken bir gerçeklik olsa da, temel sorun gerçekten teknik değildir: Kötü niyetli niyetleri kötü niyetli şeyler yapmaya çalışan insanlar. Bu nedenle gerçek çözüm teknik değil.

Stackoverflow'un yaptığı şeyin tam anlamıyla ikinci savunma hattını idare etmek için doğru çözüm olduğunu düşünüyorum: Potansiyel spam kullanıcılarını bir miktar 'güvenilirlik' seviyesine ulaşmadan önce platformla etkileşime girme yeteneklerini sınırlandırmanın farklı yollarıyla kısıtlama teknikleri.

Bu teknikler yalnızca sitenin genel kalitesini iyileştirmekle kalmaz, kullanıcıları daha fazla yer alma ve daha güvenilir / güvenilir yanıtlar sağlama konusunda teşvik ederler.

Teknik açıdan bakıldığında, yapılacak en iyi şey Google’ın önerdiği gibi yapmak olacaktır: sadece ek yükü absorbe etme / kullanma konusunda verimli olmak.

Harika bir iş ve gelişmeye devam edin!


3

UDP, bunun neden bu kadar kolay olduğunun ana parçasıdır - aslında, Skype ve Slingbox, UDP'de IP adreslerini kolayca NAT yoluyla ' vurmak ' ve 'eşdüzeylere kolaylık sağlamak' için kullanma yeteneğinden yararlanır .

TCP, tam bir SYN / ACK döngüsü gerektirdiği için daha zordur, ancak sunucuyu hala IP adreslerine giden ve pek çok yönlendiriciyi bağlayan ve aslında işlem sırasında çok sayıda yönlendiriciyi bağlayan SYN paketlerini asılı tutabilirsiniz.


1
Yönlendiriciler yalnızca paketleri yönlendirir. TCP durumunu korumazlar, bu nedenle bir paket bir paket kendilerine bir pakettir.
Michael Graff

iyi bir nokta. Bu yüzden sunucuları bağlar (veya ne ön uç cihaz SYN / ACK anlaşması yapıyorsa) ACK'larını bekler. :-) Yük dengeleyicilerimiz SYN / ACK ile tam olarak görüşerek sunuculara teslim etmeden önce yapılandırıldı. Zaten açık olan bir bağlantı, bu nedenle bu durumda büyük zaman yardımcı olur.
Justin,

2

Yukarıda belirtildiği gibi, vekil kullanmak önemsizdir ve çok fazla sayıda açık isimsiz vekil mevcuttur.

Proxy kullanmadan bile, güvenlik duvarımdaki MAC adresini herhangi bir yeni rasgele değere ayarlayabilir, kablo modemimi sıfırlayabilirim ve ISS'im bana yepyeni bir parlak IP adresi atayacaktır.

Ve bu sadece yeni başlayanlar için. IP yasaklarını aşmanın birçok yolu vardır.


bu sorun değil. Buradaki gerçek bir "sorun", IP paketinizi yarattığınız IP adresinin size ait olup olmadığını doğrulamak için hiçbir hüküm bulunmayan IP protokolünün tasarımıdır. Böylece, farklı kaynak (hedef) adresleri olan bir paket fırtınası yaratmanıza izin verilir ve hiçbir şey sizi göndermekten alıkoyamaz.
monomy

3
Bir şey seni durdurabilir. ISS'niz, kaynak IP adresi gerçekte bu ağa ait olmadıkça, yönlendiricilerindeki çıkış filtrelerinin paketlerin iletilmesine izin vermemesini sağlayamaz.
Zoredache

2

Öyleyse, hangi hafifletmeler yapılabilir?

Alıcı tarafta yapabileceğiniz fazla bir şey yok.

Sahtecinin ISP'si, giden trafiğini filtrelemeli, böylece müşterileri IP'leri farklı ağlardan kandıramaz.

Yönlendirici yapılandırmasında sadece birkaç satır olduğundan, bunu yapmamak için iyi bir bahane yoktur.

Saldırganı izlemenin bir yolu var, ancak yukarı akış sağlayıcınızın işbirliğini gerektiriyor: http://www.cymru.com/Documents/dos-and-vip.html


2

Diğerlerinin de belirttiği gibi, UDP sahte olmak için oldukça önemsizdir, TCP çok değil.

Tercih edilen savunma, ancak maalesef evrensel olarak konuşlandırılmamış, çıkış filtreleridir.

DSL vb. Hizmetlerini çalıştıran ISS'ler için, her sanal satır ip verify unicast reverse-path, kaynak IP adresi bu satırdan aşağı yönlendirildiği bilinen aralıklarda olmayan herhangi bir paketi engelleyen (ya da Cisco dışı eşdeğeri olan) ne şekilde yapılandırılmalıdır .


1

90'lı yılların sonlarında Visual Basic olanlarla programlama yapmayı hatırlıyorum ve kaynak IP'yi bağlantımıza koyabiliriz. Belirsiz bir şekilde, netstat -an'ın gerçek kaynak IP'yi gösterdiğini ancak Apache günlüklerinin sahte IP'yi gösterdiğini; Apache'nin sahte IP'yi perl modüllerine verdiğini düşünüyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.