DevSecOps: Mit DevOps-Prinzipien kontinuierlich sicherer werden

Seite 3: Tools sinnvoll nutzen

Inhaltsverzeichnis

Gerade bei agil arbeitenden Teams ist es wichtig, verschiedene Kontrollpunkte mit automatischen Sicherheitstests zu etablieren. Ein sinnvoller erster Schritt können statische Codeanalysen sein, die im Rahmen der Build-Pipeline ausgeführt werden. Zusätzlich sollten sinnvolle Techniken zum Verwalten technischer Log-ins wie Spring Vault berücksichtigt werden.

Im Rahmen der Definition of Done (DoD) können aber auch bestimmte Sicherheitsüberprüfungen berücksichtigt werden. Für Continuous Delivery gibt es Tools, um bekannte Schwachstellen zu erkennen. Setzen Entwickler diese im Rahmen von Continuous Integration ein, erhalten sie einen ersten Kontrollpunkt, der sicherstellt, dass sich bekannte Sicherheitslücken nicht ausnutzen lassen.

Neben statischen Analysewerkzeugen wie Sonar und FindBugs ist es durchaus sinnvoll, die Abhängigkeiten in umfangreichen Java-Anwendungen kontinuierlich auf bekannte Schwachstellen zu prüfen. Dabei kann das OWASP-Dependency-Check-Maven-Plug-in helfen. Neben der klassischen Java-Architektur gilt es bei einer solchen Betrachtung aber auch, die gerade populären JavaScript-Umgebungen miteinzubeziehen. Deren Schnelllebigkeit bringt eine weitere Dimension in die Betrachtung. Deswegen ist es gut zu wissen, dass es mit dem Node-Security-Projekt (NSD) auch im JavaScript-Bereich ein geeignetes Tool gibt. Beide Werkzeuge gleichen die jeweiligen Abhängigkeiten nach bekannten Schwachstellen ab. GitHub bietet für NSP eine direkte Integration, sodass Prüfungen auch in Pull Requests stattfinden. Außerdem bietet sich für Open-Source-Projekte CodeClimate an, das die generelle Codequalität berücksichtigt.

Durch die gerade im Java- und Node.js-Umfeld verbreitete Nutzung von Bibliotheken wird die zeitnahe Aktualisierung zu einer umfangreichen und ständig wiederkehrenden Aufgabe. Immerhin lässt sich die aufwendige Suche nach der neuesten Version und den darin gestopften Sicherheitslöchern mit dem OWASP Dependency Check und Node Security Project deutlich erleichtern. Diese Tools ersetzen keine Penetrationstests, aber sie helfen, einen Teil der Probleme früh zu erkennen. Es ist in zeitgemäßen Softwaresystemen daher unerlässlich, ein Sicherheitsbewusstsein aufzubauen, das schon in der Entwicklung greift.

Automatische Tests auf Schwachstellen stellen dabei nur den ersten Schritt dar, siehe die Artikel-Demo. Das Sicherheitsbewusstsein ist bei den Entwicklern zu schärfen. Gerade mit dem "Selbsthacken" wird das Ganze mit sportlichem Ehrgeiz und Spaß verbunden. Es gibt dazu auch Online-Kurse, beispielsweise von PluralSight.

Im Rahmen von DevSecOps sollen Entwickler, Betrieb und Sicherheitsfachleute in einem Team zusammenarbeiten. Zunehmend mehr Betriebsaufgaben werden in Zukunft an die Entwicklung übergehen. Der Trend zur Cloud-Nutzung verstärkt das. Gerade die Cloud entlastet dabei die Mitarbeiter von den lästigen Systemverwaltungsaufgaben. Stattdessen können sie mit den Entwicklern und dem Security-Officer ein proaktives Monitoring aufsetzen. Erst so ist es möglich, Anwendungen zur Laufzeit mit Intrusion-Detection-Systemen zu verbinden. Damit lassen sich Angriffsmuster frühzeitig erkennen.