
Ferramenta CLI para analisar capacidades de pacotes Go rastreando chamadas transitivas para operações privilegiadas da biblioteca padrão, permitindo avaliação de risco na cadeia de suprimentos e aplicação do princípio do menor privilégio.

Capslock é uma CLI de análise de capacidades para pacotes Go que informa os usuários sobre quais operações privilegiadas um dado pacote pode acessar. Isso funciona classificando as capacidades dos pacotes Go seguindo chamadas transitivas para operações privilegiadas da biblioteca padrão.
O recente aumento de ataques à cadeia de suprimentos direcionados a software de código aberto destacou que dependências de terceiros não devem ser inerentemente confiáveis. As capacidades indicam quais permissões um pacote possui e podem ser usadas em conjunto com outros sinais de segurança para indicar qual código requer escrutínio adicional antes de ser considerado confiável.
A análise de segurança atual foca muito na identificação de vulnerabilidades em pacotes — um objetivo importante dada a taxa de novas CVEs sendo identificadas. Para complementar essa análise, estamos alertando sobre as capacidades dos pacotes, ou seja, identificando quais permissões o pacote possui via suas dependências transitivas em funções da biblioteca padrão com acessos privilegiados.
Isso tem muitas aplicações potenciais, desde identificar a finalidade dos pacotes observando quais capacidades eles usam, até direcionar revisões de segurança para caminhos de código mais privilegiados, e até alertar sobre mudanças inesperadas de capacidades para impedir potenciais ameaças à cadeia de suprimentos antes que se tornem um problema.
Isso é motivado pelo Princípio do Menor Privilégio — a ideia de que o acesso deve ser limitado ao conjunto mínimo que seja viável e prático. Pretendemos aplicar isso ao desenvolvimento de software para garantir que o código possa ser escopo ao conjunto mínimo de capacidades necessárias para executar seu propósito pretendido.
Para saber mais sobre as capacidades em suas dependências, instale o Capslock
go install github.com/google/capslock/cmd/capslock@latest
Você pode então invocar o Capslock executando capslock a partir do caminho dos pacotes que deseja analisar.
Consulte o arquivo de advertências.
Consulte o arquivo de contribuição.