Vraag Zijn IP-adressen "triviaal om te vervalsen"?


Ik las enkele van de aantekeningen door De nieuwe openbare DNS-service van Google:

Ik merkte onder het beveiligingsgedeelte deze paragraaf:

Totdat een standaardsysteembrede oplossing voor DNS-kwetsbaarheden universeel is geïmplementeerd, zoals het DNSSEC2-protocol, moeten DNS-resolvers afzonderlijk maatregelen treffen om bekende bedreigingen te beperken. Er zijn veel technieken voorgesteld; zien IETF RFC 4542: maatregelen om DNS veerkrachtiger te maken tegen valse antwoorden voor een overzicht van de meeste van hen. In Google Public DNS hebben we de volgende benaderingen geïmplementeerd en aanbevolen:

  • Overprovisioning machine resources om te beschermen tegen directe DoS-aanvallen op de resolvers zelf. Omdat IP-adressen triviaal zijn voor aanvallers om te vervalsen, is het onmogelijk om query's op basis van IP-adres of subnet te blokkeren; de enige effectieve manier om dergelijke aanvallen aan te pakken, is om de lading eenvoudigweg te absorberen.

Dat is een deprimerende realisatie; zelfs bij Stack Overflow / Server Fault / Super User gebruiken we vaak IP-adressen als basis voor alle verboden en blokken.

Te bedenken dat een "getalenteerde" aanvaller willekeurig welk IP-adres kan gebruiken, en zo veel unieke nep-IP-adressen kan samenstellen als ze willen, is echt eng!

Dus mijn vraag (s):

  • Is het echt dat gemakkelijk voor een aanvaller om een ​​IP-adres in het wild te smeden?
  • Zo ja, welke verzachting is mogelijk?

64
2017-12-03 17:53


oorsprong


Nagebootste IP's zouden geen probleem mogen zijn voor op IP gebaseerde verboden, aangezien het uiteindelijke doel is om toegang te krijgen, waarvoor legitieme antwoorden nodig zijn. Maar enkele van de grotere risico's zijn: IP's worden gedeeld door veel mensen (scholen, werkplekken, internetcafes, ...) en IP's die kunnen veranderen naar iets als na een modemreset op niet-statische DSL's. - Halil Özgür
Het verkrijgen van toegang is niet het primaire doel van veel aanvallen met spoofed-adressen. Ik vermoed dat de verschillende versterkingsaanvallen met DNS vaker voorkomen. DNS is prachtig (met DNSSEC slechter) - u kunt een klein <100 byte-pakket met een vervalst bronadres verzenden waardoor het vervalst adres een 7x tot 40x versterking als antwoord ontvangt. - Michael Graff


antwoorden:


Zoals door vele anderen is gesteld, zijn IP-headers triviaal om te vervalsen, zolang het maar een kwestie van respons is. Dit is waarom het meestal wordt gezien met UDP, omdat TCP een drieweg-handshake vereist. Een opmerkelijke uitzondering is de SYN overstroming, dat TCP gebruikt en pogingen doet om bronnen te binden op een ontvangende host; nogmaals, aangezien de antwoorden worden weggegooid, doet het bronadres er niet toe.

Een bijzonder vervelende bijwerking van het vermogen van aanvallers om bronadressen te vervalsen is een backscatter aanval. Er is een uitstekende beschrijving hier, maar kort, het is het omgekeerde van een traditionele DDoS-aanval:

  1. Krijg controle over een botnet.
  2. Configureer al uw knooppunten om de. Te gebruiken hetzelfde bron-IP-adres voor kwaadwillende pakketten. Dit IP-adres zal uw uiteindelijke slachtoffer zijn.
  3. Verzend pakketten van al uw gecontroleerde knooppunten naar verschillende adressen op internet, richt poorten die over het algemeen niet open zijn, of maak verbinding met geldige poorten (TCP / 80) die beweren onderdeel te zijn van een reeds bestaande transactie.

In beide gevallen die worden genoemd in (3), reageren veel hosts met een onbereikbare ICMP- of een TCP-reset, gericht op de bronadres van het schadelijke pakket. De aanvaller heeft nu mogelijk duizenden onbesliste machines op het netwerk die een DDoS-aanval uitvoeren op zijn / haar gekozen slachtoffer, dit alles door het gebruik van een vervalst bron-IP-adres.

In termen van mitigatie is dit risico echt een risico dat alleen door ISP's (en met name ISP's die toegang voor klanten bieden, in plaats van doorvoer) kan worden aangepakt. Er zijn twee hoofdmethoden om dit te doen:

  1. Ingress-filtering - ervoor zorgen dat pakketten die binnenkomen op uw netwerk afkomstig zijn van adresbereiken die aan de andere kant van de inkomende interface staan. Veel routerleveranciers implementeren functies zoals unicast omgekeerde pad doorsturen, die de routerings- en doorstuurtabellen van de router gebruiken om te controleren of de volgende hop van het bronadres van een binnenkomend pakket de binnenkomende interface is. Dit wordt het best uitgevoerd op de eerste laag 3-hop in het netwerk (dat wil zeggen uw standaardgateway.)

  2. Egress filtering - ervoor te zorgen dat pakketten die uw netwerk verlaten, alleen afkomstig zijn van adresreeksen die u bezit. Dit is de natuurlijke aanvulling op de invoerfiltratie en maakt in wezen deel uit van een 'goede buur'; ervoor te zorgen dat zelfs als uw netwerk wordt aangetast door kwaadaardig verkeer, dat verkeer niet wordt doorgestuurd naar netwerken waar u naar kijkt.

Beide technieken zijn het meest effectief en kunnen gemakkelijk worden geïmplementeerd wanneer dit wordt gedaan in 'edge'- of' access'-netwerken, waar clients communiceren met de provider. Het implementeren van invoer / uitvoerfiltering boven de toegangslaag wordt moeilijker vanwege de complexiteit van meerdere paden en asymmetrische routering.

Ik heb deze technieken (met name ingressfiltering) met groot succes gebruikt in een bedrijfsnetwerk. Misschien kan iemand met meer ervaring met een serviceprovider meer inzicht krijgen in de uitdagingen van het inzetten van binnendringen / binnendringen op het internet in het algemeen. Ik stel me voor dat hardware / firmware-ondersteuning een grote uitdaging is, en dat het niet in staat is upstream-providers in andere landen te dwingen hetzelfde beleid te implementeren ...


51
2017-12-04 01:57



Klinkt vies. Dus is er iets dat een beheerder kan doen als hij merkt dat zijn server op deze manier wordt getarget? Is het mogelijk om de ICMP-pakketten en de TCP-reset-berichten van alle IP's tijdelijk te blokkeren? Zou je zelfs op zo'n semi-normale manier als dit kunnen opereren? - UpTheCreek


Is het echt zo gemakkelijk voor een aanvaller   een IP-adres in het wild vervalsen?

Natuurlijk, als ik er niet om geef reacties te ontvangen, kan ik heel gemakkelijk pakketten verzenden met elk willekeurig bronadres dat ik leuk vind. Omdat veel ISP's niet echt goede uitgangsregels hebben, zal alles wat ik smeer in het algemeen worden geleverd.

Als de aanvaller eigenlijk bidirectionele communicatie nodig heeft, wordt het erg moeilijk. Als ze tweerichtingscommunicatie nodig hebben, is het meestal eenvoudiger om een ​​of andere proxy te gebruiken. Die is heel eenvoudig in te stellen als je weet wat je doet.

Mensen verbieden op IP-adres is matig effectief op SF / SO / SU, omdat de site http / https gebruikt waarvoor tweewegcommunicatie vereist is.


46
2017-12-03 17:59



http (s) is hier de sleutel. DNS gebruikt UDP, dus alle communicatie verloopt via afzonderlijke pakketten zonder bevestigingen in het protocol. - noah
Raad eens is als e-mail. U kunt verzenden met het gewenste adres, tenzij u antwoorden wilt ontvangen - Jorge Bernal
@Jorge: Absoluut. De analogie van de e-mail / post is een geweldige manier om dit aan eindgebruikers uit te leggen. - Evan Anderson
In DNS kan TCP ook worden gebruikt, maar dat maakt mensen nu bang. Er is echter geen ACK ingebouwd omdat het antwoord de ACK is. - Michael Graff
@noah - eigenlijk TCP is de sleutel, niet HTTP. TCP is niet onmogelijk om te vervalsen, maar het is 100 keer moeilijker dan UDP. - Alnitak


Little Proof of Concept voor Zordeche's Answer (with ubuntu):

$ 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

Dan in een andere console:

$ 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

Dus ja, triviaal, maar dan krijg je de antwoorden niet zoals eerder vermeld, tenzij je toegang hebt tot 11.10.10.20 of een snuffelaar hebt ergens tussen www.google.com en 11.10.10.20 (en het zou recht voor je moeten staan van beide uiteinden, aangezien u de route van pakketten niet kunt voorspellen). Ook laat de gateway van de spoofer (ISP) dat pakket misschien niet de deur uit als ze een soort van ip-inspectie ondergaan en zien dat de bron slecht ruikt.


22
2017-12-03 18:28



Maar ISP's storen zichzelf meestal niet lastig met pakketinspectie? - Pacerier


IP-adressen zijn gemakkelijk te vervalsen voor één richting UDP verkeer. Voor TCP-pakketten kunt u alleen smeden om een ​​halfopen TCP-verbinding te krijgen met SYN-pakketten. Dit is ook de basis van een soort DOS-aanval. Maar u kunt geen HTTP-verbinding smeden met een vervalst adres (bijvoorbeeld als u sessies filtert om hetzelfde IP-adres te gebruiken). Hoewel ja, je kunt een IP-adres spoofen in de pakketten, het is alleen nuttig voor bepaalde soorten denial-of-service-aanvallen.


13
2017-12-03 18:24



Bedoel je dat het zo is? hard een HTTP-verbinding smeden met een vervalst adres, of dat het niet eens is mogelijk om dit te doen? - Pacerier
Op het open internet is het onmogelijk. Er zijn enkele trucjes als je op hetzelfde LAN zit dat de andere computer kan misleiden om verkeer naar je te verzenden (web.eecs.umich.edu/~zhiyunq/pub/...). Je kunt het zo bedenken. UDP is als het verzenden van een briefkaart. U kunt elke naam op het gewenste afzenderadres schrijven. TCP is als een gesprek waarbij als u niet het juiste adres opgeeft, u het gesprek niet kunt voortzetten. Sommige van de andere antwoorden hier leggen het veel beter uit. - FryGuy


In het GOOG-artikel werd expliciet gesproken over DNS. DNS gebruikt zowel UDP- als TCP-pakketten. De UDP-varianten kunnen worden vervalst, maar niet via TCP. TCP vereist een 3-wegs handdruk. Als het IP-adres voor een TCP-pakket is vervalst, ontvangt de smeedcomputer het antwoord niet en mislukt de verbinding. UDP, zoals vermeld in andere antwoorden, is 'vuur en vergeet' en vereist geen responscommunicatie. DoS-aanvallen komen om deze reden vrijwel uitsluitend in de vorm van UDP-pakketten.

In de context van Stack Overflow en familiesites is de kwestie die door Takaun Daikon naar voren is gebracht zeer geldig. Er zijn veel manieren om een ​​nieuw IP-adres van de ISP te krijgen. Het wijzigen van een MAC-adres is duidelijk het gemakkelijkst en werkt voor veel ISP's. Bovendien kunnen veel mensen die tot de gek zijn een publieke proxy of TOR gebruiken. Het duidelijk blokkeren van het origination-IP voor die pakketten zou gewoon het proxy- of TOR-terminatieknooppunt blokkeren.

Dus is het blokkeren van IP-adressen geldig? Hel ja, dat is het. Maar je zult eindigen met fouten. Je blokkeert een aantal IP's die echt niet de oorzaak van het probleem zijn (dat wil zeggen proxy's) en je zult ook mensen hebben die je blokken vermijden door IP's te veranderen. De persoon die de pech heeft om het verboden IP-adres later te ontvangen, heeft geen toegang tot de SO-familie van sites. Maar de fout tarief moet klein zijn. Tenzij je enorme sets IP's blokkeert. Maar als je een of twee per dag blokkeert, komt het goed.

Misschien wil je een iets geavanceerder schema introduceren waarin je blokkeert, maar alleen voor een periode, zoals een jaar. Als uw netwerk geschikt is voor bandbreedtebeperking of verbindingsbeperking, zou u ook een schema kunnen overwegen waarbij Douchetassen die Apache Benchmarks uitvoeren op uw site gewoon in een kooi met zeer beperkte bandbreedte worden geplaatst.


11
2017-12-03 18:20



Je kunt worden vervalst. Kijk maar naar TCP-sessies kapen. google.com/search?q=hijack+tcp+session - Dan
Tenzij de aanvaller in eerste instantie toegang heeft tot de verkeersstroom, zijn aanvallen met TCP-sequencing met moderne besturingssystemen behoorlijk onpraktisch. Als ze toch een man-in-the-middle zijn, dan hoeven ze waarschijnlijk niet eens TCP-verbinding te kapen. - Evan Anderson


IP-spoofing wordt voortgezet omdat ISP's lui zijn.

Mijn ISP verdomd goed weet dat ik op een specifiek adres ben, of op zijn minst het subnet waar ik op sta. Toch kan ik elk bronadres gebruiken. Waarom is dat? Gewoon, kosten.

Als ik hier en daar wat adressen vervalst, kost het mijn ISP niets. Als elke gebruiker van mijn ISP een pakket tussen 1:00 en 2:00 faked, zou het nog steeds geen flauwekul op de radar zijn. Wanneer een botnet echter veel vervalste pakketten van veel hosts op veel ISP's verzendt, valt de doelcomputer of het netwerk over.

De financiële realiteit is dat als je niet wordt aangevallen, spoofing niets kost. Het kost geld om filteren in de buurt van de klant te implementeren, en degene die het geld uitgeeft, realiseert heel weinig rendement, behalve dat hij weet dat ze goede netwerkburgers zijn.

UDP en ICMP zijn het gemakkelijkst te vervalsen, maar TCP is ook mogelijk. Het vereist een onveilig remote OS, dat voorspelbare sequentienummers gebruikt om te exploiteren. Soms zijn het de load balancing machines die sequentienummers veranderen en voorspelbaar maken. Dus TCP is mogelijk - maar moeilijker.

DNS-antispoofing richt zich voornamelijk op de beveiligingskant van het voorkomen dat iemand een fout antwoord op een recursieve resolver indient. De overstromingsaspecten van UDP zijn niet DNS-specifiek anders dan een enkele kleine query (bijvoorbeeld voor '.') Zal een nogal groot antwoord geven. Het maakt dus een mooie versterkingsvector. Er zijn veel andere UDP-protocollen die werken, maar DNS is overal in gebruik en het is gemakkelijk om machines te vinden om aanvallen te versterken.

DNSSEC maakt dit nog erger, met UDP-pakketten die 4 k groot kunnen worden.


9
2017-12-03 20:00





IP-adressen zijn triviaal om te smeden voor zover het DNS-gebaseerde (D) DOS-aanvallen betreft, omdat ze meestal een kwestie zijn van Vuur en vergeet UDP-pakketten. Voor HTTP-verkeer is dat niet het geval, dus u moet ofwel op hetzelfde lokale netwerk zijn als de webserver (uiteraard volledig mogelijk, afhankelijk van waar uw site wordt gehost), of de tussenliggende routers besturen.


6
2017-12-03 18:02





U kunt een brief naar iedereen verzenden en als u geen retouradres op de envelop plaatst (of de verkeerde vermeld), kunnen ze alle ongewenste e-mailfilters ter wereld huren en uw bericht niet filteren zonder te openen (verwerken ) het.

Als de afzender echter een reactie wil, is het retouradres beter correct of moet er een applicatielaagmechanisme zijn om het juiste adres te krijgen. Dus ik kan je laten denken dat je een brief van Nana opent, maar zelfs als ik je voor de gek hou met de inhoud van de brief, dan stuur je Nana geen cheque opgemaakt naar CASH naar een adres in Nigeria (tenzij Nana Nigeriaans is) ). Dus uitdaging / reactie is een effectieve verdediging zolang je niet ook de mens in de Middled bent.


6
2017-12-03 18:05





Ik kan het bron-IP-adres dat ik wil instellen in een datagram.
Of mijn ISP zo'n pakket in het wild zou laten liggen, is een andere vraag.


5
2017-12-03 17:58



Is er hoe dan ook om het ISP-filter te omzeilen? - Pacerier


Hoewel dit zeker een realiteit is die moet worden aangepakt, is het onderliggende probleem echt niet-technisch: mensen met kwaadwillende bedoelingen die kwaadaardige dingen proberen te doen. De echte oplossing moet daarom ook niet-technisch zijn.

Ik denk dat wat Stackoverflow heeft gedaan, PRECIES de juiste oplossing is voor het hanteren van de tweede verdedigingslinie: de technieken om potentiële spamgebruikers te beperken door de verschillende manieren om hun mogelijkheden om te communiceren met het platform te beperken voordat ze een zekere mate van 'geloofwaardigheid' bereiken.

Deze technieken helpen niet alleen om de algehele kwaliteit van de site te verbeteren, ze prikkelen gebruikers in feite om meer betrokken te raken en bieden meer geloofwaardige / betrouwbare antwoorden.

Vanuit technisch oogpunt zou het beste zijn om te doen wat Google suggereert: gewoon efficiënt zijn in het absorberen / verwerken van de extra belasting.

Goed werk en blijven verbeteren!


5
2017-12-03 18:00





UDP is het belangrijkste onderdeel van waarom dit gemakkelijk is - in feite, Skype en Slingbox gebruiken de mogelijkheid om IP-adressen gemakkelijk in UDP te vervalsen naar 'stempelvia NAT en zorg voor eenvoudige peer-to-peer.

TCP is moeilijker omdat het een volledige SYN / ACK-cyclus vereist, maar je kunt de server nog steeds overspoelen met hangende SYN-pakketten die naar veel IP-adressen gaan en in feite een enorm aantal routers in het proces verbinden.


3
2017-12-03 18:22



De routers routeren alleen pakketten. Ze onderhouden geen TCP-status, dus een pakket is een pakket is een pakket voor hen. - Michael Graff
goed punt. Dus het zal servers (of welk ander front-end apparaat dan ook SYN / ACK onderhandeling) aan het wachten maken op hun ACK :-) We hebben onze load balancers geconfigureerd om SYN / ACK volledig te onderhandelen alvorens het uit te delen aan de servers op een al open verbinding, dus dat helpt in dat geval bigtime. - Justin