Alex Birsan veröffentlichte kürzlich einen Artikel "Abhängigkeitsverwirrung: Wie ich mich in Apple, Microsoft und Dutzende anderer Unternehmen gehackt habe ", in dem er erklärte, wie er Paketmanager auf Sprachebene wie npm (Javascript), pip (Python) und gems ( Ruby), um Unternehmen zu zwingen, bösartigen Code auf ihrer Infrastruktur zu installieren und auszuführen.
Das Problem besteht darin, dass Unternehmen beispielsweise interne Namen namentlich referenzieren
my-internal-package
und ein Angreifer ein Paket mit demselben Namen in der zentralen Registrierung / im Repository von Sprachpaketen veröffentlicht (für PHP ist es packagist.org ).
my-internal-package
eine höhere Version haben. Die Unternehmen installierten und führten diese Schadpakete dann anstelle ihrer internen Pakete aus, da ihr Paketmanager anstelle des internen Repositorys eine höhere Versionsnummer aus dem Standardpaket-Repository auswählte.
Geordie sprach auf Twitter über die Lösung dieses Problems für Composer und Packagist und fasste die verschiedenen Maßnahmen zusammen, die Composer und Packagist anwenden, um Unternehmen vor diesem ernsten Problem zu schützen:
- Composer , ,
my-company/our-internal-pkg
. packagist.org. Packagist.org .my-company/
. packagist.org ( ), ,my-company/dummy-pkg
, , , .my-company/my-internal-package
, «» packagist.org. - Composer 2.0, . , , . packagist.org, . , , , Composer .
- Private Packagist , packagist.org, , , . Private Packagist Composer 1.x , Composer 2.
- Private Packagist packagist.org , Composer. , .
- Composer (lock file) URL . composer install, , . , , .
- Mit Composer 2 können Sie das Laden von Paketnamen oder -mustern für jedes Repository ausschließen. Sie können also sicher sein, dass selbst falsch geschriebene Pakete, die ohne ein auf packagist.org registriertes Präfix nicht existieren, nicht von packagist.org heruntergeladen werden können, indem Sie die Standardkonfiguration in composer.json ersetzen. Dieser Ausschlussfilter kann auch für zusätzliche Paket-Repositorys von Drittanbietern verwendet werden.
"repositories": {
"private-repo": {
"url": "https://my-repo.internal"
}
"packagist.org": {
"url": "https://repo.packagist.org",
"exclude": ["myprefix/*"]
}
}
Angriffe auf die Lieferkette, die den von Alex beschriebenen ähnlich sind, stellen eine ernsthafte Bedrohung für Unternehmen dar und wurden in letzter Zeit in den Nachrichten hervorgehoben. Daher ist es wichtig, dass Ihr Unternehmen die Risiken versteht und Maßnahmen ergreift, um sie zu mindern.
Werbung
Suchen Sie einen VDS zum Debuggen von Projekten, einen Server für Entwicklung und Bereitstellung? Sie sind definitiv unser Kunde :) Tägliche Abrechnung von Servern, Erstellen Sie Ihre eigene Konfiguration mit wenigen Klicks, Anti-DDoS- und Windows-Lizenzen sind bereits im Preis enthalten.