Verständnisfrage zum IP-Stack und Routing
-
Ich habe letzens einen interessanten Artikel über verschiedene Hacking-Methoden gelesen, darunter das manuelle Ändern der IP eines Pakets vor dem Absenden für DDoS-Attacken.
Im Grunde geht es darum, dass der Angreifer jedes Paket, welches das Netzwerkinterface verlässt, noch einmal abändert, indem er irgendeine IP als Absender angibt und dann erst das Frame zur Weiterleitung an den nächsten Router/Switch sendet. Effektiv soll das Ganze dann sein, wenn der Inhalt nur eine TCP-Anforderung zum Abbrechen der Verbindung enthält, weil Dienste generell dann mit einem Abbruchpaket antworten - welches dann an die IP geht, die im letzten TCP-Signal drin war.Da ich gerade versuche, einen kleinen Web-Server auf Linux zu programmieren, wäre da die Frage, ob ich dieses Fluten des Servers verhindern kann, ohne auf Paket-Ebene runter zu müssen (lauf POSIX PF_RAW). Aber selbst dann, da die IP immer ändert, kann ich höchstens ein allgemeines Limit etablieren, oder wird im Frame eventuell noch die MAC-Adresse übergeben? Und was, wenn es sich um einen Schlauberger handelt, der die MAC-Adresse abändern kann (bspw. über Skript)?
Ich habe zudem überlegt, dass die oben beschriebene Attacke allerdings nur dann wirksam sein kann, wenn der Rechner eine öffentliche IP zugewiesen erhalten hat. Wenn der Angreifer in einem privaten Netzwerk sitzen würde, wäre der letzte Router vor dem eintreffen der Antwort der mit der Quell-IP, und die wäre intern. Statt 192.168.0.55 beispielsweise stünde also 55.55.55.55 drin, das heißt, der Router kann die Antwort nicht ans Ziel bringen. Da der Router aber eine IP vom Provider hat, könnte man ihn damit verfolgen, eine solche Attacke wäre nur dann erfolgreich, wenn der letzte Router nicht seiner, sondern ein anderer wäre, der dann plötzlich versuchen würde, die IP der fremden Maschine zu erreichen.
Gibt es in diesem Fall, wo die Maschine sozusagen "blank" am Netz hängt, eine Möglichkeit, bei einer schlecht konfigurierten Firewall ohne IP und Quelle immer noch das A****loch zu erwischen, dass einen angreifen würde? Wie verhindere ich diese Attacken als Programmierer (unglaublich allgemein formuliert, ich weiß ...)?
-
Was genau ist deine Frage?
Eine IP Adresse ist kein Merkmal an dem man einen Rechner eindeutig identifizieren kann.
Das alles hat mit einem Webserver aber nichts zu tun.
PS:
ist deine Frage was man gegen DDoS machen kann?
-
Verzeihung?
Wird im Frame eventuell noch die MAC-Adresse übergeben?
Und was, wenn es sich um einen Schlauberger handelt, der die MAC-Adresse abändern kann (bspw. über Skript)?Gibt es in diesem Fall, wo die Maschine sozusagen "blank" am Netz hängt, eine Möglichkeit, bei einer schlecht konfigurierten Firewall ohne IP und Quelle immer noch das A****loch zu erwischen, dass einen angreifen würde? Wie verhindere ich diese Attacken als Programmierer?
Eine IP Adresse ist kein Merkmal an dem man einen Rechner eindeutig identifizieren kann.
Ich rede auch nicht direkt über den Rechner, sondern über den Besitzer/Halter der IP, welcher über ISP-Logs ermittelbar ist. In Deutschland haben die größeren ISPs ja ohne Not einen Vertrag unterschrieben, die Kommunikation mitzuschneiden.
-
Der aus dem Westen .. schrieb:
Verzeihung?
OK, dann beantworte ich diese Fragen halt. Bringt dir nur nix. Aber bitte.
Wird im Frame eventuell noch die MAC-Adresse übergeben?
Und was, wenn es sich um einen Schlauberger handelt, der die MAC-Adresse abändern kann (bspw. über Skript)?Manchmal.
Dann ist sie anders.Gibt es in diesem Fall, wo die Maschine sozusagen "blank" am Netz hängt, eine Möglichkeit, bei einer schlecht konfigurierten Firewall ohne IP und Quelle immer noch das A****loch zu erwischen, dass einen angreifen würde? Wie verhindere ich diese Attacken als Programmierer?
Klar, dafuer gibt es ja Netzwerkueberwachung.
IP Spoofing ist keine Attacke.Ich rede auch nicht direkt über den Rechner, sondern über den Besitzer/Halter der IP, welcher über ISP-Logs ermittelbar ist. In Deutschland haben die größeren ISPs ja ohne Not einen Vertrag unterschrieben, die Kommunikation mitzuschneiden.
Und was wenn der Angreifer in China sitzt und sich eine deutsche IP geholt hat?
Diese Antworten bringen dir nichts. Deshalb: Frage worum es dir wirklich geht. Ich habe ein bisschen das Gefuehl, dass du einen Artikel gelesen hat und ihn nicht ganz verstanden hast weil dir die Hintergrund Infos fehlen.
Deshalb wollte ich, dass du sagst in welche Richtung deine Fragen gehen, dann kann man dir die Sachen auch gut erklaeren. Aber wie das IP funktioniert zu erklaeren, sprengt hier den Rahmen
PS:
Das Problem ist, dass deine Fragen falsch sind. zB ist eine MAC Adresse irrelevant Abseits einiger sehr wenigen Situationen. Fuer einen Webserver ist eine MAC Adresse zB komplett uninteressant. Oder zB IP Spoofing ist eigentlich nur in DDoS Angriffen interessant. etc.
-
IP Spoofing ist keine Attacke.
... aber eine Möglichkeit, eine Attacke zu verheimlich, sodass sie nicht mehr zurückverfolgen ist.
Und was wenn der Angreifer in China sitzt und sich eine deutsche IP geholt hat?
Darüber mache ich mir eher wenig Gedanken. Wenn der Kerl hinter einem Proxy sitzt, DDosd er damit nur den Proxy, nicht sein eigentliches Ziel.
Diese Antworten bringen dir nichts. Deshalb: Frage worum es dir wirklich geht. Ich habe ein bisschen das Gefuehl, dass du einen Artikel gelesen hat und ihn nicht ganz verstanden hast weil dir die Hintergrund Infos fehlen.
Ein paar Hintergrundinfos fehlten tatsächlich, aber glaube, ich sehe jetzt ein wenig klarer.
Das mit dem Transport von Informationen über das Verpacken in verschiedene Protokolle (HTTP-Anfrage => über SSL/TLS nach HTTPS => TCP => IP => Frame) habe ich schon verstanden, es geht mir Hauptsächlich um Tracking-Maßnahmen. Dass mir eine IP nicht direkt etwas über den Angreifer sagt, ist mir bewusst (wozu gibt es DHCP-Server?) - daher ganz banal gefragt:
Wenn ich (als Angreifer mit Alufolie um den Kopf - die Perfektionisten aus schlechten Filmen halt) keine kompromittierenden HTTP-Header mitsende, keine (verwertbaren) MAC-Adressdaten preisgebe, nicht die eigene IP, sondern eine X-beliebige in die Pakete injiziere (und der vorliegende Router die Antwort dorthinleiten wird, sodass ich aus dem Schneider bin) - welche Chancen hat der Admin oder generell irgendjemand, diesen Angreifer zu erwischen? Der Server, den ich schreibe, soll automatisch Angreifer erkennen und direkt eine Mail an den Admin mit HTTP- und IP-Daten, die aus den Paketen extrahiert wurden (ist ja kein Problem, sowas zu schreiben, es geht nur um das Konzept) senden und den Netzbereich für eine halbe Stunde sperren. Ich möchte wissen, welche Mittel und Wege ich habe, Angreifer die Maske vom Gesicht zu ziehen.
Reicht das?
-
PS: es gibt noch eine Form der Attacke, bei der IP Spoofing interessant ist - bei absurden Requestgrößen. Wenn ich beispielsweise eine XML-Schnittstelle anbiete, ist es ohne weiteres möglich, einen kleinen Request abzusenden, der mit ... glaub, es waren sowas wie Labels ... entpackt auf 4 GB Größe kommen. Sowas soll ebenfalls identifiziert werden.
-
Der aus dem Westen .. schrieb:
IP Spoofing ist keine Attacke.
... aber eine Möglichkeit, eine Attacke zu verheimlich, sodass sie nicht mehr zurückverfolgen ist.
Eine DDoS Attacke ist defakto nicht zurueckverfolgbar - denn das erste D in DDoS steht fuer Distributed. dh wenn du Pech hast schiesst dich ein Botnetz ab. Dann musst du den Betreiber ausforschen und der ist ja nur Dienstleister fuer den eigentlichen Angreifer.
Der Ansatz ist einfach falsch.
Und was wenn der Angreifer in China sitzt und sich eine deutsche IP geholt hat?
Darüber mache ich mir eher wenig Gedanken. Wenn der Kerl hinter einem Proxy sitzt, DDosd er damit nur den Proxy, nicht sein eigentliches Ziel.
Ich glaube da verstehst du etwas falsch. Diese Aussage macht keinen Sinn.
Wenn ich (als Angreifer mit Alufolie um den Kopf - die Perfektionisten aus schlechten Filmen halt) keine kompromittierenden HTTP-Header mitsende, keine (verwertbaren) MAC-Adressdaten preisgebe, nicht die eigene IP, sondern eine X-beliebige in die Pakete injiziere (und der vorliegende Router die Antwort dorthinleiten wird, sodass ich aus dem Schneider bin) - welche Chancen hat der Admin oder generell irgendjemand, diesen Angreifer zu erwischen?
Du als Privatperson hast keine Chance. Du als Privatperson hast auch keine Chance wenn die Daten nicht verschleiert sind. So gut wie kein Angriff findet mit gespooften IP Adressen statt. Der Aufwand lohnt nicht. Ich miete mir ein Botnetz oder nur ein paar Drones und fertig.
Dann gehoert die IP Lieschen Mueller aus dem Nachbardorf. Was bringt dir diese Info dann?
Der Server, den ich schreibe, soll automatisch Angreifer erkennen und direkt eine Mail an den Admin mit HTTP- und IP-Daten, die aus den Paketen extrahiert wurden (ist ja kein Problem, sowas zu schreiben, es geht nur um das Konzept) senden und den Netzbereich für eine halbe Stunde sperren. Ich möchte wissen, welche Mittel und Wege ich habe, Angreifer die Maske vom Gesicht zu ziehen.
Schlechte Idee. Damit bist du enorm DoS anfaellig.
DDoS Angriffe faengt man auf einer anderen Ebene ab. Das Problem mit DDoS ist folgendes: egal wie genial deine Software ist, du hast nur eine Bandbreite von X Mbit. Wenn ich aber X+1 MBit Bandbreite fuer den Anrgiff zur verfuegung habe, dann Muelle ich dir deine Leitung voll und du kannst nichts tun. Auch wenn du alle Pakete von mir Rejectest - alleine dass diese Pakete zu dir kommen legt dich lahm.
DDoS Angriffe haben wir also abgehakt - da kann ein Webserver nichts tun.
Angriffe auf Protokolle sind da natuerlich etwas anderes. zB ist ein beliebter Angriff auf Virenscanner ZIP Dateien die sich unendlich entpacken lassen. Damit kann man recht leicht einen Virenscanner lahmlegen. Solche Angriffe muss man individuell kontern. Da gibt es keine General-Loesungen.
idR ist der richtige Punkt Angriffe zu erkennen aber eine dedizierte Box im Netzwerk. Dort faehrt man dann eine ordentliche Firewall mit Intrusion Detection System und Intrusion Prevention System mit Deep Packet Inspection und Statefull Packet Inspection. Um mal ein paar Begriffe in den Raum zu werfen.
Hier gibt es bereits viele fertige Loesungen.
Was der Webserver selber machen kann, ist einfach nur seine eigenen Protokolle absichern. Alles andere sollte der Firewall ueberlassen werden.
Reicht das?
Ja, das ist Perfekt.
-
Vielen Dank für die Infos - ich muss ein paar Nummern zu klein gedacht haben.
Hast du noch bestimmte Buchtipps oder generell Schlagworte in die richtige Richtung, in die ich mich einlesen kann?
-
Ich glaube da verstehst du etwas falsch. Diese Aussage macht keinen Sinn.
Kann es sein, dass hier 'Botnetz' mit 'Proxy' vermischt wurde? So sähe ich auch keinen Sinn in der Aussage - ansonsten, wenn ich bspw. über einen Proxy in Odessa oder Neufundland angreifen würde, würde ich das über den Proxydienst machen. DoS geht dann aber direkt an den Proxy, und das eigentliche Ziel macht nix.