IT-Sicherheit - PowerPoint PPT Presentation

About This Presentation
Title:

IT-Sicherheit

Description:

... (XKMS) Auf XML basierender Schl ssel ... das die Darstellung und Verarbeitung von Autorisierungs-Policies standardisiert XML Key Management Specification ... – PowerPoint PPT presentation

Number of Views:95
Avg rating:3.0/5.0
Slides: 46
Provided by: dark167
Category:
Tags: sicherheit | xkms

less

Transcript and Presenter's Notes

Title: IT-Sicherheit


1
IT-Sicherheit
  • Web Service Security

Dipl. Inf. (FH) Matthias Besenfelder Dipl. Inf.
(FH) Guido Nippe Dipl. Inf. (FH) Paul
Mizel info_at_add2get.de
2
Zur Person
  • Dipl. Inf. (FH) Paul Mizel
  • Allgemeine Informatik FH Dortmund
  • aktuell Master-Studiengang Informatik
  • Microsoft Student Partner
  • Microsoft Certified Professional

3
Inhalt
  • Was ist ein WebService?
  • Begriffe
  • Google Service Demo
  • Sünden der Web-Entwicklung

4
Was ist ein WebService?
5
Begriffe
  • UDDI Universal Description, Discovery and
    Integration 3.0.2
  • http//www.oasis-open.org/committees/uddi-spec/doc
    /spec/v3/uddi-v3.0.2-20041019.htm
  • WSDL Web Services Description Language (WSDL) 1.1
  • http//www.w3.org/TR/wsdl
  • SOAP Simple Object Access Protocol 1.2
  • http//www.w3.org/TR/soap12
  • RPC Remote Procedure Call
  • CORBA, DCOM, RMI
  • XML Extensible Markup Language
  • http//www.w3.org/XML/

6
SOAP
  • Request
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltsoapenvEnvelope xmlnssoapenv"http//schemas.xm
    lsoap.org/soap/envelope/"
  • xmlnsxsd"http//www.w3.org/200
    1/XMLSchema"
  • xmlnsxsi"http//www.w3.org/200
    1/XMLSchema-instance"gt
  • ltsoapenvBodygt
  • ltns1validate soapenvencodingStyle"http//sche
    mas.xmlsoap.org/soap/encoding/"
  • xmlnsns1"urnCardValidator"gt
  • ltnumber xsitype"xsdstring"gt1234 5678 9876
    5432lt/numbergt
  • ltvalid xsitype"xsdstring"gt12/08lt/validgt
  • lt/ns1validategt
  • lt/soapenvBodygt
  • lt/soapenvEnvelopegt
  • Response
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltsoapenvEnvelope xmlnssoapenv"http//schemas.xm
    lsoap.org/soap/envelope/"
  • xmlnsxsd"http//www.w3.org/200
    1/XMLSchema"
  • xmlnsxsi"http//www.w3.org/200
    1/XMLSchema-instance"gt

SOAP Nachricht
SOAPPart
SOAPEnvelope
SOAPHeader(optional)
SOAPBody
XML Content
XMLFault
AttachmentPart (Optional)
MIME Header
Content XML or non XML
AttachmentPart (Optional)
MIME Header
Content XML or non XML
7
WebService Demo
  • DEMO
  • Wie erstelle ich ein WebService?
  • Wie nütze ich ein Webservice?

8
Google Service in PHP
  • key dein google license Schlüssel'
  • require_once('nusoap.php')
  • parameters array(
  • 'key' gt key,
  • 'q' gt 'suchtext',
  • 'start' gt 0,
  • 'maxResults' gt 10,
  • 'filter' gt false,
  • 'restrict' gt '',
  • 'safeSearch' gt false,
  • 'lr' gt 'lang_de',
  • 'ie' gt '',
  • 'oe' gt ''
  • )
  • soapclient new soapclient('http//api.google.co
    m/search/beta2')
  • result soapclient-gtcall('doGoogleSearch',
    parameters, 'urnGoogleSearch')

9
Google Service in C
  • using WebService.com.google.api
  • const string Key "dein google license
    Schlüssel"
  • globalWebService.com.google.api.GoogleSearchServ
    ice s new
  • globalWebService.com.google.api.GoogleSearchServ
    ice()
  • globalWebService.com.google.api.GoogleSearchResu
    lt r
  • s.doGoogleSearch(Key,
  • "suchtext",
  • 0,10,
  • false, "", false, "lang_de", "", "")
  • string data r.estimatedTotalResultsCount"\r\n"
  • foreach (globalWebService.com.google.api.Res
    ultElement var in result.resultElements)
  • data var.URL"\r\n"

10
Google Service Demo
  • DEMO
  • Suchen aus eigener Anwendung durch Google

11
Sünden der Webentwicklung
  • Der Benutzer

12
Sünden der Webentwicklung
  • Spot the Bug ?

CREATE PROCEDURE dbo.doQuery(_at_id
nvarchar(128)) AS DECLARE _at_query nchar(256)
SELECT _at_queryselect ccnum from cust where
id _at_id EXEC _at_query RETURN
13
Sünden der Webentwicklung
  • SQLInjection
  • CREATE PROCEDURE dbo.doQuery(_at_id nvarchar(128))
  • AS
  • DECLARE _at_query nchar(256)
  • SELECT _at_queryselect from cust where id
    _at_id
  • EXEC _at_query
  • RETURN
  • Id1 OR 11
  • CREATE PROCEDURE dbo.doQuery(_at_id
    nvarchar(128))
  • AS
  • DECLARE _at_query nchar(256)
  • SELECT _at_queryselect from cust where id1
    OR 11
  • EXEC _at_query
  • RETURN
  • Id1' DROP TABLE cust --
  • Id1' exec xp_cmdshell('defrag.exe') --
  • Abhilfe?
  • Arbeiten Sie mit parametrisierten SQL-Abfragen
    auf dem Datenbankserver
  • Arbeiten Sie mit Regular Expressions, um
    ungültige Eingabeformate auszuschliessen

14
Sünden der Webentwicklung
  • Spot the Bug ?

string status "No" string sqlstring "" try
// SQL Zugriffscode catch (SqlException se)
Status sqlstring " failed\r\n" foreach
(SqlError e in se.Errors) Status e.Message
"\r\n" if (Status.CompareTo("No") ! 0)
Response.WriteLine(Status)
15
Sünden der Webentwicklung
  • Information Leakage

16
Sünden der Webentwicklung
  • Lösung für Information Leakage

try // SQL Zugriffscode catch (SqlException
se) Status sqlstring " failed\r\n"
foreach (SqlError e in se.Errors) Status
e.Message "\r\n" WindowsIdentity user
WindowsIdentity.GetCurrent() WindowsPrincipal
prin new WindowsPrincipal(user) if
(prin.IsInRole(WindowsBuiltInRole.Administrator))
Response.WriteLine(Status) else
Response.Write("An error occurred, please bug
your admin") EventLog.WriteEntry("SqlApp",
Status, EventLogEntryType.Error)
17
Sünden der Webentwicklung
  • TMI - Too Much Information
  • Benutzername oder Paßwort falsch?
  • Versionsinformationen verwendeter Software
  • IP-Adressen, MAC-Adressen, etc...
  • Pfade
  • Genaue Fehlermeldungen
  • Abhilfe?
  • Informationen zur Fehlersuche an
    vertrauenswürdiger Stelle ablegen
  • EventLog
  • Ggf. Geeignet abgesichertes Logfile
  • Informationen nur an Administratoren ausgeben

18
Danke
  • Sicherheit ?

19
Zur Person
  • Dipl. Inf. (FH) Guido Nippe
  • Wirtschaftsinformatik FH Dortmund
  • aktuell Master-Studiengang Informatik
  • Microsoft Student Partner
  • Microsoft Certified Professional

20
Inhalt
  • Web-Service Sicherheit
  • SSL als erster Ansatz
  • Probleme bei SSL
  • Standards für sichere Webservices
  • WS-Security

21
Web-Service Sicherheit
  • In der ersten Web-Services-Euphorie wurde
    Sicherheit wenig beachtet
  • Heute aber zentrale Fragestellungen
  • Vertrauliche Nutzung von Web Services?
  • Authentifizierung von Client und Server?
  • Integrität der ausgetauschten Dokumente?
  • Zugriffssteuerung, Verfügbarkeit?
  • Wichtiges Problem
  • Sicherheit traditionell als zusätzlicher (add-on)
    Dienst, z.B. auf der Basis von Firewalls
  • Web Services sind aber so entworfen, dass sie
    Firewalls leicht überwinden
  • ? Integrierte Lösung notwendig

22
SSL als erster Ansatz
  • Verschlüsselte Übertragung
  • Authentifizierung des Servers
  • Authentifizierung des Client (selten)

23
Probleme bei SSL
  • Nur bei SOAP über HTTP
  • Gesicherte Verbindung auf Transportebene, nicht
    des XML-Dokuments selbst
  • Sicherung von Punkt zu Punkt nicht Ende zu Ende
  • Problematisch besonders bei mehrstufigem
    WorkflowBeispiel Kreditkartendaten zum Webshop
    Weiterleitung an Abrechnungsstelle

24
Standards für sichere Webservices
  • Security Assertion Markup Language (SAML)
  • Trust context service
  • XML Digital Signatures (XML-DigSig)
  • Integrität für XML-Dokumnente und Attribute
  • XML Encryption (XML-Enc)
  • Vertraulichkeit für XML-Dokumente und Attribute
  • eXtensible Access Control Markup Language (XACML)
  • XML Schema, das die Darstellung und Verarbeitung
    von Autorisierungs-Policies standardisiert
  • XML Key Management Specification (XKMS)
  • Auf XML basierender Schlüssel-Verwaltungs-Dienst
  • Extensible Rights Markup Language (XrML).
  • Universelle Sprache zur sicheren Beschreibung von
    digitalen Nutzungsrechten für vertrauliche
    Inhalte und Dienste
  • WS-Security
  • Sicherheitsstandards für Web-Services und SOAP

25
WS-Security
  • Ursprüngliche Spezifikation wurde Oktober 2001
    von Microsoft, IBM und VeriSign freigegeben
  • Definiert einen Standardsatz an
    SOAP-Erweiterungen, die es Anwendungen erlauben,
    sichere SOAP-Nachrichten auszutauschen
  • Ermöglicht die Implementierung von Mechanismen
    zum Austausch von Authentifizierungsmerkmalen,
    zur Nachrichtenintegrität und zur Vertraulichkeit
  • Setzt bestehende Standards und Spezifikationen
    wie
  • X.509, Kerberos (Authentifizierung)
  • XML Encryption (Vertraulichkeit)
  • XML Signature (Integrität)
  • XML Canonicalization (Vorbereitung des
    XML-Dokumentes)
  • wirksam ein

26
Implementierung WS-Security mit WSE 3.0
  • Microsoft patterns practices Group
  • Web-Service-Enhancements 3.0
  1. Client Sendet in der Anfrage Benutzername/Passwort
    und einen generierten Sitzungsschlüssel,
    verschlüsselt mit dem öffentlichen Schlüssel des
    Servers, an den Server
  2. Server überprüft Benutzername/Passwort gegen das
    Active Directory
  3. Server antwortet auf die Anfrage des Clients

27
Asymmetrische Verschlüsselung
28
Zur Person
  • Dipl. Inf. (FH) Matthias Besenfelder
  • Wirtschaftsinformatik FH Dortmund
  • aktuell Master-Studiengang Informatik
  • Microsoft Certified Professional

29
Verwundbarkeit von Web-Services
  • Die bisher besprochenen Sicherheitsstandards sind
    eine gute Grundlage zur
  • Authentifizierung,
  • Signierung (Integrität) und
  • Verschlüsselung.
  • Aber Es gibt Verwundbarkeiten in der Anwendung
    selbst!
  • Kurz gesagt SSL schützt nicht gegen
    SQL-Injections

30
Verwundbarkeit von Web-Services
31
Verwundbarkeit von Web-Services
  • Dieser Teil des Vortrags behandelt Angriffe auf
    den Schichten
  • XML
  • XML ist mittlerweile von einer großen Familie an
    Standards umgeben
  • XSLT
  • XSD
  • XPath
  • XQuery
  • DTD
  • Wenige Menschen verstehen die wichtigsten Aspekte
    der Technologien
  • Keiner versteht alle Aspekte
  • SOAP
  • Aktuelle Entwicklungsumgebungen verwandeln zwei
    Zeilen Code in vollständige Web-Services.
  • Die einfache Entwicklung lenkt oft von
    sicherheitskritischen Aspekten ab, wie etwa der
    Serialisierung.

32
Verwundbarkeit von Web-ServicesXML
  • XML ist auf einigen wenigen Regeln aufgebaut,
    etwa
  • Nur ein Root-Node,
  • Tags müssen geöffnet und geschlossen werden,
  • Ein Angriff auf einen Web-Service setzt gültiges
    XML voraus, da ansonsten der Parser den Angriff
    frühzeitig verwirft.
  • XML-Schemas können viele Angriffe verhindern,
    sofern sie sinnvoll eingesetzt werden.
  • Injections können z.B. durch Eingaberestriktionen
    verhindert werden.

33
Verwundbarkeit von Web-ServicesXML - DoS
  • Es gibt zwei Typen von XML-Parsern
  • SAX (Schritt für Schritt)
  • Generell nicht anfällig für DoS-Attacken
  • DOM
  • Angriff DoSExtrem komplizierte, aber valides
    XML wird gesendet. Der Speicherbedarf ist enorm.
    Dieser Angriff multipliziert extrem gut (XML
    parsen), andere DoS-Typen sind wesentlich
    aufwendiger.
  • Custom-Parsers
  • sehr anfällig für Angriffe (z.B. parsen über
    RegEx)

34
Verwundbarkeit von Web-ServicesXML - CDATA
  • CDATA-Felder
  • XML erlaubt über CDATA-Felder, nicht-erlaubte
    Zeichen zu übertragen.
  • Entwickler unterliegen oft der Annahme, dass
    bestimmte Datentypen nicht in XML eingebettet
    werden können. Das führt zur Verwendung von
    CDATA-Feldern.
  • Beim Parsen werden CDATA-Komponentengetrennt. Es
    gibt keine weitere Filterung!
  • Wo entstehen Angriffsmöglichkeiten?
  • SQL-Injection
  • XML-Injection
  • XPath-Injection
  • XSS (Cross-Site-Scripting)

35
Verwundbarkeit von Web-ServicesXML - CDATA
  • Beispiel Cross-Site-Scripting über CDATA-Feld
  • ltTAG1gt
  • lt!CDATAltgtSCRIPTlt!CDATAgtgt
  • alert(XSS)
  • lt!CDATAltgt/SCRIPTlt!CDATAgtgt
  • lt/TAG1gt
  • Beispiel SQL-Injection über CDATA-Feld
  • ltTAG2gt
  • lt!CDATAor 11 or gt
  • lt/TAG2gt

36
Verwundbarkeit von Web-ServicesXML - XPath
  • XPath erlaubt das einfache Auffinden von
    Informationen in einem XML-Dokument
  • XPath kann dazu benutzt werden, auf XML-fähige
    Datenbanken zuzugreifen.
  • SQL Server 2000 und 2005,
  • Oracle 8i,
  • Warum ist das gefährlich?
  • XPath verwendet Trennzeichen zwischen Code und
    Daten
  • Hochkomma
  • Im Gegensatz zu SQL gibt es keine
    Zugriffskontrolle in XML oder XPath
  • Gelingt es einem Angreifer, Daten in einer
    XPath-Abfrage zu kontrollieren, kann er auf
    beliebige Teile der XML-Datei zugreifen oder
    beliebige Daten zurückgeben

37
Verwundbarkeit von Web-ServicesXML - XPath
  • XPath-Beispiel
  • ltautogt
  • ltherstellergtBMWlt/herstellergt
  • ltnamegtM3 CSLlt/namegt
  • lt/autogt
  • XPath-Queries
  • //auto
  • Gibt alle auto-Elemente im Dokument zurück
  • //auto/nameM3 CSL
  • Gibt alle autos zurück, die eine Child-Node
    namemit dem Wert M3 CSL haben

38
Verwundbarkeit von Web-ServicesXML - XPath
  • Beispiel XPath Abfrage von Username und
    Passwort in XML
  • //usernameMatthias and passwillrein
  • Gibt den Benutzer mit Name und Passwort zurück.
  • //usernameMatthias or 11 or and
    passwillrein
  • Gibt alle Benutzer zurück.
  • //usernameMatthias or userid1 or and
    passwillrein/userid
  • Gibt alle Benutzer mit userid1 zurück.

39
Verwundbarkeit von Web-ServicesSOAP - WSDL
  • SOAP-Schnittstellen werden durch WSDL beschrieben
    (Web Services Description Language)
  • WSDLs sind oft sehr komplex
  • WSDLs werden weder manuell erstellt noch gelesen
  • WSDLs sind einfach zu bekommen (http//api.google.
    com/GoogleSearch.wsdl)
  • WSDLs verraten einem Angreifer alles, was er zum
    Zugriff auf die Schnittstelle des Web-Services
    braucht.
  • Typen
  • Nachrichten,
  • Das Freigeben all dieser Informationen ist nicht
    erforderlich, wenn nicht beliebige Clients auf
    den Service zugreifen sollen!

40
Verwundbarkeit von Web-ServicesSOAP - WSDL
  • Angriff Vermeintlich versteckte Debug-Methoden
    werden versehentlich über WSDL offengelegt.
  • Besondere Gefahr bei klassischen Anwendungen, die
    zum Web-Service portiert wurden!
  • Vorgänge, die nur durch Geheimhaltung oder
    Verworrenheit sicher sind, werden eventuell durch
    WSDL bekannt.
  • Beispiel unverschlüsselte Übertragungen.
  • Manuelles Entfernen von kritischen Teilen aus
    WSDLs hilft nicht immer, da oft Methoden zum
    automatischen Generieren der WSDL existieren.

41
Verwundbarkeit von Web-ServicesSOAP
  • SOAP Header bieten Informationen, wie eine
    Nachricht behandelt werden soll.
  • Oft überflüssig, aber von Web-Service-Frameworks
    generiert und beachtet.
  • Angriff XML DoS im SOAP-Header
  • Session Management
  • SOAP ist statuslos, daher muss der Entwickler den
    Status verwalten.
  • Angriff Replay-Attacks

42
Verwundbarkeit von Web-ServicesDoS
  • Alle DoS-Angriffe versuchen, Multiplikatoren zu
    finden
  • CPU-Zeit
  • Tiefe Strukturen
  • Referenzen auf externe Dokumente (Timeouts etc.)
  • DOM für komplexe XML-Dokumente
  • Speicherverbrauch
  • Tiefe und breite Strukturen
  • Große Datenmengen in häufig verwendeten Feldern.
  • Datenbankverbindungen
  • Oft ein einfacher Angriffspunkt, da wenige
    Datenbanken einen Flaschenhals bilden.

43
Verwundbarkeit von Web-ServicesDoS
  • Was einen schlagkräftigen Angriff ausmacht
  • Gültiger SOAP-Request
  • Korrekte DTD-/XSD-Syntax
  • Entspricht einer tatsächlichen SOAP-Methode
  • Eventuell ist eine gültige Session-ID
    erforderlich
  • Geschwindigkeit
  • Mehrere Prozesse
  • Für manche Angriffe muss auf eine Antwort
    reagiert werden
  • Wie verteidigt man sich?
  • DoS-Angriffe auf Web-Services müssen getestet
    werden!
  • Die Komplexität einer Anfrage sollte vor dem
    Parsen geprüft werden
  • XML-Firewalls
  • Strict XML-Schema verification

44
Verwundbarkeit von Web-ServicesFazit
  • Web-Services sind mächtig, einfach zu bedienen
    und ein offener Standard
  • D.h. sie sind außergewöhnlich gefährlich.
  • Viele Sicherheitsfragen sind nicht geklärt
  • Die sich schnell entwickelnden Standards müssen
    analysiert werden
  • WS-Security
  • WS-Routing
  • WS-Inspection
  • WS-..

45
Links
  • Web Services Enhancements (WSE)
  • http//msdn.microsoft.com/webservices/webservices/
    building/wse/default.aspx
  • Microsoft patterns practices Home
  • http//msdn.microsoft.com/practices/
  • Security DevDays 2006 Dank an Dirk Primbs
  • https//www.microsoft.com/germany/msdn/experts/Dir
    kPrimbs/default.mspx
  • Wikipedia
  • http//www.wikipedia.de
  • _
Write a Comment
User Comments (0)
About PowerShow.com