Testen mit dem OWASP Testing Guide (Teil 1) Flashcards
Wann ist ein guter Zeitpunkt zum Testen? Welche Faktoren müssen getestet werden?
Testen im Rahmen vom Software Development Life Cycle (SDLC)
Faktoren für sichere Software:
Menschen (Ausbildung/Awareness)
Prozesse (Prozesse und Regeln, die auch befolgt werden) Technik (effiziente Umsetzung)
Was sind Prinzipen für das Testen?
Testen am besten im Rahmen eines SDLC
ganzheitlicher und nachhaltiger Ansatz dockt an bestehendem Prozess an
Früh testen und oft testen
Umfang der Sicherheit muss verstanden werden
Wie viel Sicherheit braucht ein Projekt?
Verwendung der richtigen Werkzeuge
Wo möglich auf Basis von Source Code arbeiten
Dokumentation der Ergebnisse der Tests
Was sind techniker zum Testen?
Manuelle Inspektion und Reviews
Bedrohungs- und Risikoanalyse
Code Review
Penetration Testing
Wann im SDLC sollte welche Technik zum Testen durchgeführt werden?
Erfolgreiches Testen setzt Aktivitäten in allen Phasen des SDLC voraus!
Manuelle Inspektion und Reviews:
- kann früh im SDLC angewandt werden (Phase 1/2)
Bedrohungs und Risikoanalysen:
- kann ebenfalls früh im SDLC angewandt werden (Phase 2/Design)
Code Reviews:
- Phase 3/Implementierung
Penetration Testing:
- erfolgt erst sehr spät im SDLC
- Am Ende der Implementierung
- Phase 4
Phase 5: Penetration Testing nach vorgegebenem Zeitplan (Health Check)
Was versteht man unter Manuelle Inspektion und Reviews?
Wird durch Menschen durchgeführt
Überprüfen Auswirkungen auf Sicherheit der Faktoren:
Menschen, Regeln, Prozesse
Durchführungsmöglichkeiten:
Analyse der Dokumentation
Interviews mit Architekten oder System Owner
Was sind Vor- und Nachteile der Manuelle Inspektion und Reviews?
Vorteile:
- Keine Tools benötigt
- Kann in einer Vielzahl von Situationen eingesetzt werden Flexibel
- Kann früh im SDLC eingesetzt werden
Nachteil:
- Kann zeitaufwendig sein
- Benötigte Dokumentation/Materialien nicht immer verfügbar oder nur in schlechte Qualität verfügbar
- Durchführung erfordert neben technischen Skills guten Umgang mit Menschen!
Was versteht man unter der Bedrohungs- und Risikoanalyse?
Hilft, sich über Bedrohungen Gedanken zu machen
Hilft, beschränkte Ressourcen effizient einzusetzen
Identifikation möglicher Angriffe
Bewertung des mit dem Angriff verbundenen Risiko
Analyse der schützenswerten Güter
Was sind Vor- und Nachteile der Bedrohungs- und Risikoanalyse?
Vorteile:
- Sicht wie Angreifer auf Anwendung Flexibel
- Kann früh in SDLC eingesetzt werden
Nachteil:
- Gute Bedrohungs- und Risikoanalyse bedeutet noch nicht sichere Software
- Qualität hängt stark vom durchführenden Experten ab
Was sind Code Reviews?
Manuelle Überprüfung des Source Codes auf Sicherheit
Viele Verwundbarkeiten können anders gar nicht gefunden werden
Weniger Raten als bei Black Box Tests notwendig
Typischerweise wird gefunden:
Probleme mit Nebenläufigkeit,
Fehlerhafte Business Logik,…
Was sind Vor- und Nachteile vom Code Reviews?
Vorteile:
- Umfassend und effizient
- Genau
- Schnell (wenn Experte kompetent)
Nachteile:
- Sehr spezielles Skillset benötigt (TEUER!)
- Sieht nur, was im Source vorliegt (also z.B. nicht kompilierte Bibliotheken, die verwendet werden)
- Entdecken von Laufzeitfehlern schwierig
- Source Code, der getestet wird, stimmt oft nicht mit dem überein, der ausgebracht wird
Was ist Penetration Testing?
Oft als Black Box Testing bezeichnet
Tester hat kein Insider-Wissen über Implementierung Zugang zur Anwendung, als wäre Tester normaler Nutzer
Tester verhält sich wie Angreifer
Automatisierte Tools vorhanden für einige Angriffe
Was sind Vor- und Nachteile vom Penetration Testing?
Vorteile:
- Kann schnell Ergebnisse liefern (=billig)
- Benötigt im Vergleich zu Source Code Reviews weniger qualifizierte Tester
- Testet den Code, der auch wirklich eingesetzt wird
Nachteile:
- Erfolgt erst sehr spät im SDLC (Running Code benötigt) - Getestet wird nur öffentlich exponierter Code
Beschreibe kurz die 5 Phasen des SDLC
Phase 1: Vor der Entwicklung
- Überarbeitung und Dokumentation der Sicherheitsregeln und Standards
- Man plant was man messen möchte ( Messprozess, Messkriterien, Macht Fortschritt sichtbar)
Phase 2: Design
- Security Requirements der Anwendung ableiten und testen (Überprüfen, ob es Lücken gibt)
- Überprüfung des Designs und der Architektur
- UML Modelle erzeugen und überprüfen durch Review
- Bedrohungs- und Risikoanalyse anhand der Architektur
Phase 3: Implementierung
- Code Review
- Code Walkthroughs ( Überprüfen, warum Implementierung in gegebener Weise geschehen ist => geht es noch besser?)
Phase 4: Ausbringung
- Entwicklung abgeschlossen, Anwendung vollständig und wird beim Kunden installiert
- „Last Minute Penetration Testing“
- Überprüfung Konfigurations-Management
Phase 5: Betrieb
- Anwendung aktuell halte
- Sicherheitsregeln regelmäßig überprüfen und überarbeiten Application Patching
- Penetration Testing nach vorgegebenem Zeitplan (Health Check)
- WICHTIG: Quality Assurance für ALLE Änderungen!!!