API-Sicherheit für DevSecOps
Die Sicherheit von APIs ist für DevSecOps von entscheidender Bedeutung
Akamai hat im Juni 2024 Noname Security übernommen. Das Produkt von Noname Security heißt jetzt Akamai API Security, aber dieser archivierte Blog-Beitrag, der ursprünglich am 29. September 2022 veröffentlicht wurde, spiegelt das Produkt sowie die Namen der Funktionen am ursprünglichen Veröffentlichungsdatum wider.
DevSecOps ist eine Variante von DevOps (Development and Operations, Entwicklung und Betrieb), die dem Softwareentwicklungs-Workflow mehr Sicherheit verleiht. Die Sicherheit von Anwendungsprogrammierschnittstellen (Application Programming Interfaces, APIs) muss Bestandteil von DevSecOps sein.
In diesem Blogbeitrag wird erläutert, wie DevSecOps funktioniert und welche Rolle die API-Sicherheit dabei spielt, die Anwendungen, die anhand von DevSecOps-Prozessen entwickelt werden, so sicher wie möglich zu machen.
Was ist DevSecOps?
Um zu verstehen, worum es sich bei DevSecOps handelt, muss man zunächst ein klares Verständnis von DevOps erlangen, dem ursprünglichen Paradigma, auf dem DevSecOps basiert. DevOps bezieht sich auf die Kombination zweier zuvor separater Prozesse: Softwareentwicklung (Dev) und IT-Betrieb (IT Operations, Ops). In der Vergangenheit haben Entwickler Code geschrieben und an IT Operations übergeben, um sie in die Produktion zu integrieren. Dies funktionierte gut in der Zeit einer linearen Entwicklung, als es Monate oder sogar Jahre dauerte, eine neue Version einer Anwendung abzuschließen.
Mit der Einführung agiler Entwicklungsmethoden und der kontinuierlichen Integration/kontinuierlichen Bereitstellung (CI/CD) von Code war die alte Dev/Ops-Aufteilung nicht mehr praktikabel. Es wurde täglich, oder sogar stündlich, ein neuer Code an den Betrieb übergeben, der freigegeben werden musste.
Um alle Aufgaben erfolgreich und umsichtig zu erledigen, war es notwendig, die Abstimmung zwischen den Arbeitsabläufen in der Entwicklung und im Betrieb sicherzustellen. Die kombinierten Prozesse erforderten ein kombiniertes Team.
In der neuen DevOps-Landschaft arbeiten Entwickler und Mitarbeiter im Betrieb zusammen, um Code schnell für die Produktion freizugeben. Dies war keine natürliche Partnerschaft. Wenn überhaupt, wurden die Beziehungen zwischen Entwicklungs- und Betriebsteams tendenziell angespannt, mit einer (veralteten, aber damals praktizierten) Denkweise, die der Produktivität im Wege stand, da Aufgaben meist ohne Kontext delegiert wurden. DevOps hat diese Dynamik durch die Einführung eines Modells der geteilten Verantwortung verändert.
Da Cyberbedrohungen immer ernstzunehmender wurden, war es sinnvoll, dass die Sicherheit Teil des DevOps-Workflows wurde. Aus DevOps wurde DevSecOps. Dies sorgte für Entspannung in der manchmal angespannten Beziehung, wobei die Sicherheit oft als „Verkehrspolizist“ angesehen wird, der den Entwicklungsprozess verlangsamte. DevSecOps stellt eine neue Art der Zusammenarbeit dar. Sicherheit ermöglicht jetzt schnellere – aber sicherere – Entwicklungszyklen.
Wichtige Erfolgsfaktoren bei DevSecOps
Erfolg in DevSecOps zu erzielen, ist kein einfacher Vorgang. Er umfasst die Choreografie mehrerer Teams und Workflows, die jeweils ihre eigenen Ziele verfolgen. Um die komplexe Orchestrierung von Mitarbeitern und Prozessen in DevSecOps zu ermöglichen, ist eine ausgewogene Mischung von Werkzeugen und Prozessen erforderlich. Die Technologie muss beide Seiten unterstützen und sich in der Mitte treffen, indem sie Zugeständnisse beim Prozess macht. Dazu gehört auch Führerschaft.
Um mit DevSecOps erfolgreich zu sein, muss das Sicherheitsteam seine Teststrategie an die neue CI/CD-Welt anpassen. Im Gegenzug müssen DevOps-Teams bei Sicherheitsproblemen mindestens dieselbe Sorgfalt walten lassen wie bei funktionalen Problemen. In der Tat haben weniger ausgereifte Programme Sicherheitsprobleme, die nie behoben werden und im Backlog verbleiben. Der Erfolg erfordert zudem eine „Shift Left“-Strategie, die die Sicherheitsarbeit bereits so früh wie möglich in den DevOps-Workflow integrieren soll.
Sichern von APIs in DevSecOps-Workflows
Die Sicherung von APIs in DevSecOps erfordert API-Sicherheitstests während der Entwicklung und API-Überwachung, sobald APIs in Produktion sind. API-Sicherheitstests sind mit anderen Arten von Sicherheitstests in DevSecOps vergleichbar, es gibt jedoch einige wichtige Unterschiede. Während statische Tests beispielsweise nützlich sein können, um Schwachstellen im Code zu erkennen, können sie nicht effektiv alle API-Schwachstellen identifizieren.
Stattdessen sollten API-Sicherheitstests für DevSecOps sich auf die Ausführung von Black-Box-Tests mit Geschäftslogik konzentrieren. Dieser Ansatz zeigt, wie APIs tatsächlich funktionieren, wenn die Anwendung bereitgestellt wird.
API-Sicherheitstesttools wie „Noname Active Testing“ können Tests dieser Art ausführen. Es kann Schwachstellen erkennen, die in den Top 10 API-Sicherheitsrisiken von OWASP hervorgehoben werden, wie z. B. fehlerhafte Autorisierung auf Objektebene, uneingeschränkte Ressourcennutzung, fehlerhafte Sicherheitskonfigurationen, unsachgemäße Bestandsverwaltung usw. Wenn diese Schwachstellen vorhanden und nicht behoben sind, kann ein Cyberkrimineller, der die API angreift, unbefugten Zugriff auf sensible Daten erhalten.
Noname Active Testing lässt sich aufgrund der hoch konfigurierbaren Testpakete, die es unterstützt, in die CI/CD-Pipeline integrieren. Das System ermöglicht nicht nur „Shift Left“-Testaktivitäten, sondern bietet auch vorinstallierte Integrationen für verschiedene CI/CD-Systeme. Zwischen diesen beiden Faktoren ermöglicht das Tool die Sicherung von APIs in DevSecOps. Die CI/CD-Integration ist von entscheidender Bedeutung, da sie kontinuierliche, schnelle API-Sicherheitstests ermöglicht, die für die Sicherheit moderner Anwendungen erforderlich sind.
Die API-Sicherheit für DevSecOps hört nicht bei der Entwicklung auf. Es hat sich bewährt, den API-Sicherheitsprozess auch in der Produktion fortzuführen. Durch die Überwachung von APIs in der Produktion kann das Sicherheitsteam von DevSecOps APIs erkennen, die wieder Sicherheitslücken offenbaren, z. B. nach einer Neukonfiguration oder Fehlkonfiguration durch einen Administrator während der Produktion. Nach der Erkennung kann die API-Schwachstelle im Rahmen des DevSecOps-Workflows behoben werden.
Fazit
Die Implementierung von DevSecOps stellt mitunter eine Herausforderung dar. Sie erfordert, dass viele Mitarbeiter und Prozesse gut aufeinander abgestimmt sind, damit sich jeder und alles in einem zügigen Tempo bewegen können. API-Sicherheit hat das Potenzial, DevSecOps zu verkomplizieren und den reibungslosen Betrieb zu stören. API-Sicherheitstests sind jedoch für die Entwicklung sicherer Anwendungen von entscheidender Bedeutung. Damit die API-Sicherheit mit DevSecOps gut funktioniert, müssen spezielle Tools für API-Sicherheitstests und -Überwachung verwendet werden.