SlideShare una empresa de Scribd logo
1 de 101
Just-In-Time Security: Sicherheit
                 im Entwicklungsprozess



                                                                Mike Wiesner
                                                           SpringSource Germany




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Über mich


         • Senior Consultant bei SpringSource
           Germany

         • Spring-/Security-Consulting

         • Trainings

         • IT-Security Consulting / Reviews

         • mike.wiesner@springsource.com

Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   2
Agenda


         • Was ist Application Security?

         • Requirements & Prozesse

         • Risikoanalyse

         • Testing




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   3
Agenda


         • Was ist Application Security?

         • Requirements & Prozesse

         • Risikoanalyse

         • Testing




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   3
Was ist Application Security?


         • Ziel: Eine Anwendung „in sich“ sicher zu
           machen


         • Also keine:
                 –(Web App) Firewalls
                 –IDS
                 –Proxy-Server
                 –Betriebssystem Security



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   4
Security Merkmale


         • Authentifizierung
                 –Identitätsfeststellung

         • Autorisierung
                 –Prüfung von Rechten

         • Überwachung
                 –Protokollierungen (Audit-Trails)



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   5
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   6
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   6
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   6
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   7
Security Hardening


         • Validierungen
                 –SQL-Injection / Code-Injection
                 –Cross-Site-Scripting
                 –...
         • Defense in Depth
                 –Prüfungen in mehreren Schichten
                 –Verschiedene Technologien
         • Secure Coding
                 –Fehlerbehandlung, Trust-Zones, ...


Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   8
SQL Injection



                                                        Internet                                         Webserver

                                                                                                                     Daten-
                                                                                                                      bank

                                                                    Login




                   Client



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.            9
SQL Injection



                                                        Internet                                         Webserver

                                                                                                                     Daten-
                                                                                                                      bank
      user
                                                                    Login
      password


                   Client



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.            9
SQL Injection



                                                        Internet                                         Webserver

                                                                                                                              Daten-
                                                                                                                               bank
      user
                                                                    Login
      password                                                                                                       select * from users where
                                                                                                                     user = 'user' and
                                                                                                                     password = 'password'
                   Client



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.                     9
SQL Injection



                                                        Internet                                         Webserver

                                                                                                                     Daten-
                                                                                                                      bank
      user
                                                                    Login




                   Client



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.            9
SQL Injection



                                                        Internet                                         Webserver

                                                                                                                     Daten-
                                                                                                                      bank
      user
                                                                    Login
      ' or '1'='1


                   Client



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.            9
SQL Injection



                                                        Internet                                         Webserver

                                                                                                                              Daten-
                                                                                                                               bank
      user
                                                                    Login
      ' or '1'='1                                                                                                    select * from users where
                                                                                                                     user = 'user' and
                                                                                                                     password = '' or '1'='1'
                   Client



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.                     9
Defense in Depth


         • 100 protzentigen Schutz
           gibt es nicht

         • Prüfung in mehreren
           Schichten

         • Mit verschiedenen
           Technologien



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   10
Secure Coding


         • Fehlerbehandlung

         • Trust-Zones

         • Generische
           Schnittstellen




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   11
Agenda


         • Was ist Application Security?

         • Requirements & Prozesse

         • Risikoanalyse

         • Testing




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   12
Requirements / Prozesse


         • Ist Application Security ein Requirement
           oder ein Prozess?




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   13
Requirements / Prozesse


         • Ist Application Security ein Requirement
           oder ein Prozess?
         • Beides!




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   13
Requirements / Prozesse


         • Ist Application Security ein Requirement
           oder ein Prozess?
         • Beides!
         • Requirements:
                 –Authentifizierung, Autorisierung, Logging




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   13
Requirements / Prozesse


         • Ist Application Security ein Requirement
           oder ein Prozess?
         • Beides!
         • Requirements:
                 –Authentifizierung, Autorisierung, Logging
         • Prozess:
                 –Defense in Depth, Secure Coding,
                  (Validierung)



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   13
Security Requirements


         • Müssen nicht von Anfang an berücksichtigt
           werden




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   14
Security Requirements


         • Müssen nicht von Anfang an berücksichtigt
           werden




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   14
Security Requirements


         • Müssen nicht von Anfang an berücksichtigt
           werden

         • Späteres hinzufügen mit AOP möglich
                 –Evolutionäres Design




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   14
Security Requirements


         • Müssen nicht von Anfang an berücksichtigt
           werden

         • Späteres hinzufügen mit AOP möglich
                 –Evolutionäres Design


         • Zum Teil Non-Functional Requirements




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   14
Eingabe-Validierung


         • „Die Maske muss ein Textfeld enthalten“




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   15
Eingabe-Validierung


         • „Die Maske muss ein Textfeld enthalten“

         • Und welche Zeichen sind erlaubt?
                 –UTF-8, UTF-16, Alphanumerisch, ...




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   15
Eingabe-Validierung


         • „Die Maske muss ein Textfeld enthalten“

         • Und welche Zeichen sind erlaubt?
                 –UTF-8, UTF-16, Alphanumerisch, ...
         • Validierung fängt mit der Anforderung an!




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   15
Eingabe-Validierung


         • „Die Maske muss ein Textfeld enthalten“

         • Und welche Zeichen sind erlaubt?
                 –UTF-8, UTF-16, Alphanumerisch, ...
         • Validierung fängt mit der Anforderung an!
         • Immer Whitelist hinterfragen




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   15
Eingabe-Validierung


         • „Die Maske muss ein Textfeld enthalten“

         • Und welche Zeichen sind erlaubt?
                 –UTF-8, UTF-16, Alphanumerisch, ...
         • Validierung fängt mit der Anforderung an!
         • Immer Whitelist hinterfragen
         • Für alle Dateneingänge
                 –Webservices, OCR-Scans, Batch-Imports



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   15
Ausgabe-Validierung


         • „Der Benutzer darf HTML-Tags verwenden“




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   16
Ausgabe-Validierung


         • „Der Benutzer darf HTML-Tags verwenden“

         • Welche davon?
                 –<javascript>, <frame>, ...




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   16
Ausgabe-Validierung


         • „Der Benutzer darf HTML-Tags verwenden“

         • Welche davon?
                 –<javascript>, <frame>, ...
         • Auch hier: Whitelist in der Anforderung




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   16
Rollen / Rechte


         • „Der Administrator darf die Methode
           deleteAll des User-Objekts aufrufen“




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   17
Rollen / Rechte


         • „Der Administrator darf die Methode
           deleteAll des User-Objekts aufrufen“

         • Schon zu spezifisch




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   17
Rollen / Rechte


         • „Der Administrator darf die Methode
           deleteAll des User-Objekts aufrufen“

         • Schon zu spezifisch
         • Rollen werden direkt mit Methoden/URLs
           verbunden




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   17
Rollen / Rechte


         • „Der Administrator darf die Methode
           deleteAll des User-Objekts aufrufen“

         • Schon zu spezifisch
         • Rollen werden direkt mit Methoden/URLs
           verbunden
         • Eine Abstraktation mehr einführen:
                 –Rechte



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   17
Rollen / Rechte


         • „Der Administrator darf Benutzer löschen“




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   18
Rollen / Rechte


         • „Der Administrator darf Benutzer löschen“




                                User                        *                      *              Role               *   *   Right




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.                   18
Rollen / Rechte


         • „Der Administrator darf Benutzer löschen“




                                User                        *                      *              Role               *   *   Right




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.                   18
Rollen / Rechte


         • „Der Administrator darf Benutzer löschen“




                                User                        *                      *              Role               *   *   Right




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.                   18
Rollen / Rechte


         • „Der Administrator darf Benutzer löschen“




                                User                        *                      *              Role               *   *   Right


        • Grobe Regel:
          - pro Use-Case ein Recht
          - pro Akteur ein Rolle

Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.                   18
Security Requirements


         • Security Requirements fangen bei der
           Spezifikation an




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   19
Security Requirements


         • Security Requirements fangen bei der
           Spezifikation an
         • Zu allgemeine Beschreibungen führen zu
           unsicherem Code




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   19
Security Requirements


         • Security Requirements fangen bei der
           Spezifikation an
         • Zu allgemeine Beschreibungen führen zu
           unsicherem Code
         • Fachabteilung muss darauf sensibilisiert
           werden




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   19
Security Requirements


         • Security Requirements fangen bei der
           Spezifikation an
         • Zu allgemeine Beschreibungen führen zu
           unsicherem Code
         • Fachabteilung muss darauf sensibilisiert
           werden
         • Projektleiter muss auf die Einhaltung
           achten



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   19
Security als Prozess


         • Security ist mehr als nur Validierung,
           Rechteprüfung und Authentifizierung

         • Unüberwindbare Prüfungen
         • Secure Coding
         • Einsatz von Security Patterns




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   20
Unüberwindbare Prüfungen




                                                                                                          Internet




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   21
Unüberwindbare Prüfungen




                                                                                                          Internet




                                                    Trust
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   21
Unüberwindbare Prüfungen


                                                                                                Don‘t trust          Prüfungen
                                                                                                                      sind hier
                                                                                                                     unsicher!


                                                                                                          Internet




                                                    Trust
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.           21
Trust-Zones


         • Entwickler müssen mit Trust-Zones vertraut
           sein
         • Requirements alleine wäre auch im „Don‘t
           Trust“-Bereich erfüllt
         • Anwendung ist aber nicht sicher!

         • Sicherstellung durch Architektur-
           Constraints möglich
                 –AspectJ, SonarJ, ...


Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   22
Secure Coding

       public interface OrderService {


       
 public List<Order> getUserOrders(String subject);


       
 public List<Order> getAllOrders();


       }




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   23
Secure Coding

       public interface OrderService {


       
 public List<Order> getUserOrders(String subject);


       
 public List<Order> getAllOrders();


       }

         • getUserOrders soll per AJAX verwendet
           werden
                 –Export via DWR als JavaScript-Proxy



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   23
Secure Coding

       public interface OrderService {


       
 public List<Order> getUserOrders(String subject);


       
 public List<Order> getAllOrders();


       }

         • getUserOrders soll per AJAX verwendet
           werden
                 –Export via DWR als JavaScript-Proxy
         • Jetzt steht aber auch getAllOrders zur
           Verfügung!
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   23
Code Injection

       public interface Calculator {
       
       
 public long calculate(String function);
       
       }




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   24
Code Injection

       public interface Calculator {
       
       
 public long calculate(String function);
       
       }


         • „function“ ist JRuby-Code




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   24
Code Injection

       public interface Calculator {
       
       
 public long calculate(String function);
       
       }


         • „function“ ist JRuby-Code
         • Wird vom Benutzer eingegeben




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   24
Code Injection

       public interface Calculator {
       
       
 public long calculate(String function);
       
       }


         • „function“ ist JRuby-Code
         • Wird vom Benutzer eingegeben
         • Wie kontrolliere ich ob es nur Formeln
           sind?



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   24
Security Patterns


         • Etliche Lösungsansätze vorhanden




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   25
Security Patterns


         • Etliche Lösungsansätze vorhanden
         • Vorteil:
                 –Problem, Lösung und auch Nachteile sind
                  detailliert beschreiben
                 –Guter Startpunkt




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   25
Security Patterns


         • Etliche Lösungsansätze vorhanden
         • Vorteil:
                 –Problem, Lösung und auch Nachteile sind
                  detailliert beschreiben
                 –Guter Startpunkt
         • Nachteil:
                 –Es gibt viele davon
                 –Umsetzung immer noch selbst notwendig




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   25
Security als Prozess


         • Zuordnung zu Requirements oft schwer
           möglich




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   26
Security als Prozess


         • Zuordnung zu Requirements oft schwer
           möglich
         • Ist Teil nahezu jedem Requirements




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   26
Security als Prozess


         • Zuordnung zu Requirements oft schwer
           möglich
         • Ist Teil nahezu jedem Requirements
         • Lösung:
                 –Security Trainings
                 –Reviews (Audits, Pair Programming)
                 –Penetration Tests
                 –Zum Teil: Code-Scanner (pmd, findBug)



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   26
Security als Prozess


         • Zuordnung zu Requirements oft schwer
           möglich
         • Ist Teil nahezu jedem Requirements
         • Lösung:
                 –Security Trainings
                 –Reviews (Audits, Pair Programming)
                 –Penetration Tests
                 –Zum Teil: Code-Scanner (pmd, findBug)
         • Team Know-How ist hier der Schlüssel zum
           Erfolg!
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   26
Agenda


         • Was ist Application Security?

         • Requirements & Prozesse

         • Risikoanalyse

         • Testing




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   27
„Was kann die Anwendung?“




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
„Was kann die Anwendung?“

                             Nichts, aber das ist dafür 100% sicher!




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Wieviel Security und Wann?


         • Security ist wichtig

         • Aber Funktionen sind es auch

         • Wie finde ich also die richtige Balance?




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   29
Risikoanalyse


         • Sicherheitsrisiken lösen bedeutet Aufwand
         • Aufwand = Zeit = Nicht vorhanden ;-)

         • Macht es Sinn jedes theoretische Risiko zu
           behandeln?




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   30
Risikoanalyse




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   31
Risikoanalyse




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   31
Risikoanalyse




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   31
Risikoanalyse


         • Technische Risiken auf Geschäftsrisiken
           abbilden

         • Was bedeutet es für das Business wenn
           diese Lücke ausgenutzt wird?

         • Ist der Aufwand zum Schließen höher wie
           der maximale Verlust?



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   32
Maximaler Verlust


         • Nicht nur direkter Verlust
                 –Serverausfall
                 –Datenverlust




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   33
Maximaler Verlust


         • Nicht nur direkter Verlust
                 –Serverausfall
                 –Datenverlust
         • sonder auch
                 –Imageverlust
                 –Vertrauensverlust bei Kunden
                 –Schadenersatzansprüche




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   33
Agenda


         • Was ist Application Security?

         • Requirements & Prozesse

         • Risikoanalyse

         • Testing




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   34
Security Tests


         • Benutzer erstellen keine Bug-Reports wenn
           Sie „zu viel“ dürfen




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   35
Security Tests


         • Benutzer erstellen keine Bug-Reports wenn
           Sie „zu viel“ dürfen
         • Security-Bugs müssen während der
           Entwicklung gefunden werden




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   35
Security Tests


         • Benutzer erstellen keine Bug-Reports wenn
           Sie „zu viel“ dürfen
         • Security-Bugs müssen während der
           Entwicklung gefunden werden
         • Manuelles Testen ist sehr Aufwendig




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   35
Security Tests


         • Benutzer erstellen keine Bug-Reports wenn
           Sie „zu viel“ dürfen
         • Security-Bugs müssen während der
           Entwicklung gefunden werden
         • Manuelles Testen ist sehr Aufwendig
         • Automatisiertes Testen teilweise aber auch




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   35
Security Tests


         • Benutzer erstellen keine Bug-Reports wenn
           Sie „zu viel“ dürfen
         • Security-Bugs müssen während der
           Entwicklung gefunden werden
         • Manuelles Testen ist sehr Aufwendig
         • Automatisiertes Testen teilweise aber auch
         • Es kommt auf die richtigen Tools an




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   35
Berechtigungen


         • 5 Rollen, 60 Rechte
                 –5 x 60 = 300 JUnit Test Cases
         • Besser mit FIT (Framework for Integration
           Tests):




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   36
Berechtigungen


         • 5 Rollen, 60 Rechte
                 –5 x 60 = 300 JUnit Test Cases
         • Besser mit FIT (Framework for Integration
           Tests):




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   36
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   37
Security Tests mit Spring
  Security (AOP)




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   38
Security Tests mit Spring
  Security (AOP)

                                                                                                                      Business




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   38
Security Tests mit Spring
  Security (AOP)

                                                                                                                      Business


                                                                                                                      Security




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   38
Security Tests mit Spring
  Security (AOP)

                                                                                                                      Business


                                                                                                                      Security




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   38
Business Tests


         • Keine Beeinflussung der Business Tests
           durch Security
         • Deswegen: Security abschaltbar machen
         • Auch hier: Tools können helfen




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   39
Business Tests mit Spring
  Security (AOP)

                                                                                                                      Business


                                                                                                                      Security




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   40
Business Tests mit Spring
  Security (AOP)

                                                                                                                      Business


                                                                                                                      Security




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   40
Coding Tests


         • Trust-Zones mit AspectJ festlegen
                 –Security-Check im „Don‘t Trust“-Bereich führt
                  zu Compiler Warnungen/Fehler
         • Analyse-Tools wie PMD, FindBugs, ...

         • Alles aber nur begrenzt möglich

         • Beste Möglichkeit: Reviews



Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   41
Abschluss-Tests


         • In regelmäßigen Abstanden (z.B. nach
           Milestones):
                 –Security Audits (White-Box)
                 –Penetration Tests (Black-Box)


         • Nicht erst 2 Wochen vor Go-Live!




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   42
FAZIT




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
Fazit


         • Alle Akteure sind gefragt: Anforderer,
           Manager, Entwickler
         • Tools können helfen
         • Jeder Entwickler benötigt aber Security
           Know-How
         • Security ist nicht nur ein Requirement
         • Security kann niemals als erledigt
           gekennzeichnet werden
                 –Neue Funktionen = Neue Security
                 –Neue Angriffsmöglichkeiten, ...
Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   44
Fragen?


                  Mike Wiesner
                  SpringSource Germany
                                                                                                                     ?
                  mike.wiesner@springsource.com
                  Skype: mikewiesner

                  http://www.springsource.com/de
                  http://www.mwiesner.com




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   45
Credits

              In diesem Vortrag wurde Fotos von folgenden Usern verwendet:


              http://www.flickr.com/photos/rocketraccoon
              http://www.flickr.com/photos/cambodia4kidsorg
              http://www.flickr.com/photos/mukluk
              http://www.flickr.com/photos/azrainman
              http://www.flickr.com/photos/scottfeldstein




Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.   46

Más contenido relacionado

Destacado

Ant Colony Optimization Based Energy Efficient on-Demand Multipath Routing Sc...
Ant Colony Optimization Based Energy Efficient on-Demand Multipath Routing Sc...Ant Colony Optimization Based Energy Efficient on-Demand Multipath Routing Sc...
Ant Colony Optimization Based Energy Efficient on-Demand Multipath Routing Sc...ijsrd.com
 
Minnie C Resume 2015
Minnie C Resume 2015Minnie C Resume 2015
Minnie C Resume 2015Minnie Brown
 
New Road Rules
New Road RulesNew Road Rules
New Road RulesKate Gigli
 
TestNet - Agile testautomatisering in de praktijk
TestNet - Agile testautomatisering in de praktijkTestNet - Agile testautomatisering in de praktijk
TestNet - Agile testautomatisering in de praktijkTest Tool Factory
 
Enterprise Security mit Spring Security
Enterprise Security mit Spring SecurityEnterprise Security mit Spring Security
Enterprise Security mit Spring SecurityMike Wiesner
 
U.S. Organic Grape Market. Analysis and Forecast To 2025
U.S. Organic Grape Market. Analysis and Forecast To 2025U.S. Organic Grape Market. Analysis and Forecast To 2025
U.S. Organic Grape Market. Analysis and Forecast To 2025IndexBox Marketing
 
You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015
You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015
You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015Pavel Chunyayev
 
A Map of the PyData Stack
A Map of the PyData StackA Map of the PyData Stack
A Map of the PyData StackPeadar Coyle
 
Oracle Forms Creation part 3
Oracle Forms Creation part 3Oracle Forms Creation part 3
Oracle Forms Creation part 3Sekhar Byna
 
Basics of Brand Narrative
Basics of Brand NarrativeBasics of Brand Narrative
Basics of Brand Narrativecsackeyfio
 
Do sightseeing
Do sightseeingDo sightseeing
Do sightseeingfinnopolis
 

Destacado (15)

Jantokia4
Jantokia4Jantokia4
Jantokia4
 
Ant Colony Optimization Based Energy Efficient on-Demand Multipath Routing Sc...
Ant Colony Optimization Based Energy Efficient on-Demand Multipath Routing Sc...Ant Colony Optimization Based Energy Efficient on-Demand Multipath Routing Sc...
Ant Colony Optimization Based Energy Efficient on-Demand Multipath Routing Sc...
 
Minnie C Resume 2015
Minnie C Resume 2015Minnie C Resume 2015
Minnie C Resume 2015
 
New Road Rules
New Road RulesNew Road Rules
New Road Rules
 
jw_resume
jw_resumejw_resume
jw_resume
 
TestNet - Agile testautomatisering in de praktijk
TestNet - Agile testautomatisering in de praktijkTestNet - Agile testautomatisering in de praktijk
TestNet - Agile testautomatisering in de praktijk
 
Enterprise Security mit Spring Security
Enterprise Security mit Spring SecurityEnterprise Security mit Spring Security
Enterprise Security mit Spring Security
 
Como trabajar con canva
Como trabajar con canvaComo trabajar con canva
Como trabajar con canva
 
U.S. Organic Grape Market. Analysis and Forecast To 2025
U.S. Organic Grape Market. Analysis and Forecast To 2025U.S. Organic Grape Market. Analysis and Forecast To 2025
U.S. Organic Grape Market. Analysis and Forecast To 2025
 
You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015
You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015
You don’t need DTAP + Backbase implementation - Amsterdam 17-12-2015
 
A Map of the PyData Stack
A Map of the PyData StackA Map of the PyData Stack
A Map of the PyData Stack
 
Oracle Forms Creation part 3
Oracle Forms Creation part 3Oracle Forms Creation part 3
Oracle Forms Creation part 3
 
Basics of Brand Narrative
Basics of Brand NarrativeBasics of Brand Narrative
Basics of Brand Narrative
 
Fav photoshoot pics
Fav photoshoot picsFav photoshoot pics
Fav photoshoot pics
 
Do sightseeing
Do sightseeingDo sightseeing
Do sightseeing
 

Just-In-Time Security: Sicherheit im Entwicklungsprozess

  • 1. Just-In-Time Security: Sicherheit im Entwicklungsprozess Mike Wiesner SpringSource Germany Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 2. Über mich • Senior Consultant bei SpringSource Germany • Spring-/Security-Consulting • Trainings • IT-Security Consulting / Reviews • mike.wiesner@springsource.com Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 2
  • 3. Agenda • Was ist Application Security? • Requirements & Prozesse • Risikoanalyse • Testing Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 3
  • 4. Agenda • Was ist Application Security? • Requirements & Prozesse • Risikoanalyse • Testing Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 3
  • 5. Was ist Application Security? • Ziel: Eine Anwendung „in sich“ sicher zu machen • Also keine: –(Web App) Firewalls –IDS –Proxy-Server –Betriebssystem Security Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 4
  • 6. Security Merkmale • Authentifizierung –Identitätsfeststellung • Autorisierung –Prüfung von Rechten • Überwachung –Protokollierungen (Audit-Trails) Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 5
  • 7. Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 6
  • 8. Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 6
  • 9. Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 6
  • 10. Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 7
  • 11. Security Hardening • Validierungen –SQL-Injection / Code-Injection –Cross-Site-Scripting –... • Defense in Depth –Prüfungen in mehreren Schichten –Verschiedene Technologien • Secure Coding –Fehlerbehandlung, Trust-Zones, ... Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 8
  • 12. SQL Injection Internet Webserver Daten- bank Login Client Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 9
  • 13. SQL Injection Internet Webserver Daten- bank user Login password Client Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 9
  • 14. SQL Injection Internet Webserver Daten- bank user Login password select * from users where user = 'user' and password = 'password' Client Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 9
  • 15. SQL Injection Internet Webserver Daten- bank user Login Client Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 9
  • 16. SQL Injection Internet Webserver Daten- bank user Login ' or '1'='1 Client Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 9
  • 17. SQL Injection Internet Webserver Daten- bank user Login ' or '1'='1 select * from users where user = 'user' and password = '' or '1'='1' Client Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 9
  • 18. Defense in Depth • 100 protzentigen Schutz gibt es nicht • Prüfung in mehreren Schichten • Mit verschiedenen Technologien Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 10
  • 19. Secure Coding • Fehlerbehandlung • Trust-Zones • Generische Schnittstellen Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 11
  • 20. Agenda • Was ist Application Security? • Requirements & Prozesse • Risikoanalyse • Testing Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 12
  • 21. Requirements / Prozesse • Ist Application Security ein Requirement oder ein Prozess? Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 13
  • 22. Requirements / Prozesse • Ist Application Security ein Requirement oder ein Prozess? • Beides! Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 13
  • 23. Requirements / Prozesse • Ist Application Security ein Requirement oder ein Prozess? • Beides! • Requirements: –Authentifizierung, Autorisierung, Logging Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 13
  • 24. Requirements / Prozesse • Ist Application Security ein Requirement oder ein Prozess? • Beides! • Requirements: –Authentifizierung, Autorisierung, Logging • Prozess: –Defense in Depth, Secure Coding, (Validierung) Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 13
  • 25. Security Requirements • Müssen nicht von Anfang an berücksichtigt werden Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 14
  • 26. Security Requirements • Müssen nicht von Anfang an berücksichtigt werden Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 14
  • 27. Security Requirements • Müssen nicht von Anfang an berücksichtigt werden • Späteres hinzufügen mit AOP möglich –Evolutionäres Design Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 14
  • 28. Security Requirements • Müssen nicht von Anfang an berücksichtigt werden • Späteres hinzufügen mit AOP möglich –Evolutionäres Design • Zum Teil Non-Functional Requirements Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 14
  • 29. Eingabe-Validierung • „Die Maske muss ein Textfeld enthalten“ Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 15
  • 30. Eingabe-Validierung • „Die Maske muss ein Textfeld enthalten“ • Und welche Zeichen sind erlaubt? –UTF-8, UTF-16, Alphanumerisch, ... Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 15
  • 31. Eingabe-Validierung • „Die Maske muss ein Textfeld enthalten“ • Und welche Zeichen sind erlaubt? –UTF-8, UTF-16, Alphanumerisch, ... • Validierung fängt mit der Anforderung an! Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 15
  • 32. Eingabe-Validierung • „Die Maske muss ein Textfeld enthalten“ • Und welche Zeichen sind erlaubt? –UTF-8, UTF-16, Alphanumerisch, ... • Validierung fängt mit der Anforderung an! • Immer Whitelist hinterfragen Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 15
  • 33. Eingabe-Validierung • „Die Maske muss ein Textfeld enthalten“ • Und welche Zeichen sind erlaubt? –UTF-8, UTF-16, Alphanumerisch, ... • Validierung fängt mit der Anforderung an! • Immer Whitelist hinterfragen • Für alle Dateneingänge –Webservices, OCR-Scans, Batch-Imports Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 15
  • 34. Ausgabe-Validierung • „Der Benutzer darf HTML-Tags verwenden“ Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 16
  • 35. Ausgabe-Validierung • „Der Benutzer darf HTML-Tags verwenden“ • Welche davon? –<javascript>, <frame>, ... Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 16
  • 36. Ausgabe-Validierung • „Der Benutzer darf HTML-Tags verwenden“ • Welche davon? –<javascript>, <frame>, ... • Auch hier: Whitelist in der Anforderung Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 16
  • 37. Rollen / Rechte • „Der Administrator darf die Methode deleteAll des User-Objekts aufrufen“ Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 17
  • 38. Rollen / Rechte • „Der Administrator darf die Methode deleteAll des User-Objekts aufrufen“ • Schon zu spezifisch Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 17
  • 39. Rollen / Rechte • „Der Administrator darf die Methode deleteAll des User-Objekts aufrufen“ • Schon zu spezifisch • Rollen werden direkt mit Methoden/URLs verbunden Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 17
  • 40. Rollen / Rechte • „Der Administrator darf die Methode deleteAll des User-Objekts aufrufen“ • Schon zu spezifisch • Rollen werden direkt mit Methoden/URLs verbunden • Eine Abstraktation mehr einführen: –Rechte Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 17
  • 41. Rollen / Rechte • „Der Administrator darf Benutzer löschen“ Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 18
  • 42. Rollen / Rechte • „Der Administrator darf Benutzer löschen“ User * * Role * * Right Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 18
  • 43. Rollen / Rechte • „Der Administrator darf Benutzer löschen“ User * * Role * * Right Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 18
  • 44. Rollen / Rechte • „Der Administrator darf Benutzer löschen“ User * * Role * * Right Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 18
  • 45. Rollen / Rechte • „Der Administrator darf Benutzer löschen“ User * * Role * * Right • Grobe Regel: - pro Use-Case ein Recht - pro Akteur ein Rolle Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 18
  • 46. Security Requirements • Security Requirements fangen bei der Spezifikation an Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 19
  • 47. Security Requirements • Security Requirements fangen bei der Spezifikation an • Zu allgemeine Beschreibungen führen zu unsicherem Code Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 19
  • 48. Security Requirements • Security Requirements fangen bei der Spezifikation an • Zu allgemeine Beschreibungen führen zu unsicherem Code • Fachabteilung muss darauf sensibilisiert werden Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 19
  • 49. Security Requirements • Security Requirements fangen bei der Spezifikation an • Zu allgemeine Beschreibungen führen zu unsicherem Code • Fachabteilung muss darauf sensibilisiert werden • Projektleiter muss auf die Einhaltung achten Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 19
  • 50. Security als Prozess • Security ist mehr als nur Validierung, Rechteprüfung und Authentifizierung • Unüberwindbare Prüfungen • Secure Coding • Einsatz von Security Patterns Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 20
  • 51. Unüberwindbare Prüfungen Internet Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 21
  • 52. Unüberwindbare Prüfungen Internet Trust Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 21
  • 53. Unüberwindbare Prüfungen Don‘t trust Prüfungen sind hier unsicher! Internet Trust Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 21
  • 54. Trust-Zones • Entwickler müssen mit Trust-Zones vertraut sein • Requirements alleine wäre auch im „Don‘t Trust“-Bereich erfüllt • Anwendung ist aber nicht sicher! • Sicherstellung durch Architektur- Constraints möglich –AspectJ, SonarJ, ... Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 22
  • 55. Secure Coding public interface OrderService { public List<Order> getUserOrders(String subject); public List<Order> getAllOrders(); } Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 23
  • 56. Secure Coding public interface OrderService { public List<Order> getUserOrders(String subject); public List<Order> getAllOrders(); } • getUserOrders soll per AJAX verwendet werden –Export via DWR als JavaScript-Proxy Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 23
  • 57. Secure Coding public interface OrderService { public List<Order> getUserOrders(String subject); public List<Order> getAllOrders(); } • getUserOrders soll per AJAX verwendet werden –Export via DWR als JavaScript-Proxy • Jetzt steht aber auch getAllOrders zur Verfügung! Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 23
  • 58. Code Injection public interface Calculator { public long calculate(String function); } Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 24
  • 59. Code Injection public interface Calculator { public long calculate(String function); } • „function“ ist JRuby-Code Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 24
  • 60. Code Injection public interface Calculator { public long calculate(String function); } • „function“ ist JRuby-Code • Wird vom Benutzer eingegeben Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 24
  • 61. Code Injection public interface Calculator { public long calculate(String function); } • „function“ ist JRuby-Code • Wird vom Benutzer eingegeben • Wie kontrolliere ich ob es nur Formeln sind? Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 24
  • 62. Security Patterns • Etliche Lösungsansätze vorhanden Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 25
  • 63. Security Patterns • Etliche Lösungsansätze vorhanden • Vorteil: –Problem, Lösung und auch Nachteile sind detailliert beschreiben –Guter Startpunkt Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 25
  • 64. Security Patterns • Etliche Lösungsansätze vorhanden • Vorteil: –Problem, Lösung und auch Nachteile sind detailliert beschreiben –Guter Startpunkt • Nachteil: –Es gibt viele davon –Umsetzung immer noch selbst notwendig Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 25
  • 65. Security als Prozess • Zuordnung zu Requirements oft schwer möglich Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 26
  • 66. Security als Prozess • Zuordnung zu Requirements oft schwer möglich • Ist Teil nahezu jedem Requirements Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 26
  • 67. Security als Prozess • Zuordnung zu Requirements oft schwer möglich • Ist Teil nahezu jedem Requirements • Lösung: –Security Trainings –Reviews (Audits, Pair Programming) –Penetration Tests –Zum Teil: Code-Scanner (pmd, findBug) Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 26
  • 68. Security als Prozess • Zuordnung zu Requirements oft schwer möglich • Ist Teil nahezu jedem Requirements • Lösung: –Security Trainings –Reviews (Audits, Pair Programming) –Penetration Tests –Zum Teil: Code-Scanner (pmd, findBug) • Team Know-How ist hier der Schlüssel zum Erfolg! Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 26
  • 69. Agenda • Was ist Application Security? • Requirements & Prozesse • Risikoanalyse • Testing Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 27
  • 70. „Was kann die Anwendung?“ Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 71. „Was kann die Anwendung?“ Nichts, aber das ist dafür 100% sicher! Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 72. Wieviel Security und Wann? • Security ist wichtig • Aber Funktionen sind es auch • Wie finde ich also die richtige Balance? Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 29
  • 73. Risikoanalyse • Sicherheitsrisiken lösen bedeutet Aufwand • Aufwand = Zeit = Nicht vorhanden ;-) • Macht es Sinn jedes theoretische Risiko zu behandeln? Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 30
  • 74. Risikoanalyse Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 31
  • 75. Risikoanalyse Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 31
  • 76. Risikoanalyse Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 31
  • 77. Risikoanalyse • Technische Risiken auf Geschäftsrisiken abbilden • Was bedeutet es für das Business wenn diese Lücke ausgenutzt wird? • Ist der Aufwand zum Schließen höher wie der maximale Verlust? Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 32
  • 78. Maximaler Verlust • Nicht nur direkter Verlust –Serverausfall –Datenverlust Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 33
  • 79. Maximaler Verlust • Nicht nur direkter Verlust –Serverausfall –Datenverlust • sonder auch –Imageverlust –Vertrauensverlust bei Kunden –Schadenersatzansprüche Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 33
  • 80. Agenda • Was ist Application Security? • Requirements & Prozesse • Risikoanalyse • Testing Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 34
  • 81. Security Tests • Benutzer erstellen keine Bug-Reports wenn Sie „zu viel“ dürfen Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 35
  • 82. Security Tests • Benutzer erstellen keine Bug-Reports wenn Sie „zu viel“ dürfen • Security-Bugs müssen während der Entwicklung gefunden werden Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 35
  • 83. Security Tests • Benutzer erstellen keine Bug-Reports wenn Sie „zu viel“ dürfen • Security-Bugs müssen während der Entwicklung gefunden werden • Manuelles Testen ist sehr Aufwendig Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 35
  • 84. Security Tests • Benutzer erstellen keine Bug-Reports wenn Sie „zu viel“ dürfen • Security-Bugs müssen während der Entwicklung gefunden werden • Manuelles Testen ist sehr Aufwendig • Automatisiertes Testen teilweise aber auch Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 35
  • 85. Security Tests • Benutzer erstellen keine Bug-Reports wenn Sie „zu viel“ dürfen • Security-Bugs müssen während der Entwicklung gefunden werden • Manuelles Testen ist sehr Aufwendig • Automatisiertes Testen teilweise aber auch • Es kommt auf die richtigen Tools an Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 35
  • 86. Berechtigungen • 5 Rollen, 60 Rechte –5 x 60 = 300 JUnit Test Cases • Besser mit FIT (Framework for Integration Tests): Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 36
  • 87. Berechtigungen • 5 Rollen, 60 Rechte –5 x 60 = 300 JUnit Test Cases • Besser mit FIT (Framework for Integration Tests): Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 36
  • 88. Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 37
  • 89. Security Tests mit Spring Security (AOP) Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 38
  • 90. Security Tests mit Spring Security (AOP) Business Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 38
  • 91. Security Tests mit Spring Security (AOP) Business Security Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 38
  • 92. Security Tests mit Spring Security (AOP) Business Security Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 38
  • 93. Business Tests • Keine Beeinflussung der Business Tests durch Security • Deswegen: Security abschaltbar machen • Auch hier: Tools können helfen Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 39
  • 94. Business Tests mit Spring Security (AOP) Business Security Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 40
  • 95. Business Tests mit Spring Security (AOP) Business Security Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 40
  • 96. Coding Tests • Trust-Zones mit AspectJ festlegen –Security-Check im „Don‘t Trust“-Bereich führt zu Compiler Warnungen/Fehler • Analyse-Tools wie PMD, FindBugs, ... • Alles aber nur begrenzt möglich • Beste Möglichkeit: Reviews Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 41
  • 97. Abschluss-Tests • In regelmäßigen Abstanden (z.B. nach Milestones): –Security Audits (White-Box) –Penetration Tests (Black-Box) • Nicht erst 2 Wochen vor Go-Live! Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 42
  • 98. FAZIT Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited.
  • 99. Fazit • Alle Akteure sind gefragt: Anforderer, Manager, Entwickler • Tools können helfen • Jeder Entwickler benötigt aber Security Know-How • Security ist nicht nur ein Requirement • Security kann niemals als erledigt gekennzeichnet werden –Neue Funktionen = Neue Security –Neue Angriffsmöglichkeiten, ... Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 44
  • 100. Fragen? Mike Wiesner SpringSource Germany ? mike.wiesner@springsource.com Skype: mikewiesner http://www.springsource.com/de http://www.mwiesner.com Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 45
  • 101. Credits In diesem Vortrag wurde Fotos von folgenden Usern verwendet: http://www.flickr.com/photos/rocketraccoon http://www.flickr.com/photos/cambodia4kidsorg http://www.flickr.com/photos/mukluk http://www.flickr.com/photos/azrainman http://www.flickr.com/photos/scottfeldstein Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. 46