npmレジストリでサプライチェーン攻撃、数百万のアプリが被害
原題: ‘No Way To Prevent This,’ Says Only Package Manager Where This Regularly Happens | Kevin Patel
なぜ重要か
JavaScriptエコシステムの脆弱性が露呈し、パッケージ管理セキュリティ強化の必要性が浮き彫りになった
npmレジストリで大規模なサプライチェーン攻撃が発生し、数百万の企業アプリケーションが侵害され、数十億のユーザー記録が流出した。JavaScriptエコシステムの開発者らは、40層の深いネストした未検証パッケージに依存する現状では防止不可能と表明。Go、Rustなどの他エコシステムでは被害報告なし。
サンフランシスコで発生したnpmレジストリへの大規模サプライチェーン攻撃により、数百万の企業アプリケーションが侵害され、数十億のユーザーレコードが流出する事態となった。この攻撃では、放置されたユーティリティパッケージが乗っ取られ、暗号通貨マイナーが世界中の本番ビルドに注入された。
シニアフロントエンドエンジニアのMark Vance氏は「現代のWebアプリ構築にはこれが代償だ。匿名の開発者が管理する未検証パッケージの40層ネスト構造に完全依存している以上、避けられない」と述べた。JavaScriptエコシステムの開発者らは、この悪意あるリモートコード実行を完全に予測不可能な悲劇として受け入れている。
一方、強固な標準ライブラリを持つGoやRust、ネイティブWeb APIを利用するエコシステムでは、サードパーティコードへの依存が大幅に削減され、コアツールチェーンに厳格な暗号学的検証が組み込まれているため、今回のような被害は報告されていない。
npmの広報担当者は「悪意ある攻撃者が存在する現実を受け入れなければならない。レジストリポリシーやビルドサンドボックスガードレールでこれを防ぐことは不可能」と語った。npmはデフォルトでローカルマシン上で任意のインストールスクリプトを実行するオープンソースレジストリとなっている。