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.

In Pocket speichern vorlesen Druckansicht

(Bild: Shutterstock)

Lesezeit: 3 Min.
Inhaltsverzeichnis

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.

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.

Wer tailwindcss von npm in sein Projekt einbindet, übernimmt zahlreiche transitive Dependencies, die in der Grafdarstellung auf Open Source Insights erkennbar sind.

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.

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.

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)