TL;DR
悪意のある攻撃者が、よく使われるライブラリを意図的に改ざんする攻撃手法である。そのライブラリに依存するソフトウェアが、改ざんされたコードを取り込んでしまう。
仕組み
ライブラリそのものを改ざんするほかに、次のような手法もサプライチェーン攻撃に含まれる。
- 人気のあるライブラリ名の打ち間違いを狙って、よく似た名前の偽ライブラリを公開する(タイポスクワッティング)
- ライブラリのメンテナのアカウントを乗っ取り、悪意のあるバージョンを公開する
Wikipedia によると、ソフトウェアのサプライチェーン攻撃は、他のソフトウェアが使う目立たない低レベルのコンポーネントを狙い、それに依存する大きなソフトウェアに悪意のあるコードを注入する。攻撃者は標的の組織そのものではなく、守りの手薄なサードパーティのソフトウェアを狙うことが多い。ハードウェアで起きることもある。
例
2020 年の SolarWinds の事件では、ネットワーク管理ソフト Orion の更新に悪意のあるコードが混入された。2024 年には、広く使われる圧縮ライブラリ XZ Utils にバックドアが仕込まれたが、安定版に入る前に見つかった。同じ年には、npm で正規のパッケージに似た名前の悪意あるパッケージが 287 以上公開された。
注意点
広く使われる言葉だが、統一された定義はない。開発の現場では、依存関係をスキャンし、インストールする前にパッケージが正当なものかを確かめることが対策になる。