サプライチェーン攻撃はどのようにして成立するか(ライブラリ開発者側)
サプライチェーン攻撃はどのようにして成立するか(ライブラリ利用者側)の、開発者側がやられて悪意あるコードが入ったライブラリがpublishされる過程を検討するshokai.icon
ただしサプライチェーン攻撃っぽいものに限定
ごく普通のマルウェアを食らって乗っ取られるパターンを含めると、きりがないので
ライブラリ開発者がおかしくなってしまい、自ら悪意あるパッケージを配布した(colors npm)
CI環境がやられる
CI環境にnpm publish用のtokenが入ってる事が、わりとある
.github/workflows/のコードの修正を含むpull requestを立てられた
GitHub Actionsのpull_request_targetの変更とか
mainブランチじゃないのにnpm publishできちゃうかもしれない
CI内の環境変数が参照された
プルリクタイトルに$マークつき文字列を入れたらログに環境変数が出てきた事件
Trusted Publishingで対策できる
既に汚染されているnpmを開発者がインストールしてしまい、自分の開発しているnpmも汚染された
サプライチェーン攻撃はどのようにして成立するか(ライブラリ利用者側)の手口で
npmをターゲットにした自己増殖攻撃
インストール先がSaaSとかではなく、ライブラリである事を想定してくる
ライブラリ開発者視点では、これがサプライチェーン攻撃って響きに合致するshokai.icon
辿ってくる感じ
ライブラリ利用者視点では、依存ライブラリの依存ライブラリの…深い所から脅威が襲ってくるから「サプライチェーンの攻撃」なんだって気分だろうけど
npmjs.comのフィッシングサイトにひっかかって、パスワードや二段階認証を突破された
共同メンテナが多いと大変
長期間メンテしていない場合
無料のOSSでは全然ありうる