セキュリティ · 中級
コードのサプライチェーン
一行でいうと: あなたのコードは本番で実行されるものの少数派だ——リスクのほとんどは持ち込んだパッケージとそれらを構築したツールにある。
依存関係で何をするか
ロックファイルでのバージョンロック、年に一度の大きなジャンプではなく定期的なスケジュールされた更新、ビルドパイプラインでの自動的な脆弱性スキャン。
追加する前に確認する:最後に更新されたのはいつか、何人のメンテナーがいるか、どれだけの依存関係を引き込むか。一つの機能のために何十ものパッケージを引き込むパッケージは節約ではない。
パイプライン自体がターゲット
ビルドツールはシークレットと本番にアクセスできる。権限を制限し、特権のあるコンテキストで信頼されていないコードを実行せず、インストールスクリプトはコントロールなしにビルドサーバーで実行されないよう設定する。
何が実行されているかを知る
リリースごとに最新のコンポーネントリスト。深刻な脆弱性が公開されたとき、最初の質問は「我々にはあるか?」であり、リストがない人は検索に一日を無駄にする。
さらに深く
パッケージとイメージに署名し、デプロイ前に署名を確認する。そしてリポジトリで:ピアレビューを要求し、メインブランチへの直接のプッシュをブロックし、プッシュする人のアイデンティティを確認する。ほとんどのサプライチェーンインシデントはコードの脆弱性ではなく、侵害された開発者アカウントから始まる。