So können sich Nutzer jetzt vor „Substitution-Attacks“ schützen
Aqua Security hat eine Schwachstelle in der API des zu GitHub gehörenden Anbieters npm aufgedeckt, über die Angreifer die Software-Supply-Chain angreifen können. npm ist ein Paketmanager für die JavaScript-Laufzeitumgebung Node.js. Über die Schwachstelle können Cyberkriminelle herausfinden, ob private Pakete auf dem Paketmanager existieren und anschließend Mitarbeiter über einen „Substitution Attack“ zum Herunterladen von ähnlich klingenden, gefälschten Versionen verleiten. Doch es gibt Möglichkeiten, wie Unternehmen die Risiken minimieren können.
Timing-Angriff legt Details von Paketen offen
Aquas Forscher konnten zeigen, dass Cyberkriminelle die Existenz von für die Softwareerstellung genutzten privaten Paketen mit Hilfe eines Timing-Angriffs über die API von npm erkennen können. Wenn Angreifer etwa fünf aufeinanderfolgende Anfragen nach Informationen über ein eventuell genutztes Code-Paket senden und dann die von npm zur Beantwortung benötigte Zeit analysieren, können sie feststellen, ob dieses Paket existiert oder früher existierte. Dies lässt den Schluss zu, dass dieser Fehler in die Architektur der API eingebettet ist und auf den Caching-Mechanismus zurückzuführen ist.
Angriff auf die Supply-Chain über gefälschte Code-Pakete
In den vergangenen Jahren registrierten Aquas Forscher einen drastischen Anstieg der Angriffe auf die Software-Supply-Chain um mehrere hundert Prozent. Diese von Team Nautilus, der Forschungseinheit von Aqua Security, entdeckte Angriffsart ist ein Beispiel einer breiteren Kategorie von Supply-Chain-Attacken.
In einigen Fällen versuchen die Angreifer, sich Zugang zu Open-Source-Paketen und Projekten zu verschaffen und diese mit bösartigem Code zu vergiften. In anderen Fällen täuschen sie vor, private oder öffentliche Pakete beziehungsweise Projekte zu sein, und schreiben deren Namen absichtlich falsch. Ziel ist es, ahnungslose Opfer dazu zu bringen, diese anstelle der legitimen Pakete herunterzuladen (beispielsweise „Padnas“ anstelle des Python-Pakets „Pandas“).
Gegenmaßnahmen
Aqua Security hat die Ergebnisse seiner Untersuchung an GitHub weitergegeben. Dem Anbieter zufolge ist die Architektur dieser API so beabsichtigt und es sind derzeit keine Änderungen geplant. Um sich vor Timing-Angriffen über die npm-API und folgenden Substitution Attacks zu rüsten, rät Aqua Security zu folgenden Gegenmaßnahmen:
• IT-Verantwortliche sollten eine Liste aller privaten und öffentlichen Pakete ihres Unternehmens auf allen Plattformen zur Paketverwaltung erstellen.
• Sie sollten außerdem aktiv nach folgenden Paketen suchen: „typo squatting“, „lookalikes“ oder „masquerading“ – und sich vergewissern, dass es keine anderen Pakete mit demselben Namen wie die internen privaten Pakete gibt.
• Falls sie ähnliche Pakete finden, sollten sie prüfen, ob diese Schad-Software enthalten – und bei Bedarf die betroffenen Kollegen informieren.
• Wenn sie keine öffentlichen Pakete finden, die den internen ähnlich sind, sollten sie die Erstellung öffentlicher Pakete als Platzhalter erwägen, um solche Angriffe zu verhindern.
• Weitere Informationen darüber, wie man sich bei der Nutzung von npm schützen kann, finden sich im npm-Blogbeitrag „Avoiding npm substitution attacks“.