IT-Sicherheit Glossar

Was ist XML Signature Wrapping?

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.

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 XML Signature Wrapping? Schreib uns!