Abschnitt vier der „Executive Order zur Verbesserung der Cybersicherheit des Landes“ führte viele Menschen in der Technologiebranche an das Konzept der „Software Supply Chain“ und deren Sicherung heran. Wenn Sie Software entwickeln und hoffen, sie an eine oder mehrere Bundesbehörden zu verkaufen, müssen Sie darauf achten. Selbst wenn Sie nicht vorhaben, an Regierungen zu verkaufen, zahlt es sich aus, Ihre Software Supply Chain zu verstehen und zu lernen, wie Sie sie absichern können, da dies zu einer stärkeren Sicherheitsbasis und den damit verbundenen Vorteilen führt. Dieser Artikel zeigt drei Möglichkeiten, Ihre Software Supply Chain Security zu optimieren.

Was ist Ihre Software Supply Chain? Es handelt sich im Wesentlichen um alles, was zur Erstellung einer Software gehört: von der integrierten Entwicklungsumgebung (IDE), in der der Entwickler den Code schreibt, über Abhängigkeiten von Drittanbietern, Build-Systeme und Skripte bis hin zur Hardware und dem Betriebssystem, auf dem die Software ausgeführt wird. Instabilitäten und Schwachstellen können, absichtlich oder nicht, von der Entstehung bis zur Bereitstellung und darüber hinaus eingeführt werden.

1: Halten Sie Ihre Geheimnisse geheim
Einige der größeren Cybersicherheitsvorfälle von 2023 ereigneten sich, weil böswillige Akteure Geheimnisse im Klartext fanden. Geheimnisse sind in diesem Zusammenhang beispielsweise Benutzername- und Passwortkombinationen, API-Schlüssel, Signaturschlüssel und andere. Diese Schlüssel zu Unternehmensdomänen wurden an Stellen gefunden, an denen sie nicht hätten sein sollen.

Als Sourcegraph einen Code auf einer öffentlichen Instanz veröffentlichte, der einen festcodierten Zugriffstoken enthielt, wurde Sourcegraph gehackt. Der Token wurde verwendet, um andere Konten zu erstellen und den Zugriff auf die Sourcegraph API kostenlos zu ermöglichen. Eine Hackergruppe erlangte Zugang zu einer internen Microsoft-Debugging-Umgebung und fand einen Signaturschlüssel in einem Absturz-Dump, der ihnen die Erstellung von E-Mail-Anmeldeinformationen ermöglichte.

Tools wie GitGuardian ermöglichen es Ihnen, Ihren Code, sowohl alte als auch neue Versionen, auf versehentlich veröffentlichte Geheimnisse oder Versuche, sie zu veröffentlichen, zu überprüfen. Es ist wichtig zu wissen, welche Geheimnisse möglicherweise veröffentlicht wurden, diese zu beheben und Vorkehrungen in Form von automatisierten Tools und Code-Reviews zu treffen, um sicherzustellen, dass andere Schlüssel nicht nach außen gelangen.

2: Verwenden Sie SCA, um Ihre BOM zu erstellen
In der Fertigung ist eine Bill of Materials (BOM) ein umfassender Bestand, der alle Rohstoffe, Komponenten und Anweisungen enthält, die für die Konstruktion, Herstellung oder Reparatur eines Produkts oder einer Dienstleistung erforderlich sind. Sowohl die Cybersicherheitsvorschriften als auch bewährte Verfahren setzen auf die Idee einer Software-BOM, die Transparenz und Herkunft aller Komponenten bietet, die für den Aufbau Ihrer Software erforderlich sind. Sie können jedoch keine BOM anhand Ihrer aufgeführten Abhängigkeiten erstellen.

Paket-Repositories wie NPM, PyPI und die Integration von Open-Source-Frameworks und -Bibliotheken wurden dafür gefeiert, dass sie die Softwareentwicklung effizienter gemacht haben, da Entwickler nicht jedes Mal das Rad neu erfinden mussten. Stattdessen konnten Entwickler kostenlose Pakete finden, die die gewünschte Funktionalität implementierten, und sie problemlos in ihre Software integrieren.

Sie haben Entwickler jedoch einer wachsenden Abhängigkeitsschleife ausgesetzt. Es kann vorkommen, dass Sie das Gefühl haben, dass es „Schildkröten bis ins Unendliche“ gibt, da Ihre Abhängigkeiten weitere Abhängigkeiten haben usw. Sie könnten sogar Unterabghängigkeiten von vier verschiedenen Versionen desselben Pakets haben, die alle unterschiedliche Schwachstellen aufweisen.

Software Composition Analysis (SCA)-Tools durchsuchen automatisch den Code Ihres Projekts und identifizieren alle externen Komponenten, die Sie verwenden, einschließlich aller Untergliederungen. Anschließend werden Überprüfungen durchgeführt, um sicherzustellen, dass diese Komponenten auf dem neuesten Stand sind, sicher sind und den Lizenzanforderungen entsprechen.

Dies hilft nicht nur dabei, zu identifizieren, welche Abhängigkeiten bekannte Schwachstellen aufweisen, damit Sie sie aktualisieren oder ersetzen können, sondern das ist auch eine große Hilfe, wenn Sie eine saubere BOM erstellen müssen, die von potenziellen Kunden und Regulierungsbehörden überprüft werden kann.

3: Hacken Sie sich selbst
Ethical Hacking ist älter als die meisten Absolventen aktueller Informatikstudiengänge. Wie bei einem kürzlichen Webinar zum Thema Ethical Hacking erläutert wurde, handelt es sich um das „Identifizieren und Ausnutzen von Schwachstellen in Computersystemen oder Netzwerken auf verantwortliche und gesetzestreue Weise“. Beachten Sie die Betonung auf „verantwortlich“ und „gesetzestreue“.

Im Wesentlichen verwenden ethische Hacker die meisten Techniken wie „Black Hat“ Hacker, um Schwachstellen in einem System zu finden und auszunutzen. Der entscheidende Unterschied besteht jedoch darin, dass sie dies mit Erlaubnis tun. Sie beschränken sich auf die Systeme, für die sie die Erlaubnis zum Hacken haben, und dokumentieren alles, damit ihre Entdeckungen reproduziert und von dem Team/Client analysiert werden können, dem sie diese melden.

Obwohl dies häufig in einem späteren Stadium des Entwicklungsprozesses erfolgt, ist es wichtig. Wenn sie Ihre Abhängigkeiten feststellen und ihre eigene SCA durchführen können, um verwundbare Abhängigkeiten zu identifizieren, ist das Spiel vorbei. Wenn sie einen ungeschützten Einstiegspunkt finden können, ist das Spiel vorbei. Wenn sie eine Webanwendung testen und dabei Debug-Code finden, der vertrauliche Ausgaben in die Konsole schreibt, ist das Spiel vorbei. Einige Schwachstellen können das Ende bedeuten, andere erfordern möglicherweise nur das Entfernen einer Debug-Code-Zeile.

Wenn ethisches Hacking Teil des Freigabeprozesses, von Bug-Bounty-Programmen und mehr ist, kann sichergestellt werden, dass Sie Probleme beheben, bevor Sie sich dafür entschuldigen müssen, sie an Regulierungsbehörden zu melden und Aufräumarbeiten durchzuführen.

Zusammenfassung
Wenn Sie Regulierungsbehörden oder Kunden zufrieden stellen möchten, kann eine Stärkung Ihrer Software Supply Chain Security dazu führen, dass Sie mehr Zeit damit verbringen, Ihre Software zu verkaufen, und weniger Zeit damit, sich dafür zu entschuldigen. Und während diese drei Tipps Ihnen eine solide Grundlage bieten, gibt es noch viel mehr im SLSA-Sicherheitsframework zu entdecken. Durch die Arbeit mit dem Framework und die Sicherung Ihrer Supply Chain können Sie (in den Worten der SLSA-Website) „von ‚ausreichend sicher‘ zu so widerstandsfähig wie möglich an jedem Glied in der Kette“ gelangen.