350 likes | 513 Views
XML / SOAP Web Services Security. Vortrag für das Seminar IT-Sicherheit WS 02/03 von Dietmar Mühmert. Inhalt. Begriffserläuterungen: Web Services, XML, SOAP, WSDL, UDDI Einsatzgebiete von Web Services Merkmale und Sicherheitsrisiken von XML Web Services Welche Probleme sind neu?
E N D
XML / SOAP Web Services Security Vortrag für das Seminar IT-Sicherheit WS 02/03 von Dietmar Mühmert
Inhalt • Begriffserläuterungen: Web Services, XML, SOAP, WSDL, UDDI • Einsatzgebiete von Web Services • Merkmale und Sicherheitsrisiken von XML Web Services • Welche Probleme sind neu? • XML Web Services bezüglich einzelner Schutzziele • Welchen Attacken sind Web Services ausgesetzt? • Fazit
Begriffe Was sind Web Services? • Web Services sind Softwarekomponenten, die über Beschreibungsstandards und Standardprotokolle im Internet zugänglich sind. • XML Web Services nutzen XML als Beschreibungssprache und HTTP als Übertragungsprotokoll.
Begriffe Was ist XML? • eXtensible Markup Language (XML) strukturiert Daten und versieht sie mit Bezeichnerelementen • Daten liegen in textueller Form vor • ermöglicht den Austausch von Daten zwischen verschiedenen Applikationen
Beispiel: XML Listing <?xml version="1.0" encoding="UTF-8"?> <uni:Referat xmlns:uni="http://www.inf.fu-berlin.de"> <uni:Titel>XML Web Services Security</uni:Titel> <uni:Autor>Dietmar Mühmert</uni:Autor> </uni:Referat>
Begriffe XML Schemas • XML Dokumente können unterschiedlich aufgebaut sein, obwohl sie den gleichen Inhalt haben • Man braucht eine gemeinsame Vereinbarung für XML Dokumente • Man kann mit Hilfe von XML Schemas eigene Datentypen definieren • Klassen, die in der Programmiersprache, wie z.B. Java oder Perl, erstellt wurden, lassen sich somit ineinander umwandeln.
Begriffe XML Schemas Mit Hilfe von XML Schemas kann man folgendes überprüfen: • Die Struktur von Elementen und Attributen • Die Reihenfolge der Elemente • Die Datenwerte der Elemente und Attribute, abhängig von Wertebereichen, Aufzählungen und Pattern Matching • Die Eindeutigkeit der Werte
Begriffe Was ist SOAP? • Simple Object Access Protocols (SOAP) • ist ein XML Dialekt • definiert ein Rahmenwerk für die Übertragung von XML-Nachrichten über ein standardisiertes und anerkanntes Transportprotokoll
SOAP Envelope SOAP Header Header Header SOAP Body Nachricht mit Daten SOAP Envelope
Beispiel: SOAP Listing <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/enevelope"> <SOAP-ENV:Header><sec:credentials xmlns:sec="http://schemas.xmlsoap.org/ws/2002/01/sec" mustUnderstand="1"><sec:userName>muehmert</sec:userName><sec:userPassword>z65rfe3w</sec:userPassword></sec:credentials> </SOAP-ENV:Header> <SOAP-Env:Body><SOAP:GetUserID xmlns:SOAP="http://www.inf.fu-berlin.de/webservices"><userName>muehmert</userName></SOAP:GetUserID> </SOAP-Env:Body> </SOAP-ENV:Envelope>
Begriffe Remote Procedure Call (RPC) entfernter Methodenaufruf POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> <symbol>DIS</symbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> ------------------------------ HTTP/1.1 200 OK Content-Type: text/xml; charset="utf-8" Content-Length: nnnn <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m="Some-URI"> <Price>34.5</Price> </m:GetLastTradePriceResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Begriffe Was ist WSDL? • Web Services Description Language (WSDL), definiert die Web Services Interfaces, die Datentypen und das Zusammenspiel mit dem Übertragungprotokoll • XML-basierend • über WSDL erfährt ein SOAP-Client, wie eine Anfrage auszusehen hat
Begriffe Was ist UDDI? • Universal Description, Discovery and Integration (UDDI), ist ein Web Service Register mit Metadaten • Ein unabhängiges Konsortium aus Unternehmen wie Microsoft, IBM, Hewlett-Packard und SAP verwalten einen öffentlichen UDDI Server (vom Konzept her, so ähnlich wie DNS-Server) • dient zum Auffinden von Web Services • enthält Informationen über die verschiedenen Web Services und unter anderem deren WSDLs
Begriffe • Discovery(optional) • Definition(optional) • Communication UDDI WSDL Web Service A SOAP Web Service B
Merkmale von Web Services Web Services sind charakterisiert durch: • dezentrale Architektur und Administration • heterogene Implementierungen und Systeme • unternehmensübergreifende Kommunikation und Verbindungen • öffentlicher Zugang über das Internet
Merkmale von Web Services neue Probleme und häufig gestellte Fragen: • Wie setzt man eine übergreifende Sicherheitspolitik durch? • Wie kann man versichern, dass Sicherheitspolitiken eingehalten werden, besonders bei Heimanwendern? • Wie arbeitet man mit anderen “schwachen” Systemen zusammen? • Was macht man mit älteren Anwendungen, die nie für's Internet gedacht waren? • Wie administriert und logt man systemübergreifend?
WWW-Security / Web Services Security • Im Vergleich zu einem Web-Server hat eine Firewall für die Sicherheit von Web Services wenig nutzen. • Eine Verschlüsselung des Kommunikationskanal per Secure Sockets Layer (SSL) ist nicht vollkommen ausreichend. • Attacken, die gegen Web Server durchgeführt werden, kann man leicht abgewandelt auch gegen Web Services anwenden.
Schutzziele • Datenschutz / Verschlüsselung • Authentifizierung • Autorisierung • Unleugbarkeit / Datenintegrität
Schutzziele Datenschutz / Verschlüsselung • Übertragung im Klartext ermöglicht unbefugten Dritten das Lesen der Daten • Verschlüsselung mit Hilfe eines asymmetrischen Verfahrens (RSA) • Kommunikationskanal per Secure Sockets Layer (SSL) schützen • falls sensible Daten an einen dritten Service-Provider weitergeleitet werden, kann man Teile einer XML-Nachricht verschlüsseln und so den Header mit Routing Informationen unverschlüsselt lassen. • XML Encryption (siehe Beispiel) • Viren lassen sich in verschlüsselten Attachments nicht ausfindig machen (Viren-Scan erst nach dem Entschlüsseln möglich)
Beispiel: XML Encryption <?xml version='1.0'?> <PaymentInfo xmlns='http://example.org/paymentv2'> <Name>John Smith</Name> <CreditCard Limit='5,000' Currency='USD'> <EncryptedData xmlns='http://www.w3.org/2001/04/xmlenc#' Type='http://www.w3.org/2001/04/xmlenc#Content'> <CipherData> <CipherValue>A23B45C56</CipherValue> </CipherData> </EncryptedData> </CreditCard> </PaymentInfo>
Schutzziele Authentifizierung • Bisher hat sich nur der Anwender beim Web-Server angemeldet, um an Informationen zu gelangen. • Nun sollten sich sowohl der Service-Requester als auch der Service-Provider gegenseitig authentifizieren, da sensible Daten in beide Richtungen versendet werden. • Man kann z.B. Passwörter, Zertifikate, Kerberos, Lightweight Directory Access Protocol (LDAP) oder Active Directory verwenden. • Single sign-on
Schutzziele Autorisierung • Prüfen, ob Benutzer Zugang zu bestimmten Ressourcen hat und welche Operationen der Benutzer ausführen darf. • Es empfiehlt sich nach dem Prinzip “least privilege” vorzugehen. • Mehrere Administratoren mit unterschiedlichen Rechten, um Risiken zu verteilen. • Nur Leserechte auf Logdateien für Admins.
Schutzziele Unleugbarkeit / Datenintegrität • Nachweisen des Ursprungs einer Nachricht • mittels Signaturen lässt sich feststellen, ob die Nachricht unterwegs verändert wurde (signieren mit dem private key, verifizieren mit dem public key) • Logdateien signieren, um zu verhindern, dass Hackerspuren verwischt werden können.
Beispiel: Signatur Listing <Signature Id="MyFirstSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> <Reference URI="http://www.w3.org/TR/2000/REC-xhtml1-20000126/"> <Transforms> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue> </Reference> </SignedInfo> <SignatureValue>MC0CFFrVLtRlk=...</SignatureValue> <KeyInfo> <KeyValue> <DSAKeyValue> <P>...</P><Q>...</Q><G>...</G><Y>...</Y> </DSAKeyValue> </KeyValue> </KeyInfo> </Signature>
Sicherheitsrisiken Single sign-on • Ziel: einmalige Authentifizierung für mehrere Web Services • Ansatz: Security Assertion Markup Language (SAML), ist ein Standard in XML, womit man für verschiedene Web Services Informationen zur Authentifizierung und Autorisierung festhalten kann. • somit kann jeder Web Service bei einer SAML-Autorität die SAML-Zuweisungen bezüglich eines Anwenders abfragen
Attacken • die Daten werden durch die Firewall durchgelassen (Port 80 bzw. 443), da bekommt jeder Administrator Bauchschmerzen • man kann aber Firewalls oft so konfigurieren, dass sie SOAP Nachrichten generell blocken • man muss sich den Inhalt der Nachrichten genauer angucken und auswerten • Web Services bieten aufgrund ihrer unfangreichen Funktionalität eine große Angriffsfläche für Hacker
Attacken Web Service HTTP Port 80/443 Web Service interne Bedrohung Web Service Firewall Hacker
Attacken Denial of Service • Abhängig von der Art des Web Services • Daten sammeln • XML-Nachrichten auswerten • Mustererkennung
Attacken Fehlerhafte Parameter • ältere Systeme rechnen eventuell nicht mit falsch formatierten Eingaben • Parameter angeben, die die Maximallänge überschreiten • Wildcards oder Escape-Zeichen einbauen • Werte und Attribute mittels XML Schemas prüfen
Attacken Dictionary Attack • Verwendung von starken Passwörtern • häufiges Wechseln
Sicherheitslöcher schliessen • System runterzufahren (nicht so einfach wie z.B. bei einem Web-Server) • Wichtig: Standards für die Logdateien und Sicherheitspolitiken entwickeln. Nur so ist eine Systemübergreifende Fehlersuche möglich. • Die Koordination unter den einzelnen Administratoren ist wichtig!
Fazit • Web Services stehen noch am Anfang ihrer Entwicklung • Sicherheitsrisiken hindern Web Services am großen Durchbruch • Viele Unternehmen wagen nicht den ersten Schritt, sondern warten auf andere Vorreiter.
Quellen Bücher / Artikel: • XML Web Service-Anwendungen mit Microsoft .NET (Christian Weyer) • Understanding Web Services (Eric Newcomer) • eAI Journal, September 2002, Web Services Security (Andy Yang) Internet: • XML: http://www.w3.org • WSS: http://www.oasis-open.org/committees/wss • ...und viele mehr