REDPIXEL - stock.adobe.com
DevOps-Security: Von der Code-Erstellung bis zur Compliance
Das DevOps-Konzept beschleunigt nicht nur die Entwicklung von Anwendungen, es hat auch erhebliche Auswirkungen auf die IT-Sicherheit. Dabei sollten Sie einige Punkte beachten.
Die in vielen Unternehmen zunehmend verbreiteten DevOps-Praktiken haben dazu geführt, dass sich immer mehr Menschen mit den Security-Problemen beschäftigen, die bei der Entwicklung und dem Deployment von Anwendungen auftreten. Sowohl die Programmierer als auch die für den Betrieb zuständigen Mitarbeiter müssen in Zukunft deutlich enger zusammenarbeiten. Nur so können Unternehmen bei jedem der einzelnen Schritte der Entwicklung und Nutzung von Software, also beim Design, den Tests, den Kontrollen und beim Überprüfen der Infrastruktur für mehr Sicherheit und für eine Einhaltung der jeweiligen Compliance-Vorgaben sorgen.
Gleichgültig, ob Sie zum Beispiel ein Entwickler oder ein ausgewiesener IT-Sicherheitsexperte sind, ist es absolut kritisch für Ihr Unternehmen, die wichtigsten DevOps-Praktiken aus dem Bereich Security zu kennen und anzuwenden.
Wichtige Sicherheitsaspekte im DevOps-Ablauf
Bugs in Anwendungen, Fehler bereits beim Design, gezielte Angriffe durch Hacker und schlecht oder auch nicht einheitlich konfigurierte Hard- und Software haben dafür gesorgt, dass bei Enterprise-Applikationen seit Beginn des digitalen Zeitalters immer wieder Probleme auftreten.
Das Thema IT-Sicherheit wurde oft nur als lästiges Anhängsel oder sogar als separates Element betrachtet, das unabhängig von der zugrundeliegenden Infrastruktur angegangen wurde – wenn überhaupt. Wenn ein Problem entdeckt wird, dann kümmert sich meist ein Sicherheits- oder Admin-Team darum, analysiert die Ursache, behebt den Fehler und ändert dabei zum Beispiel eine Konfiguration oder spielt einen Patch ein.
Agile Techniken und DevOps haben die Softwareentwicklung mit ihren kontinuierlichen Ansätzen aber so stark beschleunigt, dass traditionelle Sicherheitsmaßnahmen kaum noch hinterherkommen.
DevOps sorgt für eine weit schnellere und flexiblere Entwicklung von Software und für ein massiv beschleunigtes Deployment. Fehler und Schwachstellen in den Anwendungen können sich dadurch aber auch weit schneller verbreiten und in kurzer Zeit für erhebliche Schäden sorgen. Das führt dazu, dass die meisten Unternehmen ihre bisherigen Abläufe systematisch überdenken und umstellen sollten, um wieder für mehr Sicherheit in ihren beschleunigten Prozessen zu sorgen.
Als guter Startpunkt bieten sich die folgenden Best Practices an, die die fünf wichtigen Bereiche bei der Entwicklung von Software betreffen.
Erstellung von Code: Die Sicherheit von Software beginnt bereits beim Quellcode. Den meisten Programmierern unterlaufen jedoch immer wieder Fehler, die für Schwachstellen sorgen. Dazu gehören übersehene Buffer Overflows, Fehler bei der Autorisierung (teilweise wird auch bei kritischen Funktionen kein Passwort vorausgesetzt), lange übersehene Schwachstellen in Hardware wie Spectre und Meltdown sowie ignorierte Sicherheitslöcher im Netzwerk wie die OS-Command-Lücke oder SQL Injection.
Die zunehmende Nutzung von APIs (Application Programming Interfaces) zur Integration von Software und um erweiterte Funktionen einbinden zu können, öffnet zudem die Tür für weitere Schwachstellen. Beispiele dafür sind schwache Authentifizierung und der Verlust von unverschlüsselten Daten durch Sniffing-Angriffe. Zu den Aufgaben von Entwicklern gehört deswegen mittlerweile auch etwas, was häufig Security Awareness genannt wird. Damit ist gemeint, dass sie sich aktiv um Informationen zu Sicherheitslücken bemühen sollten. Außerdem sollten sie bewährte Best Practices kennen und anwenden, um von Anfang an sicheren Quellcode zu erstellen und um schneller Sicherheitslücken in von etwa ihren Kollegen erstelltem Code erkennen zu können.
Testen des Codes: Das Thema Sicherheit ist ein wesentlicher Teil beim Testen der aktuellen Builds innerhalb des DevOps-Workflows geworden. Nur so lassen sich Schwachstellen entdecken. Die Entwickler sollten zusätzliche Tools und Dienste nutzen, um Fehler in jeder neuen Build-Version erkennen und analysieren zu können. Dazu eignen sich spezialisierte Suiten, wie sie etwa Veracode, GauntIT und Mittn anbieten. Mit ihnen lassen sich Sicherheitslöcher auch noch in ausführbaren Dateien finden und dann reparieren. Außerdem eignen sie sich, um umfassende Penetrationtests durchzuführen, mit denen sich weitere Schwachstellen aufspüren lassen. Einmal entdeckte Lücken müssen aber sofort geschlossen werden, so dass sie nicht wieder in künftigen Softwareversionen zu finden sind.
IT-Infrastruktur: Die für den Betrieb zuständigen Mitarbeiter tragen traditionell die größte Last, wenn es um die Absicherung der Anwendungen geht. Das DevOps-Konzept setzt voraus, dass Entwickler und Admins enger zusammenarbeiten. Es bedeutet auch, dass die Entwickler ihre Builds zunehmend eigenständig in der IT-Infrastruktur ausrollen können. Der gesamte Bereich Infrastruktur muss deswegen neu überdacht und gründlich abgesichert werden.
Übereinstimmend mit den wichtigsten Best Practices im Bereich DevOps und Security müssen die Admins dafür sorgen, dass jeder Server sorgfältig und sicher konfiguriert wurde, bevor er produktiv, aber auch bevor er in der Entwicklung genutzt werden darf.
Das Gleiche gilt auch für alle Switches und anderen Netzwerk-Devices, die in der jeweiligen Infrastruktur eingesetzt werden. Nur so lassen sich Sicherheitslücken vermeiden.
Nehmen wir als Beispiel das Risiko durch einen im Unternehmen eingesetzten Server, bei dem eine grundsätzliche Sicherheitsmaßnahme übersehen wurde, so dass ein Login mit einem Default-Passwort möglich ist. Dieses Risiko darf nicht unterschätzt werden.
Alle Konfigurationsänderungen müssen darüber hinaus sorgfältig dokumentiert und protokolliert werden. Außerdem müssen sie durch regelmäßige Security-Audits immer wieder überprüft werden. Auch in herkömmlichen Umgebungen gehören diese Maßnahmen zu den wichtigsten Grundlagen und Managementaufgaben. In einer DevOps-Umgebung sind sie aber noch weit wichtiger.
Alltägliche Abläufe: Die Sicherheitsbedenken lösen sich nicht in Luft auf, wenn ein neues Software-Build auf einem produktiven Enterprise-Server aufgespielt wird. Die Software soll einen bestimmten Zweck im Unternehmen erfüllen. Das macht sie zu einem potentiellen Ziel für zahllose sowohl externe als auch interne Bedrohungen.
In manchen Firmen gibt es deswegen ein zusätzliches Security-Team, das unterschiedliche Werkzeuge zum Erkennen und Bekämpfen von Sicherheitslücken nutzt, um die Workloads und die Infrastruktur kontinuierlich zu überwachen. Dieses Team kontrolliert auch die Auslastung der Applikationen und des Netzwerks, sucht nach Anomalien im Netz sowie nach Eindringlingen und analysiert zudem laufend die Applikations- und Server-Logs.
Während meist spezialisierte IT-Security-Mitarbeiter für diese Aufgaben zuständig sind, erhalten die Entwickler in der Regel nur die Ergebnisse der Maßnahmen.
Compliance im Unternehmen: Schwachstellen in der Software und der Infrastruktur haben nicht nur einen negativen Einfluss auf die Verfügbarkeit der Anwendungen. Sie wirken sich auch auf die Einhaltung der geltenden Compliance-Vorgaben aus.
Wenn eine Applikation und ihre Umgebung nicht ausreichend gesichert sind, kann das Unternehmen nicht mehr alle getroffenen Vereinbarungen bezüglich der Sicherheit der ihm anvertrauten Daten einhalten. Das trifft sogar dann zu, wenn kein bösartiger Angriff und kein Verlust von Daten erfolgt. Nicht erst seit der Einführung der Datenschutz-Grundverordnung (DSGVO) drohen betroffenen Unternehmen nun aber teilweise empfindliche Strafen und andere Einschränkungen.
Aus diesen Gründen müssen die mit DevOps beauftragten Mitarbeiter mit sowohl den Nutzern der Anwendungen eng zusammenarbeiten als auch mit der Geschäftsführung. Nur so lassen sich alle regulatorischen Vorgaben einhalten, gleichgültig ob sie gesetzlicher oder anderweitiger Natur sind.
Training und Fortbildung
Umfassendes Wissen ist eines der besten Mittel, um IT-Security-Probleme zu verhindern. Die DevOps-Teams sollten deshalb laufend sowohl formale als auch informelle Security-Trainings erhalten.
Dazu gibt es verschiedene Zertifizierungsmöglichkeiten im Bereich IT-Sicherheit wie CompTIA Security+ oder eine Prüfung nach ISO 27001. In Deutschland gibt es zudem Ausbildungen zum IT-Security-Beauftragten (TÜV), ISMS-Manager, Teletrust Information Security Professional (T.I.S.P.) oder auch zum sogenannten Certified Ethical Hacker.
DevOps-Entwickler und -Admins sollten darüber hinaus konkrete Maßnahmenkataloge erstellen, die für das gesamte Unternehmen gelten. Dies gilt insbesondere in allen Umgebungen, die hoch automatisiert sind.