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

Slides:



Advertisements
Ähnliche Präsentationen
DI Christian Donner cd (at) donners.com
Advertisements

Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Be.as WEB Technologie
Sichere IT Infrastrukturen – was der Entwickler wissen sollte
Präsentation des Abschlussprojektes Rudolf Berger
Was gibt´s neues im Bereich Sicherheit
Sichere Anbindung kleiner Netze ans Internet
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
ASP.NET Tips & Tricks Uwe Baumann
Web-Entwicklung mit ASP.NET 2.0 und Visual Studio 2005 Uwe Baumann Marketing Manager Developer Tools Microsoft Deutschland GmbH Oliver Scheer Developer.
Web Matrix Project Kurzüberblick Dirk Primbs Technologieberater Developer Platform Strategy Group Microsoft Deutschland GmbH.
Systemverwaltung wie es Ihnen gefällt.
Die 20 beliebtesten Versäumnisse hinsichtlich Sicherheit in der Softwareentwicklung EUROSEC GmbH Chiffriertechnik & Sicherheit Tel: / 60850,
Aufbau des Internets Überblick Prof. Dr. T. Hildebrandt
Kurze Einführung in ASP
oodle BelWü Technische Details
Datenbankzugriff im WWW (Kommerzielle Systeme)
Erweiterung B2B Usermanagement / LDAP-Anbindung
Datenbankanbindung mit ASP Wilhelm-Schickard-Schule Tübingen
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Spezielle Aspekte der Anbindung von Datenbanken im Web.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Einführung MySQL mit PHP
Uwe Habermann Venelina Jordanova dFPUG – Silverlight Wizard.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
MSDN Webcast: VB.NET für Einsteiger und Umsteiger, Teil 10 Die erste, eigene Klassenbibliothek (Level 100) Presenter: Daniel Walzenbach Technologieberater.
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
ECDL M8 IT - Security.
Grundlagen der sicheren PHP Programmierung Parametermanipulationen und Injektionslücken Stefan Esser Hardened-PHP Project.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 6 Folie 2 ASP.NET Einführung (1) Microsoft-Technologien zur Entwicklung.
Silverlight Eine Einführung. Agenda 1.Was ist Silverlight? 2.Die Silverlight Philosophie 3.Vorstellung des Szenarios 4.Einführendes Beispiel 5.Konzepte.
Microsoft Security Tools Christian Thor Systems Engineer Microsoft GmbH.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 11 Folie 2 Microsoft Internet Information Services (IIS)
Best Practices in der Datenbank-programmierung
SQL Server 2005 CLR-Integration
Präsentation von Sonja Pathe
Brand my SharePoint Grafische Gestaltung von SharePoint-Webseiten
Grundlagen: Client-Server-Modell
Bedeutung von Internet-Technologien
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 2 Folie 2 ASP.NET HTTP-Handler (1)
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 ASP.NET Zustandsverwaltung
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ASP.NET Seitenübergänge
Folgendes kann missbraucht werden: formulare unverschlüsselte login-informationen ungeschützte includes SQL-injection reto ambühler
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
Daniel Franke Tim Benedict Jagla Matthias Thimm
Präsentation von Lukas Sulzer
Uwe Habermann Venelina Jordanova VFX in Cloud.
Bereitstellen von PHP-Webanwendungen auf Windows Azure
Datenanbindung in Webapplikationen
Hacking InfoPoint Jörg Wüthrich Infopoint - Hacking - Jörg Wüthrich 2/26 Inhalte Rund um das Thema Hacking Angriffs-Techniken Session.
Warum IIS? Best of Microsoft Webserver
Real World Windows Azure Die Cloud richtig nutzen.
Kaseya Virtual System Administrator Produkt Update 7.0 Rocco van der Zwet Copyright ©2014 Kaseya 1.
VPN – Virtual Private Network
Best Practices der sicheren Programmierung mit.NET Andrea Janes.
Exploiting Web Applications
7.-8. März 2013, Rosenheim Brand my SharePoint grafische Gestaltung von SharePoint 2013-Webseiten Fabian Moritz | MVP SharePoint Server.
Quelle: xkcd.com SQL Injections.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Sniffing & Spoofing Workshop
Rechen- und Kommunikationszentrum (RZ) Sicherheitsorientierte Webentwicklung am Beispiel der Matse-Dienste Jan-Frederic Janssen.
Application Infrastructure Technologies Extending OnPremise EAI to the Cloud Wilfried Mausz BSc. dataformers GmbH Lothar Mausz dataformers.
Sicherheit in Webanwendungen „CrossSite“, „Session“ und „SQL“ Angriffstechniken und Abwehrmaßnahmen Mario Klump.
Christian Wenz Karsten Samaschke Uwe Baumann
• Projektdialog paralleler Plagiatschutz- projekte
SOFTWARE- UND WEB-LÖSUNGEN
 Präsentation transkript:

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

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

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...)

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]

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.

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!

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...

Thinking like a Hacker lab lab

Einige bekannte Angriffe

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.

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!

Parametermanipulation demo demo

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

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!

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

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

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

SQL Insertion demo demo

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

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

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?

Cross Site Scripting demo demo

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

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

Open Mail Relay demo demo

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

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

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]

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

Weitere Tips

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.

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

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 [

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

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!

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

Vielen Dank! Fragen kostet nichts… Fragen kostet nichts…

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

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.

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/