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?
- Der Angreifer erzeugt oder errät eine gültige anonyme Session-ID.
- Das Opfer erhält diese ID, beispielsweise über einen alten URL-Parameter, eine manipulierte Subdomain oder ein gesetztes Cookie.
- Das Opfer meldet sich an; die Anwendung wertet dieselbe Session nun als authentifiziert.
- 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,HttpOnlyund passendemSameSite-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.
Vielen Dank für dein Feedback! Wir werden es prüfen und unseren Artikel anpassen.
Hast du Feedback zum Thema Session Fixation? Schreib uns!
Weitere Dienstleistungen
Zusätzliche IT-Sicherheitslösungen für umfassenden Schutz
Red Teaming
Simulation echter Angriffe auf Ihr Unternehmen inklusive Personen, Infrastruktur und Prozesse. Ein umfassender Ansatz zur Überprüfung Ihrer gesamten Sicherheitsstrategie.
Mehr erfahrenPhishing-Übungen
Praxisnahe Phishing-Simulationen zur Sensibilisierung Ihrer Mitarbeiter. Erhöhen Sie die Awareness und reduzieren Sie das Risiko erfolgreicher E-Mail-basierter Angriffe.
Mehr erfahren