IT-Sicherheit Glossar

Was ist Session Fixation?

Bei Session Fixation bringt ein Angreifer das Opfer dazu, eine bereits bekannte Session-ID zu verwenden. Wenn die Anwendung dieselbe ID nach erfolgreicher Anmeldung beibehält, wird die zuvor anonyme Sitzung plötzlich authentifiziert. Der Angreifer kennt den Schlüssel weiterhin und kann die Sitzung übernehmen.

Wie läuft ein Angriff ab?

  1. Der Angreifer erzeugt oder errät eine gültige anonyme Session-ID.
  2. Das Opfer erhält diese ID, beispielsweise über einen alten URL-Parameter, eine manipulierte Subdomain oder ein gesetztes Cookie.
  3. Das Opfer meldet sich an; die Anwendung wertet dieselbe Session nun als authentifiziert.
  4. Der Angreifer sendet die bekannte ID und erhält den Kontext des Opfers.

Codebeispiel in PHP

Verwundbar: Die Identität wird in die bestehende Sitzung geschrieben.

session_start();

if (password_verify($_POST['password'], $user['password_hash'])) {
    $_SESSION['user_id'] = $user['id'];
    // Die vor der Anmeldung bekannte Session-ID bleibt bestehen.
}

Sicherer: Vertrauenswechsel erzeugen eine neue ID.

session_start();

if (password_verify($_POST['password'], $user['password_hash'])) {
    session_regenerate_id(true);
    $_SESSION['user_id'] = $user['id'];
    $_SESSION['authenticated_at'] = time();
}

Die ID sollte auch nach einer Rechteerhöhung, einem sensiblen Re-Login und gegebenenfalls nach einer Kontoänderung erneuert werden. Die alte Sitzung muss ungültig werden. Framework-Funktionen sind einer eigenen Sessionverwaltung vorzuziehen.

Welche Schutzmaßnahmen gehören dazu?

  • - Session-IDs ausschließlich über Cookies übertragen; IDs in URLs, Formularfeldern und Logs vermeiden.
  • - Nur serverseitig erzeugte, kryptografisch zufällige IDs akzeptieren.
  • - Cookies mit Secure, HttpOnly und passendem SameSite-Wert setzen.
  • - Sitzungen bei Logout serverseitig löschen und absolute sowie inaktive Zeitlimits setzen.
  • - Nach der Regeneration parallele Requests berücksichtigen, ohne die alte ID lange weiter zu akzeptieren.

Session Fixation oder Session Hijacking?

Session Fixation ist eine besondere Vorstufe: Der Angreifer legt die ID vor der Anmeldung fest. Beim Session Hijacking wird eine bereits authentifizierte Sitzung beispielsweise durch XSS, Malware oder unsichere Übertragung gestohlen. Die Maßnahmen überschneiden sich, aber nur die Erneuerung beim Vertrauenswechsel behebt die eigentliche Fixation.

Nützliche Open-Source-Werkzeuge

OWASP ZAP kann Cookies und Authentifizierungsabläufe aufzeichnen; über Skripte lässt sich prüfen, ob die Session-ID beim Login wechselt. mitmproxy eignet sich für reproduzierbare Vergleiche vor und nach dem Login. Beide Werkzeuge erkennen die Geschäftslogik nicht zuverlässig automatisch: Entscheidend ist der kontrollierte Vergleich derselben Sitzung.

Penetrationstests

Sicherheitslücken aufdecken

Professionelle Penetrationstests für Ihr Unternehmen

Web Apps
Netzwerke
Mobile Apps
10% Neukunden-Rabatt
Jetzt planen

Mehr Informationsmaterial

Vielen Dank für dein Feedback! Wir werden es prüfen und unseren Artikel anpassen.

Hast du Feedback zum Thema Session Fixation? Schreib uns!