Sicherheit als bestandteil des entwicklungsmodells

551 views
481 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
551
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • OpenSource! OpenSource! OpenSource! Ja, wir haben GPL-Software im Angebot, und nein, ich bin kein Microsoft-Fan. Ok, C# und Dotnet ist cool. \n
  • Es gibt noch andere Ansätze als SDL, aber SDL ist der am besten dokumentiert - und der am einfachsten adaptierbare - Ansatz. \n
  • Es gibt noch andere Ansätze als SDL, aber SDL ist der am besten dokumentiert - und der am einfachsten adaptierbare - Ansatz. \n
  • Es gibt noch andere Ansätze als SDL, aber SDL ist der am besten dokumentiert - und der am einfachsten adaptierbare - Ansatz. \n
  • Es gibt noch andere Ansätze als SDL, aber SDL ist der am besten dokumentiert - und der am einfachsten adaptierbare - Ansatz. \n
  • Es gibt noch andere Ansätze als SDL, aber SDL ist der am besten dokumentiert - und der am einfachsten adaptierbare - Ansatz. \n
  • Glücklicherweise war ich in der Lage ein Foto des verantwortlichen Webapplikationssicherheitsbeauftragten zu bekommen. \n
  • Der Angreifer ist also keineswegs mehr der Amateur zuhause, sondern Dienstleister in einem funktionierenden Markt. „Für 40.000 Euro bekommt man die Daten jeder Firma“\n
  • Der Angreifer ist also keineswegs mehr der Amateur zuhause, sondern Dienstleister in einem funktionierenden Markt. „Für 40.000 Euro bekommt man die Daten jeder Firma“\n
  • Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  • Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  • Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  • Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  • Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  • Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  • Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  • Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  • Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  • Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Sowohl in der Auditorenstatistik von OWASP der bei Audits gefundenen Probleme wie auch in der Vulnerability Enumeration der Mitre Organisation führt XSS - in der Praxis sind aber andere Probleme massgeblich. Ursache ist, dass XSS nur schwer für kriminielle Ziele exploitbar ist.\n
  • Desktopentwickler haben es einfacher: Die Applikation läuft nur wenn sie angeschaltet wurde, nur der lokale Nutzer hat Zugriff und dieser ist schon vom OS authentifiziert und authorisiert. Erst durch die Vernetzung und permanente Verfügbarkeit - wie etwa bei Outlook oder Webservern - explodiert die Angreifbarkeit.\n
  • Desktopentwickler haben es einfacher: Die Applikation läuft nur wenn sie angeschaltet wurde, nur der lokale Nutzer hat Zugriff und dieser ist schon vom OS authentifiziert und authorisiert. Erst durch die Vernetzung und permanente Verfügbarkeit - wie etwa bei Outlook oder Webservern - explodiert die Angreifbarkeit.\n
  • Desktopentwickler haben es einfacher: Die Applikation läuft nur wenn sie angeschaltet wurde, nur der lokale Nutzer hat Zugriff und dieser ist schon vom OS authentifiziert und authorisiert. Erst durch die Vernetzung und permanente Verfügbarkeit - wie etwa bei Outlook oder Webservern - explodiert die Angreifbarkeit.\n
  • Desktopentwickler haben es einfacher: Die Applikation läuft nur wenn sie angeschaltet wurde, nur der lokale Nutzer hat Zugriff und dieser ist schon vom OS authentifiziert und authorisiert. Erst durch die Vernetzung und permanente Verfügbarkeit - wie etwa bei Outlook oder Webservern - explodiert die Angreifbarkeit.\n
  • Beispiel: PHP, ASP - einfache Sprachen. Das Basic von heute ist die Clan-Seite, das veröffentlichte Programm in der 64er ist die Opensource-Software auf Sourceforge. \n
  • Beispiel: PHP, ASP - einfache Sprachen. Das Basic von heute ist die Clan-Seite, das veröffentlichte Programm in der 64er ist die Opensource-Software auf Sourceforge. \n
  • Beispiel: PHP, ASP - einfache Sprachen. Das Basic von heute ist die Clan-Seite, das veröffentlichte Programm in der 64er ist die Opensource-Software auf Sourceforge. \n
  • Beispiel: PHP, ASP - einfache Sprachen. Das Basic von heute ist die Clan-Seite, das veröffentlichte Programm in der 64er ist die Opensource-Software auf Sourceforge. \n
  • Beispiel: PHP, ASP - einfache Sprachen. Das Basic von heute ist die Clan-Seite, das veröffentlichte Programm in der 64er ist die Opensource-Software auf Sourceforge. \n
  • Es gibt auch noch Code von 1998. Der ist noch viel schlimmer. \n
  • Es gibt auch noch Code von 1998. Der ist noch viel schlimmer. \n
  • Es gibt auch noch Code von 1998. Der ist noch viel schlimmer. \n
  • Es gibt auch noch Code von 1998. Der ist noch viel schlimmer. \n
  • Es ist ein Irrtum, dass der Developer alles notwendige über Web Security wissen kann. Der Bereich ist zu komplex und entwickelt sich zu schnell, als dass das möglich wäre. \n
  • Es ist ein Irrtum, dass der Developer alles notwendige über Web Security wissen kann. Der Bereich ist zu komplex und entwickelt sich zu schnell, als dass das möglich wäre. \n
  • Es ist ein Irrtum, dass der Developer alles notwendige über Web Security wissen kann. Der Bereich ist zu komplex und entwickelt sich zu schnell, als dass das möglich wäre. \n
  • Es ist ein Irrtum, dass der Developer alles notwendige über Web Security wissen kann. Der Bereich ist zu komplex und entwickelt sich zu schnell, als dass das möglich wäre. \n
  • Es ist ein Irrtum, dass der Developer alles notwendige über Web Security wissen kann. Der Bereich ist zu komplex und entwickelt sich zu schnell, als dass das möglich wäre. \n
  • Es ist ein Irrtum, dass der Developer alles notwendige über Web Security wissen kann. Der Bereich ist zu komplex und entwickelt sich zu schnell, als dass das möglich wäre. \n
  • Es ist ein Irrtum, dass der Developer alles notwendige über Web Security wissen kann. Der Bereich ist zu komplex und entwickelt sich zu schnell, als dass das möglich wäre. \n
  • \n
  • Vielleicht sollte man sich nach ganz anderen Sachen umschauen ...\n
  • Wir haben ja viele Microsoft-Entwickler hier. Wenn mich nicht alles täuscht, ist Bill Gates nicht in Rente - offensichtlich haben die Jungs eine Lösung gefunden.\n
  • Wir haben ja viele Microsoft-Entwickler hier. Wenn mich nicht alles täuscht, ist Bill Gates nicht in Rente - offensichtlich haben die Jungs eine Lösung gefunden.\n
  • Wir haben ja viele Microsoft-Entwickler hier. Wenn mich nicht alles täuscht, ist Bill Gates nicht in Rente - offensichtlich haben die Jungs eine Lösung gefunden.\n
  • Wir haben ja viele Microsoft-Entwickler hier. Wenn mich nicht alles täuscht, ist Bill Gates nicht in Rente - offensichtlich haben die Jungs eine Lösung gefunden.\n
  • Wir haben ja viele Microsoft-Entwickler hier. Wenn mich nicht alles täuscht, ist Bill Gates nicht in Rente - offensichtlich haben die Jungs eine Lösung gefunden.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Bei den Kosten für Sichere Software werden sicherlich manche gerne darauf verzichten wollen :-) \n
  • Bei den Kosten für Sichere Software werden sicherlich manche gerne darauf verzichten wollen :-) \n
  • Bei den Kosten für Sichere Software werden sicherlich manche gerne darauf verzichten wollen :-) \n
  • Bei den Kosten für Sichere Software werden sicherlich manche gerne darauf verzichten wollen :-) \n
  • Ein gut geschulter Entwickler ist 60% der Miete, nicht mehr und nicht weniger.\n
  • Ein gut geschulter Entwickler ist 60% der Miete, nicht mehr und nicht weniger.\n
  • Ein gut geschulter Entwickler ist 60% der Miete, nicht mehr und nicht weniger.\n
  • Ein gut geschulter Entwickler ist 60% der Miete, nicht mehr und nicht weniger.\n
  • \n
  • \n
  • \n
  • Webanwendungen enden meistens rechts oben. Das ist der schlechteste Platz.\n
  • Gerade bei Webapplikationen werden viele mögliche Einschränkungen der Angriffsfläche übersehen. \n
  • Gerade bei Webapplikationen werden viele mögliche Einschränkungen der Angriffsfläche übersehen. \n
  • Gerade bei Webapplikationen werden viele mögliche Einschränkungen der Angriffsfläche übersehen. \n
  • Gerade bei Webapplikationen werden viele mögliche Einschränkungen der Angriffsfläche übersehen. \n
  • Gerade bei Webapplikationen werden viele mögliche Einschränkungen der Angriffsfläche übersehen. \n
  • In den Zeiten von Schäuble und Web 2.0 vermutlich kein Thema mehr :-) \n
  • In den Zeiten von Schäuble und Web 2.0 vermutlich kein Thema mehr :-) \n
  • Annahmen: i expect every user to come from the internet. i expect the ntlm-based authentication to work\n
  • spoofing: session riding, fake referer; tampering: XSS, CSRF; repudiation: logcleaner; Information disclosure: error messages; SQL Injections; Elevation of privileges: code executions, sql injections, logical mistakes \n
  • spoofing: session riding, fake referer; tampering: XSS, CSRF; repudiation: logcleaner; Information disclosure: error messages; SQL Injections; Elevation of privileges: code executions, sql injections, logical mistakes \n
  • spoofing: session riding, fake referer; tampering: XSS, CSRF; repudiation: logcleaner; Information disclosure: error messages; SQL Injections; Elevation of privileges: code executions, sql injections, logical mistakes \n
  • spoofing: session riding, fake referer; tampering: XSS, CSRF; repudiation: logcleaner; Information disclosure: error messages; SQL Injections; Elevation of privileges: code executions, sql injections, logical mistakes \n
  • spoofing: session riding, fake referer; tampering: XSS, CSRF; repudiation: logcleaner; Information disclosure: error messages; SQL Injections; Elevation of privileges: code executions, sql injections, logical mistakes \n
  • spoofing: session riding, fake referer; tampering: XSS, CSRF; repudiation: logcleaner; Information disclosure: error messages; SQL Injections; Elevation of privileges: code executions, sql injections, logical mistakes \n
  • spoofing: session riding, fake referer; tampering: XSS, CSRF; repudiation: logcleaner; Information disclosure: error messages; SQL Injections; Elevation of privileges: code executions, sql injections, logical mistakes \n
  • Some say: chance of attack multiplied with damage potential\n
  • Some say: chance of attack multiplied with damage potential\n
  • Some say: chance of attack multiplied with damage potential\n
  • Some say: chance of attack multiplied with damage potential\n
  • Some say: chance of attack multiplied with damage potential\n
  • Some say: chance of attack multiplied with damage potential\n
  • Some say: chance of attack multiplied with damage potential\n
  • Some say: chance of attack multiplied with damage potential\n
  • Bug bar: not some fancy place to get a beer for a bug, but a risk that is ok to stay with until it‘s time to fix it.\n
  • Bug bar: not some fancy place to get a beer for a bug, but a risk that is ok to stay with until it‘s time to fix it.\n
  • Bug bar: not some fancy place to get a beer for a bug, but a risk that is ok to stay with until it‘s time to fix it.\n
  • Bug bar: not some fancy place to get a beer for a bug, but a risk that is ok to stay with until it‘s time to fix it.\n
  • Bug bar: not some fancy place to get a beer for a bug, but a risk that is ok to stay with until it‘s time to fix it.\n
  • It takes a whole lot of time, but it‘s less time to use the tool then to use n tool \n
  • \n
  • Complex code is a major reason for security problems. A cyclomatic complexity > 50 almost sure contains a security problem.\nOf course you should use tools like web application security scanners as well. currently it‘s hard to integrate them into the development circle, but this will happen in future. \n
  • there are a lot more, see the several security guidelines for php \n
  • \n
  • \n
  • \n
  • \n
  • This can be done less official if you got a small company or a small install base. nevertheless you need the responsiblity assigned to certain people and the workflow to handle security issues. \n
  • Ziemlich oft soll die Antwort auf eine Sicherheitslücke sehr schnell erfolgen, mit dem Resultat, dass der Bugfix unvollständig ist oder neue Lücken aufreisst. \n
  • Ziemlich oft soll die Antwort auf eine Sicherheitslücke sehr schnell erfolgen, mit dem Resultat, dass der Bugfix unvollständig ist oder neue Lücken aufreisst. \n
  • Ziemlich oft soll die Antwort auf eine Sicherheitslücke sehr schnell erfolgen, mit dem Resultat, dass der Bugfix unvollständig ist oder neue Lücken aufreisst. \n
  • Ziemlich oft soll die Antwort auf eine Sicherheitslücke sehr schnell erfolgen, mit dem Resultat, dass der Bugfix unvollständig ist oder neue Lücken aufreisst. \n
  • Ziemlich oft soll die Antwort auf eine Sicherheitslücke sehr schnell erfolgen, mit dem Resultat, dass der Bugfix unvollständig ist oder neue Lücken aufreisst. \n
  • Ziemlich oft soll die Antwort auf eine Sicherheitslücke sehr schnell erfolgen, mit dem Resultat, dass der Bugfix unvollständig ist oder neue Lücken aufreisst. \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Sicherheit als bestandteil des entwicklungsmodells

    1. 1. Security DevelopmentLifecyclePHP Unconference 2008
    2. 2. Der Kahlkopf vorne
    3. 3. Der Kahlkopf vorneJohann-Peter HartmannEntwickler & ConsultantMit Stefan Esser Gründer der SektionEins GmbH,CTo und Hausmeister bei Mayflower GmbHVerantwortlich für die Entwicklung eines WebApplication Security Scanners mit einem beknacktenNamen
    4. 4. Agenda
    5. 5. AgendaKein Talk „Wie vermeide ich XSS“
    6. 6. AgendaKein Talk „Wie vermeide ich XSS“Wie sieht der Status von Web Application Security aus?
    7. 7. AgendaKein Talk „Wie vermeide ich XSS“Wie sieht der Status von Web Application Security aus?Microsofts Security Development Lifecycle
    8. 8. AgendaKein Talk „Wie vermeide ich XSS“Wie sieht der Status von Web Application Security aus?Microsofts Security Development LifecycleDer SDL für Web Applikations Companies
    9. 9. AgendaKein Talk „Wie vermeide ich XSS“Wie sieht der Status von Web Application Security aus?Microsofts Security Development LifecycleDer SDL für Web Applikations CompaniesFazit
    10. 10. Der Status vonWebapplikationssicherheit
    11. 11. Der Status vonWebapplikationssicherheit
    12. 12. Warum werden Web- Applikationen angegriffen? Profit FunSource: Breach 2007
    13. 13. Warum werden Web- Applikationen angegriffen? 67 % Profit FunSource: Breach 2007
    14. 14. Warum werden Web- Applikationen angegriffen? 33 % 67 % Profit FunSource: Breach 2007
    15. 15. Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung Link Spam Würmer Phishing Information WarfareSource: Breach 2007
    16. 16. Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung Link Spam Würmer Phishing 42 % Information WarfareSource: Breach 2007
    17. 17. Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung Link Spam Würmer Phishing 42 % Information Warfare 23 %Source: Breach 2007
    18. 18. Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung Link Spam Würmer Phishing 42 % Information Warfare 15 % 23 %Source: Breach 2007
    19. 19. Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung Link Spam Würmer 8 % Phishing 42 % Information Warfare 15 % 23 %Source: Breach 2007
    20. 20. Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung 3 % Link Spam Würmer 8 % Phishing 42 % Information Warfare 15 % 23 %Source: Breach 2007
    21. 21. Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug 3 % Erpressung 3 % Link Spam Würmer 8 % Phishing 42 % Information Warfare 15 % 23 %Source: Breach 2007
    22. 22. Motive im Detail Informationsdiebstahl Defacement Malware 3 % Unbekannt Betrug 3 % Erpressung 3 % Link Spam Würmer 8 % Phishing 42 % Information Warfare 15 % 23 %Source: Breach 2007
    23. 23. Motive im Detail Informationsdiebstahl Defacement Malware 3 % Unbekannt Betrug 3 % 1 % Erpressung 3 % Link Spam Würmer 8 % Phishing 42 % Information Warfare 15 % 23 %Source: Breach 2007
    24. 24. Motive im Detail Informationsdiebstahl Defacement Malware 3 % Unbekannt Betrug 3 % 1 % 1 % Erpressung 3 % Link Spam Würmer 8 % Phishing 42 % Information Warfare 15 % 23 %Source: Breach 2007
    25. 25. Motive im Detail Informationsdiebstahl Defacement Malware 3 % Unbekannt Betrug 3 % 1 % 1 % Erpressung 3 % Link Spam Würmer 8 % Phishing 42 % Information Warfare 15 % 23 %Source: Breach 2007
    26. 26. Wege zum Einbruch SQL Injection Information Disclosure Bekannte Lücken XSS Fehlende Zugangskontrolle Raten von Zugangsdaten/Session OS Code Execution Fehlkonfiguration Fehlende Anti-Automation Denial Of Service Redirect Mangelhafter Session-Timeout CSRFSource: NSI 2006
    27. 27. Wege zum Einbruch SQL Injection 20 % Information Disclosure Bekannte Lücken XSS Fehlende Zugangskontrolle Raten von Zugangsdaten/Session OS Code Execution Fehlkonfiguration Fehlende Anti-Automation Denial Of Service Redirect Mangelhafter Session-Timeout CSRFSource: NSI 2006
    28. 28. Wege zum Einbruch SQL Injection 20 % Information Disclosure Bekannte Lücken XSS Fehlende Zugangskontrolle Raten von Zugangsdaten/Session OS Code Execution 17 % Fehlkonfiguration Fehlende Anti-Automation Denial Of Service Redirect Mangelhafter Session-Timeout CSRFSource: NSI 2006
    29. 29. Wege zum Einbruch SQL Injection 20 % Information Disclosure Bekannte Lücken XSS Fehlende Zugangskontrolle Raten von Zugangsdaten/Session OS Code Execution 17 % Fehlkonfiguration Fehlende Anti-Automation Denial Of Service Redirect Mangelhafter Session-Timeout 15 % CSRFSource: NSI 2006
    30. 30. Wege zum Einbruch SQL Injection 20 % Information Disclosure Bekannte Lücken XSS Fehlende Zugangskontrolle Raten von Zugangsdaten/Session OS Code Execution 17 % Fehlkonfiguration Fehlende Anti-Automation Denial Of Service Redirect 12 % Mangelhafter Session-Timeout 15 % CSRFSource: NSI 2006
    31. 31. Wege zum Einbruch SQL Injection 20 % Information Disclosure Bekannte Lücken XSS Fehlende Zugangskontrolle Raten von Zugangsdaten/Session OS Code Execution 17 % Fehlkonfiguration 10 % Fehlende Anti-Automation Denial Of Service Redirect 12 % Mangelhafter Session-Timeout 15 % CSRFSource: NSI 2006
    32. 32. Wege zum Einbruch SQL Injection 20 % Information Disclosure Bekannte Lücken XSS Fehlende Zugangskontrolle 8 % Raten von Zugangsdaten/Session OS Code Execution 17 % Fehlkonfiguration 10 % Fehlende Anti-Automation Denial Of Service Redirect 12 % Mangelhafter Session-Timeout 15 % CSRFSource: NSI 2006
    33. 33. Wege zum Einbruch SQL Injection 20 % Information Disclosure Bekannte Lücken 3 % XSS Fehlende Zugangskontrolle 8 % Raten von Zugangsdaten/Session OS Code Execution 17 % Fehlkonfiguration 10 % Fehlende Anti-Automation Denial Of Service Redirect 12 % Mangelhafter Session-Timeout 15 % CSRFSource: NSI 2006
    34. 34. Wege zum Einbruch SQL Injection 20 % Information Disclosure Bekannte Lücken 3 % 3 % XSS Fehlende Zugangskontrolle 8 % Raten von Zugangsdaten/Session OS Code Execution 17 % Fehlkonfiguration 10 % Fehlende Anti-Automation Denial Of Service Redirect 12 % Mangelhafter Session-Timeout 15 % CSRFSource: NSI 2006
    35. 35. Wege zum Einbruch SQL Injection 3 % 20 % Information Disclosure Bekannte Lücken 3 % 3 % XSS Fehlende Zugangskontrolle 8 % Raten von Zugangsdaten/Session OS Code Execution 17 % Fehlkonfiguration 10 % Fehlende Anti-Automation Denial Of Service Redirect 12 % Mangelhafter Session-Timeout 15 % CSRFSource: NSI 2006
    36. 36. Wege zum Einbruch 3 % SQL Injection 3 % 20 % Information Disclosure Bekannte Lücken 3 % 3 % XSS Fehlende Zugangskontrolle 8 % Raten von Zugangsdaten/Session OS Code Execution 17 % Fehlkonfiguration 10 % Fehlende Anti-Automation Denial Of Service Redirect 12 % Mangelhafter Session-Timeout 15 % CSRFSource: NSI 2006
    37. 37. Wege zum Einbruch 3 % SQL Injection 2 % 20 % Information Disclosure 3 % Bekannte Lücken 3 % 3 % XSS Fehlende Zugangskontrolle 8 % Raten von Zugangsdaten/Session OS Code Execution 17 % Fehlkonfiguration 10 % Fehlende Anti-Automation Denial Of Service Redirect 12 % Mangelhafter Session-Timeout 15 % CSRFSource: NSI 2006
    38. 38. Wege zum Einbruch 2 % 3 % SQL Injection 2 % 20 % Information Disclosure 3 % Bekannte Lücken 3 % 3 % XSS Fehlende Zugangskontrolle 8 % Raten von Zugangsdaten/Session OS Code Execution 17 % Fehlkonfiguration 10 % Fehlende Anti-Automation Denial Of Service Redirect 12 % Mangelhafter Session-Timeout 15 % CSRFSource: NSI 2006
    39. 39. Wege zum Einbruch 2 % 3 % 2 % SQL Injection 2 % 20 % Information Disclosure 3 % Bekannte Lücken 3 % 3 % XSS Fehlende Zugangskontrolle 8 % Raten von Zugangsdaten/Session OS Code Execution 17 % Fehlkonfiguration 10 % Fehlende Anti-Automation Denial Of Service Redirect 12 % Mangelhafter Session-Timeout 15 % CSRFSource: NSI 2006
    40. 40. XSS ist das häufigste,aber nicht das wichtigste Problem
    41. 41. Dumm gelaufen 1:Angriffsfläche Web
    42. 42. Dumm gelaufen 1:Angriffsfläche WebDie Applikation ist 24/7 angreifbar
    43. 43. Dumm gelaufen 1:Angriffsfläche WebDie Applikation ist 24/7 angreifbarJeder weiß, wo und wie sie zu finden ist
    44. 44. Dumm gelaufen 1:Angriffsfläche WebDie Applikation ist 24/7 angreifbarJeder weiß, wo und wie sie zu finden istAlle Nutzer, auch unbekannte, haben Zugriff
    45. 45. Dumm gelaufen 1:Angriffsfläche WebDie Applikation ist 24/7 angreifbarJeder weiß, wo und wie sie zu finden istAlle Nutzer, auch unbekannte, haben ZugriffDas Kommunikationsprotokoll ist nichtvertrauenswürdig
    46. 46. Dumm gelaufen 2:Code Qualität
    47. 47. Dumm gelaufen 2:Code QualitätWeb Applikationen sind Spielfeld von Agenturen undHeimanwendern
    48. 48. Dumm gelaufen 2:Code QualitätWeb Applikationen sind Spielfeld von Agenturen undHeimanwendern... und das kann man dem Code ansehen
    49. 49. Dumm gelaufen 2:Code QualitätWeb Applikationen sind Spielfeld von Agenturen undHeimanwendern... und das kann man dem Code ansehengeringe Modularität
    50. 50. Dumm gelaufen 2:Code QualitätWeb Applikationen sind Spielfeld von Agenturen undHeimanwendern... und das kann man dem Code ansehengeringe Modularitätgeringe Separation von Daten
    51. 51. Dumm gelaufen 2:Code QualitätWeb Applikationen sind Spielfeld von Agenturen undHeimanwendern... und das kann man dem Code ansehengeringe Modularitätgeringe Separation von DatenIm Normalfall nicht in einer Sandbox
    52. 52. Dumm gelaufen 3:Applikationslandschaft
    53. 53. Dumm gelaufen 3:Applikationslandschaft es gibt noch Code-Teile von 2001 (als niemand XSS und CSRF kannte)
    54. 54. Dumm gelaufen 3:Applikationslandschaft es gibt noch Code-Teile von 2001 (als niemand XSS und CSRF kannte) Hoher Code Churn, viele Änderungen und Autoren
    55. 55. Dumm gelaufen 3:Applikationslandschaft es gibt noch Code-Teile von 2001 (als niemand XSS und CSRF kannte) Hoher Code Churn, viele Änderungen und Autoren irgendwo zwischen wenig und keinen Tests
    56. 56. Dumm gelaufen 3:Applikationslandschaft es gibt noch Code-Teile von 2001 (als niemand XSS und CSRF kannte) Hoher Code Churn, viele Änderungen und Autoren irgendwo zwischen wenig und keinen Tests Es gibt keine Entwicklungssicherheitsinfrastruktur (nein, eine Firewall zählt nicht)
    57. 57. Dumm gelaufen 4:Developer und Security
    58. 58. Dumm gelaufen 4:Developer und Security„Das wird niemals jemand ausprobieren.“
    59. 59. Dumm gelaufen 4:Developer und Security„Das wird niemals jemand ausprobieren.“„Warum sollte jemand das machen?“
    60. 60. Dumm gelaufen 4:Developer und Security„Das wird niemals jemand ausprobieren.“„Warum sollte jemand das machen?“„Unsere Applikationen wurde noch nie angegriffen.“
    61. 61. Dumm gelaufen 4:Developer und Security„Das wird niemals jemand ausprobieren.“„Warum sollte jemand das machen?“„Unsere Applikationen wurde noch nie angegriffen.“„Wir sind sicher, denn wir haben eine Firewall.“
    62. 62. Dumm gelaufen 4:Developer und Security„Das wird niemals jemand ausprobieren.“„Warum sollte jemand das machen?“„Unsere Applikationen wurde noch nie angegriffen.“„Wir sind sicher, denn wir haben eine Firewall.“„Wir haben unseren Code geaudited, es gibt keineFehler mehr.“
    63. 63. Dumm gelaufen 4:Developer und Security„Das wird niemals jemand ausprobieren.“„Warum sollte jemand das machen?“„Unsere Applikationen wurde noch nie angegriffen.“„Wir sind sicher, denn wir haben eine Firewall.“„Wir haben unseren Code geaudited, es gibt keineFehler mehr.“„Es ist zwar ein Fehler, aber nicht ausnutzbar.“
    64. 64. Dumm gelaufen 4:Developer und Security„Das wird niemals jemand ausprobieren.“„Warum sollte jemand das machen?“„Unsere Applikationen wurde noch nie angegriffen.“„Wir sind sicher, denn wir haben eine Firewall.“„Wir haben unseren Code geaudited, es gibt keineFehler mehr.“„Es ist zwar ein Fehler, aber nicht ausnutzbar.“„Aber die Option ist normalerweise nicht aktiv.“
    65. 65. Was kann man da machen?
    66. 66. Der Ent wickler als Landwirt
    67. 67. Der Ent wickler als Landwirt Zukunftschance Olivenanbau in der Toskana
    68. 68. Zumindest sind wir nicht dieeinzigen ... Erinnern Sie sich an
    69. 69. Zumindest sind wir nicht dieeinzigen ... Erinnern Sie sich an Code Red
    70. 70. Zumindest sind wir nicht dieeinzigen ... Erinnern Sie sich an Code Red Nimda
    71. 71. Zumindest sind wir nicht dieeinzigen ... Erinnern Sie sich an Code Red Nimda Sasser
    72. 72. Zumindest sind wir nicht dieeinzigen ... Erinnern Sie sich an Code Red Nimda Sasser Outlook-Virii ?
    73. 73. Der Security DevelopmentLifecycle
    74. 74. Der Security DevelopmentLifecycleEntwickelt von Microsoft im Rahmen der TrustworthyComputing Kampagne 2002
    75. 75. Der Security DevelopmentLifecycleEntwickelt von Microsoft im Rahmen der TrustworthyComputing Kampagne 2002Trotzdem eine gute Sache
    76. 76. Der Security DevelopmentLifecycleEntwickelt von Microsoft im Rahmen der TrustworthyComputing Kampagne 2002Trotzdem eine gute SacheKeine neue Erfindung, sonder Sammlungfunktionierender bekannter Ideen
    77. 77. Der Security DevelopmentLifecycleEntwickelt von Microsoft im Rahmen der TrustworthyComputing Kampagne 2002Trotzdem eine gute SacheKeine neue Erfindung, sonder Sammlungfunktionierender bekannter IdeenFür existierende und neue Projekte
    78. 78. Der Security DevelopmentLifecycleEntwickelt von Microsoft im Rahmen der TrustworthyComputing Kampagne 2002Trotzdem eine gute SacheKeine neue Erfindung, sonder Sammlungfunktionierender bekannter IdeenFür existierende und neue ProjekteResultat: 50-60% weniger Post-Release Bugs
    79. 79. Bestandteile von SDL
    80. 80. Bestandteile von SDLSchulung von Entwicklung und Management
    81. 81. Bestandteile von SDLSchulung von Entwicklung und ManagementSicherheit als Bestandteil des Software Lebenzyklus
    82. 82. Bestandteile von SDLSchulung von Entwicklung und ManagementSicherheit als Bestandteil des Software LebenzyklusFeststellung von Risiken
    83. 83. Bestandteile von SDLSchulung von Entwicklung und ManagementSicherheit als Bestandteil des Software LebenzyklusFeststellung von RisikenRisikoanalyse
    84. 84. Bestandteile von SDLSchulung von Entwicklung und ManagementSicherheit als Bestandteil des Software LebenzyklusFeststellung von RisikenRisikoanalyseBest Practices und Code Reviews
    85. 85. Bestandteile von SDLSchulung von Entwicklung und ManagementSicherheit als Bestandteil des Software LebenzyklusFeststellung von RisikenRisikoanalyseBest Practices und Code ReviewsSecurity Maintenance Infrastructure
    86. 86. Bestandteile von SDLSchulung von Entwicklung und ManagementSicherheit als Bestandteil des Software LebenzyklusFeststellung von RisikenRisikoanalyseBest Practices und Code ReviewsSecurity Maintenance Infrastructure
    87. 87. Managementunterstützung
    88. 88. ManagementunterstützungSDL benötigt 100% Managementsupport
    89. 89. ManagementunterstützungSDL benötigt 100% ManagementsupportWirklich. Offizielles Bekenntnis und sichtbare Aktivität
    90. 90. ManagementunterstützungSDL benötigt 100% ManagementsupportWirklich. Offizielles Bekenntnis und sichtbare Aktivität15-20% Mehraufwand/kosten initial,<10% dauerhaft
    91. 91. ManagementunterstützungSDL benötigt 100% ManagementsupportWirklich. Offizielles Bekenntnis und sichtbare Aktivität15-20% Mehraufwand/kosten initial,<10% dauerhaftAkzeptanz ein Projekt stoppen zu müssen!
    92. 92. Entwickler, aber sicher
    93. 93. Entwickler, aber sicher Mindestens eine Sicherheitsschulung pro Jahr
    94. 94. Entwickler, aber sicher Mindestens eine Sicherheitsschulung pro Jahr Web Applikationssicherheit ist schnelllebig
    95. 95. Entwickler, aber sicher Mindestens eine Sicherheitsschulung pro Jahr Web Applikationssicherheit ist schnelllebig Benennung von Security Trainern
    96. 96. Entwickler, aber sicher Mindestens eine Sicherheitsschulung pro Jahr Web Applikationssicherheit ist schnelllebig Benennung von Security Trainern Sicherheitsdokumentation erstellen
    97. 97. RisikogetriebeneSoftwareentwicklung
    98. 98. RisikogetriebeneSoftwareentwicklungneben den Requirements werden initial auch dieRisiken erfasst und analysiert
    99. 99. RisikogetriebeneSoftwareentwicklungneben den Requirements werden initial auch dieRisiken erfasst und analysiertwie Requirements müssen auch die Risiken behandeltwerden
    100. 100. RisikogetriebeneSoftwareentwicklungneben den Requirements werden initial auch dieRisiken erfasst und analysiertwie Requirements müssen auch die Risiken behandeltwerdenRisiken ändern sich während der Projektzeit
    101. 101. Risikoerfassung -Angriffsflächenanalyse
    102. 102. Risikoerfassung -Angriffsflächenanalyse
    103. 103. Reduktion der AngriffsflächeJedes Feature prüfen
    104. 104. Reduktion der AngriffsflächeJedes Feature prüfen wird dieses Feature von allen Nutzern benötigt?
    105. 105. Reduktion der AngriffsflächeJedes Feature prüfen wird dieses Feature von allen Nutzern benötigt? kann dieses Feature von überall erreicht werden?
    106. 106. Reduktion der AngriffsflächeJedes Feature prüfen wird dieses Feature von allen Nutzern benötigt? kann dieses Feature von überall erreicht werden? wird dieses Feature von unauthorisierten Nutzern benötigt?
    107. 107. Reduktion der AngriffsflächeJedes Feature prüfen wird dieses Feature von allen Nutzern benötigt? kann dieses Feature von überall erreicht werden? wird dieses Feature von unauthorisierten Nutzern benötigt? Beispiel: sind Admin-URLs auch vom Internet aus erreichbar?
    108. 108. Risikoerfassung: PrivacyImpact Rating
    109. 109. Risikoerfassung: PrivacyImpact Rating
    110. 110. Risikoerfassung: PrivacyImpact Rating
    111. 111. Risikoanalyse
    112. 112. RisikoanalyseAnwendungsfälle definieren (zB Use Cases)Die externen Abhängigkeiten erfassenSicherheitsannahmen definierenDatenfluss als Data Flow Diagram erfassen
    113. 113. Risikoanalyse:STRIDE Im Datenflussdiagram Risiken mit STRIDE finden
    114. 114. Risikoanalyse:STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung
    115. 115. Risikoanalyse:STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung Tampering / Manipulation
    116. 116. Risikoanalyse:STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung Tampering / Manipulation Repudiation / verhinderte Nachweisbarkeit
    117. 117. Risikoanalyse:STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung Tampering / Manipulation Repudiation / verhinderte Nachweisbarkeit Information Disclosure / Informationslecks
    118. 118. Risikoanalyse:STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung Tampering / Manipulation Repudiation / verhinderte Nachweisbarkeit Information Disclosure / Informationslecks Denial of Service / Blockaden
    119. 119. Risikoanalyse:STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung Tampering / Manipulation Repudiation / verhinderte Nachweisbarkeit Information Disclosure / Informationslecks Denial of Service / Blockaden Elevation of Privileges / Rechteübernahme
    120. 120. Risk Analysis:Determine risks Jedes gefundene Risiko mit DREAD analysieren
    121. 121. Risk Analysis:Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential
    122. 122. Risk Analysis:Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential Reproducability
    123. 123. Risk Analysis:Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential Reproducability Exploitablitity
    124. 124. Risk Analysis:Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential Reproducability Exploitablitity Affected Users
    125. 125. Risk Analysis:Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential Reproducability Exploitablitity Affected Users Discoverability
    126. 126. Risk Analysis:Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential Reproducability Exploitablitity Affected Users Discoverability Bug Bar: ab wann ein Risiko behandelt werden muss
    127. 127. Risk Analysis:Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential Reproducability Exploitablitity Affected Users Discoverability Bug Bar: ab wann ein Risiko behandelt werden muss
    128. 128. Risikoanalyse:Risikominderungen planen
    129. 129. Risikoanalyse:Risikominderungen planenFür jedes Risiko, das oberhalb der Risikoschwelle (BugBar) ist
    130. 130. Risikoanalyse:Risikominderungen planenFür jedes Risiko, das oberhalb der Risikoschwelle (BugBar) istRisikominderungen können applikationsweit sein
    131. 131. Risikoanalyse:Risikominderungen planenFür jedes Risiko, das oberhalb der Risikoschwelle (BugBar) istRisikominderungen können applikationsweit sein Parameterbindung und SQL-Injections
    132. 132. Risikoanalyse:Risikominderungen planenFür jedes Risiko, das oberhalb der Risikoschwelle (BugBar) istRisikominderungen können applikationsweit sein Parameterbindung und SQL-Injections erzwungenes Ausgabeescaping
    133. 133. Risikoanalyse:Risikominderungen planenFür jedes Risiko, das oberhalb der Risikoschwelle (BugBar) istRisikominderungen können applikationsweit sein Parameterbindung und SQL-Injections erzwungenes AusgabeescapingDie Vollständigkeit des Einsatzes muss geprüft werden
    134. 134. Risikoanalyse:Bedrohungsmodellierung
    135. 135. Risikoanalyse:Bedrohungsmodellierung Kann teilautomatisiert werden mit einem kostenlosen Tool: „Threat Analysis and Modeling Tool“ http://www.microsoft.com/downloads/details.aspx? familyid=59888078-9daf-4e96-b7d1-944703479451
    136. 136. Sicherheit Best Practices
    137. 137. Sicherheit Best Practices Welche Tools eingesetzt werden sollen Coding Standards und Richtlinien Testrichtlinien
    138. 138. Werkzeuge zurVerbesserung der Sicherheit
    139. 139. Werkzeuge zurVerbesserung der SicherheitKomplexitäts- und Coding-Style analyse Checkstyle, Codesniffer, PMDStatische Source Code Analyse Fortify diverse OpenSource-Tools
    140. 140. Coding Standards
    141. 141. Coding StandardsEinige Beispiele: Fixe Libraries und Regeln für Input Validierung Variablensäuberung Ausgabeescaping Parameter Binding für Datenbankzugriffe Liste verbotener Klassen und Methoden
    142. 142. Coding Richtlinien
    143. 143. Coding Richtlinien Maximalwerte für Komplexität (McCabe, NPath- Complexity) Minimale Test Coverage Richtlinien für Regressionstests
    144. 144. Sicherheitstests fürWebapplikationen
    145. 145. Sicherheitstests fürWebapplikationen Automatisierte Fuzzing und Pentestingtools (wie NStalker, AppScan, XSSS) Laufzeitschutz (Suhosin, mod_apparmor, mod_security) Regressionstests für jedes gefundene Sicherheitsproblem Security Test Cases
    146. 146. Der „Security Push“
    147. 147. Der „Security Push“ jeder Entwickler wurde vorher geschult es stehen Tools für die Tests zur Verfügung die Risikoanalyse wird danach aktualisiert die Sicherheitsdokumentation wird aktualisiert
    148. 148. Finaler Sicherheitsreview
    149. 149. Finaler Sicherheitsreview Code Review Unmittelbar vor der Herausgabe(!) Durchgeführt vom internen Security Coach oder einem externen Auditor Prüfung der SDL Dokumente (Datenflussdiagramme, Risikoanalyse, Sicherheitsdokumentation) Prüfung der ungefixten Bugs
    150. 150. Security ResponseInfrastructure
    151. 151. Security ResponseInfrastructureEs existiert ein offizieller Security(@company.tld)KontaktEs gibt einen definierten Workflow für gemeldeteProblemeEs gibt einen Workflow für AdvisoriesEs gibt einen Workflow für Updates und Bugfixes
    152. 152. Security Response auf eineMeldung
    153. 153. Security Response auf eineMeldungVerwundbarkeit, Risiko und Ausnutzbarkeit analysieren
    154. 154. Security Response auf eineMeldungVerwundbarkeit, Risiko und Ausnutzbarkeit analysierenFehler korrigieren
    155. 155. Security Response auf eineMeldungVerwundbarkeit, Risiko und Ausnutzbarkeit analysierenFehler korrigierenKorrektur prüfen
    156. 156. Security Response auf eineMeldungVerwundbarkeit, Risiko und Ausnutzbarkeit analysierenFehler korrigierenKorrektur prüfenRegressionstest für Fehler implementieren
    157. 157. Security Response auf eineMeldungVerwundbarkeit, Risiko und Ausnutzbarkeit analysierenFehler korrigierenKorrektur prüfenRegressionstest für Fehler implementierenUpdate zur Fehlerbehebung und Advisoryveröffentlichen
    158. 158. Security Response auf eineMeldungVerwundbarkeit, Risiko und Ausnutzbarkeit analysierenFehler korrigierenKorrektur prüfenRegressionstest für Fehler implementierenUpdate zur Fehlerbehebung und AdvisoryveröffentlichenTestdokumentation und -werkzeuge aktualisieren
    159. 159. Start
    160. 160. Start Die Bibel: „The Security Development Lifecycle“ von Michael Howard und Steve Lipner
    161. 161. Start Die Bibel: „The Security Development Lifecycle“ von Michael Howard und Steve Lipner ISBN 978-0-7356-2214-2
    162. 162. Start Die Bibel: „The Security Development Lifecycle“ von Michael Howard und Steve Lipner ISBN 978-0-7356-2214-2 http://blogs.msdn.com/threatmodeling/
    163. 163. Start Die Bibel: „The Security Development Lifecycle“ von Michael Howard und Steve Lipner ISBN 978-0-7356-2214-2 http://blogs.msdn.com/threatmodeling/ „Security in the Software Lifecycle“ - Department of Homeland Security
    164. 164. Fazit
    165. 165. Fazit1.Awareness: Web Applikation sind risikobehaftet
    166. 166. Fazit1.Awareness: Web Applikation sind risikobehaftet2.SDL ist ein Weg, Sicherheit als Bestandteil des Entwicklungsprozesses zu gewährleisten
    167. 167. Fazit1.Awareness: Web Applikation sind risikobehaftet2.SDL ist ein Weg, Sicherheit als Bestandteil des Entwicklungsprozesses zu gewährleisten3.Die Einführung bedeutet die Integration eines Sets von Werkzeugen und Prozessen
    168. 168. Fazit1.Awareness: Web Applikation sind risikobehaftet2.SDL ist ein Weg, Sicherheit als Bestandteil des Entwicklungsprozesses zu gewährleisten3.Die Einführung bedeutet die Integration eines Sets von Werkzeugen und Prozessen4.SDL ist kein Silver Bullet: Anwendung des Toolsets liegt beim Entwickler, der Erfolg auch.
    169. 169. Ausblick
    170. 170. AusblickAgile Entwicklungsprozesse und Sicherheit
    171. 171. AusblickAgile Entwicklungsprozesse und Sicherheit Security Stakeholder als Kunden
    172. 172. AusblickAgile Entwicklungsprozesse und Sicherheit Security Stakeholder als Kunden Security Requirements
    173. 173. AusblickAgile Entwicklungsprozesse und Sicherheit Security Stakeholder als Kunden Security Requirements Security Tests
    174. 174. AusblickAgile Entwicklungsprozesse und Sicherheit Security Stakeholder als Kunden Security Requirements Security Tests Security Expert als Sonderrolle im Team
    175. 175. AusblickAgile Entwicklungsprozesse und Sicherheit Security Stakeholder als Kunden Security Requirements Security Tests Security Expert als Sonderrolle im TeamEs gibt für MDA Ansätze wie CORAS, UMLsec undSecureUML
    176. 176. Fragen?
    177. 177. Fragen? Einfach per E-Mail: johann-peter.hartmann@sektioneins.de

    ×