2. Agenda
► Was ist DevSecOps?
► Warum benötigen wir DevSecOps?
► Wie setzen wir DevSecOps um
► Integration der Security in die DevOps Pipeline
► Tools of Trade
► Kultur
► Und wie sieht es bei der Synaxon aus?
By Christian Bauer 10/2020
3. Was ist
DevSecOps
► Die Bemühung „Secure by
Default“ zu erreichen
► Sicherheit durch Werkzeuge
integrieren
► Sicherheit als Code-Kultur
schaffen
► Förderung von Cross-Skilling
By Christian Bauer 10/2020
4. Warum brauchen wir DevSecOps
► DevOps entwickelt sich in einem schnellen Tempo, so dass die
traditionelle Sicherheit / Manuelle Gewährleistung von Sicherheit
nicht Schritt halten kann
► DevSecOps macht es einfacher, das schnelle Entwicklungstempo
und die größere Menge der Deployments zu berücksichtigen
► DevSecOps ermöglicht eine reibungslose Skalierung der Prozesse
► Security als Teil der Prozesse ist der einzige Weg zur Gewährleistung
der Sicherheit
By Christian Bauer 10/2020
7. Wie setzen wir DevSecOps um?
► DevSecOps bedeutet Automatisierung und kultureller Wandel
► Integration von Security Tools in die DevOps Pipeline
► Kultureller Wandel hin zur Akzeptanz/Verständnis von DevSecOps
By Christian Bauer 10/2020
10. Security
Tools
► Pre-Commit Hooks
► IDE Security Plugin
► Secrets Management
► Software Composition Analysis
► Static Analysis Security Testing
► Dynamic Analysis Security Testing
► Security in Infrastructure as Code
► Compliance as Code
► Vulnerability Management
► Alerting and Monitoring
By Christian Bauer 10/2020
11. Pre-Commit Hooks
► Sensible Informationen wie Access Keys, Tokens, SSH Keys usw.
werden häufig auf Grund von versehentlichen Git Commits
geleaked
► Pre-commit Hooks können auf den Workstations der Entwickler
eingerichtet werden, um solche Commits zu verhindern
► Dabei werden Commits Regex basierend gefiltert, wodurch sensible
Informationen nicht aktiv commited werden
► Die Entwickler können diesen Schritt weiterhin umgehen, er dient
also nur als Hilfsmittel
By Christian Bauer 10/2020
12. IDE Security Plugin
► IDE Plugins geben Hinweise bezüglich der Security direkt an die
Entwickler
► Nützlich um unbedachte Fehler zu verhindern
► Arbeiten ebenfalls Regex-based
► Die Entwickler können diesen Schritt weiterhin umgehen, er dient
also nur als Hilfsmittel
By Christian Bauer 10/2020
13. Secrets
Management
► Häufig werden Credentials in
Config Files abgespeichert
► Ein Leak kann zu einem
Missbrauchsszenario führen
► Ein Secret Management
erlaubt es Tokenbasiert zu
verfahren
By Christian Bauer 10/2020
14. Software Composition Analysis
► Wir schreiben keine Software, wir verwenden Frameworks
► Größter Teil der Software sind heute Libraries von Drittanbietern
► Die wichtigsten Sprachen bieten Modulverwaltungen
► PIP, NPM, Gems, go get, perl cpan, php packager usw.
► Die Software Composition Analysis führt Prüfungen durch um
veraltete Libraries zu identifizieren
By Christian Bauer 10/2020
15. Static Analysis Security Testing
► White-Box Security Test mit automatisierten Tools
► Quellcodeanalyse / Analyse der von innen sichtbaren Projektstruktur
► Nützlich um leicht auffindbare Issues wie z.B. SQL Injection, XSS und
unsichere Libraries aussortieren zu können
► Eine Manuelle Verwaltung der False-Positives ist notwendig
By Christian Bauer 10/2020
17. Dynamic Analysis Security Testing
► Black/Grey-Box Security Test mit automatisierten Tools
► SAST liefert nur ein unvollständiges Bild, da SAST die Applikation nur
vor dem Deployment behandelt
► DAST führt einen dynamischen Test auf eine deployte
Testumgebung durch
► DAST hilft dabei Deploymentspezifische Issues zu finden
► Die Ergebnisse der SAST und DAST Tests können verglichen und um
automatischen aussortieren von false-positives verwendet werden
► DAST Tools müssen auf die Umgebung zugeschnitten / konfiguriert
werden, um gute Ergebnisse zu liefern
By Christian Bauer 10/2020
18. Security in Infrastructure as Code
► IaC ermöglicht die Dokumentation und Versionskontrolle der
Infrastruktur
► IaC ermöglicht die Durchführung von Audits der Infrastruktur
► Docker und Kubernetes Infrastrukturen basieren auf Base Images
► Die Umgebung ist so sicher wie das Base Image
► Base Images sollten möglichst klein sein und müssen untersucht
werden, um vererbte Schwachstellen zu identifizieren
By Christian Bauer 10/2020
19. Compliance as Code
► Die Compliance kann einem Industriestandard oder einer eigenen
Definition folgen
► Die Compliance ist ein Regelwerk, welches in geschriebene Testfälle
umgewandelt werden kann
► Compliance as Code kann Versioniert, Deployed, getestet und in
ein Monitoring aufgenommen werden
By Christian Bauer 10/2020
20. Vulnerability Management
► Alle oben genannten Tools führen zu einer Alert Müdigkeit
► Jedes dieser Tools hat eine eigene Form der Präsentation, daher
wird ein zentrales Dashboard für die einheitliche Auswertung der
Daten benötigt
► Das Vulnerability Management System kann in ein Bug Tracking
integriert werden, um Ergebnisse direkt in die Entwicklung
einzubinden
By Christian Bauer 10/2020
21. Alerting and Monitoring
► Monitoring wird für zwei Ziele benötigt:
► Effektivität/Wirksamkeit der Security Kontrollen
► Was und Wo Verbesserungen notwendig sind
► Beurteilung der Effektivität von Security Kontrollen
► Wann ist der Angriff / Issue erfolgt?
► Wurde der Angriff / Issue blockiert / behoben?
► Wie tief ging der Angriff / Issue (Level of Access)?
► Welche Daten wurden raus oder rein gebracht?
By Christian Bauer 10/2020
26. DevSecOps Kultur
► Automatisierung alleine löst das Problem nicht
► Förderung des Security Gedankens insbesondere außerhalt des
Security Teams
► Gemeinsame Ziele von Entwicklung, Operation und Security müssen
identifiziert werden
► Einzelne Personen müssen als Vermittler fungieren
► Zusammenarbeit und Integration aller Instanzen in die Entwicklung
der DevSecOps Kultur
► Kein Blame Game
By Christian Bauer 10/2020
27. DevSecOps Skillset
► Skills sollten über alle Instanzen verteilt werden 🡪 Skills nicht bei einer
Person, sondern an eine Stellte koordiniert (Security Team) und dann
an die passenden oder interessierten Stellen verteilt
► Skills müssen regelmäßig aufgebaut und erweitert werden
By Christian Bauer 10/2020
28. Schlusspunkt
► IT Sicherheit liegt in der Verantwortung von jedem Mitarbeiter
► Sicherheit ist ein integraler Bestandteil der DevOps Prozesse und
Feedbacks sollten hier zur Optimierung genutzt werden
► DevSecOps ist keine fertige Lösung, die tatsächliche Umsetzung
(Tools und Kultur) muss sich entwickeln
► Auch wir bei der SYNAXON können DevSecOps, da sich dieses
Vorgehen anpassen und individuell zuschneiden lässt ☺
By Christian Bauer 10/2020