Software-Lieferkette

Sichere Software durch Bug-Jäger

Sicherheitslücken wie Log4j zeigen: Die Supply Chain für Software ist ein Sicherheitsrisiko. So können Sie ihr Unternehmen schützen.
Von 
CSO | 11. Februar 2022 05:19 Uhr
Um die versteckten Bugs in Ihrer Software zu finden, braucht es findige Jäger.
Um die versteckten Bugs in Ihrer Software zu finden, braucht es findige Jäger.
Foto: Svitlana Kriukova - shutterstock.com

Software-Lieferketten werden immer komplexer. Doch anders als beispielsweise in der Automobil- oder Lebensmittelindustrie sind die Supply Chains, meist in Form von Software-Bibliotheken, hier häufig intransparent und bergen folglich eine Reihe von Risiken.

Die größte Gefahr geht dabei von schwerwiegenden Sicherheitslücken in den Bibliotheken selbst aus. Ein gutes Beispiel ist die kürzlich entdeckte kritische Sicherheitslücke namens Log4Shell (CVE-2021-44228). Dabei handelt es sich um eine Zero-Day-Schwachstelle im Java Logging Framework Log4j, das von vielen Softwareanbietern in ihren Lösungen verwendet wurde, bevor die Lücke an die Öffentlichkeit kam.

Häufig genutzte Software-Funktionen müssen nicht immer neu entwickelt werden. Weitaus sinnvoller ist es, benötigte Funktionalität über Software-Bibliotheken direkt in das Programm, die App, die Website oder das Update zu integrieren. Immer mehr Software-Lösungen verwenden solche Komponenten. Dadurch gefährden Schwachstellen darin nicht nur die Bibliothek selbst, sondern auch jede Software, die sich in ihrem Code darauf beziehen. In der Folge können unzählige Software-Produkte kompromittiert werden

Zu komplex und zu schnell

Um zu vermeiden, dass sich solche Komponenten zum Sicherheitsrisiko entwickeln, gilt es, die Bibliothek auf Herz und Nieren zu prüfen. Einzelne Entwickler oder Teams setzten oft bereits auf automatisierte Test-Tools oder Code-Review durch Kollegen, die nicht an der Entwicklung beteiligt waren. Damit lassen sich intern meist einige der Schwachstellen identifizieren und beheben.

Doch je größer, umfangreicher und komplexer eine Software-Komponente wird, umso schwieriger und langwieriger ist es, potenzielle Sicherheitslücken zu finden. Je später dies im Entwicklungsprozess passiert, desto aufwändiger die Beseitigung.

Agile Software-Entwicklung mit Continuous Development (CD) und Continuous Integration (CI) über DevOps hat auf der anderen Seite vielerorts dazu geführt, dass neue Komponente schneller bereitgestellt werden. Was also tun? Im zunehmenden Wettbewerb kann es sich kein Unternehmen mehr leisten, einerseits die Sicherheit als lästige Pflichtaufgabe hintenanzustellen und andererseits lange Prüfzyklen neuer Software in Kauf zu nehmen. Beide Aspekte müssen daher entsprechend berücksichtigt und unter einen Hut gebracht werden.

Security à la GitHub

An dieser Stelle lohnt beispielhaft ein Blick auf eine der wichtigsten Software-Development-Plattformen, bei der sich viele Entwickler regelmäßig bedienen: GitHub. Das Unternehmen hat sich für eine Sicherheitsstrategie entschieden, die den Namen SecureDevOps trägt. Dahinter verbirgt sich ein umfassender Ansatz, der die Sicherheit im Entwicklungsprozess sicherstellen soll.

Im Rahmen von SecureDevOps erhalten die Entwickler innerhalb der GitHub-Plattform Feedback und Warnungen zu sicherheitsrelevanten Themen - unter anderem von automatisierten Bots, die öffentliche Repositories durchsuchen. Das ermöglicht es ihnen, sich größtenteils aufs Programmieren zu konzentrieren, während sie gleichzeitig den nötigen Input für sicheren Code erhalten.

Zudem hat sich GitHub entschieden, weitere Experten in die Sicherheitsstrategie mit einzubeziehen: ethische Hacker. Das ist deshalb wichtig, weil ethische Hacker unabhängig von internen Denkweisen und Zielen ihrer "Kunden" agieren. Stattdessen bringen Sie neue Perspektiven, Erfahrungen, Fähigkeiten und Fachkenntnisse mit, die sie im Laufe ihrer Karriere oder bei Bug-Bounty-Programmen erworben haben. Dadurch können sie Einblicke geben, die dem internen Sicherheitsteam und den Kontrollen in der bisherigen Entwicklung bislang verborgen blieben.

Das Bug-Bounty-Programm prüft gemeldete Schwachstellen innerhalb von 24 Stunden und stellt sicher, dass die Prämien so schnell wie möglich ausgezahlt werden. Das trägt dazu bei, dass Hacker eine positive Erfahrung bei der Zusammenarbeit mit dem Unternehmen machen und diese auch langfristig fortsetzen möchten. 2020 hat GitHub ein eigenes Team zur Unterstützung seines Bug-Bounty-Programms gegründet.

Einladung an Hacker

Die Zusammenarbeit mit Entwicklungsplattformen ist nicht die einzige Art, wie ethische Hacker für bessere Software sorgen. Unternehmen können auch direkt mit ihnen kooperieren.

Dabei ergänzen die Hacker typischerweise andere Mechanismen der Qualitätssicherung. Bei Zebra Technologies, Hersteller von Datenerfassungs- und automatischen Identifizierungslösungen, kommen die Experten beispielsweise neben Pentests zum Einsatz. Die Hacker sind hier die nächste Stufe der Sicherheitskontrolle, wenn die automatischen Tests an neu entwickelten Lösungen bereits abgeschlossen sind.

"Unsere traditionellen Pentest-Berichte waren nicht in der Lage, sämtliche Lücken zu finden, die ein Gefährdungspotenzial darstellen. Hacker-gestützte Pentests geben uns einen vollständigen Einblick in die Ergebnisse in Echtzeit und ermöglichen es uns, noch während des Tests Korrekturen und erneute Tests durchzuführen", erklärt Dr. Jasyn Voshell, Director for Product and Solution Security bei Zebra.

Wichtig ist in diesem Zusammenhang, dass sich Entwickler und Hacker nicht als Gegner betrachten. Es geht darum, Sicherheits- und Entwicklungsteams dazu zu bringen, zusammenzuarbeiten, um bessere Ergebnisse zu erzielen. Zudem soll es zeigen, dass ein Unternehmen sich bemüht, Schwachstellen früher im Entwicklungsprozess zu entdecken und zu beheben. Auf diese Weise kann das Sicherheitsniveau einer Lösung bereits während des Software-Entwicklungszyklus nachhaltig verbessert werden.

Alles abklopfen

Hacker können in nahezu jeder Stufe der Software-Entwicklung in den Prozess integriert werden. Das beginnt, sobald funktionale Module zum Testen bereitstehen und kann bis zur Implementierung einer kompletten Lösung reichen. Bei Letzterem sollen dann etwa nicht nur Fehler im Code, sondern auch bei der Konfiguration der final implementierten Lösung gefunden werden, um sie rechtzeitig vor dem Go-Live zu beheben. Hacker greifen dabei unter anderem auf das sogenannten White-Box-Testing (Static Application Security Testing, SAST) zurück, wie auch auf das Black-Box-Testing (Dynamic Application Security Testing, DAST).

Der Einsatz von ethischen Hackern, etwa in Bug-Bounty-Programmen, umfasst im Idealfall interne und externe Elemente der Entwicklung sowie sämtlichen Code im Unternehmen. Das reicht von Plattformen und Infrastruktur über Anwendungen und Websites bis hin zu Firmware, und schließt auch deren Updates, Fixes und Upgrades mit ein.

Bei Bug-Bounty-Programmen können im Gegensatz zum klassischen Pentesting auch Spezialisten für das Reverse-Engineering gezielt eingeladen werden. Dadurch lassen sich unter Umständen Sicherheitslücken aufdecken, die in Bibliotheken oder anderen zugrunde liegenden Komponenten auftreten und auch bei Software-Projekten anderer Unternehmen verwendet werden. Die Ergebnisse kommen somit bestenfalls nicht nur dem Initiator des Programms selbst zugute.

Rahmen für ein Bug-Bounty-Programm

Basis für die Arbeit mit ethischen Hackern sind in der Regel die bereits erwähnten Bug-Bounty-Programme. Die Hacker erhalten für jeden gefundenen, dokumentierten und an den Auftraggeber gelieferten Fehler eine Prämie. Diese Prämie bemisst sich nach der Schwere der Lücke und kann von 150 Euro bis in seltenen Fällen über 100.000 Euro reichen.

Unternehmen sollten hierbei aber nicht im luftleeren Raum agieren, sondern auf eine strukturierte Zusammenarbeit achten. So sollten Betriebe den Austausch mit Hackern pflegen, um Schweregrade von Sicherheitslücken zu klassifizieren, Lösungsprozesse zu besprechen und die Höhe der Prämien je nach Schwere der Lücke auszuhandeln. Dies jeweils individuell mit jedem einzelnen Hacker zu versuchen, ist jedoch ineffizient und langwierig.

Hier kommen Bug-Bounty-Plattformen ins Spiel, die der Zusammenarbeit Struktur und allen Beteiligten Sicherheit geben. Sie stellen Leitfäden zur Verfügung, arrangieren Treffen mit Expertenteams für die Services und unterstützen generell bei der Zusammenarbeit mit der Hacker-Community. Die Plattformen kennen die Hacker. Diese müssen sich mit Klarnamen und Kontoverbindung anmelden, um Prämien zu erhalten.

Auch rechtliche Aspekte lassen sich einfacher abdecken. Unternehmen müssen beispielsweise nicht jedem einzelnen Hacker das Reverse Engineering gestatten. Die Kooperation mit der Hacker-Plattform regelt das verbindlich für alle Beteiligten.

Strategie und Zeit

Für Unternehmen, die sich für Bug Bounty interessieren, ist es wichtig, eine Strategie zu haben, um ein Programm über einen längeren Zeitraum aufrechtzuerhalten. Es braucht Zeit, um Beziehungen aufzubauen. Andernfalls kann es für Unternehmen schwierig sein, die Menge des Feedbacks der Hacker zu verarbeiten.

Das wiederum kann dazu führen, dass Hacker das Gefühl haben, ihre Bemühungen werden nicht gewürdigt. In der Folge schlafen die Beziehungen zu den Hackern ein und der Erfolg des Programms rückt in weite Ferne.

Mit einer starken Strategie können Unternehmen diese Fallstricke vermeiden und den größtmöglichen Nutzen aus ihrem Bug-Bounty-Programm ziehen. Sie erhalten einen stetigen Fluss von qualitativ hochwertigem Feedback der Experten, die die Sicherheitsergebnisse für das Unternehmen, seine Entwickler und seine Kunden verbessern. (jd)

Lesetipp: Aqua-Security-Analyse - So schützen Sie Ihre Software-Lieferkette

Busra Demir ist Senior Solutions Architect bei HackerOne.