Title: XML%20/%20SOAP%20Web%20Services%20Security
1XML / SOAP Web Services Security
- Vortrag für das
- Seminar IT-Sicherheit WS 02/03
- von
- Dietmar Mühmert
2Inhalt
- 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
3Begriffe
- 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.
4Einsatzmöglichkeiten
5Begriffe
- 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
6Beispiel XML Listing
- lt?xml version"1.0" encoding"UTF-8"?gt
- ltuniReferat xmlnsuni"http//www.inf.fu-berlin.d
e"gt - ltuniTitelgtXML Web Services Securitylt/uniTitelgt
- ltuniAutorgtDietmar Mühmertlt/uniAutorgt
- lt/uniReferatgt
7Begriffe
- 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.
8Begriffe
- 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
9Begriffe
- 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
10SOAP Envelope
11Beispiel SOAP Listing
- ltSOAP-ENVEnvelope xmlnsSOAP-ENV"http//schemas.
xmlsoap.org/soap/enevelope"gt - ltSOAP-ENVHeadergtltseccredentials
xmlnssec"http//schemas.xmlsoap.org/ws/2002/01/s
ec" mustUnderstand"1"gtltsecuserNamegtmuehmertlt/se
cuserNamegtltsecuserPasswordgtz65rfe3wlt/secuserPa
sswordgtlt/seccredentialsgt - lt/SOAP-ENVHeadergt
- ltSOAP-EnvBodygtltSOAPGetUserID
xmlnsSOAP"http//www.inf.fu-berlin.de/webservice
s"gtltuserNamegtmuehmertlt/userNamegtlt/SOAPGetUserID
gt - lt/SOAP-EnvBodygt
- lt/SOAP-ENVEnvelopegt
12Begriffe
- 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" ltSOAP-ENVEnvelope
xmlnsSOAP-ENV"http//schemas.xmlsoap.org/soap/en
velope/" SOAP-ENVencodingStyle"http//schemas.
xmlsoap.org/soap/encoding/"gt ltSOAP-ENVBodygt
ltmGetLastTradePrice xmlnsm"Some-URI"gt
ltsymbolgtDISlt/symbolgt
lt/mGetLastTradePricegt lt/SOAP-ENVBodygt lt/SOAP-
ENVEnvelopegt ------------------------------ HTT
P/1.1 200 OK Content-Type text/xml
charset"utf-8" Content-Length
nnnn ltSOAP-ENVEnvelope xmlnsSOAP-ENV"http//
schemas.xmlsoap.org/soap/envelope/"
SOAP-ENVencodingStyle"http//schemas.xmlsoap.org
/soap/encoding/"/gt ltSOAP-ENVBodygt
ltmGetLastTradePriceResponse xmlnsm"Some-URI"gt
ltPricegt34.5lt/Pricegt
lt/mGetLastTradePriceResponsegt
lt/SOAP-ENVBodygt lt/SOAP-ENVEnvelopegt
13Begriffe
- 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
14Begriffe
- 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
15Begriffe
- Discovery(optional)
- Definition(optional)
- Communication
UDDI
WSDL
Web Service A
SOAP
Web Service B
16Merkmale 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
17Merkmale 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?
18WWW-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.
19Schutzziele
- Datenschutz / Verschlüsselung
- Authentifizierung
- Autorisierung
- Unleugbarkeit / Datenintegrität
20Schutzziele
- 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)
21Beispiel XML Encryption
lt?xml version'1.0'?gt ltPaymentInfo
xmlns'http//example.org/paymentv2'gt
ltNamegtJohn Smithlt/Namegt ltCreditCard
Limit'5,000' Currency'USD'gt
ltEncryptedData xmlns'http//www.w3.org/2001/04/xm
lenc' Type'http//www.w3.org/2001/04/xmle
ncContent'gt ltCipherDatagt
ltCipherValuegtA23B45C56lt/CipherValuegt
lt/CipherDatagt lt/EncryptedDatagt
lt/CreditCardgt lt/PaymentInfogt
22Schutzziele
- 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
23Schutzziele
- 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.
24Schutzziele
- 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.
25Beispiel Signatur Listing
- ltSignature Id"MyFirstSignature"
xmlns"http//www.w3.org/2000/09/xmldsig"gt - ltSignedInfogt
- ltCanonicalizationMethod Algorithm"http//www.w3
.org/TR/2001/REC-xml-c14n-20010315"/gt - ltSignatureMethod Algorithm"http//www.w3.org/20
00/09/xmldsigdsa-sha1"/gt - ltReference URI"http//www.w3.org/TR/2000/REC-xh
tml1-20000126/"gt - ltTransformsgt
- ltTransform Algorithm"http//www.w3.org/TR/2001
/REC-xml-c14n-20010315"/gt - lt/Transformsgt
- ltDigestMethod Algorithm"http//www.w3.org/2000
/09/xmldsigsha1"/gt - ltDigestValuegtj6lwx3rvEPO0vKtMup4NbeVu8nklt/Dige
stValuegt - lt/Referencegt
- lt/SignedInfogt
-
- ltSignatureValuegtMC0CFFrVLtRlk...lt/SignatureValue
gt - ltKeyInfogt
- ltKeyValuegt
- ltDSAKeyValuegt
- ltPgt...lt/PgtltQgt...lt/QgtltGgt...lt/GgtltYgt...lt/Ygt
- lt/DSAKeyValuegt
26Sicherheitsrisiken
- 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
27Attacken
- 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
28Attacken
Web Service
Web Service
HTTP Port 80/443
interne Bedrohung
Web Service
Firewall
Hacker
29Attacken
- Denial of Service
- Abhängig von der Art des Web Services
- Daten sammeln
- XML-Nachrichten auswerten
- Mustererkennung
30Attacken
- 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
31Attacken
- Dictionary Attack
- Verwendung von starken Passwörtern
- häufiges Wechseln
32Sicherheitslö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!
33Fazit
- 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.
34Quellen
- 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