it-swarm.com.de

Warum sollte ich für eine Sitzung mehrere IP-Adressen auf einer Website zulassen?

Ich hoffe, meine Frage entspricht dem Umfang dieser Website.

Ich entwickle ein CMS . Derzeit sind meine angemeldeten Benutzer für die Sitzung an ihre IP-Adresse gesperrt. Leider springt ein kleiner Teil meiner Nutzerbasis ständig zwischen zwei oder mehr IP-Adressen. Die meisten von ihnen verwenden wahrscheinlich Load Balancer. Technisch ist es nicht erforderlich, die Benutzersitzungen an eine IP-Adresse zu sperren. Ich hatte nicht erwartet, dass Clients für eine einzelne Seitenanforderung auf meiner Website zwischen mehreren IP-Adressen wechseln.

Ich frage mich jetzt, welche Risiken bestehen, wenn meine Kunden ständig zwischen IP-Adressen für eine Seitenanforderung wechseln können (z. B. werden CSS-Dateien von xxx.xxx.xxx.xxx und JavaScript-Dateien von yyy.yyy.yyy angefordert. JJJ)? Sollte ich das generell zulassen oder verbieten?

18
yoru

ein kleiner Teil meiner Nutzerbasis springt ständig zwischen zwei oder mehr IP-Adressen.

Ursachen

Angenommen, Ihre Benutzer versuchen nicht aktiv, ihre tatsächlichen IP-Adressen mithilfe eines Anonymisierungsdienstes zu verbergen ...:

Die meisten Unternehmensbeispiele, die ich gesehen habe, werden von größeren Unternehmen und einigen ISPs verursacht, die einen Cluster von Proxyservern verwenden, die jeweils eine andere externe IP-Adresse haben, wobei Benutzeranforderungen über diesen Cluster verteilt werden.

Möglicherweise stellen Dual-Stack-Benutzer Anforderungen über IPv4 und IPv6 und wechseln für nachfolgende Anforderungen zwischen den beiden Protokollen RFC 8305 .

Das andere Szenario ist, wenn ich mich in der extremen Reichweite eines Wi-Fi-Zugangspunkts befinde und mein Gerät "zufällig" zwischen Wi-Fi und Mobilfunkdaten wechselt.

Lösungen

Im ersten Szenario können Sie Kompromisse eingehen, wenn Sie die "Sicherheit" dieser IP-Adresse in Ihren Sitzungen beibehalten, indem Sie nur die ersten drei Oktette berücksichtigen, da sich ein solcher Cluster von Proxyservern normalerweise alle in einem kleinen Subnetz befindet und benachbarte IP-Adressen hat.

Im zweiten und dritten Szenario sehen Sie völlig unterschiedliche Client-IP-Adressen, sogar von unabhängigen Anbietern.

Binden Sie Ihre Sitzungen nicht an eine bestimmte IP-Adresse, da dies die Benutzererfahrung eher beeinträchtigt als die tatsächlich verbesserte Sicherheit bietet.

35
HBruijn

Ich frage mich jetzt, welche Risiken bestehen, wenn meine Kunden ständig zwischen IP-Adressen für eine Seitenanforderung wechseln können (z. B. werden CSS-Dateien von xxx.xxx.xxx.xxx und JavaScript-Dateien von yyy.yyy.yyy angefordert. JJJ)? Sollte ich das generell zulassen oder verbieten?

Das Hauptrisiko besteht darin, dass ein böswilliger Benutzer die Sitzung entführt. Wenn Sie sich auf eine oder einen kleinen Satz von IP-Adressen beschränken könnten, könnten Sie Benutzer von völlig anderen IP-Adressen daran hindern, die Sitzung zu entführen.

Das Problem ist, dass einige Benutzer dies rechtmäßig tun. Unabhängig davon, ob sie einen Proxy mit Lastenausgleich verwenden oder sich am Rand von zwei drahtlosen Zugriffspunkten (oder was auch immer) befinden, verwenden sie mehrere IP-Adressen. Sie müssen es also so ziemlich für diese Benutzer zulassen. Und es ist schwer zu sagen, welche Benutzer mehrere IP-Adressen benötigen, außer wenn sie von mehreren IP-Adressen anfordern.

Eine Möglichkeit, die Auswirkungen zu verringern, ist die Verwendung von HTTPS. Dann muss der böswillige Akteur eine Möglichkeit haben, die sichere Schicht sowie das Sitzungscookie zu gefährden. Bei einer unsicheren Verbindung kann der böswillige Akteur lediglich die Netzwerkinspektion verwenden, um ein Sitzungscookie zu gefährden. Über HTTPS muss derselbe böswillige Akteur jedoch Zugriff auf eines der Enden der Konversation haben. Und wenn der böswillige Akteur das hat, ist es nicht notwendig, eine andere IP zu verwenden.

TL; DR: Sie sollten generell Anforderungen von verschiedenen IP-Adressen für denselben Benutzer zulassen. Es gibt legitime Gründe, warum dies passieren kann. Verwenden Sie stattdessen HTTPS, um sich vor dieser Klasse von Exploits zu schützen.

9
mdfst13

was sind die Risiken, wenn meine Kunden ständig zwischen IP-Adressen für eine Seitenanforderung wechseln können?

Aus Sicherheitsgründen - keine Risiken.

Nun aus praktischer Sicht. Dies bedeutet, dass Sie bestimmte Arten von Algorithmen weder für die Sicherheit noch für den DoS Schutz verwenden können.

Eine einfache Möglichkeit, Benutzeranforderungen zu drosseln, besteht darin, die IP-Adresse zu verfolgen. Da dies nicht mit Ihrem Anwendungsserver interagieren muss, können Sie dazu Dienste auf niedrigeren Ebenen verwenden. Software wie Apaches mod_evasive macht das. Sie können diese Techniken weiterhin verwenden, aber Benutzer, die IP-Adressen ändern, verringern deren Effektivität. Andererseits wechseln Benutzer ohnehin die IP-Adressen, sodass diese Techniken nie wirklich effektiv waren.

Ein verwandter, aber anderer Anwendungsfall ist das Drosseln fehlgeschlagener Anmeldeversuche. Dies soll das Erraten von Brute-Force-Passwörtern verhindern. Aber auch hier können Sie sowieso nichts tun, wenn Benutzer ihre IP-Adressen ändern. Ein wirklich ernsthafter Hacker würde nicht einmal seine eigenen Maschinen benutzen. Er würde nur einige Zeit in einem Botnetz kaufen (oder sein eigenes zuvor infiziertes Botnetz verwenden) und sich über 10.000 PCs anderer Personen (IP-Adressen) mit Ihrem Dienst verbinden. Dies hängt nicht wirklich mit der Einschränkung der IP-Adresse des Benutzers zusammen, da es sich um eine Voranmeldung handelt. Beachten Sie dies jedoch.

4
slebetman

Es gibt mehrere Gründe, warum ein Benutzer zu einer neuen IP-Adresse springen kann.

  1. IPv6-Datenschutzerweiterungen, viele IPv6-Clients springen heutzutage innerhalb der/64 auf dem LAN herum.
  2. Wenn Sie ausgeglichene Proxys laden, wird die Clientanforderung an einen von mehreren Proxys mit jeweils einer separaten IP weitergeleitet.
  3. NAT-Pools, das Border-Nat ist mit mehreren IP-Adressen konfiguriert und weist Client TCP -Verbindungen) IP/Port-Kombinationen aus dem Pool arbitarilly zu.
  4. Der Benutzer wechselt zwischen verschiedenen Netzwerken oder Teilen eines Netzwerks, wie es heutzutage bei Telefonen üblich ist.
  5. Dual-Stack-Benutzer können zwischen IPv4 und IPv6 wechseln.

Ich frage mich jetzt, welche Risiken bestehen, wenn meine Kunden für eine Seitenanforderung ständig zwischen IPs wechseln können

Das Sperren von Client-Sessoins an IPs hat den Vorteil, dass Angriffe auf Sitzungsdiebstahl schwieriger werden. Wenn ein Angreifer über einen Mechanismus verfügt, mit dem er die Client-Cookies stehlen kann, aber keine Verbindungen zu Ihrem Server über die IP-Adresse des Clients herstellen kann, verhindert die IP-Sperre, dass er die Sitzung stiehlt.

Der Nachteil ist, wie Sie sagen, dass einige Benutzer, deren Sitzung ohne ersichtlichen Grund ungültig ist, einen Bruch verursachen.

Die meisten Websites scheinen heutzutage der Meinung zu sein, dass der Bruch die Vorteile einer solchen Verriegelung überwiegt.

1
Peter Green