SlideShare ist ein Scribd-Unternehmen logo
ASP.NET-Security
André	Krämer
Softwareentwickler,	Trainer,	Berater,	Microsoft	MVP
https://andrekraemer.de |	andre@andrekraemer.de |	@codemurai
Wem	von	Ihnen	ist	Sicherheit	wichtig?Bild	©	stevepb /	Pixabay (https://pixabay.com/en/censorship-limitations-610101/)CC0	Lizenz	via		Pexels
Vermutlich	jedem!
Bild	©	neshom/	Pixabay (https://pixabay.com/en/door-accessibility-lock-doorway-1089560/) CC0	Lizenz	via		Pexels
Folgen	gehackter	Webseiten
• Datenverlust
• Direkte	Umsatzeinbußen	durch	manipulierte	Daten
• Imageverlust
• Schadensersatzklagen
Was	wir	uns	heute	ansehen	werden
• Einige	repräsentative	Sicherheitslücken	in	Webanwendungen
• Angriffe	auf	diese	Sicherheitslücken
• Besprechung	der	Gegenmaßnahmen
• Je	nach	Zeit:	Konkrete	Implementierung
• Alle	Beispiele	im	Rahmen	von	ASP.NET	MVC	5
6
ACHTUNG!
Ich	bin	kein	professioneller	Hacker!
7Bild	©	Pixabay (https://pixabay.com/en/anonymous-studio-figure-photography-657195/) CC0	Lizenz	via		Pexels
Demo
8
Übung
• Clonen Sie	das	Repository	
https://github.com/AndreKraemer/VegiSecurityDemo oder	
laden	Sie	die	Zip	Datei	herunter.
• Stöbern	Sie	nicht	durch	den	Quellcode
• Öffnen	Sie	anschließend	die	Solution	
Ak.ElVegetarianoFurio in	Visual	Studio.
• Erstellen	Sie	die	Datenbank	über
Update-Database
• Starten	Sie	die	Anwendung
• Loggen	Sie	sich	mit	den	Daten
wilhelm@brause.de G3h4im?				ein
Bild	©	iAmMrRob /	Pixabay (https://pixabay.com/en/hacking-cyber-blackandwhite-crime-2903156/) CC0	Lizenz
Phase	1:	Daten	sammeln
• Ehe	eine	Webseite	angegriffen	werden	kann,	gilt	es	möglichst	viele	
Informationen	über	die	Seite	zu	sammeln
• Dies	kann	werkzeuggestützt	funktionieren	(z.	B.	mit	IronWASP
https://ironwasp.org)	
• Oder	manuell
• Oder	eine	Kombination
• Dinge	auf	die	beispielsweise	zu	achten	sind:
• Web	Server	inklusive	Version
• Web	Framework	inklusive	Version
• “Versteckte	URLs“	(robots.txt)
• Formatierte	Inhalte	in	offensichtlich	dynamisch	generierten	Seiten
Demo
IronWASP
11
Übung
• Starten	Sie	die	Webanwendung	ohne	Debugging
• Laden	Sie	IronWASP herunter	und	lassen	Sie	die	Webseite	überprüfen
• Führen	Sie	eine	manuelle	Prüfung	durch
• Notieren	Sie	Auffälligkeiten
Bild	©	iAmMrRob /	Pixabay (https://pixabay.com/en/hacking-cyber-blackandwhite-crime-2903156/) CC0	Lizenz
Unsichere	direkte	Objektreferenzen	/	
Broken Access	Control
• Beim	Risiko	Broken Access	Control		bzw.	unsichere	direkte	
Objektreferenzen	erhält	der	Angreifer	Zugriff	auf	Daten	die	nicht	für	
ihn	gedacht	waren.
• Beispiel:	Zugriff	persönlicher	Daten	eines	anderen	Nutzers
• Ursachen
• Es	findet	keine	Zugriffskontrolle	auf	Entitätsebene	statt
• Primärschlüssel	aus	der	Datenbank	werden	in	der	Url genutzt
Übung
• Loggen	Sie	sich	mit	den	Daten
wilhelm@brause.de G3h4im?				ein
• Überprüfen	Sie,	ob	Sie	durch	Manipulation	der	Adresszeile	persönliche	Daten	
eines	anderen	Benutzers	ausspähen	können
Bild	©	iAmMrRob /	Pixabay (https://pixabay.com/en/hacking-cyber-blackandwhite-crime-2903156/) CC0	Lizenz
Demo
Broken Auth
15
Validierung
• Validierung	hat	zwei	Ziele
• Steigerung	des	Nutzerkomforts
• Überprüfung	und	Behandlung	ungültiger	Eingaben	zum	Schutz	der	
Datenintegrität
• Clientseitige	Validierung	dient	primär	zur	Steigerung	des	
Nutzerkomforts
• Serverseitige	Validierung	stellt	die	Datenintegrität	sicher
Übung
• Loggen	Sie	sich	mit	den	Daten
wilhelm@brause.de G3h4im?				ein
• Wechseln	Sie	zur	URL	http://localhost:64255/Coupon/Create (Account	Namen	
anklicken	à Neuen	Coupon	anlegen)
• Versuchen	Sie	einen	Coupon	in	der	Höhe
von	15	€	anlegen.	Überprüfen	Sie	den
HTTP	Traffic	mit	der	Hilfe	von	Fiddler
Bild	©	iAmMrRob /	Pixabay (https://pixabay.com/en/hacking-cyber-blackandwhite-crime-2903156/) CC0	Lizenz
Demo
Validierung
18
Übung
• Loggen	Sie	sich	mit	den	Daten
wilhelm@brause.de G3h4im?				ein
• Wechseln	Sie	zur	URL	http://localhost:64255/Coupon/Create (Account	Namen	
anklicken	à Neuen	Coupon	anlegen)
• Legen	Sie	einen	Account	über	1	€	an
während	Fiddler läuft
• Navigieren	Sie	in	der	Historie	zurück
legen	Sie	einen	neuen	Coupon	an
• Starten	Sie	über	Fiddler einen	weiteren
Request,	der	dieses	Mal	einen	Coupon
über	15	€	anlegt
Bild	©	iAmMrRob /	Pixabay (https://pixabay.com/en/hacking-cyber-blackandwhite-crime-2903156/) CC0	Lizenz
Model	Binding
• ASP.NET	Model	Binding	überträgt	Daten	aus	dem	Request	in	ein	
Model
• Alle	im	Model	verfügbaren	Eigenschaften	werden	gebunden,	falls	
diese	nicht	explizit	ausgeschlossen	werden
Übung
• Sehen	Sie	sich	Ihre	Lieferadresse	in	der
Anwendung	an
• Ändern	Sie	Ihre	Adresse	und	zeichnen	Sie
den	Netzwerkverkehr	im	Fiddler
auf
• Versuchen	Sie	über	den	Fiddler
die	Daten	eines	anderen	Nutzers
zu	ändern
Bild	©	iAmMrRob /	Pixabay (https://pixabay.com/en/hacking-cyber-blackandwhite-crime-2903156/) CC0	Lizenz
Übung
• Öffnen	Sie	die	Solution	Ak.ElVegetarianoHacker
• Kompilieren	Sie
• Führen	Sie	Update-Database	in	der	Package	Manager	
Console aus
• Starten	Sie	die	Anwendung
• Loggen	Sie	sich	in	der	
Hauptanwendung	ein
• Klicken	Sie	auf	der	Hacker	Seite	auf
„Gefällt	mir“
Bild	©	iAmMrRob /	Pixabay (https://pixabay.com/en/hacking-cyber-blackandwhite-crime-2903156/) CC0	Lizenz
Demo
Model	Binding
23
Übung
• Sehen	Sie	sich	die	Rechnungen	des	Nutzers	Wilhelm	Brause	
an
• Was	fällt	Ihnen	auf?
Bild	©	iAmMrRob /	Pixabay (https://pixabay.com/en/hacking-cyber-blackandwhite-crime-2903156/) CC0	Lizenz
Demo
Directory	Traversal
25
Demo
Security	
Misconfiguration
26
Demo
Cross	Site	Scripting
27
Demo
SQL	Injection
28
Homepage
andre@andrekraemer.de |	http://andrekraemer.de |	http://andrekraemer.de/blog |	http://github.com/AndreKraemer
Vielen	Dank!
Blog
Xing
Facebook
Twitter
Google+
Meine	Dienstleistungen
• Schulungen
• ASP.NET	/	JavaScript	/	Angular
• Xamarin
• Unit	Testing und	Refactoring
• TX	Text	Control
• Team	Foundation	Server
• .NET	Datenzugriff	(Entity	Framework,	NHibernate,	Micro	O/R	Mapper)
• Consulting
• Durchführung	von	Technologieworkshops
• Code- /	Architekturreviews
• Analyse	von	managed Memory	Leaks und	Performanceproblemen
• Prototypenentwicklung
• Remote	Entwickler-Support
• Projektbegleitendes	Coaching
• Beratung	bei	der	Migration	von	Legacy	Technologien	(Classic	ASP,	Visual	Basic	6,	Gupta	Centura,	...)	zu	.NET
• Softwareentwicklung
• Mobile	Apps	(Android,	iOS,	Windows	10)
• Entwicklung	von	Web-Anwendungen	mit	ASP.NET	und	Angular
• Entwicklung	von	Desktop	Anwendungen
• Migration	von	ASP	Classic	zu	modernen	Weblösungen
andre@andrekraemer.de |	https://andrekraemer.de |	http://andrekraemer.de/blog |	http://github.com/AndreKraemer

Weitere ähnliche Inhalte

Mehr von André Krämer

Lokale Datenhaltung in Xamarin-Apps
Lokale Datenhaltung in Xamarin-AppsLokale Datenhaltung in Xamarin-Apps
Lokale Datenhaltung in Xamarin-Apps
André Krämer
 
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
André Krämer
 
Entity Framework hinter den Kulissen
Entity Framework hinter den KulissenEntity Framework hinter den Kulissen
Entity Framework hinter den Kulissen
André Krämer
 
Performance trotz Entity Framwork
Performance trotz Entity FramworkPerformance trotz Entity Framwork
Performance trotz Entity Framwork
André Krämer
 
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
André Krämer
 
.NET Datenzugriff einfach und performant mit Micro O/R Mappern
.NET Datenzugriff einfach und performant mit Micro O/R Mappern .NET Datenzugriff einfach und performant mit Micro O/R Mappern
.NET Datenzugriff einfach und performant mit Micro O/R Mappern
André Krämer
 
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
André Krämer
 
Zentrale Dokumentengenerierung mit dem Open XML SDK
Zentrale Dokumentengenerierung mit dem Open XML SDKZentrale Dokumentengenerierung mit dem Open XML SDK
Zentrale Dokumentengenerierung mit dem Open XML SDK
André Krämer
 

Mehr von André Krämer (8)

Lokale Datenhaltung in Xamarin-Apps
Lokale Datenhaltung in Xamarin-AppsLokale Datenhaltung in Xamarin-Apps
Lokale Datenhaltung in Xamarin-Apps
 
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
 
Entity Framework hinter den Kulissen
Entity Framework hinter den KulissenEntity Framework hinter den Kulissen
Entity Framework hinter den Kulissen
 
Performance trotz Entity Framwork
Performance trotz Entity FramworkPerformance trotz Entity Framwork
Performance trotz Entity Framwork
 
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
Cross Plattform App Entwicklung mit Visual Studio 2015 (Xamarin und Cordova)
 
.NET Datenzugriff einfach und performant mit Micro O/R Mappern
.NET Datenzugriff einfach und performant mit Micro O/R Mappern .NET Datenzugriff einfach und performant mit Micro O/R Mappern
.NET Datenzugriff einfach und performant mit Micro O/R Mappern
 
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
Das Repository-Pattern und der O/R-Mapper: Geniale Kombination oder vergebene...
 
Zentrale Dokumentengenerierung mit dem Open XML SDK
Zentrale Dokumentengenerierung mit dem Open XML SDKZentrale Dokumentengenerierung mit dem Open XML SDK
Zentrale Dokumentengenerierung mit dem Open XML SDK
 

Typische Sicherheitslücken in ASP.NET MVC und Web API Anwendungen