Glossar-Eintrag
Supply-Chain-Angriff
Angriffsform, bei der nicht das Zielsystem selbst attackiert wird, sondern eine Komponente in der Lieferkette, die das Ziel vertrauensvoll einbindet.
Auch bekannt als: Supply Chain Attack, Lieferketten-Angriff
Ein Supply-Chain-Angriff zielt nicht direkt auf das Opfer, sondern auf eine Komponente in dessen Lieferkette: eine Software-Bibliothek, ein Build-Tool, ein Dienstleister. Wenn die Komponente kompromittiert ist, erben alle Nutzer den Schaden automatisch, weil sie ihr vertrauen.
Klassische Muster
Dependency-Angriffe: Ein Angreifer übernimmt ein NPM-, PyPI- oder RubyGems-Paket und schleust bösartigen Code ein. Jede Anwendung, die das Paket einbindet, zieht ihn sich. Event-stream (2018) und ctx (2022) waren prominente Fälle.
Typosquatting: Angreifer veröffentlichen Pakete mit tippfehler-ähnlichen Namen. Entwickler, die sich vertippen, installieren unbemerkt Malware.
Build-Chain-Kompromittierung: Ein Angreifer manipuliert nicht den Quellcode, sondern die Build-Infrastruktur. Die berühmten SolarWinds-Angriffe 2020 und xz-utils 2024 funktionierten so.
Dienstleister-Angriff: Der Angreifer kompromittiert einen IT-Dienstleister oder MSP. Über dessen Fernzugriff erreicht er viele Kunden auf einmal.
Protokoll-Schwachstellen: Eine Schwachstelle nicht in einer Bibliothek, sondern im Design eines verbreiteten Protokolls. Log4Shell 2021 und die MCP-Lücke 2026 sind Beispiele.
Warum Supply Chain besonders gefährlich ist
- Hohes Vertrauen: Lieferkettenkomponenten werden in der Regel ohne tiefe Prüfung eingebunden.
- Breite Reichweite: Ein erfolgreicher Angriff auf eine populäre Komponente erreicht tausende Organisationen gleichzeitig.
- Schwer zu entdecken: Bösartiger Code in einer vertrauten Abhängigkeit sieht aus wie normaler Code.
- Spätes Auffallen: Kompromittierungen bleiben oft Monate unbemerkt, weil der Angriff sich als legitime Software-Änderung tarnt.
Gegenmaßnahmen
- Software-Bill-of-Materials (SBOM): Eine vollständige Liste aller Abhängigkeiten pflegen.
- Lockfiles reviewen: Unerwartete Änderungen in
package-lock.jsonoderpnpm-lock.yamlernst nehmen. - Dependency-Scanner einsetzen: Socket, Snyk, GitHub Dependabot erkennen verdächtige Pakete.
- Signierte Artefakte bevorzugen: Wo möglich signierte Container-Images, Git-Commits, Paket-Signaturen prüfen.
- Rechte minimieren: Selbst wenn eine Abhängigkeit kompromittiert ist, sollte sie nur das können, was sie wirklich braucht.