
CLI-Tool zur Analyse von Go-Paketfähigkeiten durch Verfolgen transitiver Aufrufe privilegierter Standardbibliotheksoperationen, was Risikobewertung der Lieferkette und Durchsetzung des Prinzips der geringsten Privilegien ermöglicht.

Capslock ist ein CLI zur Analyse der Fähigkeiten (Capability Analysis) von Go-Paketen, das Nutzer darüber informiert, auf welche privilegierten Operationen ein bestimmtes Paket zugreifen kann. Dies funktioniert, indem die Capabilities von Go-Paketen klassifiziert werden, indem transitive Aufrufe von privilegierten Operationen der Standardbibliothek verfolgt werden.
Der jüngste Anstieg von Supply-Chain-Angriffen auf Open-Source-Software hat gezeigt, dass Abhängigkeiten von Drittanbietern nicht blind vertraut werden sollten. Capabilities geben an, auf welche Berechtigungen ein Paket zugreifen kann, und können in Verbindung mit anderen Sicherheitssignalen verwendet werden, um anzuzeigen, welcher Code einer zusätzlichen Prüfung bedarf, bevor er als vertrauenswürdig angesehen werden kann.
Die derzeitige Sicherheitsanalyse konzentriert sich stark auf die Identifizierung von Schwachstellen in Paketen – ein wichtiges Ziel angesichts der Rate neuer CVEs. Zur Ergänzung dieser Analyse machen wir auf die Capabilities von Paketen aufmerksam, d.h. wir identifizieren, auf welche Berechtigungen das Paket über seine transitiven Abhängigkeiten von privilegierten Funktionen der Standardbibliothek zugreifen kann.
Dies hat viele potenzielle Anwendungen, von der Identifizierung des Zwecks von Paketen durch die Analyse der von ihnen verwendeten Capabilities, über die Lenkung von Sicherheitsüberprüfungen auf privilegiertere Codepfade, bis hin zur Warnung vor unerwarteten Capability-Änderungen, um potenzielle Supply-Chain-Bedrohungen zu stoppen, bevor sie zum Problem werden.
Dies wird durch das Prinzip der geringsten Privilegien (Principle of Least Privilege) motiviert – die Idee, dass Zugriff auf die minimal mögliche und praktikable Menge beschränkt werden sollte. Wir beabsichtigen, dies auf die Softwareentwicklung anzuwenden, um sicherzustellen, dass Code auf die minimale Menge an Capabilities beschränkt werden kann, die für seinen beabsichtigten Zweck erforderlich sind.
Um mehr über die Capabilities in Ihren Abhängigkeiten zu erfahren, installieren Sie Capslock
go install github.com/google/capslock/cmd/capslock@latest
Sie können Capslock dann aufrufen, indem Sie capslock aus dem Pfad der zu analysierenden Pakete ausführen.
Siehe die Datei Einschränkungen.
Siehe die Datei Mitwirken.