XML Signature Wrapping (XSW) ist eine Schwachstelle in der Verarbeitung signierter XML-Dokumente. Ein Angreifer ordnet Elemente so um oder fügt ein zweites Element ein, dass die Kryptobibliothek weiterhin eine gültige Signatur bestätigt, die Anwendungslogik aber nicht das signierte Element verwendet. Die Signatur ist mathematisch korrekt – die Verbindung zwischen Prüfung und Nutzung ist falsch.
Vereinfachtes Angriffsmuster
<Response>
<Assertion ID="attacker-controlled">
<NameID>admin@example.test</NameID>
</Assertion>
<Wrapper>
<Assertion ID="signed-original">
<NameID>alice@example.test</NameID>
<Signature>
<Reference URI="#signed-original" />
</Signature>
</Assertion>
</Wrapper>
</Response>
Eine unsichere Anwendung validiert die Referenz auf signed-original, greift danach aber mit
einer allgemeinen XPath-Abfrage auf die erste Assertion zu. Das Beispiel ist bewusst vereinfacht;
reale Varianten hängen stark von Schema, Bibliothek und erlaubter Dokumentstruktur ab.
Unsichere und sichere Verarbeitungslogik
// Unsicheres Prinzip
verifyAnySignature(xmlDocument);
assertion = xmlDocument.findFirst("Assertion");
login(assertion.nameId);
// Sicheres Prinzip
validatedElement = verifySignatureAndReturnReferencedElement(
xmlDocument,
trustedIdpCertificate
);
requireExactElementType(validatedElement, "Assertion");
validateSchemaAndSamlConditions(validatedElement);
login(validatedElement.nameId);
Entscheidend ist, dass genau der vom vertrauenswürdigen Schlüssel signierte und referenzierte Knoten weiterverarbeitet wird. Eine globale Aussage wie „das Dokument enthält eine gültige Signatur“ reicht nicht.
Wie lässt sich XML Signature Wrapping verhindern?
- - Reife, gepflegte SAML-/XML-Signature-Bibliotheken verwenden und Sicherheitspatches einspielen.
- - Dokument gegen ein enges, lokal vertrauenswürdiges Schema validieren und unerwartete Duplikate ablehnen.
- - IDs als echte XML-ID-Typen behandeln, Eindeutigkeit erzwingen und keine mehrfachen Assertion-Elemente akzeptieren.
- - Nur vorkonfigurierte IdP-Zertifikate und erlaubte Signaturalgorithmen vertrauen.
- - Das validierte Referenzziel direkt an die Geschäftslogik übergeben; keine zweite, unabhängige XPath-Suche durchführen.
- - Issuer, Audience, Destination, Zeitfenster, InResponseTo und Replay zusätzlich prüfen.
Abgrenzung zu XXE und Signaturfälschung
Bei XSW wird die kryptografische Signatur normalerweise nicht gebrochen. Das unterscheidet die Schwachstelle von einem kompromittierten Schlüssel oder unsicheren Signaturalgorithmus. XXE betrifft externe Entitäten während des XML-Parsens. Beide Probleme können im gleichen SAML-Endpunkt auftreten und benötigen getrennte Schutzmaßnahmen.
Nützliche Open-Source-Werkzeuge
SAML Raider enthält Funktionen zur Analyse signierter SAML-Nachrichten und zum kontrollierten Erzeugen von Wrapping- Varianten. Eigene Regressionstests sollten bekannte Dokumentvarianten gegen den verwendeten Service Provider ausführen. Entscheidend bleibt ein Code-Review der Bibliotheksintegration: Ein generischer Scanner kann nicht sicher erkennen, welches validierte XML-Element die Anwendung anschließend verwendet.
Vielen Dank für dein Feedback! Wir werden es prüfen und unseren Artikel anpassen.
Hast du Feedback zum Thema XML Signature Wrapping? 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