igor - Fotolia

Die Sicherheit von DevOps in nur drei Schritten optimieren

Der DevOps-Ansatz geht manchmal zu Lasten der Sicherheit. Dabei lässt sich die Security in drei Schritten direkt in den Entwicklungsprozess einbetten.

DevOps soll die Kommunikation und Zusammenarbeit von Entwicklungs- und Fachabteilungen in Unternehmen erleichtern und optimieren. Und zwar über den gesamten Softwarelebenszyklus hinweg. Das heißt, sowohl während der ursprünglichen Entwicklung des Codes, als auch bei späteren Veränderungen oder Updates.

Unabhängig vom Zeitpunkt ist es wichtig, stets Sicherheit und Compliance bei allen Schritten von Anfang an zu berücksichtigen. Die gute Nachricht: Es ist nicht unbedingt ein Kompromiss zwischen Sicherheit und Agilität vonnöten.

Es ist durchaus möglich, Code zu entwickeln, der sicherer als in der Zeit vor dem DevOps-Ansatz, wenn Sicherheit und DevOps mit den richtigen Ansprüchen umgesetzt werden.

Schritt 1: Sicherheitsmechanismen kennen und verstehen

Ein erster wichtiger Schritt, um DevOps und Sicherheit in Einklang zu bringen, ist es, die vorhandenen Sicherheitsmechanismen und-kontrollen zu kennen und zu verstehen. Ein Gespräch mit den Verantwortlichen fürs Risiko-Management kann da hilfreiche Informationen liefern. Bei dem globalen Non-Profit-Verband ISACA findet sich eine Auflistung der wichtigsten Schlüsselelemente für die Softwareentwicklung. Dazu gehören unter anderem folgende Punkte:

Automatisches Software-Scanning: Die Entwickler sollten ein Tool bereitstellen, mit dem sich der Anwendungs-Code in Hinblick auf die Sicherheit scannen lässt. Darüber hinaus sollten Protokolldateien und andere Logs untersucht werden, um zu belegen, dass die Scans stattfinden.

Automatische Schwachstellenprüfung: Zusätzlich zum Scannen des eigentlichen Codes empfiehlt die ISACA eine automatisierte Untersuchung auf Schwachstellen.

Sicherheitsschulungen der Entwickler: Es sollte sichergestellt werden, dass die Entwickler angemessene Schulungen in Sachen Sicherheit erhalten. Diese müssen wiederum in ihrer Entwicklung beziehungsweise Programmierung belegen, dass sie das gelernte Wissen anwenden können. Entwickler müssen wissen, welche Tests wann angebracht sind und bestätigen, dass diese entsprechend durchgeführt werden.

Abhängigkeiten von Software erkennen und berücksichtigen: Die Abhängigkeiten nachzuvollziehen, die der intern entwickelte Code auf Software-Bibliotheken hat, ist eine der kritischsten Aufgaben im Hinblick auf die Sicherheit. Eine Minimierung von Abhängigkeiten erleichtert es deutlich, entsprechende Sicherheit zu gewährleisten.

Zugriffs- und Aktivitätsprotokollierung: Entwickler sollten mit Tools arbeiten, mit deren Hilfe man nachvollziehen kann, wann sich welche Entwickler eingeloggt haben und welche Veränderungen am Projekt vorgenommen wurden. Zusätzlich sollte sich nachvollziehen lassen, wenn bestimmte Funktionen modifiziert wurden.

Richtlinien und Abläufe dokumentieren: Laut ISACA sollen die Auditoren die Richtlinien überprüfen, um sicherzustellen, dass alle Aspekte bei der Freigabe des Projektes beziehungsweise Produktes auch korrekt berücksichtigt wurden.

Application Performance Management: Die ISACA empfiehlt die Verwendung von Metriken, um die Performance im Griff zu behalten. Tauchen Probleme auf, sollte diese direkt angesprochen werden.

Inventarisierung: Eigentlich selbstverständlich, dass ein Tool automatisch die Anwendungen registriert und diese entsprechend inventarisiert werden.

Saubere Aufgabentrennung: Jedes Stückchen Code muss eingehend begutachtet werden. Und diejenigen, die dies überprüfen, dürfen nicht diejenigen sein, die den Code entwickelt oder auch bearbeitet haben.

Schritt 2: Die richtigen Tools

Im zweiten Schritt, nachdem man sich für die nötigen Kontrollinstanzen entschieden hat, gilt es die vorhandenen Sicherheits-Tools diesbezüglich zu bewerten und mit den Anforderungen abzugleichen. In Sachen Schwachstellen-Management gibt es beispielsweise Lösungen wie Fortify, SonarQube oder Nexus IQ.

Im Bereich automatisiertes Testen existiert ein großes Angebot an unterschiedlichsten Einsatzwecken und Lösungen: Statische Softwaretestverfahren, Dynamische Softwaretests, Laufzeittests sowie interaktive Softwaretests. Hier kommen Lösungen exemplarisch von Contrast Security, Fortify, Veracode oder auch Waratek. Und um Aktivitäten und Änderungen zu protokollieren, eigenen sich Jira wie auch Cucumber. Viele der möglichen Kontrollinstanzen lassen sich mit einer Kombination aus Tools und optimierten Abläufen realisieren.

Schritt 3: Automatisierung

Im nächsten Schritt gilt es zu überprüfen, ob mit Hilfe der Tools und automatisieren Vorgänge die Abläufe insgesamt optimiert und verschlankt werden können. Ein guter Ansatz hierfür ist beispielsweise die strikte Aufgabentrennung. Angenommen, bisher waren von einer vollständigen Softwareänderung vier Personen betroffen. Eine Person führt die Änderung durch, eine zweite Person begutachtet diese, die dritte Person genehmigt die Änderung und die vierte Person kümmert sich schließlich um die eigentliche Bereitstellung. Klingt eigentlich nach einer relativ sicheren Vorgehensweise, in der Praxis ist dem nicht so. Es bleibt immer noch genügend Raum für menschliche Fehler.

Mit Tools zur Automatisierung kann man dies in einen einfacheren, zweistufigen Prozess überführen. Eine Person nimmt die Änderungen vor und eine zweite genehmigt diese. Der Rest wird automatisiert dokumentiert und protokolliert. Diese Automatisierung verbessert die Nachverfolgbarkeit als auch die Fehlerquoten.

Während der gesamten Update-Phase im Softwarelebenszyklus darf die Umsetzung des Themas Sicherheit nicht außer Acht gelassen werden. Die beschriebenen Werkzeuge lassen sich auch so einsetzen, dass sie diese Phase bis zur Übergabe der Lösung an die Fachabteilung begleiten. Da für die Bereitstellung von Software meist besondere Regeln und Richtlinien gelten, können die Sicherheitsteams hier Einsprungpunkte definieren, an denen wichtige DevOps- und Sicherheitsanforderungen noch einmal überprüft werden können.

Fazit

Die Integration von Anwendungssicherheit in DevOps ist gar nicht so schwierig, wie es zunächst den Anschein haben mag. Unternehmen, die in diesen Bereich schon ziemlich weit sind, schicken ihre Entwickler erst einmal in eine Art Trainingslager. Dort werden diese eingehend zum Thema Anwendungssicherheit geschult, inklusive der Verwendung der entsprechenden Tools. Dies trägt zudem dazu bei, dass dieses Wissen sich bei allen Entwicklern im Unternehmen schneller verbreitet.

Folgen Sie SearchSecurity.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Das richtige DevOps-Konzept für mehr Sicherheit

So arbeiten DevOps und IT Security richtig zusammen

Mit DevOps den digitalen Wandel im Unternehmen umsetzen

Vorbereitung auf die häufigsten Fragen im DevOps-Bewerbungsgespräch

Artikel wurde zuletzt im April 2017 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über IT-Sicherheitstraining und interne Bedrohungen

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

SearchDataCenter.de

Close