• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Sicherheit als bestandteil des entwicklungsmodells
 

Sicherheit als bestandteil des entwicklungsmodells

on

  • 375 views

 

Statistics

Views

Total Views
375
Views on SlideShare
374
Embed Views
1

Actions

Likes
1
Downloads
3
Comments
0

1 Embed 1

http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \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 Sicherheit als bestandteil des entwicklungsmodells Presentation Transcript

  • Security DevelopmentLifecyclePHP Unconference 2008
  • Der Kahlkopf vorne
  • 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
  • Agenda
  • AgendaKein Talk „Wie vermeide ich XSS“
  • AgendaKein Talk „Wie vermeide ich XSS“Wie sieht der Status von Web Application Security aus?
  • AgendaKein Talk „Wie vermeide ich XSS“Wie sieht der Status von Web Application Security aus?Microsofts Security Development Lifecycle
  • 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
  • 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
  • Der Status vonWebapplikationssicherheit
  • Der Status vonWebapplikationssicherheit
  • Warum werden Web- Applikationen angegriffen? Profit FunSource: Breach 2007
  • Warum werden Web- Applikationen angegriffen? 67 % Profit FunSource: Breach 2007
  • Warum werden Web- Applikationen angegriffen? 33 % 67 % Profit FunSource: Breach 2007
  • Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung Link Spam Würmer Phishing Information WarfareSource: Breach 2007
  • Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung Link Spam Würmer Phishing 42 % Information WarfareSource: Breach 2007
  • Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung Link Spam Würmer Phishing 42 % Information Warfare 23 %Source: Breach 2007
  • Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung Link Spam Würmer Phishing 42 % Information Warfare 15 % 23 %Source: Breach 2007
  • Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung Link Spam Würmer 8 % Phishing 42 % Information Warfare 15 % 23 %Source: Breach 2007
  • Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung 3 % Link Spam Würmer 8 % Phishing 42 % Information Warfare 15 % 23 %Source: Breach 2007
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • XSS ist das häufigste,aber nicht das wichtigste Problem
  • Dumm gelaufen 1:Angriffsfläche Web
  • Dumm gelaufen 1:Angriffsfläche WebDie Applikation ist 24/7 angreifbar
  • Dumm gelaufen 1:Angriffsfläche WebDie Applikation ist 24/7 angreifbarJeder weiß, wo und wie sie zu finden ist
  • Dumm gelaufen 1:Angriffsfläche WebDie Applikation ist 24/7 angreifbarJeder weiß, wo und wie sie zu finden istAlle Nutzer, auch unbekannte, haben Zugriff
  • 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
  • Dumm gelaufen 2:Code Qualität
  • Dumm gelaufen 2:Code QualitätWeb Applikationen sind Spielfeld von Agenturen undHeimanwendern
  • Dumm gelaufen 2:Code QualitätWeb Applikationen sind Spielfeld von Agenturen undHeimanwendern... und das kann man dem Code ansehen
  • Dumm gelaufen 2:Code QualitätWeb Applikationen sind Spielfeld von Agenturen undHeimanwendern... und das kann man dem Code ansehengeringe Modularität
  • Dumm gelaufen 2:Code QualitätWeb Applikationen sind Spielfeld von Agenturen undHeimanwendern... und das kann man dem Code ansehengeringe Modularitätgeringe Separation von Daten
  • 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
  • Dumm gelaufen 3:Applikationslandschaft
  • Dumm gelaufen 3:Applikationslandschaft es gibt noch Code-Teile von 2001 (als niemand XSS und CSRF kannte)
  • Dumm gelaufen 3:Applikationslandschaft es gibt noch Code-Teile von 2001 (als niemand XSS und CSRF kannte) Hoher Code Churn, viele Änderungen und Autoren
  • 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
  • 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)
  • Dumm gelaufen 4:Developer und Security
  • Dumm gelaufen 4:Developer und Security„Das wird niemals jemand ausprobieren.“
  • Dumm gelaufen 4:Developer und Security„Das wird niemals jemand ausprobieren.“„Warum sollte jemand das machen?“
  • Dumm gelaufen 4:Developer und Security„Das wird niemals jemand ausprobieren.“„Warum sollte jemand das machen?“„Unsere Applikationen wurde noch nie angegriffen.“
  • 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.“
  • 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.“
  • 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.“
  • 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.“
  • Was kann man da machen?
  • Der Ent wickler als Landwirt
  • Der Ent wickler als Landwirt Zukunftschance Olivenanbau in der Toskana
  • Zumindest sind wir nicht dieeinzigen ... Erinnern Sie sich an
  • Zumindest sind wir nicht dieeinzigen ... Erinnern Sie sich an Code Red
  • Zumindest sind wir nicht dieeinzigen ... Erinnern Sie sich an Code Red Nimda
  • Zumindest sind wir nicht dieeinzigen ... Erinnern Sie sich an Code Red Nimda Sasser
  • Zumindest sind wir nicht dieeinzigen ... Erinnern Sie sich an Code Red Nimda Sasser Outlook-Virii ?
  • Der Security DevelopmentLifecycle
  • Der Security DevelopmentLifecycleEntwickelt von Microsoft im Rahmen der TrustworthyComputing Kampagne 2002
  • Der Security DevelopmentLifecycleEntwickelt von Microsoft im Rahmen der TrustworthyComputing Kampagne 2002Trotzdem eine gute Sache
  • Der Security DevelopmentLifecycleEntwickelt von Microsoft im Rahmen der TrustworthyComputing Kampagne 2002Trotzdem eine gute SacheKeine neue Erfindung, sonder Sammlungfunktionierender bekannter Ideen
  • 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
  • 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
  • Bestandteile von SDL
  • Bestandteile von SDLSchulung von Entwicklung und Management
  • Bestandteile von SDLSchulung von Entwicklung und ManagementSicherheit als Bestandteil des Software Lebenzyklus
  • Bestandteile von SDLSchulung von Entwicklung und ManagementSicherheit als Bestandteil des Software LebenzyklusFeststellung von Risiken
  • Bestandteile von SDLSchulung von Entwicklung und ManagementSicherheit als Bestandteil des Software LebenzyklusFeststellung von RisikenRisikoanalyse
  • Bestandteile von SDLSchulung von Entwicklung und ManagementSicherheit als Bestandteil des Software LebenzyklusFeststellung von RisikenRisikoanalyseBest Practices und Code Reviews
  • Bestandteile von SDLSchulung von Entwicklung und ManagementSicherheit als Bestandteil des Software LebenzyklusFeststellung von RisikenRisikoanalyseBest Practices und Code ReviewsSecurity Maintenance Infrastructure
  • Bestandteile von SDLSchulung von Entwicklung und ManagementSicherheit als Bestandteil des Software LebenzyklusFeststellung von RisikenRisikoanalyseBest Practices und Code ReviewsSecurity Maintenance Infrastructure
  • Managementunterstützung
  • ManagementunterstützungSDL benötigt 100% Managementsupport
  • ManagementunterstützungSDL benötigt 100% ManagementsupportWirklich. Offizielles Bekenntnis und sichtbare Aktivität
  • ManagementunterstützungSDL benötigt 100% ManagementsupportWirklich. Offizielles Bekenntnis und sichtbare Aktivität15-20% Mehraufwand/kosten initial,<10% dauerhaft
  • ManagementunterstützungSDL benötigt 100% ManagementsupportWirklich. Offizielles Bekenntnis und sichtbare Aktivität15-20% Mehraufwand/kosten initial,<10% dauerhaftAkzeptanz ein Projekt stoppen zu müssen!
  • Entwickler, aber sicher
  • Entwickler, aber sicher Mindestens eine Sicherheitsschulung pro Jahr
  • Entwickler, aber sicher Mindestens eine Sicherheitsschulung pro Jahr Web Applikationssicherheit ist schnelllebig
  • Entwickler, aber sicher Mindestens eine Sicherheitsschulung pro Jahr Web Applikationssicherheit ist schnelllebig Benennung von Security Trainern
  • Entwickler, aber sicher Mindestens eine Sicherheitsschulung pro Jahr Web Applikationssicherheit ist schnelllebig Benennung von Security Trainern Sicherheitsdokumentation erstellen
  • RisikogetriebeneSoftwareentwicklung
  • RisikogetriebeneSoftwareentwicklungneben den Requirements werden initial auch dieRisiken erfasst und analysiert
  • RisikogetriebeneSoftwareentwicklungneben den Requirements werden initial auch dieRisiken erfasst und analysiertwie Requirements müssen auch die Risiken behandeltwerden
  • RisikogetriebeneSoftwareentwicklungneben den Requirements werden initial auch dieRisiken erfasst und analysiertwie Requirements müssen auch die Risiken behandeltwerdenRisiken ändern sich während der Projektzeit
  • Risikoerfassung -Angriffsflächenanalyse
  • Risikoerfassung -Angriffsflächenanalyse
  • Reduktion der AngriffsflächeJedes Feature prüfen
  • Reduktion der AngriffsflächeJedes Feature prüfen wird dieses Feature von allen Nutzern benötigt?
  • Reduktion der AngriffsflächeJedes Feature prüfen wird dieses Feature von allen Nutzern benötigt? kann dieses Feature von überall erreicht werden?
  • 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?
  • 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?
  • Risikoerfassung: PrivacyImpact Rating
  • Risikoerfassung: PrivacyImpact Rating
  • Risikoerfassung: PrivacyImpact Rating
  • Risikoanalyse
  • RisikoanalyseAnwendungsfälle definieren (zB Use Cases)Die externen Abhängigkeiten erfassenSicherheitsannahmen definierenDatenfluss als Data Flow Diagram erfassen
  • Risikoanalyse:STRIDE Im Datenflussdiagram Risiken mit STRIDE finden
  • Risikoanalyse:STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung
  • Risikoanalyse:STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung Tampering / Manipulation
  • Risikoanalyse:STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung Tampering / Manipulation Repudiation / verhinderte Nachweisbarkeit
  • Risikoanalyse:STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung Tampering / Manipulation Repudiation / verhinderte Nachweisbarkeit Information Disclosure / Informationslecks
  • Risikoanalyse:STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung Tampering / Manipulation Repudiation / verhinderte Nachweisbarkeit Information Disclosure / Informationslecks Denial of Service / Blockaden
  • 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
  • Risk Analysis:Determine risks Jedes gefundene Risiko mit DREAD analysieren
  • Risk Analysis:Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential
  • Risk Analysis:Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential Reproducability
  • Risk Analysis:Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential Reproducability Exploitablitity
  • Risk Analysis:Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential Reproducability Exploitablitity Affected Users
  • Risk Analysis:Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential Reproducability Exploitablitity Affected Users Discoverability
  • 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
  • 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
  • Risikoanalyse:Risikominderungen planen
  • Risikoanalyse:Risikominderungen planenFür jedes Risiko, das oberhalb der Risikoschwelle (BugBar) ist
  • Risikoanalyse:Risikominderungen planenFür jedes Risiko, das oberhalb der Risikoschwelle (BugBar) istRisikominderungen können applikationsweit sein
  • Risikoanalyse:Risikominderungen planenFür jedes Risiko, das oberhalb der Risikoschwelle (BugBar) istRisikominderungen können applikationsweit sein Parameterbindung und SQL-Injections
  • Risikoanalyse:Risikominderungen planenFür jedes Risiko, das oberhalb der Risikoschwelle (BugBar) istRisikominderungen können applikationsweit sein Parameterbindung und SQL-Injections erzwungenes Ausgabeescaping
  • 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
  • Risikoanalyse:Bedrohungsmodellierung
  • 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
  • Sicherheit Best Practices
  • Sicherheit Best Practices Welche Tools eingesetzt werden sollen Coding Standards und Richtlinien Testrichtlinien
  • Werkzeuge zurVerbesserung der Sicherheit
  • Werkzeuge zurVerbesserung der SicherheitKomplexitäts- und Coding-Style analyse Checkstyle, Codesniffer, PMDStatische Source Code Analyse Fortify diverse OpenSource-Tools
  • Coding Standards
  • Coding StandardsEinige Beispiele: Fixe Libraries und Regeln für Input Validierung Variablensäuberung Ausgabeescaping Parameter Binding für Datenbankzugriffe Liste verbotener Klassen und Methoden
  • Coding Richtlinien
  • Coding Richtlinien Maximalwerte für Komplexität (McCabe, NPath- Complexity) Minimale Test Coverage Richtlinien für Regressionstests
  • Sicherheitstests fürWebapplikationen
  • 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
  • Der „Security Push“
  • 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
  • Finaler Sicherheitsreview
  • 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
  • Security ResponseInfrastructure
  • 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
  • Security Response auf eineMeldung
  • Security Response auf eineMeldungVerwundbarkeit, Risiko und Ausnutzbarkeit analysieren
  • Security Response auf eineMeldungVerwundbarkeit, Risiko und Ausnutzbarkeit analysierenFehler korrigieren
  • Security Response auf eineMeldungVerwundbarkeit, Risiko und Ausnutzbarkeit analysierenFehler korrigierenKorrektur prüfen
  • Security Response auf eineMeldungVerwundbarkeit, Risiko und Ausnutzbarkeit analysierenFehler korrigierenKorrektur prüfenRegressionstest für Fehler implementieren
  • Security Response auf eineMeldungVerwundbarkeit, Risiko und Ausnutzbarkeit analysierenFehler korrigierenKorrektur prüfenRegressionstest für Fehler implementierenUpdate zur Fehlerbehebung und Advisoryveröffentlichen
  • Security Response auf eineMeldungVerwundbarkeit, Risiko und Ausnutzbarkeit analysierenFehler korrigierenKorrektur prüfenRegressionstest für Fehler implementierenUpdate zur Fehlerbehebung und AdvisoryveröffentlichenTestdokumentation und -werkzeuge aktualisieren
  • Start
  • Start Die Bibel: „The Security Development Lifecycle“ von Michael Howard und Steve Lipner
  • Start Die Bibel: „The Security Development Lifecycle“ von Michael Howard und Steve Lipner ISBN 978-0-7356-2214-2
  • Start Die Bibel: „The Security Development Lifecycle“ von Michael Howard und Steve Lipner ISBN 978-0-7356-2214-2 http://blogs.msdn.com/threatmodeling/
  • 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
  • Fazit
  • Fazit1.Awareness: Web Applikation sind risikobehaftet
  • Fazit1.Awareness: Web Applikation sind risikobehaftet2.SDL ist ein Weg, Sicherheit als Bestandteil des Entwicklungsprozesses zu gewährleisten
  • 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
  • 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.
  • Ausblick
  • AusblickAgile Entwicklungsprozesse und Sicherheit
  • AusblickAgile Entwicklungsprozesse und Sicherheit Security Stakeholder als Kunden
  • AusblickAgile Entwicklungsprozesse und Sicherheit Security Stakeholder als Kunden Security Requirements
  • AusblickAgile Entwicklungsprozesse und Sicherheit Security Stakeholder als Kunden Security Requirements Security Tests
  • AusblickAgile Entwicklungsprozesse und Sicherheit Security Stakeholder als Kunden Security Requirements Security Tests Security Expert als Sonderrolle im Team
  • 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
  • Fragen?
  • Fragen? Einfach per E-Mail: johann-peter.hartmann@sektioneins.de