Mit der zunehmenden Bedeutung von Software für Unternehmen aller Größen und Branchen sowie der sich verschärfenden Bedrohung durch Cyberkriminalität wächst auch die Notwendigkeit, die Software-Lieferkette zu schützen. Es geht in der aktuellen Lage nicht mehr darum, ob Unternehmen ihre Software-Lieferkette absichern wollen oder nicht, sondern darum, ob sie dies erfolgreich umsetzen.
Unter „Software-Lieferkette“ verstehe ich dabei alle Komponenten einer Software und die Prozesskette, die zur Erstellung und Einführung neuer Software im Unternehme durchlaufen wird. Sie umfasst alle Komponenten, die in einer Anwendung verwendet werden, einschließlich des speziell dafür erstellten Codes, Open-Source-Software, proprietärer Anwendungen und Tools von Drittanbietern, Binärdateien, Builds, Paketierungsskripte und alle Abhängigkeiten, die für die Ausführung der Software erforderlich sind. Dazu gehören auch die zugrunde liegende Infrastruktur und sogar die automatisierte Build-Pipeline selbst. All diese Komponenten und Prozesse sind potenzielle Schwachstellen in der Software-Lieferkette, die die Gesamtsicherheit von Software beeinträchtigen können – und genau das stellt ein Risiko für ein Unternehmen und seine Kunden dar.
Für eine sichere Software-Lieferkette kommt es insbesondere auf drei Komponenten an:
Nur sauberer Code ist sicherer Code. Darüber hinaus ist sauberer Code das Rückgrat der allgemeinen Anwendungssicherheit, der Entwicklungseffizienz und einer schnellen Veröffentlichung. Wenn der Code nicht sauber ist, kann er eine Menge nachgelagerter Probleme verursachen, vor allem, wenn diese erst identifiziert werden, nachdem der Code sich bereits im Produktiveinsatz befindet. In diesem Fall kann es sehr viel schwieriger sein, die Ursache zu finden und zu beheben.
Bei der Entwicklung ist von Beginn an auf die Sauberkeit des Codes zu achten. Dazu gehört die Identifizierung und Behebung von Fehlern durch die Überprüfung von Abhängigkeiten, die Analyse von Code, das Signieren von Binärdateien usw. So werden Maßnahmen zur Software-Sicherheit frühzeitig in den Entwicklungsprozess eingebunden. Es ist wichtig, dass Entwickler präventive Sicherheitsmaßnahmen verstehen und beherzigen, während sie Code erstellen. Wird Software-Sicherheit jedoch nur aus der Perspektive der Softwareentwicklung betrachtet, wird die Bedeutung von Sicherheit in den Bereitstellungs- und Produktivprozessen vernachlässigt. Deshalb ist es wichtig, dass die Verantwortung für die Sicherheit nicht allein bei den Entwicklern liegt.
Insbesondere gelten die folgenden drei Tipps:
Oft scheint für Code nach dessen Bereitstellung zu gelten: „Aus den Augen, aus dem Sinn.“ Aber das sollte nicht der Fall sein. Insbesondere bei häufigen und schnellen Releases kann sich das Team nach der Bereitstellung nicht zurücklehnen und die Hände in den Schoß legen. Stattdessen ist es wichtig, den Code im Auge zu behalten, nachdem eine Anwendung in Produktion gegangen ist, und sicherzustellen, dass man in der Lage ist, schnell zu reagieren, sobald ein Software-Sicherheitsproblem auftritt.
Der Prozess der Fehlerbehebung besteht aus zwei grundlegenden Elementen, der Erkennung von Sicherheitsproblemen und der eigentlichen Fehlerbeseitigung. Für jedes Element hat sich eine spezielle Metrik in der Branche etabliert:
Zwischen der Entdeckung eines Sicherheitsproblems und seiner Behebung liegt natürlich immer eine gewisse Zeitspanne. Ist man mit einer schwerwiegenden Sicherheitslücke konfrontiert, ist es unglaublich wichtig, was in dieser Zeit – zwischen Erkennung und Behebung – tatsächlich getan wird. Hier können neue Techniken wie die Feature-Flagging und automatische Rollbacks helfen. In der Tat haben diese neuen Techniken dazu geführt, dass sich eine neue Metrik in der Branche immer stärker durchsetzt: Die Mean time to Mitigate (MTTM) oder mittlere Zeit bis zur Schadensbegrenzung.
Bei der Schadensbegrenzung geht es nicht darum, ein Problem zu beheben. Es geht darum, eine Schwachstelle zu schließen, sobald man sie entdeckt hat, um den potenziellen Schaden zu begrenzen, während das Team an der Entwicklung einer endgültigen Lösung arbeitet. Dabei kann es sich beispielsweise um das Herunterfahren einer Website oder das Abschalten einer Anwendung oder Funktion handeln. Wird eine Sicherheitslücke oder eine Schwachstelle entschärft, werden böswillige Akteure sofort daran gehindert, weiteren Schaden anzurichten. Nun kann man gefahrlos mit der Behebung der zugrunde liegenden Schwachstelle fortfahren.
Die dritte wesentliche Komponente einer Software-Lieferkette besteht darin, die Sicherheit bei der Bereitstellung der Software und die größtmögliche Integrität des Prozesses zu gewährleisten. Im Wesentlichen geht es bei der sicheren Bereitstellung darum, alle Dinge zu überwachen, die im Bereitstellungsprozess abseits des Codes selbst schiefgehen können. Es gilt zu bedenken: Selbst wenn der Code über jeden Zweifel erhaben ist, besteht ohne eine sichere Pipeline immer noch das Risiko, dass böswillige Akteure oder menschliche Fehler zu Problemen führen.
Um das zu vermeiden, sollten Sie wiederum drei Tipps beherzigen:
Resümee
Die Verantwortung für die Vermeidung von Schwachstellen und die Minimierung von Risiken kann sich zu einer echten Belastung auswachsen. Wenn man weiß, wo man ansetzen muss, und sicherstellt, dass die richtigen Maßnahmen auf alle Komponenten der Software-Bereitstellung angewandt werden, kann die Last dieser Verantwortung gemildert werden. Die Entwicklung von sauberem Code, die Entschärfung von Sicherheitsproblemen sowie ein möglichst sicherer Softwarebereitstellungsprozess sind Schritte, die helfen können, den Kampf gegen böswillige Akteure und Sicherheitsverletzungen zu bestehen.
Bankhaus Metzler und Telekom-Tochter MMS testen, inwieweit Bitcoin-Miner das deutsche Stromnetz stabilisieren könnten.
Mit 1,7 Exaflops ist El Capitan nun der dritte Exascale-Supercomputer weltweit. Deutschland stellt erneut den…
Der deutsche Hyperscaler erweitert sein Server-Portfolio um vier Angebote mit den neuen AMD EPYC 4004…
Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…
Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…
Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…