Grundlegende Maßnahmen zur Absicherung von EntwicklungsprozessenFünf wichtige Schritte führen zur DevOps-Sicherheit
6. Juni 2019Viele DevOps-Konzepte basieren auf Containern und Microservices. Doch diese können zu zusätzlichen Sicherheitsrisiken führen. Zum Beispiel lässt sich die Container-basierte (runc) Schwachstelle CVE-2019-5736 mit „minimaler Benutzerinteraktion“ ausnutzen. Anschließend können Hacker Root-Level-Code auf dem Host ausführen.
Diese minimale Benutzerinteraktion lässt sich durch Beachtung einer einzigen, einfachen Regel verhindern: das Abschließen der Tür. Doch laut Studien gibt es immer mehr öffentlich zugängliche, containerisierte Umgebungen, die keine Authentifizierung benötigen. Das bedeutet, dass jeder Nutzer die Kontrolle übernehmen und bösartige Container installieren kann, um Zugriff auf Root-Ebene zu erhalten.
Zwar ist eine hohe Geschwindigkeit für den Erfolg in der digitalen Wirtschaft wichtig, aber das darf nicht dazu führen, dass grundlegende Sicherheitsregeln missachtet werden. Die folgenden fünf einfachen Schritte verbessern die Sicherheit, ohne die Geschwindigkeit zu beeinträchtigen.
- Komponenten selbst hosten: Laut Studien bestehen 80 bis 90 Prozent der Anwendungen in Unternehmen aus Komponenten von Drittanbietern. Diese werden häufig von externen Standorten geladen und dabei von der Quellcodeanalyse ausgeschlossen. Eine Möglichkeit, die Runc-Schwachstelle auszunutzen, besteht jedoch in der Infiltrierung eines Containers, der ungeprüft geladen und in einer Anwendung verwendet wird. Ähnliches gilt für UX-Komponenten von Drittanbietern. Wenn möglich, sollten Unternehmen die Komponenten auf ihrer eigenen Website hosten, um das Risiko von Manipulationen zu verringern.
- Komponenten prüfen: Komponenten von Drittanbietern können grundsätzlich Schwachstellen enthalten. Daher sollten sie in die Sicherheitsprozesse des Unternehmens integriert werden, zum Beispiel die Prüfung im Rahmen der CI/CD-Pipeline. Dabei ist immer der gesamte Code – egal wo er ausgeführt wird – auf mögliche Risiken hin zu scannen.
- Türen schließen: Ob Web-, Anwendungs-, Datenbank- oder Middleware-Server oder auch Container-Orchestrierungsumgebung: In allen Fällen muss eine persönliche Authentifizierung für den Zugriff auf administrative Konsolen erforderlich sein. Dies gilt auch für alle öffentlichen Speicherorte und Cloud-Anwendungen.
- Den Schlüssel verstecken: Wer eine Tür abgeschlossen hat, sollte den Schlüssel nicht auf die Fußmatte legen. Um Anwendungen und Prozesse vor unbefugtem Zugriff zu schützen, dürfen Anmeldeinformationen, Schlüssel oder Zertifikate nicht in öffentlich zugänglichen Speicherorten abgelegt werden.
- APIs einbinden: Schnittstellen übertragen Benutzereingaben, doch diesen darf ein Unternehmen niemals vertrauen. Daher ist zu verhindern, dass APIs Daten einfach an interne Anwendungen oder Microservices weiterleiten. APIs müssen genauso wie Anwendungen immer geprüft und gesichert werden.
Natürlich gibt es viele weitere Möglichkeiten, um Anwendungen und die Umgebungen, in denen sie laufen, zu schützen. Doch diese funktionieren nicht, wenn die genannten fünf einfachen Schritte nicht als Basis umgesetzt werden. Da sie für die gesamte CI/CD-Pipeline gelten, muss DevOps diese Schritte in die Sicherheits-Checkliste aufnehmen. (rhh)