Die Forscher von SentinelLabs, der Research-Abteilung von SentinelOne, haben einen Supply-Chain-Angriff gegen die Rust-Entwicklergemeinschaft untersucht, der als „CrateDepression” bezeichnet wird.
Rust begann als Projekt von einem Mozilla-Mitarbeiter. Es wurde später zur Kernsprache für einige der grundlegenden Funktionen des Firefox-Browsers und seiner Gecko-Engine. Mittweile gehört Rust zu den beliebtesten Sprachen der Programmierer.
Am 10. Mai 2022 veröffentlichte die „Rust Security Response Working Group“ ein Advisory, in dem sie die Entdeckung einer bösartigen Crate ankündigte, die in der zentralen Ablage der Rust Dependency Community gehostet wird. „Crate“ bedeutet übersetzt Kiste und ist Rusts Bezeichnung für ein Binary oder eine Bibliothek, beziehungsweise den Quellcode, der in eine solche eingebaut wird. Diese infizierte Dependency sucht nach Umgebungsvariablen, die auf ein besonderes Interesse an GitLab Continuous Integration (CI)-Pipelines hindeuten. Infizierte CI-Pipelines werden mit einem Workload der zweiten Stufe versorgt. SentinelLabs hat diese Payloads als Go-Binärdateien identifiziert, die auf dem Red-Teaming-Framework Mythic basieren.
Folgen dieses Angriffs
Angesichts der Art der anvisierten Opfer könnte dieser Angriff als Wegbereiter für nachfolgende Angriffe auf die Lieferkette ausgenutzt werden, die im Verhältnis zu den infizierten Entwicklungspipelines ein größeres Ausmaß haben. Die Forscher vermuten, dass sich die Kampagne als ein bekannter Rust-Entwickler ausgibt, um die Quelle mit Quellcode zu verseuchen, der auf der durch Typosquatting (URL-Betrug durch das Bereitstellen von Websites von fast gleichgeschriebenen URLs, die aber auf bösartige Sites führen) gefälschte Dependency beruht und so die Infektionskette in Gang setzt.
Am 10. Mai 2022 veröffentlichte das Rust-Abhängigkeits-Community-Repository crates.io ein Advisory, in dem die Entfernung des malicious crate namens „rustdecimal” angekündigt wurde. In einem Versuch, die Rust-Entwickler zu täuschen, greift diese das bekannte rust_decimal-Paket an, das für finanzielle Bruchrechnungen verwendet wird. Ein infizierter Rechner wird auf die Umgebungsvariable GITLAB_CI untersucht, um Continuous Integration (CI) Pipelines für die Softwareentwicklung zu identifizieren.
Auf diesen Systemen zieht der Angreifer ein Workload der nächsten Stufe, das auf dem Red-Teaming-Framework Mythic für die Nachnutzung aufgebaut ist. Das Workload ist in Go geschrieben und ein Build des Mythic-Agenten „Poseidon”. Während die letztendlichen Absichten der Angreifer unbekannt sind, könnte das beabsichtigte Ziel je nach den infizierten GitLab-CI-Pipelines zu späteren Angriffen in größerem Umfang auf die Lieferkette führen.
Mit Blick auf einne typischen Kampagnenzyklus, ist das Typosquatten einer beliebten Dependency kein guter Weg, um eine bestimmte Gruppe von Zielen zu infizieren, die GitLab CI-Pipelines verwenden. Es fehlt der Teil des Bildes, in dem Code hinzugefügt oder einem ausgewählten Personenkreis vorgeschlagen wird, der einen Verweis auf die bösartige ausgenutzte Dependency enthält. Genau hier könnte es den Angreifern gelingen, sich als bekannter Rust-Entwickler auszugeben, um eine große Anzahl von Zielgruppen zu infizieren.
SentinelLabs ist dabei weitere Untersuchungen anzustellen und freut sich über Beiträge aus der Rust-Entwicklergemeinde, um diese und weitere infizierte Quellen zu identifizieren.
Fazit
Angriffe auf die Softwareversorgungskette haben sich von einem seltenen Ereignis zu einem äußerst beliebten Ansatz für Angreifer entwickelt, um „mit Dynamit zu fischen” und zu versuchen, ganze Benutzergruppen auf einmal zu infizieren und so größtmöglichen Schaden anzurichten. Im Fall von CrateDepression deutet das gezielte Interesse an Cloud-Software-Erstellungsumgebungen darauf hin, dass die Angreifer versuchen könnten, diese Infektionen für groß angelegte Supply-Chain-Angriffe zu nutzen.
www.sentinelone.com