Kann die IP-Adresse für eine HTTP-Anfrage gefälscht werden?


27

Auf einer Website, die ich gerade erst baue, möchte ich die IP-Adressen von Einsendungen protokollieren, für den Fall, dass dies erforderlich ist. Ich habe nichts gegen Proxies, aber das direkte Fälschen Ihrer IP-Adresse würde den Zweck zunichte machen.

Ist eine legitime IP-Adresse erforderlich, um eine vollständige GET-Aktion auszuführen (unabhängig davon, ob Sie sie erhalten oder ob sie durchlaufen hat oder nicht)? Oder eine Website mit Posts von zufällig gefälschten IP-Adressen?

(Ist POST anders?)


2
Ein anderer Ansatz ist der von DuckDuckGo: Sie verfolgen keine IP-Adressen, nur für den Fall, dass sie danach gefragt werden. Die Datenschutzbestimmungen finden Sie unter duckduckgo.com/privacy.html#s3 . Sie sagen "nur für den Fall, dass es notwendig ist" - haben Sie gute Ideen, warum es notwendig sein könnte?
Randy Orrison

Antworten:


31

Nun ja. Oder vielleicht. Es hängt davon ab, woher Sie Ihre "IP-Adresse" beziehen und ob Sie ihnen vertrauen.

Wenn Sie die Adresse aus den IP-Paketen selbst entnehmen, können Sie darauf vertrauen, dass derjenige, der die Pakete gesendet hat, Zugriff auf Pakete hat, die an diese IP-Adresse gesendet wurden. Dies kann bedeuten, dass es sich um einen legitimen Benutzer dieser IP-Adresse handelt (für entsprechend begrenzte Werte des Wortes "legitim" in Zeiten von Botnetzen, offenen Proxies und Tor) oder dass jeder, der die Pakete gesendet hat, Zugriff auf ein Zwischensystem hat und kann die Pakete sehen, die Sie senden, wenn sie vorbeigehen.

Bei der großen Verbreitung von Reverse-Proxys kann das IP-Paket jedoch häufig die Quelle der Verbindung falsch darstellen. Daher wurden verschiedene HTTP-Header eingeführt, um die Bereitstellung der "tatsächlichen" Ursprungs-IP-Adresse durch den Proxy zu ermöglichen. Das Problem hierbei ist, dass Sie darauf vertrauen müssen, wer den Header sendet, um genaue Informationen bereitzustellen. Außerdem können Standardkonfigurationen (oder fehlgeleitete kopierte Konfigurationen) Sie leicht für das Spoofing dieser Header offen lassen. Daher müssen Sie feststellen, ob Reverse-Proxys zu Recht an Ihren Anforderungen beteiligt sind, und sicherstellen, dass sie (und Ihr Webserver) ordnungsgemäß konfiguriert und gesichert sind.


23

Nein.

TCP-Verbindungen (die HTTP verwendet) erfordern bidirektionale Kommunikation. Während Sie die Quell-IP eines SYNPakets leicht fälschen können, wird die SYN-ACKAntwort vom Server an die IP weitergeleitet, die Sie im ursprünglichen Paket gefälscht haben. Sie können die Verbindung nur dann herstellen, wenn Sie die Antwort vom Server sehen.

Anonyme Proxy-Tools wie Tor bieten jedoch die Möglichkeit, die Quelle einer Verbindung auf einfache Weise zu anonymisieren. Beachten Sie, dass dies die Spam-Kontrolle durch IP-Sperren auf einfache Weise aufheben kann.


12

Kurze Antwort ... nicht heute kannst du nicht.

In der Vergangenheit waren Computer in den Folgenummern für den TCP-Verkehr sehr vorhersehbar. Das bedeutet, dass ein Angreifer nur legitimen Datenverkehr sendet, bis er die Folgenummern herausgefunden hat, und ziemlich gut erraten kann, was als Nächstes kommen wird. Dann würde es den TCP-Verkehr senden, um eine gefälschte IP-Adresse nachzuahmen, und der Host am anderen Ende würde glauben. Also könntest du das vortäuschen Drei-Wege-Handschlag .

Heute und ich würde sagen, 10+ Jahre. Computer sind viel besser darin, das zu randomisieren, also ist es ziemlich schwer, wenn nicht unmöglich. Meiner Meinung nach wäre es Zeitverschwendung, wenn ein Angreifer dies tun würde.


8

HTTP läuft über TCP. Damit TCP funktioniert, benötigen Sie den vollständigen 3-Wege-SYN / ACK-Handshake, bevor Sie weit genug kommen, um eine GET- oder POST-Anfrage zu stellen, sodass eine einfache gefälschte Quelle nicht viel bringt. Andere fortgeschrittenere Formen des Spoofings (MitM) wären weiterhin wirksam.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.