Session Fixation

Session Fixation

Session Fixation (auf deutsch etwa: „Festlegung einer Kommunikationssitzung“) ist ein Angriff auf eine verbindungsbehaftete Datenkommunikation zwischen zwei Computern.

Inhaltsverzeichnis

Modus Operandi

Während die Teilnehmer einer verbindungslosen Kommunikation Nachrichten ohne definierten Bezug zueinander austauschen, wird bei einer verbindungsbehafteten Kommunikation zunächst eine logische Verbindung (Sitzung, engl. Session) aufgebaut. Damit ein Rechner mehr als eine Sitzung gleichzeitig unterhalten kann, wird jede Session mit einer eindeutigen, möglichst schwer zu erratenden Session-ID identifiziert.

Um den Angriff dieses Typs durchzuführen, lässt sich der Angreifer von dem anzugreifenden System eine gültige Session-ID ausstellen und schiebt diese dem Opfer unter. Authentisiert sich das Opfer anschließend auf Basis dieser Session-ID gegenüber dem anzugreifenden System mit seinen Zugangsdaten, kann auch der Angreifer Zugriff auf dieses System erlangen, solange die von ihm vorher festgelegte Session-ID gilt. Ab diesem Zeitpunkt kann sich der Angreifer als sein Opfer ausgeben und unter dessen Rechtekontext Daten ausspähen oder verändern.

Im Gegensatz zum Session Hijacking versucht der Angreifer bei der Session-Fixation also nicht, eine bestehende Session seines Opfers zu entführen.

Techniken des Unterschiebens

Dieser Angriff ist am häufigsten bei der Kompromittierung von Webanwendungen anzutreffen, darum bezieht sich der folgende Abschnitt auch ausschließlich auf ein solches Szenario. Während es für den Angreifer in der Regel relativ leicht ist, an eine gültige Session-ID zu gelangen, hat er für das Unterschieben nur eine begrenzte Anzahl Möglichkeiten zur Verfügung:

URL-Manipulationen

Akzeptiert die Webanwendung Session-IDs als Parameter eines HTTP-GET- oder -POST-Aufrufes, kann der Angreifer dem Opfer die Session-ID mit Hilfe einer manipulierten URL unterschieben. Eine solche manipulierte URL könnte wie folgt aussehen, wobei 30fz93 hier die Session-ID wäre:

http://www.example.com/login.asp?session=30fz93

Um den Inhalt und insbesondere die Parameter der URL zu verschleiern, könnte der Angreifer auch auf einen Kurz-URL-Dienst zurückgreifen. Die URL kann dem Opfer beispielsweise per E-Mail zugesendet oder sonstwie genannt werden oder sie kann als Link oder als Ziel eines HTML-Formulars auf einer Webseite hinterlegt werden. Bei dieser Methode des Unterschiebens ist der Angreifer aber immer darauf angewiesen, dass sein Opfer die URL öffnet bzw. ein Formular absendet. Wird die manipulierte URL aber beispielsweise als Quell-URL für ein in eine Webseite oder E-Mail eingebettetes Bild verwendet, wäre selbst dies nicht notwendig.

Cross-Site-Scripting

Ist die zu kompromittierende Webanwendung anfällig für einen Cross-Site-Scripting-Angriff und kann der Angreifer über diese Sicherheitslücke JavaScript-Code einführen, kann er hierüber auch eine zuvor generierte Session-ID unterschieben.

Cross-Site-Cooking

Ist der Browser des Opfers anfällig für einen Cross-Site-Cooking-Angriff, kann der Angreifer dem Opfer ein Cookie für die zu kompromittierende Webanwendung unterschieben, falls dieses eine völlig andere Webseite besucht, über die der Angreifer Kontrolle hat.

Zugriff auf den PC des Opfers

Hat der Angreifer physikalischen Zugriff auf den Rechner und das Benutzerkonto seines Opfers, kann er die Session-ID direkt in dem Browser seines Opfers hinterlegen. Alternativ kann er sich auch vom Rechner seines Opfers aus eine neue Session-ID ausstellen lassen und sich merken. Obwohl es sich dann strenggenommen nicht mehr um ein Unterschieben, sondern um ein Ausspähen der Session-ID handelt, gehört auch diese Methode noch zum Angriff der Session fixation. Ein physikalischer Zugriff ist nicht notwendig, wenn der Angreifer aus der Ferne die Kontrolle über den PC erlangen kann. Dies kann entweder über eine Sicherheitslücke in anderen Anwendungen oder dem Betriebssystem, über ein Benutzerkonto mit administrativen Rechten oder über ein Trojanisches Pferd geschehen.

Gegenmaßnahmen

Es gibt mehrere Sicherungsmaßnahmen sowohl für den Anbieter des Webdienstes als auch für den Nutzer.

des Nutzers

Die folgenden Maßnahmen bieten keine absolute Sicherheit gegen Angriffe durch Session Fixation, heben jedoch die technischen Hürden für Angreifer.

  • Internetnutzer sollten sich bei Webangeboten versichern, ob sie sich auf der richtigen Seite befinden und ob die Seite sichere Verschlüsselungsverfahren wie SSL unterstützt (wobei SSL, für sich genommen, Session-Fixation nicht verhindern kann).
  • Internetnutzer sollten sich sicherheitshalber nach dem Besuch des Webdienstes immer ausloggen, damit fremde Personen die Internetseite nicht im Verlauf des Browsers wieder aufrufen können um die Session-ID des Nutzers zu bekommen.
  • Bei der Verwendung von Cookies nicht die oft angebotene Option „Anmeldung merken“ auswählen, da diese dann meist ein persistentes Cookie vergibt.
  • Bei Verwendung von Basic/Digest Authentication den Browser und all seine Instanzen schließen (da Basic/Digest Auth kein Logout kennt).

des Dienstanbieters

  • Zum Zeitpunkt des Logins eines Benutzers sollten keine früheren Informationen über die Identität des Benutzers übernommen werden. Das bedeutet, beim Login sollte immer eine neue Session zugewiesen werden. Nicht personenbezogene Daten zur schon existierenden Session können durchaus in die neue Session übernommen werden.
  • Wenn nicht zwingend nötig, sollte einem nicht-eingeloggten Benutzer gar nicht erst eine Session zugewiesen werden.
  • Weitere schon gegen das Session Hijacking nützliche Maßnahmen gelten auch hier:
    • Sessions sollten einen Timeout haben. Sowohl einen weichen, der bei Nicht-Benutzung greift, als auch einen harten, der die Session nach einer Maximalzeit verfallen lässt. Auch sollte die Session-ID nur eine begrenzte Gültigkeit haben und nach Ablauf durch eine neue Session-ID ersetzt werden.
    • Sessions sollten an eine IP-Adresse oder einen Fingerabdruck des Client (beispielsweise eine Kombination aus User-Agent-Kennung und anderen vom Client gesendete Header-Felder) gebunden sein. Wird versucht die Session von einem Computer mit einer anderer IP-Adresse oder einem anderen Fingerabdruck als dem ursprünglichen zu nutzen, sollte diesem eine neue Session zugewiesen werden.
  • Die Webanwendung muss eine Logout-Möglichkeit bieten. Beim Logout muss dann sowohl die Session-ID zum Client (z. B. Cookie) als auch das Session-Objekt auf dem Server gelöscht werden.

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Session fixation — attacks attempt to exploit the vulnerability of a system which allows one person to fixate (set) another person s session identifier (SID).Most session fixation attacks are web based, and most rely on session identifiers being accepted from URLs… …   Wikipedia

  • Session-Hijacking — (auf deutsch etwa: „Entführung einer Kommunikationssitzung“) ist ein Angriff auf eine verbindungsbehaftete Datenkommunikation zwischen zwei Computern. Während die Teilnehmer einer verbindungslosen Kommunikation Nachrichten ohne definierten Bezug… …   Deutsch Wikipedia

  • Session poisoning — (also referred to as Session data pollution and Session modification ) is to exploit insufficient input validation in server applications which copies user input into session variables. The underlying vulnerability is a state management problem;… …   Wikipedia

  • Session Hijacking — (auf deutsch etwa: „Entführung einer Kommunikationssitzung“) ist ein Angriff auf eine verbindungsbehaftete Datenkommunikation zwischen zwei Computern. Während die Teilnehmer einer verbindungslosen Kommunikation Nachrichten ohne definierten Bezug… …   Deutsch Wikipedia

  • Session ID — Eine Session ID (engl.: session identifier, dt.: Sitzungs ID) wird bei Anwendungen auf zustandslosen Protokollen als Identifikationsmerkmal verwendet, um mehrere zusammengehörige Anfragen eines Benutzers zu erkennen und einer Sitzung zuzuordnen.… …   Deutsch Wikipedia

  • Session hijacking — The term session hijacking refers to the exploitation of a valid computer session sometimes also called a session key to gain unauthorized access to information or services in a computer system. In particular, it is used to refer to the theft of… …   Wikipedia

  • Session (computer science) — In computer science, in particular networking, a session is a semi permanent interactive information interchange, also known as a dialogue, a conversation or a meeting, between two or more communicating devices, or between a computer and user… …   Wikipedia

  • Session-ID — Eine Session ID (engl.: session identifier, dt.: Sitzungs ID) wird bei Anwendungen auf zustandslosen Protokollen als Identifikationsmerkmal verwendet, um mehrere zusammengehörige Anfragen eines Benutzers zu erkennen und einer Sitzung zuzuordnen.… …   Deutsch Wikipedia

  • Fixation de session — Cet article est une ébauche concernant la sécurité informatique. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. En sécurité des réseaux informatiques, les attaques par… …   Wikipédia en Français

  • Sidejacking — Session Hijacking (auf deutsch etwa: „Entführung einer Kommunikationssitzung“) ist ein Angriff auf eine verbindungsbehaftete Datenkommunikation zwischen zwei Computern. Während die Teilnehmer einer verbindungslosen Kommunikation Nachrichten ohne… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”