Moin!
Ist man aber nicht. Man ist nur unsichtbar, wenn der einem selbst übergeordnete Router an anfragende Rechner zurückmeldet, er könne die gewünschte IP nicht erreichen. Sowas müßte man also fingieren. Und ein guter Netzadministrator bei deinem Provider wird sowas nicht zulassen.
Aber den Satz versteh ich jetzt nicht wirklich. Wenn eine IP nicht erreichbar ist, kann man doch keinen Unfug mit ihr treiben? *blödguck*
Ok, Grundlagen der TCP/IP-Netzwerktechnik... :)
Wenn zwei Rechner direkt am gleichen Netzwerk (Ethernet) angeschlossen sind, dann läuft die Kommunikation zwischen "Angreifer" und "Opfer" (die Bezeichnungen sind gewählt, damit klar ist, wer unsichtbar werden will, und wer die Kommunikation initiiert) so:
Der Angreifer will an die IP des Opfers senden. Er weiß anhand seiner eigenen Netzmaske, dass er das Opfer im eigenen Netzwerksegment erreichen kann. Ein IP-Paket kann er aber nur zustellen, wenn er die Ethernet-Hardwareadresse kennt. Zu diesem Zweck gibt es das ARP-Protokoll. Der Angreifer schickt dazu einen Broadcast an alle Rechner: "Wer hat IP (IP des Opfers), bitte sagt es IP (IP des Angreifers)". Und ein normaler Opferrechner wird ARP antworten: "IP (IP des Opfers) hat Ethernet-Adresse BLAHHHH." Von diesem Moment an weiß der Angreifer, dass das Opfer existiert.
Nun ist ARP eines der vielen IP-Protokolle. Wenn man sämtliche IP-Kommunikation filtern würde (also beispielsweise nur Daten von und zum Router akzeptiert, und nichts anderes aus dem internen Netz), würde der Angreifer keine Antwort erhalten, und der Opferrechner wäre tatsächlich unsichtbar - so, als wäre er gar nicht eingeschaltet.
Aber im Internet wird der Opferrechter vom Angreifer immer über den Router angesprochen, der direkt vor dem Opfer aufgebaut ist und dieses direkt mit Daten versorgt. Der Router muß wissen, dass die IP des Opfers existiert, sonst könnte dieses ja garnicht mit dem Internet kommunizieren.
Wenn also vom Angreifer Datenpakete für die IP des Opfers hereinkommen, dann sendet der Router diese weiter, wenn er mit der IP kommunizieren kann. Er fragt beim ersten Mal (Opfer ist gerade online gegangen und hat eine neue IP gekriegt), welche Hardwareadresse (ethernetmäßig) denn diese eine IP hat, und weiß ab dann, dass das Opfer existiert (bei einem anderen als dem Ethernet als Medium weiß der Router es auf eine andere Weise. PPP beispielsweise ist als Punkt-zu-Punkt-Verbindung gar nicht anders denkbar, als dass am anderen Ende der Leitung das Opfer sitzt und lauscht).
Wenn der Router jetzt also ein Datenpaket hereinkriegt, wird dieses genau dann an die Opfer-IP weitergeleitet, wenn der Router weiß, dass diese existiert. Da er diese Existenz unter seiner eigenen IP herausfindet (ARP wird immer nur je Netzwerksegment gesprochen, es zu routen macht wenig Sinn), kann das Opfer die Anfragen keiner guten oder bösen IP-Adresse eines Angreifers zuordnen, und antwortet wahrheitsgemäß.
Wenn der Router keine IP des Opfers feststellen konnte, weil dieses wirklich echt offline ist, nur dann wird es an den Angreifer zurückmelden: "Die IP kann ich gerade nicht erreichen."
Es ist für den Angreifer also ganz leicht, zu unterscheiden:
1. Das Opfer antwortet auf eine Verbindungsanfrage mit "Mach weiter" - Port ist offen.
2. Das Opfer antwortet auf eine Verbindungsanfrage mit "Hä?" - Port ist geschlossen.
3. Das Opfer antwortet auf eine Verbindungsanfrage gar nicht - Port ist gefiltert (das Datenpaket wurde aber empfangen!)
4. Der übergeordnete Router antwortet mit "Kann Opfer nicht erreichen" - das Opfer ist wohl offline.
Den Fall 1 und 2 kann man problemlos ohne Firewall erreichen. Zustand 3 ist nur mit einer Firewall machbar, welche standardwidrig auf Anfragen keine Antwort gibt.
Es ist aber absolut denkbar, dass eine Firewall einen derart dummen Bug hat, dass ein passend gearbeitetes IP-Paket diese zum Absturz bringt, oder schlimmeres. Schließlich wird das Paket empfangen und verarbeitet, bevor entschieden wird, nicht zu antworten. Mit derselben Begründung kann man argumentieren, dass auch geschlossene Ports böse sind - da wird das Paket ja auch verarbeitet, bevor abschlägig geantwortet wird. Im Grunde sind geschlossene oder gefilterte Ports absolut gleichwertig in ihrer Aussage.
Der Nachteil bei gefilterten Ports ist: Der Angreifer wird es allein aufgrund der Implementation von TCP mehrfach mit einer Verbindungsaufnahme versuchen. Denke man einfach nur mal an den Traffic, der auf nahezu jeder DSL-Leitung durch Tauschbörsen reinkommt. Wenn man eine Firewall einsetzt, die nicht antwortet, wird die Gegenseite es noch mehrfach mit einer Verbindungsaufnahme versuchen - keine Antwort kann ja auch ein verlorengegangenes Datenpaket bedeuten, dass durch TCP abgesichert werden und nochmal übertragen werden muß. Wenn die Firewall einfach einen geschlossenen Port signalisiert, dann gibt die Gegenseite sofort Ruhe - verursacht also weniger Traffic auf der Leitung.
Wenn man also unsichtbar im Internet sein will, muß der vorgelagerte Router antworten "Kann ich nicht erreichen". Da er genau das nicht von selbst tun wird, weil ja genau das Gegenteil stimmt, muß man diese Aufgabe selbst erledigen. Und dazu eben die Absender-IP fälschen. Denn es wäre höchst unglaubwürdig, wenn das Opfer selbst über sich behauptet: "Es ist keiner zuhause!"
- Sven Rautenberg
--
Die SelfHTML-Developer sagen Dankeschön für aktuell 21205,05 Euro Spendengelder!