SlideShare ist ein Scribd-Unternehmen logo
1 von 177
Security Development
Lifecycle
PHP Unconference 2008
Der Kahlkopf vorne
Der Kahlkopf vorne

Johann-Peter Hartmann
Entwickler & Consultant
Mit Stefan Esser Gründer der SektionEins GmbH,
CTo und Hausmeister bei Mayflower GmbH
Verantwortlich für die Entwicklung eines Web
Application Security Scanners mit einem beknackten
Namen
Agenda
Agenda

Kein Talk „Wie vermeide ich XSS“
Agenda

Kein Talk „Wie vermeide ich XSS“
Wie sieht der Status von Web Application Security aus?
Agenda

Kein Talk „Wie vermeide ich XSS“
Wie sieht der Status von Web Application Security aus?
Microsofts Security Development Lifecycle
Agenda

Kein Talk „Wie vermeide ich XSS“
Wie sieht der Status von Web Application Security aus?
Microsofts Security Development Lifecycle
Der SDL für Web Applikations Companies
Agenda

Kein Talk „Wie vermeide ich XSS“
Wie sieht der Status von Web Application Security aus?
Microsofts Security Development Lifecycle
Der SDL für Web Applikations Companies
Fazit
Der Status von
Webapplikationssicherheit
Der Status von
Webapplikationssicherheit
Warum werden Web-
    Applikationen angegriffen?




                      Profit      Fun
Source: Breach 2007
Warum werden Web-
    Applikationen angegriffen?




                      67 %


                             Profit   Fun
Source: Breach 2007
Warum werden Web-
    Applikationen angegriffen?

            33 %




                      67 %


                             Profit   Fun
Source: Breach 2007
Motive im Detail   Informationsdiebstahl
                       Defacement
                       Malware
                       Unbekannt
                       Betrug
                       Erpressung
                       Link Spam
                       Würmer
                       Phishing
                       Information Warfare




Source: Breach 2007
Motive im Detail         Informationsdiebstahl
                             Defacement
                             Malware
                             Unbekannt
                             Betrug
                             Erpressung
                             Link Spam
                             Würmer
                             Phishing
                      42 %   Information Warfare




Source: 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
                   CSRF


Source: 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
                          CSRF


Source: 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
                                 CSRF


Source: 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 %            CSRF


Source: 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 %            CSRF


Source: 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 %            CSRF


Source: 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 %            CSRF


Source: 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 %            CSRF


Source: 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 %            CSRF


Source: 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 %            CSRF


Source: 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 %            CSRF


Source: 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 %            CSRF


Source: 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 %            CSRF


Source: 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 %            CSRF


Source: NSI 2006
XSS ist das häufigste,
aber nicht das wichtigste
        Problem
Dumm gelaufen 1:
Angriffsfläche Web
Dumm gelaufen 1:
Angriffsfläche Web

Die Applikation ist 24/7 angreifbar
Dumm gelaufen 1:
Angriffsfläche Web

Die Applikation ist 24/7 angreifbar
Jeder weiß, wo und wie sie zu finden ist
Dumm gelaufen 1:
Angriffsfläche Web

Die Applikation ist 24/7 angreifbar
Jeder weiß, wo und wie sie zu finden ist
Alle Nutzer, auch unbekannte, haben Zugriff
Dumm gelaufen 1:
Angriffsfläche Web

Die Applikation ist 24/7 angreifbar
Jeder weiß, wo und wie sie zu finden ist
Alle Nutzer, auch unbekannte, haben Zugriff
Das Kommunikationsprotokoll ist nicht
vertrauenswürdig
Dumm gelaufen 2:
Code Qualität
Dumm gelaufen 2:
Code Qualität
Web Applikationen sind Spielfeld von Agenturen und
Heimanwendern
Dumm gelaufen 2:
Code Qualität
Web Applikationen sind Spielfeld von Agenturen und
Heimanwendern
... und das kann man dem Code ansehen
Dumm gelaufen 2:
Code Qualität
Web Applikationen sind Spielfeld von Agenturen und
Heimanwendern
... und das kann man dem Code ansehen
geringe Modularität
Dumm gelaufen 2:
Code Qualität
Web Applikationen sind Spielfeld von Agenturen und
Heimanwendern
... und das kann man dem Code ansehen
geringe Modularität
geringe Separation von Daten
Dumm gelaufen 2:
Code Qualität
Web Applikationen sind Spielfeld von Agenturen und
Heimanwendern
... und das kann man dem Code ansehen
geringe Modularität
geringe Separation von Daten
Im 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 keine
Fehler 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 keine
Fehler 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 keine
Fehler 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 die
einzigen ...
 Erinnern Sie sich an
Zumindest sind wir nicht die
einzigen ...
 Erinnern Sie sich an
   Code Red
Zumindest sind wir nicht die
einzigen ...
 Erinnern Sie sich an
   Code Red
   Nimda
Zumindest sind wir nicht die
einzigen ...
 Erinnern Sie sich an
   Code Red
   Nimda
   Sasser
Zumindest sind wir nicht die
einzigen ...
 Erinnern Sie sich an
   Code Red
   Nimda
   Sasser
   Outlook-Virii ?
Der Security Development
Lifecycle
Der Security Development
Lifecycle
Entwickelt von Microsoft im Rahmen der Trustworthy
Computing Kampagne 2002
Der Security Development
Lifecycle
Entwickelt von Microsoft im Rahmen der Trustworthy
Computing Kampagne 2002
Trotzdem eine gute Sache
Der Security Development
Lifecycle
Entwickelt von Microsoft im Rahmen der Trustworthy
Computing Kampagne 2002
Trotzdem eine gute Sache
Keine neue Erfindung, sonder Sammlung
funktionierender bekannter Ideen
Der Security Development
Lifecycle
Entwickelt von Microsoft im Rahmen der Trustworthy
Computing Kampagne 2002
Trotzdem eine gute Sache
Keine neue Erfindung, sonder Sammlung
funktionierender bekannter Ideen
Für existierende und neue Projekte
Der Security Development
Lifecycle
Entwickelt von Microsoft im Rahmen der Trustworthy
Computing Kampagne 2002
Trotzdem eine gute Sache
Keine neue Erfindung, sonder Sammlung
funktionierender bekannter Ideen
Für existierende und neue Projekte
Resultat: 50-60% weniger Post-Release Bugs
Bestandteile von SDL
Bestandteile von SDL
Schulung von Entwicklung und Management
Bestandteile von SDL
Schulung von Entwicklung und Management
Sicherheit als Bestandteil des Software Lebenzyklus
Bestandteile von SDL
Schulung von Entwicklung und Management
Sicherheit als Bestandteil des Software Lebenzyklus
Feststellung von Risiken
Bestandteile von SDL
Schulung von Entwicklung und Management
Sicherheit als Bestandteil des Software Lebenzyklus
Feststellung von Risiken
Risikoanalyse
Bestandteile von SDL
Schulung von Entwicklung und Management
Sicherheit als Bestandteil des Software Lebenzyklus
Feststellung von Risiken
Risikoanalyse
Best Practices und Code Reviews
Bestandteile von SDL
Schulung von Entwicklung und Management
Sicherheit als Bestandteil des Software Lebenzyklus
Feststellung von Risiken
Risikoanalyse
Best Practices und Code Reviews
Security Maintenance Infrastructure
Bestandteile von SDL
Schulung von Entwicklung und Management
Sicherheit als Bestandteil des Software Lebenzyklus
Feststellung von Risiken
Risikoanalyse
Best Practices und Code Reviews
Security Maintenance Infrastructure
Managementunterstützung
Managementunterstützung



SDL benötigt 100% Managementsupport
Managementunterstützung



SDL benötigt 100% Managementsupport
Wirklich. Offizielles Bekenntnis und sichtbare Aktivität
Managementunterstützung



SDL benötigt 100% Managementsupport
Wirklich. Offizielles Bekenntnis und sichtbare Aktivität
15-20% Mehraufwand/kosten initial,
<10% dauerhaft
Managementunterstützung



SDL benötigt 100% Managementsupport
Wirklich. Offizielles Bekenntnis und sichtbare Aktivität
15-20% Mehraufwand/kosten initial,
<10% dauerhaft
Akzeptanz 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
Risikogetriebene
Softwareentwicklung
Risikogetriebene
Softwareentwicklung

neben den Requirements werden initial auch die
Risiken erfasst und analysiert
Risikogetriebene
Softwareentwicklung

neben den Requirements werden initial auch die
Risiken erfasst und analysiert
wie Requirements müssen auch die Risiken behandelt
werden
Risikogetriebene
Softwareentwicklung

neben den Requirements werden initial auch die
Risiken erfasst und analysiert
wie Requirements müssen auch die Risiken behandelt
werden
Risiken ändern sich während der Projektzeit
Risikoerfassung -
Angriffsflächenanalyse
Risikoerfassung -
Angriffsflächenanalyse
Reduktion der Angriffsfläche
Jedes Feature prüfen
Reduktion der Angriffsfläche
Jedes Feature prüfen
  wird dieses Feature von allen Nutzern benötigt?
Reduktion der Angriffsfläche
Jedes Feature prüfen
  wird dieses Feature von allen Nutzern benötigt?
  kann dieses Feature von überall erreicht werden?
Reduktion der Angriffsfläche
Jedes 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äche
Jedes 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: Privacy
Impact Rating
Risikoerfassung: Privacy
Impact Rating
Risikoerfassung: Privacy
Impact Rating
Risikoanalyse
Risikoanalyse

Anwendungsfälle definieren (zB Use Cases)
Die externen Abhängigkeiten erfassen
Sicherheitsannahmen definieren
Datenfluss 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 planen
Für jedes Risiko, das oberhalb der Risikoschwelle (Bug
Bar) ist
Risikoanalyse:
Risikominderungen planen
Für jedes Risiko, das oberhalb der Risikoschwelle (Bug
Bar) ist
Risikominderungen können applikationsweit sein
Risikoanalyse:
Risikominderungen planen
Für jedes Risiko, das oberhalb der Risikoschwelle (Bug
Bar) ist
Risikominderungen können applikationsweit sein
  Parameterbindung und SQL-Injections
Risikoanalyse:
Risikominderungen planen
Für jedes Risiko, das oberhalb der Risikoschwelle (Bug
Bar) ist
Risikominderungen können applikationsweit sein
  Parameterbindung und SQL-Injections
  erzwungenes Ausgabeescaping
Risikoanalyse:
Risikominderungen planen
Für jedes Risiko, das oberhalb der Risikoschwelle (Bug
Bar) ist
Risikominderungen können applikationsweit sein
  Parameterbindung und SQL-Injections
  erzwungenes Ausgabeescaping
Die 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 zur
Verbesserung der Sicherheit
Werkzeuge zur
Verbesserung der Sicherheit
Komplexitäts- und Coding-Style analyse
  Checkstyle, Codesniffer, PMD
Statische Source Code Analyse
  Fortify
  diverse OpenSource-Tools
Coding Standards
Coding Standards
Einige 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ür
Webapplikationen
Sicherheitstests für
Webapplikationen
 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 Response
Infrastructure
Security Response
Infrastructure
Es existiert ein offizieller Security(@company.tld)
Kontakt
Es gibt einen definierten Workflow für gemeldete
Probleme
Es gibt einen Workflow für Advisories
Es gibt einen Workflow für Updates und Bugfixes
Security Response auf eine
Meldung
Security Response auf eine
Meldung
Verwundbarkeit, Risiko und Ausnutzbarkeit analysieren
Security Response auf eine
Meldung
Verwundbarkeit, Risiko und Ausnutzbarkeit analysieren
Fehler korrigieren
Security Response auf eine
Meldung
Verwundbarkeit, Risiko und Ausnutzbarkeit analysieren
Fehler korrigieren
Korrektur prüfen
Security Response auf eine
Meldung
Verwundbarkeit, Risiko und Ausnutzbarkeit analysieren
Fehler korrigieren
Korrektur prüfen
Regressionstest für Fehler implementieren
Security Response auf eine
Meldung
Verwundbarkeit, Risiko und Ausnutzbarkeit analysieren
Fehler korrigieren
Korrektur prüfen
Regressionstest für Fehler implementieren
Update zur Fehlerbehebung und Advisory
veröffentlichen
Security Response auf eine
Meldung
Verwundbarkeit, Risiko und Ausnutzbarkeit analysieren
Fehler korrigieren
Korrektur prüfen
Regressionstest für Fehler implementieren
Update zur Fehlerbehebung und Advisory
veröffentlichen
Testdokumentation 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
Fazit

1.Awareness: Web Applikation sind risikobehaftet
Fazit

1.Awareness: Web Applikation sind risikobehaftet
2.SDL ist ein Weg, Sicherheit als Bestandteil des
  Entwicklungsprozesses zu gewährleisten
Fazit

1.Awareness: Web Applikation sind risikobehaftet
2.SDL ist ein Weg, Sicherheit als Bestandteil des
  Entwicklungsprozesses zu gewährleisten
3.Die Einführung bedeutet die Integration eines Sets von
  Werkzeugen und Prozessen
Fazit

1.Awareness: Web Applikation sind risikobehaftet
2.SDL ist ein Weg, Sicherheit als Bestandteil des
  Entwicklungsprozesses zu gewährleisten
3.Die Einführung bedeutet die Integration eines Sets von
  Werkzeugen und Prozessen
4.SDL ist kein Silver Bullet: Anwendung des Toolsets liegt
  beim Entwickler, der Erfolg auch.
Ausblick
Ausblick
Agile Entwicklungsprozesse und Sicherheit
Ausblick
Agile Entwicklungsprozesse und Sicherheit
  Security Stakeholder als Kunden
Ausblick
Agile Entwicklungsprozesse und Sicherheit
  Security Stakeholder als Kunden
  Security Requirements
Ausblick
Agile Entwicklungsprozesse und Sicherheit
  Security Stakeholder als Kunden
  Security Requirements
  Security Tests
Ausblick
Agile Entwicklungsprozesse und Sicherheit
  Security Stakeholder als Kunden
  Security Requirements
  Security Tests
  Security Expert als Sonderrolle im Team
Ausblick
Agile Entwicklungsprozesse und Sicherheit
  Security Stakeholder als Kunden
  Security Requirements
  Security Tests
  Security Expert als Sonderrolle im Team
Es gibt für MDA Ansätze wie CORAS, UMLsec und
SecureUML
Fragen?
Fragen?




           Einfach per E-Mail:
  johann-peter.hartmann@sektioneins.de

Weitere ähnliche Inhalte

Mehr von Johann-Peter Hartmann

Von Kutschern, Managern und Systemadministratoren
Von Kutschern, Managern und SystemadministratorenVon Kutschern, Managern und Systemadministratoren
Von Kutschern, Managern und SystemadministratorenJohann-Peter Hartmann
 
Lügen, schlimme Lügen und IT-Verträge
Lügen, schlimme Lügen und IT-VerträgeLügen, schlimme Lügen und IT-Verträge
Lügen, schlimme Lügen und IT-VerträgeJohann-Peter Hartmann
 
How not to screw the operating system of your startup
How not to screw the operating system of your startupHow not to screw the operating system of your startup
How not to screw the operating system of your startupJohann-Peter Hartmann
 
Einfangen eines technisch kaputten projektes
Einfangen eines technisch kaputten projektesEinfangen eines technisch kaputten projektes
Einfangen eines technisch kaputten projektesJohann-Peter Hartmann
 
Java script security for java developers
Java script security for java developersJava script security for java developers
Java script security for java developersJohann-Peter Hartmann
 
JavaScript und Security - JavaScript Days 2013 Berlin
JavaScript und Security - JavaScript Days 2013 BerlinJavaScript und Security - JavaScript Days 2013 Berlin
JavaScript und Security - JavaScript Days 2013 BerlinJohann-Peter Hartmann
 

Mehr von Johann-Peter Hartmann (20)

NewWork in der Praxis
NewWork in der PraxisNewWork in der Praxis
NewWork in der Praxis
 
Von Kutschern, Managern und Systemadministratoren
Von Kutschern, Managern und SystemadministratorenVon Kutschern, Managern und Systemadministratoren
Von Kutschern, Managern und Systemadministratoren
 
Das Ende der Karriere
Das Ende der KarriereDas Ende der Karriere
Das Ende der Karriere
 
DevOps jenseits der Tools
DevOps jenseits der ToolsDevOps jenseits der Tools
DevOps jenseits der Tools
 
Reparier Deine Unternehmenskultur!
Reparier Deine Unternehmenskultur!Reparier Deine Unternehmenskultur!
Reparier Deine Unternehmenskultur!
 
Lügen, schlimme Lügen und IT-Verträge
Lügen, schlimme Lügen und IT-VerträgeLügen, schlimme Lügen und IT-Verträge
Lügen, schlimme Lügen und IT-Verträge
 
How not to screw the operating system of your startup
How not to screw the operating system of your startupHow not to screw the operating system of your startup
How not to screw the operating system of your startup
 
Einfangen eines technisch kaputten projektes
Einfangen eines technisch kaputten projektesEinfangen eines technisch kaputten projektes
Einfangen eines technisch kaputten projektes
 
Agile versus Management WJAX 2014
Agile versus Management WJAX 2014Agile versus Management WJAX 2014
Agile versus Management WJAX 2014
 
Leadership in der IT
Leadership in der ITLeadership in der IT
Leadership in der IT
 
Vom Entwickler zur Führungskraft
Vom Entwickler zur FührungskraftVom Entwickler zur Führungskraft
Vom Entwickler zur Führungskraft
 
Erfolgreiche rewrites
Erfolgreiche rewritesErfolgreiche rewrites
Erfolgreiche rewrites
 
Surviving Complexity
Surviving ComplexitySurviving Complexity
Surviving Complexity
 
Java script security for java developers
Java script security for java developersJava script security for java developers
Java script security for java developers
 
Rewrites überleben
Rewrites überlebenRewrites überleben
Rewrites überleben
 
JavaScript Security
JavaScript SecurityJavaScript Security
JavaScript Security
 
Serverside Cryptoparty
Serverside CryptopartyServerside Cryptoparty
Serverside Cryptoparty
 
Wetware Bugs and Refactoring
Wetware Bugs and RefactoringWetware Bugs and Refactoring
Wetware Bugs and Refactoring
 
JavaScript und Security - JavaScript Days 2013 Berlin
JavaScript und Security - JavaScript Days 2013 BerlinJavaScript und Security - JavaScript Days 2013 Berlin
JavaScript und Security - JavaScript Days 2013 Berlin
 
Performancemessung, jetzt in echt
Performancemessung, jetzt in echtPerformancemessung, jetzt in echt
Performancemessung, jetzt in echt
 

Sicherheit als bestandteil des entwicklungsmodells

  • 3. Der Kahlkopf vorne Johann-Peter Hartmann Entwickler & Consultant Mit Stefan Esser Gründer der SektionEins GmbH, CTo und Hausmeister bei Mayflower GmbH Verantwortlich für die Entwicklung eines Web Application Security Scanners mit einem beknackten Namen
  • 5. Agenda Kein Talk „Wie vermeide ich XSS“
  • 6. Agenda Kein Talk „Wie vermeide ich XSS“ Wie sieht der Status von Web Application Security aus?
  • 7. Agenda Kein Talk „Wie vermeide ich XSS“ Wie sieht der Status von Web Application Security aus? Microsofts Security Development Lifecycle
  • 8. Agenda Kein Talk „Wie vermeide ich XSS“ Wie sieht der Status von Web Application Security aus? Microsofts Security Development Lifecycle Der SDL für Web Applikations Companies
  • 9. Agenda Kein Talk „Wie vermeide ich XSS“ Wie sieht der Status von Web Application Security aus? Microsofts Security Development Lifecycle Der SDL für Web Applikations Companies Fazit
  • 12. Warum werden Web- Applikationen angegriffen? Profit Fun Source: Breach 2007
  • 13. Warum werden Web- Applikationen angegriffen? 67 % Profit Fun Source: Breach 2007
  • 14. Warum werden Web- Applikationen angegriffen? 33 % 67 % Profit Fun Source: Breach 2007
  • 15. Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung Link Spam Würmer Phishing Information Warfare Source: Breach 2007
  • 16. Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung Link Spam Würmer Phishing 42 % Information Warfare Source: Breach 2007
  • 17. Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung Link Spam Würmer Phishing 42 % Information Warfare 23 % Source: Breach 2007
  • 18. Motive im Detail Informationsdiebstahl Defacement Malware Unbekannt Betrug Erpressung Link Spam Würmer Phishing 42 % Information Warfare 15 % 23 % Source: Breach 2007
  • 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. 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. 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. 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. 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. 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. 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. 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 CSRF Source: NSI 2006
  • 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 CSRF Source: NSI 2006
  • 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 CSRF Source: NSI 2006
  • 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 % CSRF Source: NSI 2006
  • 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 % CSRF Source: NSI 2006
  • 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 % CSRF Source: NSI 2006
  • 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 % CSRF Source: NSI 2006
  • 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 % CSRF Source: NSI 2006
  • 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 % CSRF Source: NSI 2006
  • 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 % CSRF Source: NSI 2006
  • 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 % CSRF Source: NSI 2006
  • 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 % CSRF Source: NSI 2006
  • 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 % CSRF Source: NSI 2006
  • 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 % CSRF Source: NSI 2006
  • 40. XSS ist das häufigste, aber nicht das wichtigste Problem
  • 42. Dumm gelaufen 1: Angriffsfläche Web Die Applikation ist 24/7 angreifbar
  • 43. Dumm gelaufen 1: Angriffsfläche Web Die Applikation ist 24/7 angreifbar Jeder weiß, wo und wie sie zu finden ist
  • 44. Dumm gelaufen 1: Angriffsfläche Web Die Applikation ist 24/7 angreifbar Jeder weiß, wo und wie sie zu finden ist Alle Nutzer, auch unbekannte, haben Zugriff
  • 45. Dumm gelaufen 1: Angriffsfläche Web Die Applikation ist 24/7 angreifbar Jeder weiß, wo und wie sie zu finden ist Alle Nutzer, auch unbekannte, haben Zugriff Das Kommunikationsprotokoll ist nicht vertrauenswürdig
  • 47. Dumm gelaufen 2: Code Qualität Web Applikationen sind Spielfeld von Agenturen und Heimanwendern
  • 48. Dumm gelaufen 2: Code Qualität Web Applikationen sind Spielfeld von Agenturen und Heimanwendern ... und das kann man dem Code ansehen
  • 49. Dumm gelaufen 2: Code Qualität Web Applikationen sind Spielfeld von Agenturen und Heimanwendern ... und das kann man dem Code ansehen geringe Modularität
  • 50. Dumm gelaufen 2: Code Qualität Web Applikationen sind Spielfeld von Agenturen und Heimanwendern ... und das kann man dem Code ansehen geringe Modularität geringe Separation von Daten
  • 51. Dumm gelaufen 2: Code Qualität Web Applikationen sind Spielfeld von Agenturen und Heimanwendern ... und das kann man dem Code ansehen geringe Modularität geringe Separation von Daten Im Normalfall nicht in einer Sandbox
  • 53. Dumm gelaufen 3: Applikationslandschaft es gibt noch Code-Teile von 2001 (als niemand XSS und CSRF kannte)
  • 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. 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. 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)
  • 58. Dumm gelaufen 4: Developer und Security „Das wird niemals jemand ausprobieren.“
  • 59. Dumm gelaufen 4: Developer und Security „Das wird niemals jemand ausprobieren.“ „Warum sollte jemand das machen?“
  • 60. Dumm gelaufen 4: Developer und Security „Das wird niemals jemand ausprobieren.“ „Warum sollte jemand das machen?“ „Unsere Applikationen wurde noch nie angegriffen.“
  • 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. 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 keine Fehler mehr.“
  • 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 keine Fehler mehr.“ „Es ist zwar ein Fehler, aber nicht ausnutzbar.“
  • 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 keine Fehler mehr.“ „Es ist zwar ein Fehler, aber nicht ausnutzbar.“ „Aber die Option ist normalerweise nicht aktiv.“
  • 65. Was kann man da machen?
  • 66. Der Ent wickler als Landwirt
  • 67. Der Ent wickler als Landwirt Zukunftschance Olivenanbau in der Toskana
  • 68. Zumindest sind wir nicht die einzigen ... Erinnern Sie sich an
  • 69. Zumindest sind wir nicht die einzigen ... Erinnern Sie sich an Code Red
  • 70. Zumindest sind wir nicht die einzigen ... Erinnern Sie sich an Code Red Nimda
  • 71. Zumindest sind wir nicht die einzigen ... Erinnern Sie sich an Code Red Nimda Sasser
  • 72. Zumindest sind wir nicht die einzigen ... Erinnern Sie sich an Code Red Nimda Sasser Outlook-Virii ?
  • 74. Der Security Development Lifecycle Entwickelt von Microsoft im Rahmen der Trustworthy Computing Kampagne 2002
  • 75. Der Security Development Lifecycle Entwickelt von Microsoft im Rahmen der Trustworthy Computing Kampagne 2002 Trotzdem eine gute Sache
  • 76. Der Security Development Lifecycle Entwickelt von Microsoft im Rahmen der Trustworthy Computing Kampagne 2002 Trotzdem eine gute Sache Keine neue Erfindung, sonder Sammlung funktionierender bekannter Ideen
  • 77. Der Security Development Lifecycle Entwickelt von Microsoft im Rahmen der Trustworthy Computing Kampagne 2002 Trotzdem eine gute Sache Keine neue Erfindung, sonder Sammlung funktionierender bekannter Ideen Für existierende und neue Projekte
  • 78. Der Security Development Lifecycle Entwickelt von Microsoft im Rahmen der Trustworthy Computing Kampagne 2002 Trotzdem eine gute Sache Keine neue Erfindung, sonder Sammlung funktionierender bekannter Ideen Für existierende und neue Projekte Resultat: 50-60% weniger Post-Release Bugs
  • 80. Bestandteile von SDL Schulung von Entwicklung und Management
  • 81. Bestandteile von SDL Schulung von Entwicklung und Management Sicherheit als Bestandteil des Software Lebenzyklus
  • 82. Bestandteile von SDL Schulung von Entwicklung und Management Sicherheit als Bestandteil des Software Lebenzyklus Feststellung von Risiken
  • 83. Bestandteile von SDL Schulung von Entwicklung und Management Sicherheit als Bestandteil des Software Lebenzyklus Feststellung von Risiken Risikoanalyse
  • 84. Bestandteile von SDL Schulung von Entwicklung und Management Sicherheit als Bestandteil des Software Lebenzyklus Feststellung von Risiken Risikoanalyse Best Practices und Code Reviews
  • 85. Bestandteile von SDL Schulung von Entwicklung und Management Sicherheit als Bestandteil des Software Lebenzyklus Feststellung von Risiken Risikoanalyse Best Practices und Code Reviews Security Maintenance Infrastructure
  • 86. Bestandteile von SDL Schulung von Entwicklung und Management Sicherheit als Bestandteil des Software Lebenzyklus Feststellung von Risiken Risikoanalyse Best Practices und Code Reviews Security Maintenance Infrastructure
  • 89. Managementunterstützung SDL benötigt 100% Managementsupport Wirklich. Offizielles Bekenntnis und sichtbare Aktivität
  • 90. Managementunterstützung SDL benötigt 100% Managementsupport Wirklich. Offizielles Bekenntnis und sichtbare Aktivität 15-20% Mehraufwand/kosten initial, <10% dauerhaft
  • 91. Managementunterstützung SDL benötigt 100% Managementsupport Wirklich. Offizielles Bekenntnis und sichtbare Aktivität 15-20% Mehraufwand/kosten initial, <10% dauerhaft Akzeptanz ein Projekt stoppen zu müssen!
  • 93. Entwickler, aber sicher Mindestens eine Sicherheitsschulung pro Jahr
  • 94. Entwickler, aber sicher Mindestens eine Sicherheitsschulung pro Jahr Web Applikationssicherheit ist schnelllebig
  • 95. Entwickler, aber sicher Mindestens eine Sicherheitsschulung pro Jahr Web Applikationssicherheit ist schnelllebig Benennung von Security Trainern
  • 96. Entwickler, aber sicher Mindestens eine Sicherheitsschulung pro Jahr Web Applikationssicherheit ist schnelllebig Benennung von Security Trainern Sicherheitsdokumentation erstellen
  • 98. Risikogetriebene Softwareentwicklung neben den Requirements werden initial auch die Risiken erfasst und analysiert
  • 99. Risikogetriebene Softwareentwicklung neben den Requirements werden initial auch die Risiken erfasst und analysiert wie Requirements müssen auch die Risiken behandelt werden
  • 100. Risikogetriebene Softwareentwicklung neben den Requirements werden initial auch die Risiken erfasst und analysiert wie Requirements müssen auch die Risiken behandelt werden Risiken ändern sich während der Projektzeit
  • 104. Reduktion der Angriffsfläche Jedes Feature prüfen wird dieses Feature von allen Nutzern benötigt?
  • 105. Reduktion der Angriffsfläche Jedes Feature prüfen wird dieses Feature von allen Nutzern benötigt? kann dieses Feature von überall erreicht werden?
  • 106. Reduktion der Angriffsfläche Jedes 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. Reduktion der Angriffsfläche Jedes 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?
  • 112. Risikoanalyse Anwendungsfälle definieren (zB Use Cases) Die externen Abhängigkeiten erfassen Sicherheitsannahmen definieren Datenfluss als Data Flow Diagram erfassen
  • 113. Risikoanalyse: STRIDE Im Datenflussdiagram Risiken mit STRIDE finden
  • 114. Risikoanalyse: STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung
  • 115. Risikoanalyse: STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung Tampering / Manipulation
  • 116. Risikoanalyse: STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung Tampering / Manipulation Repudiation / verhinderte Nachweisbarkeit
  • 117. Risikoanalyse: STRIDE Im Datenflussdiagram Risiken mit STRIDE finden Spoofing / Fälschung Tampering / Manipulation Repudiation / verhinderte Nachweisbarkeit Information Disclosure / Informationslecks
  • 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. 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. Risk Analysis: Determine risks Jedes gefundene Risiko mit DREAD analysieren
  • 121. Risk Analysis: Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential
  • 122. Risk Analysis: Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential Reproducability
  • 123. Risk Analysis: Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential Reproducability Exploitablitity
  • 124. Risk Analysis: Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential Reproducability Exploitablitity Affected Users
  • 125. Risk Analysis: Determine risks Jedes gefundene Risiko mit DREAD analysieren Damage Potential Reproducability Exploitablitity Affected Users Discoverability
  • 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. 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
  • 129. Risikoanalyse: Risikominderungen planen Für jedes Risiko, das oberhalb der Risikoschwelle (Bug Bar) ist
  • 130. Risikoanalyse: Risikominderungen planen Für jedes Risiko, das oberhalb der Risikoschwelle (Bug Bar) ist Risikominderungen können applikationsweit sein
  • 131. Risikoanalyse: Risikominderungen planen Für jedes Risiko, das oberhalb der Risikoschwelle (Bug Bar) ist Risikominderungen können applikationsweit sein Parameterbindung und SQL-Injections
  • 132. Risikoanalyse: Risikominderungen planen Für jedes Risiko, das oberhalb der Risikoschwelle (Bug Bar) ist Risikominderungen können applikationsweit sein Parameterbindung und SQL-Injections erzwungenes Ausgabeescaping
  • 133. Risikoanalyse: Risikominderungen planen Für jedes Risiko, das oberhalb der Risikoschwelle (Bug Bar) ist Risikominderungen können applikationsweit sein Parameterbindung und SQL-Injections erzwungenes Ausgabeescaping Die Vollständigkeit des Einsatzes muss geprüft werden
  • 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
  • 137. Sicherheit Best Practices Welche Tools eingesetzt werden sollen Coding Standards und Richtlinien Testrichtlinien
  • 139. Werkzeuge zur Verbesserung der Sicherheit Komplexitäts- und Coding-Style analyse Checkstyle, Codesniffer, PMD Statische Source Code Analyse Fortify diverse OpenSource-Tools
  • 141. Coding Standards Einige Beispiele: Fixe Libraries und Regeln für Input Validierung Variablensäuberung Ausgabeescaping Parameter Binding für Datenbankzugriffe Liste verbotener Klassen und Methoden
  • 143. Coding Richtlinien Maximalwerte für Komplexität (McCabe, NPath- Complexity) Minimale Test Coverage Richtlinien für Regressionstests
  • 145. Sicherheitstests für Webapplikationen Automatisierte Fuzzing und Pentestingtools (wie NStalker, AppScan, XSSS) Laufzeitschutz (Suhosin, mod_apparmor, mod_security) Regressionstests für jedes gefundene Sicherheitsproblem Security Test Cases
  • 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
  • 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
  • 151. Security Response Infrastructure Es existiert ein offizieller Security(@company.tld) Kontakt Es gibt einen definierten Workflow für gemeldete Probleme Es gibt einen Workflow für Advisories Es gibt einen Workflow für Updates und Bugfixes
  • 152. Security Response auf eine Meldung
  • 153. Security Response auf eine Meldung Verwundbarkeit, Risiko und Ausnutzbarkeit analysieren
  • 154. Security Response auf eine Meldung Verwundbarkeit, Risiko und Ausnutzbarkeit analysieren Fehler korrigieren
  • 155. Security Response auf eine Meldung Verwundbarkeit, Risiko und Ausnutzbarkeit analysieren Fehler korrigieren Korrektur prüfen
  • 156. Security Response auf eine Meldung Verwundbarkeit, Risiko und Ausnutzbarkeit analysieren Fehler korrigieren Korrektur prüfen Regressionstest für Fehler implementieren
  • 157. Security Response auf eine Meldung Verwundbarkeit, Risiko und Ausnutzbarkeit analysieren Fehler korrigieren Korrektur prüfen Regressionstest für Fehler implementieren Update zur Fehlerbehebung und Advisory veröffentlichen
  • 158. Security Response auf eine Meldung Verwundbarkeit, Risiko und Ausnutzbarkeit analysieren Fehler korrigieren Korrektur prüfen Regressionstest für Fehler implementieren Update zur Fehlerbehebung und Advisory veröffentlichen Testdokumentation und -werkzeuge aktualisieren
  • 159. Start
  • 160. Start Die Bibel: „The Security Development Lifecycle“ von Michael Howard und Steve Lipner
  • 161. Start Die Bibel: „The Security Development Lifecycle“ von Michael Howard und Steve Lipner ISBN 978-0-7356-2214-2
  • 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. 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. Fazit
  • 165. Fazit 1.Awareness: Web Applikation sind risikobehaftet
  • 166. Fazit 1.Awareness: Web Applikation sind risikobehaftet 2.SDL ist ein Weg, Sicherheit als Bestandteil des Entwicklungsprozesses zu gewährleisten
  • 167. Fazit 1.Awareness: Web Applikation sind risikobehaftet 2.SDL ist ein Weg, Sicherheit als Bestandteil des Entwicklungsprozesses zu gewährleisten 3.Die Einführung bedeutet die Integration eines Sets von Werkzeugen und Prozessen
  • 168. Fazit 1.Awareness: Web Applikation sind risikobehaftet 2.SDL ist ein Weg, Sicherheit als Bestandteil des Entwicklungsprozesses zu gewährleisten 3.Die Einführung bedeutet die Integration eines Sets von Werkzeugen und Prozessen 4.SDL ist kein Silver Bullet: Anwendung des Toolsets liegt beim Entwickler, der Erfolg auch.
  • 171. Ausblick Agile Entwicklungsprozesse und Sicherheit Security Stakeholder als Kunden
  • 172. Ausblick Agile Entwicklungsprozesse und Sicherheit Security Stakeholder als Kunden Security Requirements
  • 173. Ausblick Agile Entwicklungsprozesse und Sicherheit Security Stakeholder als Kunden Security Requirements Security Tests
  • 174. Ausblick Agile Entwicklungsprozesse und Sicherheit Security Stakeholder als Kunden Security Requirements Security Tests Security Expert als Sonderrolle im Team
  • 175. Ausblick Agile Entwicklungsprozesse und Sicherheit Security Stakeholder als Kunden Security Requirements Security Tests Security Expert als Sonderrolle im Team Es gibt für MDA Ansätze wie CORAS, UMLsec und SecureUML
  • 177. Fragen? Einfach per E-Mail: johann-peter.hartmann@sektioneins.de

Hinweis der Redaktion

  1. \n
  2. OpenSource! OpenSource! OpenSource! Ja, wir haben GPL-Software im Angebot, und nein, ich bin kein Microsoft-Fan. Ok, C# und Dotnet ist cool. \n
  3. Es gibt noch andere Ans&amp;#xE4;tze als SDL, aber SDL ist der am besten dokumentiert - und der am einfachsten adaptierbare - Ansatz. \n
  4. Es gibt noch andere Ans&amp;#xE4;tze als SDL, aber SDL ist der am besten dokumentiert - und der am einfachsten adaptierbare - Ansatz. \n
  5. Es gibt noch andere Ans&amp;#xE4;tze als SDL, aber SDL ist der am besten dokumentiert - und der am einfachsten adaptierbare - Ansatz. \n
  6. Es gibt noch andere Ans&amp;#xE4;tze als SDL, aber SDL ist der am besten dokumentiert - und der am einfachsten adaptierbare - Ansatz. \n
  7. Es gibt noch andere Ans&amp;#xE4;tze als SDL, aber SDL ist der am besten dokumentiert - und der am einfachsten adaptierbare - Ansatz. \n
  8. Gl&amp;#xFC;cklicherweise war ich in der Lage ein Foto des verantwortlichen Webapplikationssicherheitsbeauftragten zu bekommen. \n
  9. Der Angreifer ist also keineswegs mehr der Amateur zuhause, sondern Dienstleister in einem funktionierenden Markt. &amp;#x201E;F&amp;#xFC;r 40.000 Euro bekommt man die Daten jeder Firma&amp;#x201C;\n
  10. Der Angreifer ist also keineswegs mehr der Amateur zuhause, sondern Dienstleister in einem funktionierenden Markt. &amp;#x201E;F&amp;#xFC;r 40.000 Euro bekommt man die Daten jeder Firma&amp;#x201C;\n
  11. Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  12. Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  13. Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  14. Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  15. Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  16. Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  17. Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  18. Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  19. Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  20. Hauptmotivation ist Informationsdiebstahl, dh. der Diebstahl von sensiblen Daten. Aus diesem Grund wird dieses Thema auch explizit behandelt. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. Sowohl in der Auditorenstatistik von OWASP der bei Audits gefundenen Probleme wie auch in der Vulnerability Enumeration der Mitre Organisation f&amp;#xFC;hrt XSS - in der Praxis sind aber andere Probleme massgeblich. Ursache ist, dass XSS nur schwer f&amp;#xFC;r kriminielle Ziele exploitbar ist.\n
  35. Desktopentwickler haben es einfacher: Die Applikation l&amp;#xE4;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&amp;#xFC;gbarkeit - wie etwa bei Outlook oder Webservern - explodiert die Angreifbarkeit.\n
  36. Desktopentwickler haben es einfacher: Die Applikation l&amp;#xE4;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&amp;#xFC;gbarkeit - wie etwa bei Outlook oder Webservern - explodiert die Angreifbarkeit.\n
  37. Desktopentwickler haben es einfacher: Die Applikation l&amp;#xE4;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&amp;#xFC;gbarkeit - wie etwa bei Outlook oder Webservern - explodiert die Angreifbarkeit.\n
  38. Desktopentwickler haben es einfacher: Die Applikation l&amp;#xE4;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&amp;#xFC;gbarkeit - wie etwa bei Outlook oder Webservern - explodiert die Angreifbarkeit.\n
  39. Beispiel: PHP, ASP - einfache Sprachen. Das Basic von heute ist die Clan-Seite, das ver&amp;#xF6;ffentlichte Programm in der 64er ist die Opensource-Software auf Sourceforge. \n
  40. Beispiel: PHP, ASP - einfache Sprachen. Das Basic von heute ist die Clan-Seite, das ver&amp;#xF6;ffentlichte Programm in der 64er ist die Opensource-Software auf Sourceforge. \n
  41. Beispiel: PHP, ASP - einfache Sprachen. Das Basic von heute ist die Clan-Seite, das ver&amp;#xF6;ffentlichte Programm in der 64er ist die Opensource-Software auf Sourceforge. \n
  42. Beispiel: PHP, ASP - einfache Sprachen. Das Basic von heute ist die Clan-Seite, das ver&amp;#xF6;ffentlichte Programm in der 64er ist die Opensource-Software auf Sourceforge. \n
  43. Beispiel: PHP, ASP - einfache Sprachen. Das Basic von heute ist die Clan-Seite, das ver&amp;#xF6;ffentlichte Programm in der 64er ist die Opensource-Software auf Sourceforge. \n
  44. Es gibt auch noch Code von 1998. Der ist noch viel schlimmer. \n
  45. Es gibt auch noch Code von 1998. Der ist noch viel schlimmer. \n
  46. Es gibt auch noch Code von 1998. Der ist noch viel schlimmer. \n
  47. Es gibt auch noch Code von 1998. Der ist noch viel schlimmer. \n
  48. Es ist ein Irrtum, dass der Developer alles notwendige &amp;#xFC;ber Web Security wissen kann. Der Bereich ist zu komplex und entwickelt sich zu schnell, als dass das m&amp;#xF6;glich w&amp;#xE4;re. \n
  49. Es ist ein Irrtum, dass der Developer alles notwendige &amp;#xFC;ber Web Security wissen kann. Der Bereich ist zu komplex und entwickelt sich zu schnell, als dass das m&amp;#xF6;glich w&amp;#xE4;re. \n
  50. Es ist ein Irrtum, dass der Developer alles notwendige &amp;#xFC;ber Web Security wissen kann. Der Bereich ist zu komplex und entwickelt sich zu schnell, als dass das m&amp;#xF6;glich w&amp;#xE4;re. \n
  51. Es ist ein Irrtum, dass der Developer alles notwendige &amp;#xFC;ber Web Security wissen kann. Der Bereich ist zu komplex und entwickelt sich zu schnell, als dass das m&amp;#xF6;glich w&amp;#xE4;re. \n
  52. Es ist ein Irrtum, dass der Developer alles notwendige &amp;#xFC;ber Web Security wissen kann. Der Bereich ist zu komplex und entwickelt sich zu schnell, als dass das m&amp;#xF6;glich w&amp;#xE4;re. \n
  53. Es ist ein Irrtum, dass der Developer alles notwendige &amp;#xFC;ber Web Security wissen kann. Der Bereich ist zu komplex und entwickelt sich zu schnell, als dass das m&amp;#xF6;glich w&amp;#xE4;re. \n
  54. Es ist ein Irrtum, dass der Developer alles notwendige &amp;#xFC;ber Web Security wissen kann. Der Bereich ist zu komplex und entwickelt sich zu schnell, als dass das m&amp;#xF6;glich w&amp;#xE4;re. \n
  55. \n
  56. Vielleicht sollte man sich nach ganz anderen Sachen umschauen ...\n
  57. Wir haben ja viele Microsoft-Entwickler hier. Wenn mich nicht alles t&amp;#xE4;uscht, ist Bill Gates nicht in Rente - offensichtlich haben die Jungs eine L&amp;#xF6;sung gefunden.\n
  58. Wir haben ja viele Microsoft-Entwickler hier. Wenn mich nicht alles t&amp;#xE4;uscht, ist Bill Gates nicht in Rente - offensichtlich haben die Jungs eine L&amp;#xF6;sung gefunden.\n
  59. Wir haben ja viele Microsoft-Entwickler hier. Wenn mich nicht alles t&amp;#xE4;uscht, ist Bill Gates nicht in Rente - offensichtlich haben die Jungs eine L&amp;#xF6;sung gefunden.\n
  60. Wir haben ja viele Microsoft-Entwickler hier. Wenn mich nicht alles t&amp;#xE4;uscht, ist Bill Gates nicht in Rente - offensichtlich haben die Jungs eine L&amp;#xF6;sung gefunden.\n
  61. Wir haben ja viele Microsoft-Entwickler hier. Wenn mich nicht alles t&amp;#xE4;uscht, ist Bill Gates nicht in Rente - offensichtlich haben die Jungs eine L&amp;#xF6;sung gefunden.\n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. Bei den Kosten f&amp;#xFC;r Sichere Software werden sicherlich manche gerne darauf verzichten wollen :-) \n
  75. Bei den Kosten f&amp;#xFC;r Sichere Software werden sicherlich manche gerne darauf verzichten wollen :-) \n
  76. Bei den Kosten f&amp;#xFC;r Sichere Software werden sicherlich manche gerne darauf verzichten wollen :-) \n
  77. Bei den Kosten f&amp;#xFC;r Sichere Software werden sicherlich manche gerne darauf verzichten wollen :-) \n
  78. Ein gut geschulter Entwickler ist 60% der Miete, nicht mehr und nicht weniger.\n
  79. Ein gut geschulter Entwickler ist 60% der Miete, nicht mehr und nicht weniger.\n
  80. Ein gut geschulter Entwickler ist 60% der Miete, nicht mehr und nicht weniger.\n
  81. Ein gut geschulter Entwickler ist 60% der Miete, nicht mehr und nicht weniger.\n
  82. \n
  83. \n
  84. \n
  85. Webanwendungen enden meistens rechts oben. Das ist der schlechteste Platz.\n
  86. Gerade bei Webapplikationen werden viele m&amp;#xF6;gliche Einschr&amp;#xE4;nkungen der Angriffsfl&amp;#xE4;che &amp;#xFC;bersehen. \n
  87. Gerade bei Webapplikationen werden viele m&amp;#xF6;gliche Einschr&amp;#xE4;nkungen der Angriffsfl&amp;#xE4;che &amp;#xFC;bersehen. \n
  88. Gerade bei Webapplikationen werden viele m&amp;#xF6;gliche Einschr&amp;#xE4;nkungen der Angriffsfl&amp;#xE4;che &amp;#xFC;bersehen. \n
  89. Gerade bei Webapplikationen werden viele m&amp;#xF6;gliche Einschr&amp;#xE4;nkungen der Angriffsfl&amp;#xE4;che &amp;#xFC;bersehen. \n
  90. Gerade bei Webapplikationen werden viele m&amp;#xF6;gliche Einschr&amp;#xE4;nkungen der Angriffsfl&amp;#xE4;che &amp;#xFC;bersehen. \n
  91. In den Zeiten von Sch&amp;#xE4;uble und Web 2.0 vermutlich kein Thema mehr :-) \n
  92. In den Zeiten von Sch&amp;#xE4;uble und Web 2.0 vermutlich kein Thema mehr :-) \n
  93. Annahmen: i expect every user to come from the internet. i expect the ntlm-based authentication to work\n
  94. 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
  95. 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
  96. 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
  97. 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
  98. 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
  99. 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
  100. 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
  101. Some say: chance of attack multiplied with damage potential\n
  102. Some say: chance of attack multiplied with damage potential\n
  103. Some say: chance of attack multiplied with damage potential\n
  104. Some say: chance of attack multiplied with damage potential\n
  105. Some say: chance of attack multiplied with damage potential\n
  106. Some say: chance of attack multiplied with damage potential\n
  107. Some say: chance of attack multiplied with damage potential\n
  108. Some say: chance of attack multiplied with damage potential\n
  109. Bug bar: not some fancy place to get a beer for a bug, but a risk that is ok to stay with until it&amp;#x2018;s time to fix it.\n
  110. Bug bar: not some fancy place to get a beer for a bug, but a risk that is ok to stay with until it&amp;#x2018;s time to fix it.\n
  111. Bug bar: not some fancy place to get a beer for a bug, but a risk that is ok to stay with until it&amp;#x2018;s time to fix it.\n
  112. Bug bar: not some fancy place to get a beer for a bug, but a risk that is ok to stay with until it&amp;#x2018;s time to fix it.\n
  113. Bug bar: not some fancy place to get a beer for a bug, but a risk that is ok to stay with until it&amp;#x2018;s time to fix it.\n
  114. It takes a whole lot of time, but it&amp;#x2018;s less time to use the tool then to use n tool \n
  115. \n
  116. Complex code is a major reason for security problems. A cyclomatic complexity &gt; 50 almost sure contains a security problem.\nOf course you should use tools like web application security scanners as well. currently it&amp;#x2018;s hard to integrate them into the development circle, but this will happen in future. \n
  117. there are a lot more, see the several security guidelines for php \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. 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
  123. Ziemlich oft soll die Antwort auf eine Sicherheitsl&amp;#xFC;cke sehr schnell erfolgen, mit dem Resultat, dass der Bugfix unvollst&amp;#xE4;ndig ist oder neue L&amp;#xFC;cken aufreisst. \n
  124. Ziemlich oft soll die Antwort auf eine Sicherheitsl&amp;#xFC;cke sehr schnell erfolgen, mit dem Resultat, dass der Bugfix unvollst&amp;#xE4;ndig ist oder neue L&amp;#xFC;cken aufreisst. \n
  125. Ziemlich oft soll die Antwort auf eine Sicherheitsl&amp;#xFC;cke sehr schnell erfolgen, mit dem Resultat, dass der Bugfix unvollst&amp;#xE4;ndig ist oder neue L&amp;#xFC;cken aufreisst. \n
  126. Ziemlich oft soll die Antwort auf eine Sicherheitsl&amp;#xFC;cke sehr schnell erfolgen, mit dem Resultat, dass der Bugfix unvollst&amp;#xE4;ndig ist oder neue L&amp;#xFC;cken aufreisst. \n
  127. Ziemlich oft soll die Antwort auf eine Sicherheitsl&amp;#xFC;cke sehr schnell erfolgen, mit dem Resultat, dass der Bugfix unvollst&amp;#xE4;ndig ist oder neue L&amp;#xFC;cken aufreisst. \n
  128. Ziemlich oft soll die Antwort auf eine Sicherheitsl&amp;#xFC;cke sehr schnell erfolgen, mit dem Resultat, dass der Bugfix unvollst&amp;#xE4;ndig ist oder neue L&amp;#xFC;cken aufreisst. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. \n
  140. \n
  141. \n
  142. \n
  143. \n