
Outil CLI pour analyser les capacités des paquets Go en traçant les appels transitifs aux opérations privilégiées de la bibliothèque standard, permettant l'évaluation des risques de la chaîne d'approvisionnement et l'application du principe de moindre privilège.

Capslock est une CLI d'analyse des capacités pour les packages Go qui informe les utilisateurs des opérations privilégiées auxquelles un package donné peut accéder. Cela fonctionne en classifiant les capacités des packages Go en suivant les appels transitifs vers les opérations privilégiées de la bibliothèque standard.
L'augmentation récente des attaques sur la chaîne d'approvisionnement ciblant les logiciels open source a souligné que les dépendances tierces ne devraient pas être intrinsèquement fiables. Les capacités indiquent à quelles permissions un package a accès et peuvent être utilisées en conjonction avec d'autres signaux de sécurité pour indiquer quel code nécessite un examen supplémentaire avant de pouvoir être considéré comme fiable.
L'analyse de sécurité actuelle se concentre beaucoup sur l'identification des vulnérabilités dans les packages - un objectif important compte tenu du rythme des nouvelles CVE identifiées. Pour compléter cette analyse, nous alertons sur les capacités des packages, ce qui signifie que nous identifions à quelles permissions le package a accès via ses dépendances transitives vers les fonctions de la bibliothèque standard avec des accès privilégiés.
Cela a de nombreuses applications potentielles, de l'identification de l'objectif des packages en examinant les capacités qu'ils utilisent, à l'orientation des revues de sécurité vers des chemins de code plus privilégiés, et même à l'alerte sur des changements de capacités inattendus pour arrêter les menaces potentielles de la chaîne d'approvisionnement avant qu'elles ne deviennent un problème.
Cela est motivé par le principe du moindre privilège - l'idée que l'accès doit être limité à l'ensemble minimal qui est réalisable et pratique. Nous avons l'intention d'appliquer cela au développement logiciel pour garantir que le code peut être limité à l'ensemble minimal de capacités nécessaires pour remplir son objectif prévu.
Pour en savoir plus sur les capacités de vos dépendances, installez Capslock
go install github.com/google/capslock/cmd/capslock@latest
Vous pouvez ensuite invoquer Capslock en exécutant capslock à partir du chemin des packages que vous souhaitez analyser.
Consultez le fichier caveats.
Consultez le fichier contributing.