Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

ASP.NET Application Security Uwe Baumann Technologieberater Developer Group Microsoft GmbH

Ähnliche Präsentationen


Präsentation zum Thema: "ASP.NET Application Security Uwe Baumann Technologieberater Developer Group Microsoft GmbH"—  Präsentation transkript:

1 ASP.NET Application Security Uwe Baumann Technologieberater Developer Group Microsoft GmbH

2 Was Sie erwartet Was ist Web Application Security? Was ist Web Application Security? Ein Wettbewerb Ein Wettbewerb Taugen Sie zum Webseiten-Hacker? Taugen Sie zum Webseiten-Hacker? Bekannte Angriffe Bekannte Angriffe Wo lauern Gefahren? Wo lauern Gefahren? Was kann man dagegen tun? Was kann man dagegen tun? Weiterführende Infomationen Weiterführende Infomationen

3 Web Application Security Sicherheit der Webpplikation Sicherheit der Webpplikation Nicht Bugs des Webservers Nicht Bugs des Webservers Sicherheitslücken, die durch potentiell unsicheren Code entstehen Sicherheitslücken, die durch potentiell unsicheren Code entstehen Unabhängig von der verwendeten Technologie (ASp, ASP.NET, JSP, PHP...) Unabhängig von der verwendeten Technologie (ASp, ASP.NET, JSP, PHP...)

4 Ein großes Problem Viele Lücken sind bekannt Viele Lücken sind bekannt Zahllose Whitepapers und Bücher Zahllose Whitepapers und Bücher Beispiel: OWASP Top 10 – Open Web Application Security Project Beispiel: OWASP Top 10 – Open Web Application Security Project Viele Entwickler wiegen sich dennoch in falscher Sicherheit Viele Entwickler wiegen sich dennoch in falscher Sicherheit Motto: Wir verwenden SSL! Motto: Wir verwenden SSL! There is no patch for stupidity [SQLSecurity] There is no patch for stupidity [SQLSecurity]

5 Never trust the Client! Howards zwei Grundregeln [Howard] Howards zwei Grundregeln [Howard] Jede Eingabe ist destruktiv, solange nicht das Gegenteil bewiesen ist. Jede Eingabe ist destruktiv, solange nicht das Gegenteil bewiesen ist. Daten müssen überprüft werden, da sie die Grenzen zwischen vertrauenswürdigen und nicht vertrauenswürdigen Umgebungen überschreiten. Daten müssen überprüft werden, da sie die Grenzen zwischen vertrauenswürdigen und nicht vertrauenswürdigen Umgebungen überschreiten.

6 Der TechTalk Web Shop Demo-Applikation mit Sicherheits- lücken Demo-Applikation mit Sicherheits- lücken Ein kleine Herausforderung: Finden wir die Lücken! Ein kleine Herausforderung: Finden wir die Lücken!

7 Die Aufgaben: Kaufen Sie billiger ein... Kaufen Sie billiger ein... Z.B. Eine Firewall für 1,00 Z.B. Eine Firewall für 1,00 Ermitteln Sie Passwörter... Ermitteln Sie Passwörter... Verschaffen Sie sich Administrator- Zugriff... Verschaffen Sie sich Administrator- Zugriff... Versenden Sie Junkmail mit dem Absender des Webshops... Versenden Sie Junkmail mit dem Absender des Webshops...

8 Thinking like a Hacker lab lab

9 Einige bekannte Angriffe

10 Parametermanipulation Angreifer verändert Übergabeparameter der Zielsite Angreifer verändert Übergabeparameter der Zielsite Daten in (verstecken) Formularfeldern, Querystrings Daten in (verstecken) Formularfeldern, Querystrings Beispiel: Preisinformationen, Authorisierungsflags usw. Beispiel: Preisinformationen, Authorisierungsflags usw.

11 Parametermanipulation: Abwehr Keine relevanten Parameter zum Client schicken Keine relevanten Parameter zum Client schicken Session-Objekt verwenden Session-Objekt verwenden Parameter verschlüsseln / hashen Parameter verschlüsseln / hashen Beispiel: Viewstate MAC (Message Authentication Code) Beispiel: Viewstate MAC (Message Authentication Code) Nur wenn unbedingt nötig verwenden! Nur wenn unbedingt nötig verwenden!

12 Parametermanipulation demo demo

13 SQL Insertion Angriff Angreifer schiebt der Site SQL-Code unter Angreifer schiebt der Site SQL-Code unter Die Zielsite leitet den SQL-Code an die Datenbank weiter Die Zielsite leitet den SQL-Code an die Datenbank weiter Möglich, wenn dynamische SQL-Strings generiert werden Möglich, wenn dynamische SQL-Strings generiert werden SQL-Code wird unter der Identität und mit den Rechten der Applikation ausgeführt SQL-Code wird unter der Identität und mit den Rechten der Applikation ausgeführt Im Extremfall ist das Auslesen der gesamten Datenbank möglich Im Extremfall ist das Auslesen der gesamten Datenbank möglich

14 Advanced SQL Insertion Union Attack Union Attack Eine zweite Anfrage wird an eine bestehende Anfrage angehängt Eine zweite Anfrage wird an eine bestehende Anfrage angehängt Abfrage von Systemtabellen möglich Abfrage von Systemtabellen möglich Unendliche Möglichkeiten für den Angreifer Unendliche Möglichkeiten für den Angreifer Drop Table Attack Drop Table Attack Angreifer kann ganze Tabellen mit einem kurzen Befehl löschen! Angreifer kann ganze Tabellen mit einem kurzen Befehl löschen!

15 SQL Insertion: Abwehr Kein dynamisches SQL verwenden Kein dynamisches SQL verwenden Auf keinen Fall dynamisches SQL verwenden Auf keinen Fall dynamisches SQL verwenden Dynamisches SQL vermeiden Dynamisches SQL vermeiden Auch in Stored Procedures! Auch in Stored Procedures! Parameterisierte Abfragen verwenden Parameterisierte Abfragen verwenden Schneller und sicherer Schneller und sicherer Code kann per Wizard erzeugt werden Code kann per Wizard erzeugt werden

16 SQL Insertion: Abwehr (2) Minimale Rechte für die Applikation vergeben Minimale Rechte für die Applikation vergeben Schützt vor dem Supergau Schützt vor dem Supergau LPAs (Low Privilege Accounts) zur Applikationsausführung und auf der Datenbank anlegen LPAs (Low Privilege Accounts) zur Applikationsausführung und auf der Datenbank anlegen Applikation darf nicht Owner der Datenbanktabelle sein Applikation darf nicht Owner der Datenbanktabelle sein

17 Exkurs: Stringvalidierung ASP.NET RegularExpressionValidator ASP.NET RegularExpressionValidator Prüft Eingabe auf dem Client und auf dem Server Prüft Eingabe auf dem Client und auf dem Server Kein Umgehen durch Manipulation des HTTP-Requests möglich Kein Umgehen durch Manipulation des HTTP-Requests möglich Überprüfung der Werte mit Page.Validate() für alle Controls, Control.Validate für einzelne Controls Überprüfung der Werte mit Page.Validate() für alle Controls, Control.Validate für einzelne Controls Automatische Überprüfung, wenn CausesValidation der absendenen Schaltfläche gesetzt ist Automatische Überprüfung, wenn CausesValidation der absendenen Schaltfläche gesetzt ist

18 SQL Insertion demo demo

19 Cross-Site Scripting (CSS) Angriff Angreifer zwingt die Zielsite zur Anzeige von Skriptcode Angreifer zwingt die Zielsite zur Anzeige von Skriptcode Unendliche Möglichkeiten für den Angreifer Unendliche Möglichkeiten für den Angreifer Ausführen von schädlichem Code Ausführen von schädlichem Code Umleitung auf andere Site Umleitung auf andere Site Ausspionieren von Cookies Ausspionieren von Cookies

20 CSS: Abwehr Validierung von Parametern Validierung von Parametern Auf potentiell unsichere Zeichen und Tags prüfen etc.) Auf potentiell unsichere Zeichen und Tags prüfen etc.) Eingaben mit HTMLEncode() umwandeln Eingaben mit HTMLEncode() umwandeln ASP.NET 1.1 nimmt Überprüfung automatisch vor und generiert Fehler (abfangen!) ASP.NET 1.1 nimmt Überprüfung automatisch vor und generiert Fehler (abfangen!) ASP.NET 1.0 verlangt manuelle Überprüfung ASP.NET 1.0 verlangt manuelle Überprüfung

21 CSS: Fallen Keine Reparaturversuche unternehmen Keine Reparaturversuche unternehmen Frage lautet: Was ist illegal? Frage lautet: Was ist illegal? Escaping (Verdoppeln) von Hochkommata Escaping (Verdoppeln) von Hochkommata Suchen nach speziellen Zeichen wie < etc. Suchen nach speziellen Zeichen wie < etc. Besser: Definition der legalen Zeichen Besser: Definition der legalen Zeichen Frage lautet: Was ist legal? Frage lautet: Was ist legal?

22 Cross Site Scripting demo demo

23 Open Mail Relay Angriff Angreifer sendet Mail über die Zielsite Angreifer sendet Mail über die Zielsite Möglich, wenn die Zielsite die Mailempfänger als Eingabeparameter akzeptiert Möglich, wenn die Zielsite die Mailempfänger als Eingabeparameter akzeptiert Angreifer kann Versand automatisieren, um Spam zu verschicken Angreifer kann Versand automatisieren, um Spam zu verschicken

24 Open Mail Relay: Abwehr Validierung von Parametern Validierung von Parametern Keine frei wählbaren Empängeradressen zulassen Keine frei wählbaren Empängeradressen zulassen Seite zum Mailversand ggf. hinter die Autorisierungsgrenze verlegen Seite zum Mailversand ggf. hinter die Autorisierungsgrenze verlegen

25 Open Mail Relay demo demo

26 Exkurs: ASP.NET Authentication Passport Passport Ein anderes Mal... Ein anderes Mal... Windows Authentication Windows Authentication User authentifiziert sich mit seinem Windows-Account User authentifiziert sich mit seinem Windows-Account Impersonation möglich, d.h. Webapplikation läuft unter dem Account des Users Impersonation möglich, d.h. Webapplikation läuft unter dem Account des Users Ideal für Adminstrationswebseiten Ideal für Adminstrationswebseiten

27 Exkurs: ASP.NET Authentication Forms Authentication Forms Authentication User authentifiziert sich auf einer Login- Seite gegen einen beliebigen Store (meistens Datenbank) User authentifiziert sich auf einer Login- Seite gegen einen beliebigen Store (meistens Datenbank) Ein Session-Cookie wird auf dem Client gesetzt und bei jedem Request mitgesendet Ein Session-Cookie wird auf dem Client gesetzt und bei jedem Request mitgesendet Wer das Cookie besitzt, kann die Identität des betreffenden Benutzers annehmen Wer das Cookie besitzt, kann die Identität des betreffenden Benutzers annehmen

28 Replay-Angriff Angreifer klaut Session-Cookie Angreifer klaut Session-Cookie Möglich durch CSS-Angriff, Abfangen der HTTP-Kommunikation, Social Engineering Möglich durch CSS-Angriff, Abfangen der HTTP-Kommunikation, Social Engineering Cookie enthält die Session-ID eines Users Cookie enthält die Session-ID eines Users Angreifer kann sich als dieser User tarnen [Finnel] Angreifer kann sich als dieser User tarnen [Finnel]

29 Replay-Angriff: Abwehr Kommunikation über SSL (HTTPS) Kommunikation über SSL (HTTPS) Nachteil: Sehr hoher Rechenaufwand Nachteil: Sehr hoher Rechenaufwand IIS 6: Bessere Unterstützung von SSL Hardwarelösungen IIS 6: Bessere Unterstützung von SSL Hardwarelösungen Cross-Site-Scripting ausschließen Cross-Site-Scripting ausschließen

30 Weitere Tips

31 Datenbank absichern Trusted Connections verwenden Trusted Connections verwenden Verwendet NTLM zwischen Applikation und SQL Server Verwendet NTLM zwischen Applikation und SQL Server Kein Klartextpasswort im Connection String Kein Klartextpasswort im Connection String Leider nur für SQL Server möglich Leider nur für SQL Server möglich Verwendung von IPSec erwägen Verwendung von IPSec erwägen Verschlüsselung von Kommunikation zwischen Applikationsserver und Datenbankserver uvm. Verschlüsselung von Kommunikation zwischen Applikationsserver und Datenbankserver uvm.

32 web.config-Einträge verschlüsseln Verfügbar ab VS.NET 2003 (Everett) Verfügbar ab VS.NET 2003 (Everett) Patch für VS.NET 2002 erhältlich Patch für VS.NET 2002 erhältlich Ermöglicht verschlüsselte Einträge Ermöglicht verschlüsselte Einträge Identity, Process Model, Connection String Identity, Process Model, Connection String Einträge werden in web.config referenziert Einträge werden in web.config referenziert Wert wird in der Registry verschlüsselt gespeichert Wert wird in der Registry verschlüsselt gespeichert Registry-Key ist durch eine ACL geschützt Registry-Key ist durch eine ACL geschützt

33 Low Privilege Account (LPA) So viele Rechte wie nötig, so wenig wie möglich So viele Rechte wie nötig, so wenig wie möglich Bestimmte Rechte sind zur Applikationsausführung nötig Bestimmte Rechte sind zur Applikationsausführung nötig Alle anderen Rechte sollten nur nach weiser Überlegung gewährt werden Alle anderen Rechte sollten nur nach weiser Überlegung gewährt werden Genaue Anfroderungen für LPAs sind dokumentiert [ Genaue Anfroderungen für LPAs sind dokumentiert [

34 Microsoft Baseline Security Analyser 1.1 Identifiziert problematische Konfigurationen Identifiziert problematische Konfigurationen Prüft Updatelevel Prüft Updatelevel Erstellt Reports Erstellt Reports Macht Vorschläge Macht Vorschläge Gibt Informationen Gibt Informationen Prüft Windows, IIS, SQL uvm. Prüft Windows, IIS, SQL uvm. Lokal und Remote Lokal und Remote

35 IIS Lockdown Tool 2.1 Deaktiviert nicht genützte Features Deaktiviert nicht genützte Features Rollenbasiert, z.B. Webserver, Messaging etc. Rollenbasiert, z.B. Webserver, Messaging etc. URLScan filtert potentiell unsichere HTTP-Requests URLScan filtert potentiell unsichere HTTP-Requests Filterregeln frei konfigurierbar Filterregeln frei konfigurierbar ASP.NET Debugging: [Q310588] beachten! ASP.NET Debugging: [Q310588] beachten!

36 Microsoft Security Bulletins Wichtigste Ressource für Security Wichtigste Ressource für Security Patches Patches Hätten wir nur früher reagiert...! Hätten wir nur früher reagiert...! Code Red Code Red SQL Slammer SQL Slammer

37 Vielen Dank! Fragen kostet nichts… Fragen kostet nichts…

38 Weitere Informationen [Q329290] Verschlüsselte web.config-Einträge: US;329290#3 [Q329290] Verschlüsselte web.config-Einträge: US;329290#3 US;329290#3 US;329290#3 [Wintellect] Wintellect ASP.NET FAQ (mit vielen Security-Fragen) &page=1 [Wintellect] Wintellect ASP.NET FAQ (mit vielen Security-Fragen) &page=1 &page=1 &page=1 [Finnel] Patterns and Practices: Building Secure ASP.NET Applications. Lynn Finnel (ed.). Microsoft Press, ISBN Buch als PDF File: us/dnnetsec/html/secnetlpMSDN.asp [Finnel] Patterns and Practices: Building Secure ASP.NET Applications. Lynn Finnel (ed.). Microsoft Press, ISBN Buch als PDF File: us/dnnetsec/html/secnetlpMSDN.asp us/dnnetsec/html/secnetlpMSDN.asp us/dnnetsec/html/secnetlpMSDN.asp [Howard] Sichere Software programmieren. Michael Howard, David LeBlanc. Microsoft Press, ISBN X. [Howard] Sichere Software programmieren. Michael Howard, David LeBlanc. Microsoft Press, ISBN X. [Basiura] Professional ASP.NET Security. Russ Basiura et al. Wrox Press, ISBN [Basiura] Professional ASP.NET Security. Russ Basiura et al. Wrox Press, ISBN

39 Weitere Informationen [OWASP] The Open Web Application Security Project [OWASP] The Open Web Application Security Project [OWASPTop10] The 10 Most Critical Web Application Vulnerablity onSecurityTopTen-Version1.pdf?download [OWASPTop10] The 10 Most Critical Web Application Vulnerablity onSecurityTopTen-Version1.pdf?download onSecurityTopTen-Version1.pdf?download onSecurityTopTen-Version1.pdf?download [SQLSecurity] SQLSecurity.com [SQLSecLock] SQLSecurity Checklist bid=4 [SQLSecurity] SQLSecurity.com [SQLSecLock] SQLSecurity Checklist bid=4 bid=4 bid=4 [AdvSQLInj] Advanced SQL Injection In SQL Server Applications. Chris Anley. [AdvSQLInj] Advanced SQL Injection In SQL Server Applications. Chris Anley.

40 Weitere Informationen [QDefense] AdCycle AdCycle SQL Command Insertion Vulnerability (Beispiel für SQL Injection) [QDefense] AdCycle AdCycle SQL Command Insertion Vulnerability (Beispiel für SQL Injection) [MBSA] Microsoft Baseline Security Analyser hNet/Security/tools/tools/MBSAHome.ASP [MBSA] Microsoft Baseline Security Analyser hNet/Security/tools/tools/MBSAHome.ASP hNet/Security/tools/tools/MBSAHome.ASP hNet/Security/tools/tools/MBSAHome.ASP [Q310588] PRB: Security Toolkit Breaks ASP.NET Debugging in Visual Studio.NET [Q310588] PRB: Security Toolkit Breaks ASP.NET Debugging in Visual Studio.NET [MSSec] Microsoft Security Bulletins net/security/ [MSSec] Microsoft Security Bulletins net/security/ net/security/ net/security/

41


Herunterladen ppt "ASP.NET Application Security Uwe Baumann Technologieberater Developer Group Microsoft GmbH"

Ähnliche Präsentationen


Google-Anzeigen