Neues Application Security Toolkit deckt Abhängigkeitsverwirrungsangriffe gen
[ad_1]
Abhängigkeitsverwirrung ist ein lästiges Problem für dieser Softwareentwicklung, da böswillige Akteure eine Vielzahl von Tricks anwenden, um Entwickler und Integratoren dazu zu einfahren, bösartige Softwarekomponenten in ihre Codebasis zu integrieren. Anstatt die gewünschte Funktionsumfang in die Verwendung zu bekommen, erhalten die Entwickler eine Verwendung, die sich verschieden verhält wie erwartet oder eine Hintertür, die von Unbefugten ausgenutzt werden kann.
Apiiro hat den Dependency Combobulator veröffentlicht, ein Open-Source-Toolkit gen Pythonschlange-Grund, dasjenige Unternehmen eine Möglichkeit bietet, sich vor dieser Sorte von Supply-Chain-Angriffen zu schützen. Dependency Combobulator arbeitet out-of-the-box mit npm (Javascript-Pakete) und maven (Java-Pakete) Paketverwaltung, kann dagegen sogar gen andere Paketverwaltungssysteme erweitert werden, so dasjenige Unternehmen.
Herkunft des Jahres hat dieser Sicherheitsforscher Alex Birsan gezeigt, wie wie am Schnürchen es ist, Codekomponenten in öffentliche Paketmanager und Kennung-Repositorys hochzuladen und Entwickler dazu zu verleiten, sie herunterzuladen. Birsan konnte im Rahmen dieser Wissenschaft Fakten von Unternehmen wie Tesla, Apple und Microsoft exfiltrieren. Kombinieren Monat später entfernte PyPI oder dieser Pythonschlange Package Klassifizierung 3.653 bösartige Pakete – darunter eine nicht autorisierte Version von CuPy, einer Bibliothek pro Nvidias Parallel-Computing-Plattform CUDA – mit derselben Angriffsmethode.
Jener Exploit-Prozess pro zusammenführen Abhängigkeitsverwirrungsangriff (oder Paketnamensquatting-Übergriff) ist ziemlich wie am Schnürchen, da er damit beginnt, dass dieser böswillige Handelnder ein Codepaket mit demselben Namen wie ein privates internes Päckchen in ein öffentliches Repository hochlädt. Jener Handelnder könnte den Namen dieser privaten Pakete herausfinden, während er Konfigurationsdateien in publik verfügbaren Projekten durchsucht. Wenn ein Entwickler jedweder Abhängigkeiten pro ein Projekt aktualisiert und sowohl aus privaten wie sogar aus öffentlichen Repositorys zieht, greift dieser Build-Prozess standardmäßig dasjenige bösartige Päckchen aus dem öffentlichen Repository und nicht aus dem privaten internen Päckchen. Denn dieser Entwickler herausfindet, dass dasjenige falsche Päckchen gezogen wurde, wurde dieser Schadcode schon im Kennung umgesetzt und dasjenige Projekt kompromittiert. Und wenn dieser Build wie Teil eines automatisierten Prozesses durchgeführt wurde, wie dies in einer Continuous Integration/Continuous Delivery (CI/CD)-Umgebung dieser Kernpunkt wäre, könnte jene spezielle Substitution pro wenige Zeit unbemerkt bleiben.
Abhängigkeitsverwirrung wiedererkennen
Anwendungssicherheitsteams werden den Dependency Combobulator sehr wahrscheinlich gen CI-Niveau implementieren, sagt Moshe Zioni, Vizepräsident pro Sicherheitsforschung für Apiiro. Wenn dasjenige Team wie Jenkins pro seinen CI-Prozess verwendet, kann dasjenige Toolkit wie Teil des Build-Prozesses verwendet werden. Ein anderer Ort, um dasjenige Toolkit zu verwenden, wären Kennung-Commits und Push-Anforderungen, für denen jede Tapetenwechsel dieser Abhängigkeitsimporte zur Begehung und Entscheidungsfindung an den Abhängigkeitskombobulator gesendet wird.
„Es kann potenziell hoch ein Plugin verbunden werden, dagegen dasjenige ist ein komplizierterer Weg, dieser nicht ohne weiteres sofort unterstützt wird und wenige zusätzliche Entwicklungsarbeit erfordert“, sagt Zioni.
Es gibt zahlreiche andere Tools, die homolog wie Dependency Combobulator walten. Snyk bietet snync an, ein Open-Source-Tool, um potenzielle Fälle von Abhängigkeitsverwirrung im Kennung-Repository zu wiedererkennen. Sonatype bietet Entwicklern gen GitHub ein Dependency/Namespace Confusion Checker-Skript, dasjenige prüft, ob ein Projekt Artefakte mit demselben Namen zwischen Repositorys aufweist und ob dieser Entwickler in dieser Vergangenheit von einem Dependency Confusion-Übergriff betroffen war. Die Nexus Firewall von Sonatype kann verdächtige oder bösartige Open-Source-Komponenten unter Quarantäne stellen, vor sie gar in dasjenige Repository des Unternehmens gelangen. Es gibt private Registrys (Verdaccio richtet eine private npm-Registry ein) und dedizierte Paketverwaltungssysteme (wie Cloudsmith), mit denen Unternehmen jene Sorte von Übergriff vermeiden können.
Minimierung dieser Risiken
Es gibt Möglichkeiten, wie Unternehmen jene Sorte von Risiko pro die Softwarelieferkette minimieren können. GitHub, dem npm gehört und die öffentliche npm-Registry verwaltet, empfiehlt Folgendes, um mit Abhängigkeitsverwirrung umzugehen: Verwenden von Bereichen pro interne Pakete, um explizit anzugeben, wo sich die Pakete entscheiden; Stellen einer .npmrc-File im Stammverzeichnis des Projekts, um die beabsichtigte Registrierung explizit festzulegen; Vorsicht für dieser Verwendung von Proxys; und umgehend reagieren, wenn irgendetwas während des Build-Prozesses fehlschlägt.
Eine andere Sache, die Organisationen tun können, ist, Squat prophylaktisch ihre eigenen privaten Abhängigkeitsnamen zu benennen. Während die Organisation die pro private Abhängigkeiten, einschließlich Namespaces und Bereiche, verwendeten Namen in öffentlichen Repositorys beansprucht, stellt die Organisation sicher, dass Angreifer sie nicht pro ihre eigenen Zwecke verwenden können.
„Wir waren bestrebt, darauf zu reagieren, während wir ein Toolkit entwickelt nach sich ziehen, dasjenige ähnliche Bedrohungen mildern kann und flexibel und skalierbar genug ist, um zukünftige Wellen von Abhängigkeitsverwirrungsangriffen zu bekämpfen“, sagt Zioni. „Die Bekämpfung dieses Angriffsvektors ist pro Unternehmen unerlässlich, um ihre Software-Lieferketten siegreich abzusichern.“