Rust-Entwickler verwenden cargo-geiger, um unsicheren Code in einem Crate und seinen Abhängigkeiten zu finden, bevor ein Audit beginnt.
Rust-Teams verwenden cargo-geiger, um unsafe Rust über einen Crate und seinen Abhängigkeitsgraphen hinweg zu zählen und Wartenden damit einen Ausgangspunkt für Code-Audits zu geben.

Das Projekt bewegt sich an einer heiklen Stelle im Rust-Ökosystem. Rust vermarktet Speichersicherheit als zentrales Versprechen, doch viele nützliche Crates brauchen unsafe-Blöcke, um mit Betriebssystemen zu sprechen, C-Bibliotheken aufzurufen, Leistung zu optimieren oder Low-Level-Abstraktionen zu bauen. Cargo Geiger gibt Teams einen Bericht, den sie prüfen können, bevor sie entscheiden, wo sie Zeit für Reviews investieren.
Die README beschreibt das Tool als Input für Audits. Entwickler führen cargo geiger im selben Verzeichnis wie eine Cargo.toml aus, und das Plugin meldet Statistiken für den lokalen Crate und seine Abhängigkeiten. Diese Ausgabe kann Review-Arbeit in Tools wie cargo-crev oder safety-dance speisen.
Die Installation folgt dem Cargo-Muster, das Rust-Nutzer erwarten. Entwickler können cargo install --locked cargo-geiger ausführen und eine systemweite OpenSSL-Bibliothek verwenden, oder sie können das Feature vendored-openssl hinzufügen, um OpenSSL in das ausführbare Programm einzubetten. Die Maintainer veröffentlichen außerdem vorgefertigte Binärdateien über GitHub releases.

Cargo Geiger stellt auch Bibliotheken für Teams bereit, die die Daten in anderen Tools verwenden wollen. Die README nennt cargo-geiger, cargo-geiger-serde und geiger. Die erste legt interne Bestandteile über eine instabile API frei. Die zweite stellt serialisierbare Berichtstypen bereit. Die dritte enthält entkoppelte Cargo-Komponenten, die vom Kommandozeilenwerkzeug genutzt werden.
Das Signal für die Verbreitung kommt von dem Problem, das das Tool adressiert. Rust-Teams haben ihre Abhängigkeitsgraphen erweitert, und Maintainer brauchen schnelle Wege, um Risiken zu erkennen, bevor sie mit manueller Prüfung beginnen. Ein einzelner Crate kann Dutzende von Paketen hineinziehen. Ein unsafe-Block in einer transitiven Abhängigkeit kann wichtiger sein als Code im Anwendungs-Repository, abhängig davon, wie viel Vertrauen das Team dieser Abhängigkeit entgegenbringt.
Cargo Geiger sagt Entwicklern nicht, dass ein Crate eine Schwachstelle enthält. Es zählt die Nutzung von unsafe. Diese Unterscheidung ist für Rust-Nutzer wichtig, weil unsafe eine Vertragsgrenze markiert, keinen Defekt. Ein gut geprüfter unsafe-Block kann eine High-Level-API absichern. Ein nachlässiger sicherer Wrapper kann trotzdem durch eine schlechte Abstraktion Speichersicherheit gefährden.
Das Gegenargument ergibt sich aus genau dieser Unterscheidung. Manche Maintainer befürchten, dass unsafe-Zählwerte ein Stigma um Crates erzeugen können, die schwierige Systemarbeit leisten. Ein Crate mit mehr unsafe-Code verdient möglicherweise mehr Prüfung, aber die Zahl allein kann die Qualität nicht einordnen. Prüfer müssen weiterhin Invarianten, FFI-Grenzen, Tests und die Praxis der Maintainer untersuchen.
Das Tool funktioniert am besten, wenn Teams den Bericht als Triage-Karte behandeln. Man kann es vor der Übernahme einer Abhängigkeit, vor der Veröffentlichung eines sicherheitskritischen Crates oder im Rahmen eines regelmäßigen Audits ausführen. Man kann Versionen vergleichen, neue unsafe-Nutzung erkennen und entscheiden, welche Abhängigkeit menschliche Prüfung verdient.
Cargo Geiger spiegelt eine reife Rust-Sicherheitsgewohnheit wider: erst messen, dann prüfen. Die Zählung eröffnet das Gespräch, und Ingenieure beenden es, indem sie Code lesen.

Kommentare
Bitte melden Sie sich an oder registrieren Sie sich, um an der Diskussion teilzunehmen