

Capslock は、Go パッケージの機能分析 CLI であり、特定のパッケージがアクセス可能な特権操作をユーザーに通知します。これは、Go パッケージが機能(ケイパビリティ)を、特権的な標準ライブラリ操作への推移的な呼び出しを追跡することで分類することによって機能します。
近年、オープンソースソフトウェアを標的としたサプライチェーン攻撃が増加しており、サードパーティの依存関係は本質的に信頼すべきではないことが明らかになりました。機能はパッケージがアクセスできる権限を示し、他のセキュリティシグナルと組み合わせて、どのコードが信頼できると見なされる前に追加の精査を必要とするかを示すために使用できます。
現在のセキュリティ分析は、パッケージの脆弱性の特定に重点を置いています。これは、新しい CVE が特定されるペースを考えると重要な目標です。この分析を補完するために、私たちはパッケージの機能に注目しています。つまり、パッケージが特権アクセスを持つ標準ライブラリ関数への推移的な依存関係を介して、どの権限にアクセスできるかを特定しています。
これには、パッケージが使用する機能を調べることでその目的を特定することから、セキュリティレビューをより特権的なコードパスに向けること、さらには予期しない機能の変更を警告して、潜在的なサプライチェーンの脅威が問題になる前に阻止することまで、多くの潜在的な用途があります。
これは、最小権限の原則(アクセスは実現可能で実用的な最小限のセットに制限されるべきという考え方)に動機付けられています。私たちはこれをソフトウェア開発に適用し、コードがその意図された目的を実行するために必要な最小限の機能セットにスコープされることを保証することを目指しています。
依存関係の機能について詳しく知るには、Capslock をインストールしてください:
go install github.com/google/capslock/cmd/capslock@latest
その後、分析したいパッケージのパスから capslock を実行して Capslock を起動できます。
caveats ファイルを参照してください。
contributing ファイルを参照してください。