Seite 1 von 3

invalid_session - neuer Lösungsansatz?

Verfasst: 30.01.2003 21:26
von PhilippK
Hallo zusammen,

nachdem ja schon mehrfach über das invalid_session-Problem bei der 2.0.4 berichtet wurde, hab ich mir dazu auch ein paar Gedanken gemacht.

1. Wieso wurde das geändert?
Mit der Änderung sollen zwei mögliche Angriffsmöglichkeiten unterbunden werden:
  1. Die Möglichkeit, eine z.B. über den Referer des Browsers erfahrene Session-ID zu benutzen, um auf das Forum mit Moderator- oder Admin-Rechten zugreifen zu können
  2. Die Möglichkeit über ein Formular gezielt Daten an eine Seite des Forums zu schicken, die dann - wenn das AutoLogin-Feature aktiviert ist - Beiträge löscht oder dergleichen.
2. Wann greift der Mechanismus?
Da der Fehler 'Invalid_session' bei dem 2. Punkt auftritt, betrachtet wir zuerst diesen:
Dort tritt der Fehler auf, wenn die vom absendenden Formular übergebende Session-ID nicht mit der in den Benutzerdaten ($userdata[]) hinterlegten übereinstimmt. Dabei werden die Benutzerdaten aus der Session-Tabelle genommen, sofern die ersten drei Oktetts der IP-Adresse mit der in der Session-Tabelle übereinstimmen (der Grund dafür ist oben genannter Punkt 1), ansonsten wird eine neue generiert (Hinweis für die Code-Leser: der UPDATE-Teil in der Funktion session_begin(...) (sessions.php) ist in diesem Fall meiner Ansicht nach nie erfolgreich).
Siehe auch: http://www.phpbb.com/phpBB/viewtopic.php?t=69493

3. Wann tritt das Problem auf?
Die Meldung 'Invalid_session' tritt dann auf, wenn folgende Bedingungen erfüllt sind:
  1. Es wird ein Formular übermittelt, dass mit der entsprechenden Sicherheitsüberprüfung ausgestattet ist
  2. Die IP-Adresse des Benutzers hat sich in der Zwischenzeit in den ersten drei Oktetts geändert (tritt vor allem bei AOL auf)
Damit werden zwar die oben genannten Gefahren beseitigt, allerdings werden auch Vorgänge blockiert, die eigentlich zulässig sind.

4. Lösungsansatz
Es existieren Lösungsansätze für das Problem, die i.d.R. darauf basieren, dass der Schutzmechanismus für das erste Problem reduziert oder abgeschaltet ist. Die Frage ist, ob es auch andere Wege gibt, dieses Problem zu vermeiden, ohne das Sicherheitsniveau zu reduzieren.

Bei Überlegungen dazu kam mir folgende Idee: i.d.R. wird beim Surfen im Web auch eine Information übertragen, die einen Verweis auf die Seite enthält, von der aus auf die aktuelle Seite gesprungen wurde. Wenn wir diesen String auswerten, können wir feststellen, ob der Aufruf von einer Seite innerhalb unseres Boards kam oder nicht (dabei müssen wir jedoch sicherheitshalber die Datei viewtopic.php ausnehmen, da wir dort keine Kontrolle über den Inhalt haben). Kommt der Aufruf aus dem Hauptverzeichnis des Boards oder dem Admin-Verzeichnis, können wir die beiden Angriffe ausschließen (es sei denn, unser Server wurde gehackt - aber dann ist sowieso alles zu spät). Somit können wir in genau diesem Fall auf den IP-Check verzichten und damit das Problem lösen :-) (und wer keinen Referer übermittelt ist halt selbst schuld).


Meine Bitte:
Vielleicht kann der ein oder andere von euch diesen Gedankengang nochmals prüfen, bevor ich ihn dann implementieren kann und auf phpbb.com poste.

Gruß (und Danke),

Philipp

Verfasst: 09.02.2003 19:17
von gegenwart
Hm, ok klingt logisch.
Aber was kann ich dagegen tun?? Ich kann seit mehreren Stunden nichts mehr posten! So sicher soll das Board nun auch nicht sein :-/

Verfasst: 09.02.2003 19:23
von gegenwart
Jetzt habe ich gemerkt, dass ich ein neuen Thread öffnen kann... aber beim Antworten kommt immer der Fehler :-/

Verfasst: 18.02.2003 08:01
von basti
Hi,
mir geht es genauso, ich kann einen neuen Thread eröffnen, aber nicht antworten. Habe schon laut Anleitung die Sessions rausgenommen, das funzt aber auch nicht. Was nun ?

Re: invalid_session - neuer Lösungsansatz?

Verfasst: 18.02.2003 11:12
von Gast
PhilippK hat geschrieben:... i.d.R. wird beim Surfen im Web auch eine Information übertragen, die einen Verweis auf die Seite enthält, ...
Hab zwar nicht die große Ahnung, aber ist das evtl. ein möglicher Lösungsansatz:
Es werden bei phpbb doch Cookies verwendet. Könnte man darüber nicht feststellen, dass es der gleiche User ist oder ist das zu unsicher?

Gruß Friese

Verfasst: 18.02.2003 11:16
von Friese
Das man hier nicht mal in Ruhe 'nen Beitrag schreiben kann ohne ausgeloggt zu werden. :evil: :wink:

Der letzte Beitrag war von mir.

Gruß Friese

Verfasst: 23.02.2003 23:28
von PhilippK
Also meiner Ansicht verhindert ein Cookie das Session-Hyjacking auch nicht hundertprozentig - auch wenn der Aufwand dafür etwas größer ist.
Aber irgendwie scheint's dafür noch nicht die richtige Lösung zu geben...

Gruß, Philipp

Verfasst: 23.02.2003 23:40
von Friese
wie sieht es denn aus mit dem Vorschlag (wurde hier unter einem anderen topic gepostet), dass AOL-User den IE nutzen sollen?

Funktioniert das denn einwandfrei?

Gruß Friese

Verfasst: 23.02.2003 23:53
von PhilippK
Friese hat geschrieben:wie sieht es denn aus mit dem Vorschlag (wurde hier unter einem anderen topic gepostet), dass AOL-User den IE nutzen sollen?

Funktioniert das denn einwandfrei?
Der Vorschlag dürfte recht wenig bringen, da sich dadurch an der IP-Adressverwaltung von AOL immer noch nichts ändert.

Die Jungs sollen sich 'nen anständigen Internet-Provider suchen, das löst das Problem am einfachsten ;-)

Gruß, Philipp

Verfasst: 24.02.2003 00:01
von Friese
PhilippK hat geschrieben:Die Jungs sollen sich 'nen anständigen Internet-Provider suchen, das löst das Problem am einfachsten ;-)
Wäre mir auch am liebsten.

Da ich aber vorhabe von einem laufenden "0815"Forum auf phpbb umzustellen, gibt es leider schon einige die AOL nutzen.

Un wie sollen die das mit dem Wechsel hinbekommen? Ich nehme an, dass die meisten AOLer froh sind, wenn sie irgendwann nach dem AOL-CD-einlegen sagen können "ich bin drin" :wink:

Gruß Friese