Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Security Development Lifecycles

Ähnliche Präsentationen


Präsentation zum Thema: "Security Development Lifecycles"—  Präsentation transkript:

1 Security Development Lifecycles
MS TechDays Bern, 9. April 2009 Jan Münther, CTO Security, n.runs AG

2 Agenda Roadmap Awareness und Training Phasen der Entwicklung
Security Development Lifecycles – TechDays Agenda Roadmap Awareness und Training Phasen der Entwicklung Requirements Design Implementierung Verifizierung Veröffentlichung Response © n.runs AG, Jan Münther, 27-Mar-17

3 SDL von Microsoft Security Training Use Security Development Tools & Security Best Dev & Test Practices Create Security Docs and Tools For Product Prepare Security Response Plan Security Push Final Security Review Security Servicing & Response Execution Security Kickoff & Register with SWI Security Design Best Practices Security Arch & Attack Surface Review Threat Modeling Pen Testing Der herkömmliche Entwicklungszyklus bei Microsoft, inkl. Aufgaben und Prozesse Feature Lists Quality Guidelines Arch Docs Schedules Testing and Verification Design Specifications Code Signing A Checkpoint Express Signoff RTM Product Support Service Packs/ QFEs Security Updates Functional Specifications Development of New Code Bug Fixes Requirements Design Implementation Verification Release Support & Servicing heise Security Konferenz 2008, Jan Münther

4 Training Training bildet den Einstieg in einen Security Lifecycle
Security Development Lifecycles – TechDays Training Training bildet den Einstieg in einen Security Lifecycle Sicherheitsbewusstsein Verschiedene Zielgruppen Management Teamleiter / Produktmanager Entwickler Unterstützung der Bemühungen durch Top Level Management unumgängliche Voraussetzung für den Erfolg! Sicherheitsbewusstsein als Teil der Firmenkultur © n.runs AG, Jan Münther, 27-Mar-17

5 SDL von Microsoft Security Development Lifecycles – TechDays
Security Training Use Security Development Tools & Security Best Dev & Test Practices Create Security Docs and Tools For Product Prepare Security Response Plan Security Push Final Security Review Security Servicing & Response Execution Security Kickoff & Register with SWI Security Design Best Practices Security Arch & Attack Surface Review Threat Modeling Pen Testing Requirements Design Implementation Verification Release Support & Servicing heise Security Konferenz 2008, Jan Münther

6 Requirements Sicherheitsthemen gehören ins Pflichtenheft!
Security Development Lifecycles – TechDays Requirements Sicherheitsthemen gehören ins Pflichtenheft! Auch und besonders bei Entwicklung durch Dritte Schutzbedarfsanalyse Wie sicherheitskritisch wird die Anwendung? Definiert letzlich durch den "Data Owner" © n.runs AG, Jan Münther, 27-Mar-17

7 SDL von Microsoft Security Development Lifecycles – TechDays
Security Training Use Security Development Tools & Security Best Dev & Test Practices Create Security Docs and Tools For Product Prepare Security Response Plan Security Push Final Security Review Security Servicing & Response Execution Security Kickoff & Register with SWI Security Design Best Practices Security Arch & Attack Surface Review Threat Modeling Pen Testing Requirements Design Implementation Verification Release Support & Servicing heise Security Konferenz 2008, Jan Münther

8 Security Development Lifecycles – TechDays
Phase Drei: Design ( 1 / 8 ) Entwurf der Sicherheitsmechanismen zur Umsetzung der Schutzbedürfnisse Threat Modelling hilft beim Erkennen von Bedrohungen Demonstration Threat Modeling Tool v3.0 Threat Modeling ist die zentrale Komponenten im SDL Übersicht über die Bedrohungen Grafische Unterstützung und Visualisierung der Zusammenhänge Automatische Hilfe beim Auffinden von potentiellen Bedrohungen © n.runs AG, Jan Münther, 27-Mar-17

9 Security Development Lifecycles – TechDays
Phase Drei: Design ( 2 / 8 ) Die Erfahrung zeigt: Das Erfordernis des Threat Modelings allein hebt das Sicherheitsniveau erheblich Umfassende Auseinandersetzung mit dem Thema Sicherheit unumgänglich © n.runs AG, Jan Münther, 27-Mar-17

10 Phase Drei: Design ( 3 / ) Security Development Lifecycles - TechDays
© n.runs AG, Jan Münther, 27-Mar-17

11 Security Development Lifecycles – TechDays
Phase Drei: Design ( 4 / 8 ) Design-Fehler sabotieren die Sicherheit der Gesamtlösung von Anfang an Selbst bei sicherer Implementierung kann das Endprodukt nicht sicher sein Ein paar Beispiele für unsicheres Design! © n.runs AG, Jan Münther, 27-Mar-17

12 Phase Drei: Design ( 5 / 8 ) Design-Problem: Hartkodiertes Passwort
Security Development Lifecycles – TechDays Phase Drei: Design ( 5 / 8 ) Design-Problem: Hartkodiertes Passwort Zwei Varianten "default password" Sollten vom Benutzer geändert werden Erfolgt oft nicht Zum Teil unbekannte Benutzer Beispiel: Oracle OUTLN "hardcoded password" "Wartungszugang" Zum Debugging © n.runs AG, Jan Münther, 27-Mar-17

13 Phase Drei: Design ( 6 / 8 ) Hartkodierte Passwörter als Backdoors
Security Development Lifecycles – TechDays Phase Drei: Design ( 6 / 8 ) Hartkodierte Passwörter als Backdoors Z.B. Netgear WG602 Accesspoint Problematisches Design wird zum Security-Bug Aruba Wireless Controller © n.runs AG, Jan Münther, 27-Mar-17

14 Phase Drei: Design ( 7 / 8 ) Hartkodierte Passwörter als Backdoors
Security Development Lifecycles – TechDays Phase Drei: Design ( 7 / 8 ) Hartkodierte Passwörter als Backdoors Z.B. Netgear WG602 Accesspoint Problematisches Design wird zum Security-Bug Aruba Wireless Controller © n.runs AG, Jan Münther, 27-Mar-17

15 Phase Drei: Design ( 8 / 8 ) Design-Problem: Schlechte Kryptographie
Security Development Lifecycles – TechDays Phase Drei: Design ( 8 / 8 ) Design-Problem: Schlechte Kryptographie Obfuskation von gespeicherten Passwörtern Beispiel: CPIC-User für Synactive SAP GUI XT Passwort "verschlüsselt" in Registry abgelegt Algorithmus lässt sich disassemblieren Decoder © n.runs AG, Jan Münther, 27-Mar-17

16 Phase Drei: Design ( 9 / ) Design-Problem: Schlechte Kryptographie
Security Development Lifecycles - TechDays Phase Drei: Design ( 9 / ) Design-Problem: Schlechte Kryptographie Obfuskation von gespeicherten Passwörtern Beispiel: CPIC-User für Synactive SAP GUI XT Passwort "verschlüsselt" in Registry abgelegt Algorithmus lässt sich disassemblieren Decoder © n.runs AG, Jan Münther, 27-Mar-17

17 Phase Drei: Design ( 9 / ) Design-Problem: Schlechte Kryptographie
Security Development Lifecycles - TechDays Phase Drei: Design ( 9 / ) Design-Problem: Schlechte Kryptographie Obfuskation von gespeicherten Passwörtern Beispiel: CPIC-User für Synactive SAP GUI XT Passwort "verschlüsselt" in Registry abgelegt Algorithmus lässt sich disassemblieren Decoder © n.runs AG, Jan Münther, 27-Mar-17

18 SDL von Microsoft Security Development Lifecycles - TechDays
Security Training Use Security Development Tools & Security Best Dev & Test Practices Create Security Docs and Tools For Product Prepare Security Response Plan Security Push Final Security Review Security Servicing & Response Execution Security Kickoff & Register with SWI Security Design Best Practices Security Arch & Attack Surface Review Threat Modeling Pen Testing Requirements Design Implementation Verification Release Support & Servicing heise Security Konferenz 2008, Jan Münther

19 Implementierung ( 1 / 5 ) Klassisches Gebiet für Code-Defekte
Security Development Lifecycles - TechDays Implementierung ( 1 / 5 ) Klassisches Gebiet für Code-Defekte Unmanaged Code (C/C++) Fehlende oder unzulängliche Längenüberprüfungen Integer Overflows / Integer Underflows Managed Code Code Access Security Luring Attacks Alle typischen Sicherheitsprobleme wie Injection Attacks Häufig XML-Processing-Probleme .NET Remoting © n.runs AG, Jan Münther, 27-Mar-17

20 Implementierung ( 2 / 5 ) Fehler können verhindert werden durch
Security Development Lifecycles - TechDays Implementierung ( 2 / 5 ) Fehler können verhindert werden durch Austausch von riskanten APIs Klassische Beispiele strcpy() und strcat() Einsatz von sicheren Bibliotheken (SafeInt, Anti XSS Libs etc.) Festgelegt durch Secure Coding Policies Überprüft durch Tools zur Statischen Analyse Überprüfung beim Check-In Überprüfung zur "Build Time" Für Managed Code: FXCop beinhaltet Security-Regeln Code Analyse mit Sec Rules in VS Team Edition CAT.NET Einsatz von Tools zur Statischen Analyse kann und sollte Teil des Implementierungsprozesses werden! Kein Check-In bei kritischen Fehlern © n.runs AG, Jan Münther, 27-Mar-17

21 Security Development Lifecycles - TechDays
Implementierung ( 3 / 5 ) Klassischer Fehler: falsche Überprüfung von Zertifikaten bool RemoteCertValidate(object sender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error) { certificateName = cert.Subject; if (cert.Subject.StartsWith(subjectName)) { return true; } return false; } Gefunden durch Source Code Audit! Automatisierte Statische Analyse würde diesen Fehler nicht finden © n.runs AG, Jan Münther, 27-Mar-17

22 Implementierung ( 4 / 5 ) SQL Injection – einfach zu verhindern, aber doch noch oft zu finden! <% Dim id, password, q, rs, d id = Request.Form("id") password = Request.Form("password") ' ** Create your Query q = "SELECT * FROM password WHERE id LIKE '" &_      id & "' AND password LIKE '" & password & "'" ' ** Create a RecordSet to store the results of the Query Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open q, "DSN=xxxxxx;" ' ** check for no records returned (id or password not found) if NOT rs.EOF then ' ** Set cookies for user's convenience     d = Date     Response.Cookies("userid") = id     Response.Cookies("pword") = password     Response.Cookies("userid").Expires = DateAdd("yyyy",2,d)     Response.Cookies("pword").Expires = DateAdd("yyyy",2,d) end if %>

23 Visual C#, Schritt für Schritt, Microsoft Press (S. 587)
Implementierung ( 5 / 5 ) Visual C#, Schritt für Schritt, Microsoft Press (S. 587) SqlCommand dataCommand = new SqlCommand(); dataCommand.Connection = dataConnection; dataCommand.CommandText = "SELECT OrderID,OrderDate,ShippedDate,ShipName,ShipAddress,ShipC ity,ShipCountry" dataCommand.CommandText += "FROM Orders WHERE CustomerID='" + customerID+"'";

24 SDL von Microsoft Security Development Lifecycles - TechDays
Security Training Use Security Development Tools & Security Best Dev & Test Practices Create Security Docs and Tools For Product Prepare Security Response Plan Security Push Final Security Review Security Servicing & Response Execution Security Kickoff & Register with SWI Security Design Best Practices Security Arch & Attack Surface Review Threat Modeling Pen Testing Requirements Design Implementation Verification Release Support & Servicing heise Security Konferenz 2008, Jan Münther

25 Verifizierung (1 / 4 ) Typische Maßnahme zur Verifizierung: Fuzzing
Security Development Lifecycles - TechDays Verifizierung (1 / 4 ) Typische Maßnahme zur Verifizierung: Fuzzing Automatisiertes Testen zur Provokation von Fehlerfällen Einsatz besonders sinnvoll bei externen Datenquellen Datei-Parsing Netzwerkprotokoll-Parsing Vorgefertigte Tools für verschiedene Protokolle und Formate verfügbar Codenomicon (kommerziell) PROTOS (frei) Frameworks zur Erstellung eigener Fuzzer Peach Sulley Etc. © n.runs AG, Jan Münther, 27-Mar-17

26 Security Development Lifecycles - TechDays
Verifizierung (2 / 4 ) Fuzzing ändert gültige Werte so ab, dass sie klassische Fehler auslösen Typisches Beispiel: Strings in Dateiformaten oder Netzwerkprotokollen werden durch inkrementierende Länge auf Buffer Overflows getestet Z.B. erst 512 Byte, dann 1024, dann 4096 etc. Dann 513 Byte und 1025, 4097 etc. Off by one, off by few © n.runs AG, Jan Münther, 27-Mar-17

27 Verifizierung (3 / 4 ) Problem beim Fuzzing oftmals die Fehleranalyse
Security Development Lifecycles - TechDays Verifizierung (3 / 4 ) Problem beim Fuzzing oftmals die Fehleranalyse Manche Exceptions werden abgefangen Ist das Problem für Angreifer ausnutzbar? Welche Funktion hat den Fehler ausgelöst Mitunter Call Stack nicht mehr lesbar Weiteres Problem: Code-Pfade und Testfälle "Code Coverage" nur teilweise messbar Ansätze umfassen "Rückspulen" © n.runs AG, Jan Muenther, 27-Mar-17

28 Security Development Lifecycles - TechDays
Verifizierung (4 / 4 ) Untersuchung der aus dem Threat Model ermittelten möglichen Bedrohungen Penetration Testing Manipulationsmöglichkeiten Z.B. logische Fehler Privilegieneskalationen Race Conditions Penetration Test sollte eine umfassende Untersuchung der möglichen Risiken sein Je nach Produkt und Entwicklungsplattform gezieltes Fuzzing Manuelles Testen nach Problemen Z.B. Webapplikationen nach XSS und SQL Injection © n.runs AG, Jan Münther, 27-Mar-17

29 SDL von Microsoft Security Development Lifecycles - TechDays
Security Training Use Security Development Tools & Security Best Dev & Test Practices Create Security Docs and Tools For Product Prepare Security Response Plan Security Push Final Security Review Security Servicing & Response Execution Security Kickoff & Register with SWI Security Design Best Practices Security Arch & Attack Surface Review Threat Modeling Pen Testing Requirements Design Implementation Verification Release Support & Servicing heise Security Konferenz 2008, Jan Münther

30 Security Development Lifecycles - TechDays
Release ( 1 / 2 ) Wichtig ist vor der Veröffentlichung: Planung für eventuelle Sicherheits-Vorfälle Rekonstruktion der Probleme Geklärte Zuständigkeiten Wer nimmt Reports auf? Wer verifiziert Probleme? Wer behebt Probleme? Wer verifiziert die Behebung? © n.runs AG, Jan Münther, 27-Mar-17

31 Release ( 2 / 3 ) Beispiele für schlechtes Release Security Management
Security Development Lifecycles - TechDays Release ( 2 / 3 ) Beispiele für schlechtes Release Security Management WonderWare SCADA : Initial contact sent by to Wonderware setting the estimated publication date of the advisory to February 25th. : Contact re-sent to Wonderware asking for a software security contact for Wonderware InTouch. : New sent to Wonderware asking for a response and for a software security contact for Wonderware InTouch. : Core makes direct phone calls to Wonderware headquarters informing of the previous s and requesting acknowledgment of the notification of a security vulnerability. : Vendor asks for a copy of the proof of concept code used to demonstrate the vulnerability. : Core sends proof-of-concept code written in Python. : Vendor asks for compiler tools required to use the PoC code. : Core sends a link to © n.runs AG, Jan Münther, 27-Mar-17

32 Release ( 3 / 3 ) Beispiele für schlechtes Release Security Management
Security Development Lifecycles - TechDays Release ( 3 / 3 ) Beispiele für schlechtes Release Security Management Quelle: © n.runs AG, Jan Münther, 27-Mar-17

33 SDL von Microsoft Security Development Lifecycles - TechDays
Security Training Use Security Development Tools & Security Best Dev & Test Practices Create Security Docs and Tools For Product Prepare Security Response Plan Security Push Final Security Review Security Servicing & Response Execution Security Kickoff & Register with SWI Security Design Best Practices Security Arch & Attack Surface Review Threat Modeling Pen Testing Requirements Design Implementation Verification Release Support & Servicing heise Security Konferenz 2008, Jan Münther

34 Response Baldige Antworten auf Meldungen zu Sicherheits-Problemen
Security Development Lifecycles - TechDays Response Baldige Antworten auf Meldungen zu Sicherheits-Problemen Kommunikation ist wichtig! Researcher veröffentlichen eventuell ohne erfolgte Patches, wenn die Fehlerbehandlung vernachlässigt wird Längere Antwort- und Patchzeiten sollten begründet werden können Updates aktiv den Kunden zuführen Mails an Kunden © n.runs AG, Jan Münther, 27-Mar-17

35 Kontakt ... Fragen? ... Offene Diskussion Jan Muenther
Security Development Lifecycles - TechDays Kontakt Jan Muenther Chief Technical Officer, Security n.runs AG, Nassauer Straße 60, D Oberursel phone , fax PGP-Fingerprint: b8 8A59 6FB9 80F DD5 E13F F58D BAC0 ... Fragen? ... Offene Diskussion © n.runs AG, Jan Muenther, 27-Mar-17

36 Your MSDN resources check out these websites, blogs & more!
3/27/2017 3:10 PM Your MSDN resources check out these websites, blogs & more! Presentations TechDays: MSDN Events: MSDN Webcasts: MSDN Events MSDN Events: Save the date: Tech•Ed 2009 Europe, 9-13 November 2009, Berlin MSDN Flash (our by weekly newsletter) Subscribe: MSDN Team Blog RSS: Developer User Groups & Communities Mobile Devices: Microsoft Solutions User Group Switzerland: .NET Managed User Group of Switzerland: FoxPro User Group Switzerland: © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

37 Your TechNet resources check out these websites, blogs & more!
3/27/2017 3:10 PM Your TechNet resources check out these websites, blogs & more! Presentations TechDays: TechNet Events TechNet Events: Save the date: Tech•Ed 2009 Europe, 9-13 November 2009, Berlin TechNet Flash (our by weekly newsletter) Subscribe: Schweizer IT Professional und TechNet Blog RSS: IT Professional User Groups & Communities SwissITPro User Group: NT Anwendergruppe Schweiz: PASS (Professional Association for SQL Server): © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

38 Save the date for tech·days next year!
3/27/2017 3:10 PM 7. – 8. April Congress Center Basel Save the date for tech·days next year! © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

39 Premium Sponsoring Partners
3/27/2017 3:10 PM Premium Sponsoring Partners Classic Sponsoring Partners Media Partner © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Herunterladen ppt "Security Development Lifecycles"

Ähnliche Präsentationen


Google-Anzeigen