セキュリティ · 中級

コードのサプライチェーン

一行でいうと: あなたのコードは本番で実行されるものの少数派だ——リスクのほとんどは持ち込んだパッケージとそれらを構築したツールにある。

依存関係で何をするか

ロックファイルでのバージョンロック、年に一度の大きなジャンプではなく定期的なスケジュールされた更新、ビルドパイプラインでの自動的な脆弱性スキャン。

追加する前に確認する:最後に更新されたのはいつか、何人のメンテナーがいるか、どれだけの依存関係を引き込むか。一つの機能のために何十ものパッケージを引き込むパッケージは節約ではない。

パイプライン自体がターゲット

ビルドツールはシークレットと本番にアクセスできる。権限を制限し、特権のあるコンテキストで信頼されていないコードを実行せず、インストールスクリプトはコントロールなしにビルドサーバーで実行されないよう設定する。

何が実行されているかを知る

リリースごとに最新のコンポーネントリスト。深刻な脆弱性が公開されたとき、最初の質問は「我々にはあるか?」であり、リストがない人は検索に一日を無駄にする。

さらに深く

パッケージとイメージに署名し、デプロイ前に署名を確認する。そしてリポジトリで:ピアレビューを要求し、メインブランチへの直接のプッシュをブロックし、プッシュする人のアイデンティティを確認する。ほとんどのサプライチェーンインシデントはコードの脆弱性ではなく、侵害された開発者アカウントから始まる。