Software Supply Chain: Googles deps.dev-API ermittelt Open-Source-Dependencies
Eine neue API gibt Zugriff auf die Metadaten des Projekts Open Source Insights von Google, das Dependencies für Open-Source-Pakete darstellt.
Google stellt eine API zum Abfragen der Daten von Open Source Insights bereit. Das Projekt bietet einen Überblick über die Dependencies in Open-Source-Paketen und soll helfen, die Software Supply Chain abzusichern. Mit der neuen deps.dev-API lässt sich die Abfrage der Metadaten in Arbeitsabläufe und Werkzeuge einbinden.
Abhängigkeiten erkennen
Die Website Open Source Insights ist 2021 an den Start gegangen. Sie bietet eine interaktive Suche über fünf Paketmanager und zeigt unter Dependencies die Pakete und Elemente, die das gefundene Paket verwendet. Unter Dependents listet sie umgekehrt jene Module auf, die das Paket nutzen.
Auf die Weise sind transitive Dependencies erkennbar, die dann beispielsweise zeigen, ob ein eigenes Softwareprojekt ein Paket mit einer frisch entdeckten Schwachstelle zwar nicht direkt nutzt, es aber indirekt durch die Abhängigkeiten eines eingebundenen Moduls einbindet.
Echtzeitzugriff via API
Die jetzt veröffentlichte deps.dev-API ermöglicht eine Integration in Werkzeuge. Auf die Weise können Teams Dependency-Abfragen in ihre CI/CD-Prozesse (Continuous Integration, Continuous Delivery) einbinden. Außerdem können Werkzeuge wie Build-Tools oder IDE-Plug-ins auf die Informationen zugreifen.
Der Zugriff auf die API erfolgt wahlweise mit JSON over HTTP oder über gRPC (gRPC Remote Procedure Calls). Die Programmierschnittstelle bietet unter anderem Aufrufe, um die Zahl der Abhängigkeiten abzufragen und die einzelnen Dependencies aufzulisten. Zusätzlich können Programme über die API abfragen, welche Versionen eines Pakets verfügbar sind und welche Lizenzen dafür jeweils gelten.
Jenseits der Informationen, die die Website interaktiv darstellt, bietet die API Hash-Queries. Mit den Abfragen kann man versuchen, die Version eines eingebundenen Pakets anhand dessen Hash-Wertes zu ermitteln, wenn die Metadaten aus dem Build-Prozess fehlen oder unvollständig sind.
5 Ökosysteme, 5 Millionen Pakete und 50 Millionen Versionen
Die Metadaten auf Open Source Insights, die die API bereitstellt, stammen aus Maven, npm, PyPI, Go Modules und dem Rust-Paketmanager Cargo. Auf der Website findet sich zudem die Ankündigung, dass in Kürze NuGet für .NET-Pakete folgen soll. Laut Google kennt deps.dev derzeit etwa fünf Millionen Pakete und insgesamt 50 Millionen Versionen.
Die API ist kostenlos verfügbar und ohne API-Key verwendbar. Derzeit ist sie noch als "v3alpha" gekennzeichnet. Weitere Details lassen sich dem Google-Security-Blog entnehmen. Auf der Open-Source-Insights-Site findet sich die Dokumentation, und Beispiele auf GitHub sollen beim Einstieg helfen.
(rme)