SAP npm-Pakete durch Supply-Chain-Angriff kompromittiert: Anmeldedaten gefährdet
Mehrere offizielle **SAP** npm-Pakete wurden bei einem mutmaßlichen Supply-Chain-Angriff kompromittiert, der potenziell mit der Bedrohungsgruppe **TeamPCP** in Verbindung gebracht wird. Der Angriff zielte darauf ab, sensible Anmeldedaten und Authentifizierungstoken von Entwicklersystemen zu stehlen und beeinträchtigte damit Unternehmensentwicklungsumgebungen.

### Kompromittierte Pakete
Sicherheitsforscher haben vier kompromittierte Pakete identifiziert, die nun auf NPM als veraltet markiert sind:
* `@cap-js/sqlite` – v2.2.2
* `@cap-js/postgres` – v2.2.2
* `@cap-js/db-service` – v2.10.1
* `mbt` – v1.2.48
Diese Pakete unterstützen **SAP**s Cloud Application Programming Model (CAP) und Cloud MTA, die in der Unternehmensentwicklung weit verbreitet sind.
### Angriffsvektor
Berichten von **Aikido** und **Socket** zufolge enthielten die kompromittierten Pakete ein bösartiges 'preinstall'-Skript. Dieses Skript wird bei der Paketinstallation automatisch ausgeführt und startet einen Lader namens `setup.mjs`. Der Lader lädt die Bun JavaScript-Laufzeitumgebung von GitHub herunter und verwendet sie, um eine stark verschleierte `execution.js` Payload auszuführen.
### Informationsdiebstahl-Payload
Die Payload fungiert als Informationsdieb und zielt auf eine breite Palette von Anmeldedaten von Entwicklermaschinen und CI/CD-Umgebungen ab, darunter:
* npm- und GitHub-Authentifizierungstoken
* SSH-Schlüssel und Entwickleranmeldedaten
* Cloud-Anmeldedaten für **AWS**, **Azure** und **Google Cloud**
* Kubernetes-Konfiguration und Secrets
* CI/CD-Pipeline-Secrets und Umgebungsvariablen
Die Malware versucht auch, Secrets direkt aus dem Speicher des CI-Runners zu extrahieren, ähnlich wie bei früheren **TeamPCP**-Angriffen.
> "Auf CI-Runnern führt die Payload ein eingebettetes Python-Skript aus, das /proc/<pid>/maps und /proc/<pid>/mem für den Runner.Worker-Prozess liest, um jedes Secret, das 'key' :{ 'value': '...', 'isSecret':true} entspricht, direkt aus dem Runner-Speicher zu extrahieren und dabei jegliche Protokollmaskierung zu umgehen, die von der CI-Plattform angewendet wird", erklärt Socket.
### GitHub als Mechanismus für Datendiebstahl und Dead-Drop
Gesammelte Daten werden verschlüsselt und in öffentlichen GitHub-Repositories unter dem Konto des Opfers hochgeladen. Diese Repositories enthalten die Beschreibung: "Ein Mini Shai-Hulud ist erschienen", was an den **Bitwarden** Supply-Chain-Angriff erinnert.

*Github-Repositories, erstellt mit der Beschreibung "Ein Mini Shai-Hulud ist erschienen"*
*Quelle: Aikido*
Die Malware nutzt auch GitHub-Commit-Suchen als Dead-Drop-Mechanismus, um Token abzurufen.
> "Die Malware sucht nach dieser Zeichenkette in GitHub-Commits und verwendet übereinstimmende Commit-Nachrichten als Token-Dead-Drop", erklärt Aikido.
>
> "Commit-Nachrichten, die OhNoWhatsGoingOnWithGitHub:<base64> entsprechen, werden in GitHub-Token dekodiert und auf Repository-Zugriff geprüft."
### Selbstverbreitung
Ähnlich wie bei früheren Angriffen enthält die Payload Code zur Selbstverbreitung auf andere Pakete. Mithilfe gestohlener npm- oder GitHub-Anmeldedaten versucht sie, andere Pakete und Repositories, auf die sie Zugriff erhält, zu modifizieren und denselben bösartigen Code einzuschleusen, um die Kompromittierung weiter zu verbreiten.
### Zuordnung
Forscher schätzen mit mittlerer Zuversicht, dass **TeamPCP** hinter diesem Angriff steckt, und verweisen auf ähnlichen Code und Taktiken, die bei früheren Supply-Chain-Angriffen gegen **Trivy**, **Checkmarx** und **Bitwarden** verwendet wurden.
### Untersuchung läuft
Die Methode, mit der der npm-Veröffentlichungsprozess von **SAP** kompromittiert wurde, ist noch unklar. Ein Sicherheitstechniker vermutete, dass ein NPM-Token möglicherweise über einen fehlkonfigurierten **CircleCI**-Job offengelegt wurde.
**SAP** hat auf Anfragen zu Kommentaren bezüglich des Vorfalls noch nicht reagiert.