1 / 39

Security Development Lifecycles

Security Development Lifecycles. MS TechDays Bern, 9. April 2009. Jan Münther, CTO Security, n.runs AG. Security Development Lifecycles – TechDays. Agenda. Roadmap Awareness und Training Phasen der Entwicklung Requirements Design Implementierung Verifizierung Veröffentlichung

mahlah
Download Presentation

Security Development Lifecycles

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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, 1-Apr-14

  3. SDL von Microsoft Use SecurityDevelopment Tools & Security Best Dev & Test Practices Create SecurityDocsand ToolsFor Product PrepareSecurityResponsePlan Security Push FinalSecurity Review Security Servicing &ResponseExecution Security Training Security Arch & Attack SurfaceReview Security Kickoff& Register withSWI Security DesignBest Practices Pen Testing ThreatModeling Der herkömmliche Entwicklungszyklus bei Microsoft, inkl. Aufgaben und Prozesse Testing and Verification Code Signing A CheckpointExpress Signoff RTM Product SupportService Packs/QFEs SecurityUpdates Feature ListsQuality GuidelinesArch DocsSchedules DesignSpecifications Development of New Code FunctionalSpecifications Bug Fixes Requirements Design Implementation Verification Release Support&Servicing heise Security Konferenz 2008, Jan Münther

  4. 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, 1-Apr-14

  5. Security Development Lifecycles– TechDays SDL von Microsoft Use SecurityDevelopment Tools & Security Best Dev & Test Practices Create SecurityDocsand ToolsFor Product PrepareSecurityResponsePlan Security Push FinalSecurity Review Security Servicing &ResponseExecution Security Training Security Arch & Attack SurfaceReview Security Kickoff& Register withSWI Security DesignBest Practices Pen Testing ThreatModeling Requirements Design Implementation Verification Release Support&Servicing heise Security Konferenz 2008, Jan Münther

  6. 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, 1-Apr-14

  7. Security Development Lifecycles– TechDays SDL von Microsoft Use SecurityDevelopment Tools & Security Best Dev & Test Practices Create SecurityDocsand ToolsFor Product PrepareSecurityResponsePlan Security Push FinalSecurity Review Security Servicing &ResponseExecution Security Training Security Arch & Attack SurfaceReview Security Kickoff& Register withSWI Security DesignBest Practices Pen Testing ThreatModeling 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, 1-Apr-14

  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, 1-Apr-14

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

  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, 1-Apr-14

  12. 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, 1-Apr-14

  13. 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, 1-Apr-14

  14. 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 • http://www.nruns.com/security_advisory_aruba_advisory_draft_unauth_access_ms.php • http://www.nruns.com/security_advisory_aruba_advisory_draft_buffer_overflow_ms.php © n.runs AG, Jan Münther, 1-Apr-14

  15. 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, 1-Apr-14

  16. 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, 1-Apr-14

  17. 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, 1-Apr-14

  18. Security Development Lifecycles - TechDays SDL von Microsoft Use SecurityDevelopment Tools & Security Best Dev & Test Practices Create SecurityDocsand ToolsFor Product PrepareSecurityResponsePlan Security Push FinalSecurity Review Security Servicing &ResponseExecution Security Training Security Arch & Attack SurfaceReview Security Kickoff& Register withSWI Security DesignBest Practices Pen Testing ThreatModeling Requirements Design Implementation Verification Release Support&Servicing heise Security Konferenz 2008, Jan Münther

  19. 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, 1-Apr-14

  20. 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, 1-Apr-14

  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, 1-Apr-14

  22. Implementierung ( 4 / 5 ) • SQL Injection – einfach zu verhindern, aber doch noch oft zu finden! <%Dim id, password, q, rs, did = Request.Form("id")password = Request.Form("password")' ** Create your Queryq = "SELECT * FROM password WHERE id LIKE '" &_ id & "' AND password LIKE '" & password & "'"' ** Create a RecordSet to store the results of the QuerySet 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. 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,ShipCity,ShipCountry" dataCommand.CommandText += "FROM Orders WHERE CustomerID='" + customerID+"'";

  24. Security Development Lifecycles - TechDays SDL von Microsoft Use SecurityDevelopment Tools & Security Best Dev & Test Practices Create SecurityDocsand ToolsFor Product PrepareSecurityResponsePlan Security Push FinalSecurity Review Security Servicing &ResponseExecution Security Training Security Arch & Attack SurfaceReview Security Kickoff& Register withSWI Security DesignBest Practices Pen Testing ThreatModeling Requirements Design Implementation Verification Release Support&Servicing heise Security Konferenz 2008, Jan Münther

  25. 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, 1-Apr-14

  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, 1-Apr-14

  27. 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, 1-Apr-14

  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, 1-Apr-14

  29. Security Development Lifecycles - TechDays SDL von Microsoft Use SecurityDevelopment Tools & Security Best Dev & Test Practices Create SecurityDocsand ToolsFor Product PrepareSecurityResponsePlan Security Push FinalSecurity Review Security Servicing &ResponseExecution Security Training Security Arch & Attack SurfaceReview Security Kickoff& Register withSWI Security DesignBest Practices Pen Testing ThreatModeling 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, 1-Apr-14

  31. Security Development Lifecycles - TechDays Release ( 2 / 3 ) • Beispiele für schlechtes Release Security Management • WonderWare SCADA 2008-01-30: Initial contact email sent by to Wonderware setting the estimated publication date of the advisory to February 25th. 2008-01-30: Contact email re-sent to Wonderware asking for a software security contact for Wonderware InTouch. 2008-02-06: New email sent to Wonderware asking for a response and for a software security contact for Wonderware InTouch. 2008-02-28: Core makes direct phone calls to Wonderware headquarters informing of the previous emails and requesting acknowledgment of the notification of a security vulnerability. 2008-02-29: Vendor asks for a copy of the proof of concept code used to demonstrate the vulnerability. 2008-03-03: Core sends proof-of-concept code written in Python. 2008-03-05: Vendor asks for compiler tools required to use the PoC code. 2008-03-05: Core sends a link to http://www.python.org © n.runs AG, Jan Münther, 1-Apr-14

  32. Security Development Lifecycles - TechDays Release ( 3 / 3 ) • Beispiele für schlechtes Release Security Management Quelle: http://securityninja.co.uk/blog/?p=212 © n.runs AG, Jan Münther, 1-Apr-14

  33. Security Development Lifecycles - TechDays SDL von Microsoft Use SecurityDevelopment Tools & Security Best Dev & Test Practices Create SecurityDocsand ToolsFor Product PrepareSecurityResponsePlan Security Push FinalSecurity Review Security Servicing &ResponseExecution Security Training Security Arch & Attack SurfaceReview Security Kickoff& Register withSWI Security DesignBest Practices Pen Testing ThreatModeling Requirements Design Implementation Verification Release Support&Servicing heise Security Konferenz 2008, Jan Münther

  34. 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, 1-Apr-14

  35. Security Development Lifecycles - TechDays Kontakt Jan Muenther Chief Technical Officer, Security n.runs AG, Nassauer Straße 60, D-61440 Oberursel phone +49 6171 699-0, fax +49 6171699-199 Jan.Muenther@nruns.com, http://www.nruns.com PGP-Fingerprint: 3291 81b8 8A59 6FB9 80F0 1120 2DD5 E13F F58D BAC0 • ... Fragen? • ... Offene Diskussion © n.runs AG, Jan Muenther, 1-Apr-14

  36. Your MSDN resourcescheck out these websites, blogs & more! PresentationsTechDays: www.techdays.chMSDN Events: http://www.microsoft.com/switzerland/msdn/de/presentationfinder.mspxMSDN Webcasts: http://www.microsoft.com/switzerland/msdn/de/finder/default.mspx MSDN EventsMSDN Events: http://www.microsoft.com/switzerland/msdn/de/events/default.mspxSave the date: Tech•Ed 2009 Europe, 9-13 November 2009, Berlin MSDN Flash (our by weekly newsletter)Subscribe: http://www.microsoft.com/switzerland/msdn/de/flash.mspx MSDN Team BlogRSS: http://blogs.msdn.com/swiss_dpe_team/Default.aspx Developer User Groups & CommunitiesMobile Devices: http://www.pocketpc.ch/Microsoft Solutions User Group Switzerland: www.msugs.ch.NET Managed User Group of Switzerland: www.dotmugs.chFoxPro User Group Switzerland: www.fugs.ch

  37. Your TechNet resourcescheck out these websites, blogs & more! PresentationsTechDays: www.techdays.ch TechNet EventsTechNet Events: http://technet.microsoft.com/de-ch/bb291010.aspx Save the date: Tech•Ed 2009 Europe, 9-13 November 2009, Berlin TechNet Flash (our by weekly newsletter)Subscribe: http://technet.microsoft.com/de-ch/bb898852.aspx Schweizer IT Professional und TechNet BlogRSS: http://blogs.technet.com/chitpro-de/ IT Professional User Groups & CommunitiesSwissITPro User Group: www.swissitpro.chNT Anwendergruppe Schweiz: www.nt-ag.chPASS (Professional Association for SQL Server): www.sqlpass.ch

  38. Save the date for tech·days next year! 7. – 8. April 2010Congress Center Basel

  39. Premium Sponsoring Partners Classic Sponsoring Partners Media Partner

More Related