Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Best Practices der sicheren Programmierung mit.NET Andrea Janes.

Ähnliche Präsentationen


Präsentation zum Thema: "Best Practices der sicheren Programmierung mit.NET Andrea Janes."—  Präsentation transkript:

1 Best Practices der sicheren Programmierung mit.NET Andrea Janes

2 IT Security Day - Folie 2 Inhalt Einleitung Sichere Systeme entwerfen Software testen Empfehlenswerte Verfahren

3 IT Security Day - Folie 3 Sichere Systeme entwerfen

4 IT Security Day - Folie 4 Design der Archi- tektur und des Anwendungskerns Sicherheit im Softwareentwicklungsprozess Konzept Erste Anforderungs- analyse Eine Version entwickeln Feedback berücksichtigen Version liefern Feedback des Kunden ermitteln Fertige Version ausliefern

5 IT Security Day - Folie 5 Design der Archi- tektur und des Anwendungskerns Sicherheit im Softwareentwicklungsprozess Konzept Erste Anforderungs- analyse Eine Version entwickeln Feedback berücksichtigen Version liefern Feedback des Kunden ermitteln Fertige Version ausliefern  Worum geht es?  Welches Resultat wird angestrebt?  Wer hat welchen Nutzen?  Wie wird dieser Nutzen erreicht?  Ermittlung der Anforderungen basierend auf potentielle Kunden oder  Ermittlung der Anforderungen basierend auf dem Markt (d.h. unter Berücksichtigung der Anforderungen der anzusprechenden Marktsegmente) Anforderungsentwicklung 1)  Funktionale Anforderungen beschreiben die möglichen Features, d.h.: welche Möglichkeiten hat der Benutzer die Anwendung zu verwenden? 1) http://en.wikipedia.org/wiki/Functional_requirements 2) http://www-128.ibm.com/developerworks/web/library/wa-qualbust1/  Nicht-funktionale Anforderungen legen Design- Einschränkungen fest (Beispiele: Anforderungen hinsichtlich der Geschwindigkeit, Qualität, Design und Sicherheit)  Anforderungen müssen klar, korrekt, eindeutig, spezifisch und überprüfbar sein.  Einflussfaktoren bei der Anwendungsentwicklung 2) :

6 IT Security Day - Folie 6 Sicherheit zu spät berücksichtigen Zeit Kosten Konzept Analyse & Design CodingEinsatz Konzept

7 IT Security Day - Folie 7 Überprüfen Ausführen Richten Sie einen Sicherheitsprozess ein. Planen Handeln Sicherheitsprozess verbessern Prozess und Änderungen des Prozesses dokumentieren (z.B. indem Sie ein Wiki verwenden) Planen Sicherheitszielsetzungen für das Produkt definieren Bedrohungsmodellierung –Bedrohungen ermitteln –Klassifizierung der Gefahrentypen –Wie soll reagiert werden? –Welche Techniken werden zur Abwehr gewählt? Überprüfen Lernen Sie aus Ihren Fehlern Dokumentieren Sie wieso etwas fehlschlägt. Ausführen Verwenden Sie minimale Rechte Errichten Sie mehrere Verteidigungslinien Externe Systeme sind unsicher Planen Sie ein Versagen ein Sicherheitsfeature != sicheres Feature Setzen Sie sichere Standardeinstellungen Verstecken != Sicherheit

8 IT Security Day - Folie 8 Software testen

9 IT Security Day - Folie 9 Wieso/Was/Womit wird getestet? Was? (Application, components,...) Wie? (Test strategien, Test tools,...) Wieso? (Regressionstest, Sicherheitstest, Verhaltenstest, Performancetest,...)

10 IT Security Day - Folie 10 Rückverfolgbarkeit “Rückverfolgbarkeit bezieht sich auf die Vollständigkeit der Information über jeden Schritt einer Prozesskette.” 1) 1) http://www.answers.com/traceability

11 IT Security Day - Folie 11 Rückverfolgbarkeit Test Design Coding Anforderungen “Test first” Tests bestätigen die Implementierung von Anforderungen Stellt sicher, dass der “richtige” Code erstellt wird

12 IT Security Day - Folie 12 Wie soll „test-first“ Code erstellt werden? “Schreibe mindestens einen Test für jedes Feature.” “Schreibe zuerst die Schnittstelle/das Klassengerüst, dann schreib den Test, stelle sicher dass der Test fehlschlägt (da ja der Code, der die gewünschte Funktionalität umsetzt noch nicht existiert!) “Nur ein fehlgeschlagener Test gibt dir das Recht, ein neues Feature zu implementieren. Das Ziel jeder Zeile Code sollte sein, den fehlgeschlagenen Test zum Laufen zu bringen.” Wenn du einen Fehler findest, repariere ihn nicht......stattdessen, schreibe einen Test der den Fehler findet und deshalb fehlschlägt......und dann bereinige den Fehler.

13 IT Security Day - Folie 13 NUnit

14 IT Security Day - Folie 14 NUnit

15 IT Security Day - Folie 15 Empfehlenswerte Verfahren

16 IT Security Day - Folie 16 Empfehlenswerte Verfahren Datenschutz! Verraten Sie dem Angreifer nichts! Alle Codezweige prüfen! Lassen Sie es ausgeschaltet! Sichern Sie sicherheitsrelevante Codeteile durch Tests ab! Nutzen Sie die Fähigkeiten des Betriebssystems! Bürden Sie dem Benutzer keine Entscheidungen auf!

17 IT Security Day - Folie 17 Empfehlenswerte Verfahren Verwenden Sie minimale Rechte –Schreiben Sie keine Benutzerdateien in „C:\Programme\“ –Schreiben Sie keine Benutzerdateien in HKLM –Wasser predigen und Wein trinken... (http://nonadmin.editme.com/) Speichern Sie temporäre Dateien in %TEMP%! Speichern Sie keine privaten Schlüssel in.NET Code! Verwenden Sie einen Obfuscator! START F. Wieso ist Windows so unsicher? A. Weil jeder als Administrator eingeloggt ist. F. Wieso loggt sich jeder als Administrator ein? A. Weil die meisten Sicherheitsprobleme nicht verstehen und meinen, ein User Account gäbe ihnen nur eingeschränkte Arbeits- möglichkeiten. F. Wieso verstehen die meisten nichts von Sicherheit? A. Weil Sie als Administrator eingeloggt sind und so alle Sicherheitsmechanismen umgehen. ZURÜCK ZUM START

18 IT Security Day - Folie 18 Faule Ausreden Niemand wird so etwas tun! Warum sollte irgendjemand so etwas tun? Wir wurden nie angegriffen. Wir sind sicher – wir nutzen Kryptografie. Wir sind sicher – wir verwenden ACLs. Wir sind sicher – wir haben eine Firewall. Wir haben unseren Code prüfen lassen, er enthält keine Sicherheitsprobleme. Es ist zwar die Standardeinstellung, aber der Administrator kann es abschalten. Wenn wir uns nicht als Administrator anmelden, funktioniert das Zeug nicht.


Herunterladen ppt "Best Practices der sicheren Programmierung mit.NET Andrea Janes."

Ähnliche Präsentationen


Google-Anzeigen