npmパッケージ/GitHub Actionsを利用する側/公開する側でサプライチェーン攻撃を防ぐためにやることメモ
https://res.cloudinary.com/zenn/image/upload/s--m9aat7Xk--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:npm%25E3%2583%2591%25E3%2583%2583%25E3%2582%25B1%25E3%2583%25BC%25E3%2582%25B8%252FGitHub%2520Actions%25E3%2582%2592%25E5%2588%25A9%25E7%2594%25A8%25E3%2581%2599%25E3%2582%258B%25E5%2581%25B4%252F%25E5%2585%25AC%25E9%2596%258B%25E3%2581%2599%25E3%2582%258B%25E5%2581%25B4%25E3%2581%25A7%25E3%2582%25B5%25E3%2583%2597%25E3%2583%25A9%25E3%2582%25A4%25E3%2583%2581%25E3%2582%25A7%25E3%2583%25BC%25E3%2583%25B3%25E6%2594%25BB%25E6%2592%2583%25E3%2582%2592%25E9%2598%25B2%25E3%2581%2590%25E3%2581%259F%25E3%2582%2581%25E3%2581%25AB%25E3%2582%2584%25E3%2582%258B%25E3%2581%2593%25E3%2581%25A8%25E3%2583%25A1%25E3%2583%25A2%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:azu%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2g1YVZnX2NjTmJiUjVqSVVzaUp3N051UENXSXdhcXExLW5YS3M1Qnc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png
出来ることとして記載されている事は下記nyarla.icon
GitHub Actions を使う側
1. ロックファイルで依存をロックする
2. GiHub Actions では SHA pin を使う
3. GitHub Actions のパーミッションを明示的に絞る
4. 依存のアップデートに即時追従させるのではなく、一定期間の猶予を持たせる
5. 安全性の確認できていないパッケージを npx などで利用しない
6. Vibe Coding する時は隔離環境を使え
パッケージを上げる側
2. ローカルに生のトークンを置かない
3. 各種トークンのパーミッションは最低限にする
4. GitHub Actions への merge はセキュリティチェックを行なってからやる
5. パッケージの公開はトークンレスなCIから実行する
6. npm では 2要素認証を必須にしてトークン利用を禁止する
7. MFA はフィッシング耐性の高いものを使う