Sicherheit in der Software Supply Chain – DevOps braucht DevSecOps

Im Gespräch erklärt Frank Fischer, Product Marketing bei Snyk, warum Open Source in Software-Projekten gleichzeitig Fluch und Segen sein kann, warum Sicherheit integraler Bestandteil jedes Prozessschrittes in DevOps werden muss und das Security im Wesentlichen aus den drei Aspekten Technologie, Prozesse und Menschen besteht und die alle gleich bedacht und gestärkt werden müssen.


In den letzten Wochen fanden einige Messen und Kongresse rund um das Thema Cyber Security statt. Was sind aktuell die wichtigsten Themen, was beschäftigt die Branche?

Ein in unseren Gesprächen immer präsentes Thema war Supply Chain Security. Um schnell und hochwertig Software zu entwickeln, haben viele dieser Anwendungen eine Software Supply Chain, welche teilweise in Händen von Independent Software Vendors liegt, zumeist aber aus Open-Source-Projekten besteht. Darin liegt gleichzeitig Fluch und Segen. Auf der einen Seite ist es eben super einfach, ein Open-Source-Projekt aufzusetzen, das bringt eine Menge Dynamik und Innovation in die Entwicklung. Andererseits läuft das Ganze ziemlich ungeregelt ab. Und das birgt, wie wir letztes Jahr beispielsweise bei der Log4J-Sicherheitslücke gesehen haben, ein großes Risiko, da die Softwarebörsen noch nicht verbindlich auf die Qualität und Sicherheit der über sie laufenden Projekten achten müssen. Allein im ersten Quartal diesen Jahres wurden über 8.000 Sicherheitsschwächen registriert.

Daher hat nun auch die US-Regierung vor Kurzem eine von Google bereits letztes Jahr initiierte Initiative aufgegriffen. Diese nennt sich Open Source Security Foundation (Open SSF) und soll eine Softwarebörse schaffen, über die man qualitätsgeprüfte Bibliotheken herunterladen kann. Ich denke, das ist ein wichtiger Schritt, wird aber das Problem der Supply Chain Sicherheit nicht grundsätzlich lösen. Es wird immer noch das Problem geben, dass jedes Softwareprojekt Abhängigkeiten hat, die wiederum Abhängigkeiten haben. Das ergibt dann schnell eine Art Baumstruktur an Sicherheitsrisiken, die verwaltet werden muss. Damit muss sich die Branche auseinandersetzen.


Ein immer wieder auftretender Begriff im Bereich Cyber Security ist IAC, also Infrastructure as Code. Spielte das auch eine Rolle bei Ihren Gesprächen?

Ja, das ist dieses Jahr das zweite große Thema. Bei Verbindungen, Servern und Datenströmen wird dies im Zeitalter der Cloud immer wichtiger. Im Endeffekt liegt dem Ganzen eine Cloud-Infrastruktur zugrunde, für die der Anbieter, also etwa Amazon oder Google, verantwortlich ist. Auf dieser Cloud definiert dann der einzelne Programmierer mit Hilfe eines Skriptes, also Software, die jeweilige anwendungsspezifische Architektur. Ab diesem Layer ist der einzelne Netzwerker selbst verantwortlich. Dieser Bereich wird von uns mit automatischen Tools adressiert. Diese überprüfen die Konfiguration, etwa auf Sicherheit, und helfen den Entwicklern, einen unbeabsichtigten Unterschied zwischen gewollter sowie tatsächlicher Konfiguration zu entdecken und zu beheben.

 

 


Wie bewerten Sie die Rolle von DevOps? Können sie Unternehmen helfen, schneller, agiler und kostengünstiger zu entwickeln?

In den letzten Jahren hat DevOps einige ganz fundamentale Probleme gelöst, die man im Software-Entwicklungsprozess in den Unternehmen bisher gesehen hat. DevOps bedeutet, Entwickler enger in den Betrieb von Software einzubinden. Ein großer Mehrwert von DevOps ist der Gedankengang des agilen Entwickelns, dass ich also kleine Schritte mache, dass ich sofort versuche, mit diesem Schritt an den Markt zu gehen, dass ich versuche zu sehen, wie wird dieser Schritt akzeptiert und umgesetzt.

Wenn man jedoch mit kleinen Änderungen an den Markt gehen und etwa dreimal am Tag deployen will, ist dies ohne DevOps einfach nicht machbar. Und weil sie ihre Anwendungen immer schneller und flexibler anbieten möchten, liebäugeln inzwischen immer mehr Unternehmen mit DevOps. Aktuell sind es unseren Zahlen nach bereits 70 Prozent aller Unternehmen, die ihre Geschäftsprozesse entsprechend abbilden. Ich glaube, Unternehmen müssen mittlerweile mit einem DevOps-Modell fahren, um schneller sowie agiler am Markt zu sein und Dinge zu testen, dynamisch zu verändern sowie schnell reagieren zu können, wenn sich Chancen am Markt ergeben.

Wenn man das jetzt zu Ende denkt, dann darf das Thema Sicherheit nicht in einem Prozessschritt kurz vor Inbetriebnahme in den DevOps-Prozess gepackt werden, weil man sonst das Sicherheitsteam zum Flaschenhals macht. DevOps braucht DevSecOps – das heißt Sicherheit muss integraler Bestandteil jedes Prozessschritts in DevOps werden.


Also spielt Automation jetzt schon eine große Rolle. Sie sprechen in diesem Zusammenhang von Symbolic AI. Was bedeutet das?

Angesichts der stark gestiegenen und komplexen Business-Anforderungen sowie der dafür nötigen Tools setzen insbesondere größere Firmen zunehmend auf Automatisierung. Tatsächlich ist eines der Kernelemente von DevOps die Automatisierung von Prozessen. Dies ist optimal für künstliche Intelligenz. Diese sogenannte Sub Symbolik AI – oder Machine Learning – wird verwendet, um große Datenmenge auf Muster zu untersuchen und dann ein System darauf zu trainieren, diese Muster wiederzuerkennen und entsprechend zu klassifizieren.

Bei Snyk verwenden wir zusätzlich Symbolic AI. Mit Hilfe von vordefinierten Regeln suchen unsere Tools nach Mustern. Auch wenn keine Trainingsdaten verfügbar sind, kann ich bereits eine Regel definieren, nach der mein Programm Ausschau halten und dann reagieren soll. Ein Beispiel dafür ist unsere Infrastructure as Code Solution, die nach den vom Hersteller vorgegebenen Standards dessen Cloud konfiguriert. Wir haben hierfür die zugrunde liegenden Regelsätze in unsere Symbolic AI integriert, lassen sie über die vorhandene Konfiguration laufen und geben dann dem Entwickler Ratschläge, etwa, wenn dieser Punkt geändert wird, steigt die Performance oder die Sicherheit.

Wir verwenden Symbolic AI bei der statischen Code Analyse im Rahmen einer sogenannten Constraint-based Analysis. Dabei generieren wir aus dem Source Code Fakten und können dann etwa sagen, wie eine Variable durch Applikationen fließt und als Parameter für eine Funktion dient. Diese automatisiert feststellbaren Fakten nennt man Constraints. Anschließend kann man auf Basis dieser Constraints Regelsätze anwenden und sagen, wenn folgendes Muster existiert, dann ist das eine Schwäche im Code. Dies ermöglicht eine Analyse auf einer höheren Ebene, die versucht, den Gedankengang des Programmierers nachzuvollziehen. Das Besondere ist, dass wir für Snyk Code Symbolic und Sub-Symbolic AI kombinieren und damit vom Wissen der globalen Open Source Community lernen.


Nun ist es ja mittlerweile so, dass auch Management Service Provider wie AWS vermehrt angegriffen werden. Ziele sind also gar nicht mehr unbedingt Unternehmen, sondern die Anbieter. Und das wird ja weiterhin zunehmen.

Ja, aber man muss eindeutig feststellen, dass Cloud-Anbieter wie Amazon, Microsoft oder Google mehr Wissen und Ressourcen dafür haben, eine professionelle sichere Infrastruktur zu schaffen als irgendein Unternehmen, dessen Kernkompetenz eben nicht der Betrieb einer Cloud ist. Aber Anwender müssen ihren Teil zur Sicherheit beitragen. Und für 99 Prozent der Unternehmen ist Security extrem wichtig auf ihrem Weg in die Cloud. Security besteht im Wesentlichen aus den drei Aspekten Technologie, Prozesse und Menschen und die müssen alle gleich bedacht und gestärkt werden. Dies ist nicht nur Unternehmen immer bewusster geworden, sondern auch Behörden und Regierungen sind hier zunehmend involviert.

Wir haben mittlerweile zum Beispiel in New York die klare Gesetzgebung, dass jedes Unternehmen auch einen Chief Information Security Officer (CISO) haben muss. Der muss benannt und den staatlichen Stellen angezeigt werden. Wir gehen davon aus, dass diese Anforderung weltweit kommen wird. Und die US-Regierung mit ihrer Beteiligung an Open SSF oder GDPR in Europa sind ja ebenfalls bereits Beispiele dafür, dass immer mehr ins öffentliche Bewusstsein rückt, wie wichtig die weltweite Datensicherheit mittlerweile geworden ist.

 


Illustration: © astel design/shutterstock.com