Slopsquatting サプライチェーン攻撃
AIが「存在しないパッケージ」を推奨する
2025年、セキュリティ研究者Seth Larsonは、新しい攻撃手法に名前をつけました。
Slopsquatting(スロップスクワッティング)
「Slop」とは、AIの不正確で雑な出力を指すスラングです。
この攻撃は、AIが 存在しないパッケージ名を「幻覚」する 傾向を悪用します。
20%が存在しないパッケージ
2025年3月に発表された研究は、衝撃的な数字を示しました。
調査概要:
- 576,000件のPythonおよびJavaScriptコードサンプルを分析
- 複数のLLMが推奨するパッケージを検証
結果:
| 指標 | 数値 |
|---|---|
| 存在しないパッケージの推奨率 | 約20% |
| オープンソースLLM(CodeLlama等) | より高い幻覚率 |
| 商用LLM(GPT-4) | 約5%の幻覚率 |
つまり、AIが推奨するパッケージの 5分の1 は、実在しないものだったのです。
攻撃の仕組みと脆弱性のメカニズム
Slopsquattingの攻撃フローは単純です。
攻撃手順:
- 観察 — AIが頻繁に幻覚する架空のパッケージ名を特定
- 登録 — そのパッケージ名をnpmやPyPIに登録
- 悪意のあるコード — マルウェアを仕込む
- 待機 — vibe coderがAIの推奨に従ってインストールするのを待つ
Typosquatting が「タイプミス」を悪用するのに対し、Slopsquatting は「AIの幻覚」を悪用します。
58%が繰り返し幻覚される
研究者たちは、さらに驚くべき発見をしました。
「幻覚されたパッケージの58%は、10回の実行で複数回繰り返された」
つまり、AIの幻覚は ランダムなノイズではなく、再現性のあるパターン なのです。
攻撃者にとっては、少数のモデル出力を観察するだけで、攻撃対象となるパッケージ名を特定できることを意味します。
huggingface-cli事件
理論ではなく、実際に起きた事例があります。
huggingface-cli事件:
- AIが「huggingface-cli」という架空のパッケージを頻繁に推奨
- 誰かがPyPIにこの名前でパッケージを登録(コードなし、READMEなし)
- 3ヶ月で30,000回以上ダウンロード
幸いにも、このパッケージは悪意のあるものではありませんでした。しかし、悪意ある攻撃者がこれを行っていたら、30,000の開発環境が危険に晒されていました。
arangodbの警告
RubyGemsには、次のような説明文を持つgemが存在します。
“Do not use this! This could be a malicious gem because you didn’t check if the code ChatGPT wrote for you referenced a real gem or not.” 「使うな!これは悪意のあるgemかもしれない。ChatGPTが書いたコードが本物のgemを参照しているかどうか確認していないからだ」
この「arangodb」というgemは、執筆時点で 2,000回以上インストール されていました。
誰かが警告のためにダミーパッケージを登録しましたが、多くのvibe coderはその警告すら読まずにインストールしていたのです。
$2.3M暗号通貨窃盗
最も深刻な事例の一つが報告されています。
$2.3M Crypto Heist:
- フィンテックスタートアップがClaudeを使用して暗号通貨ウォレットのコードを生成
- 攻撃者がAI出力パターンを監視
- 複数のモデルが同じ架空のパッケージ名を幻覚していることを発見
- そのパッケージ名をnpmに登録
- マルウェアがすべての生成された秘密鍵をリモートサーバーに送信
- $2.3M(約3.5億円)の暗号通貨が窃盗
vibe codingで暗号通貨ウォレットを作る——これは最悪の選択でした。
AIの幻覚パターン分析:存在しないパッケージ推奨
研究者たちは、AIの幻覚パターンを分析しました。
幻覚の内訳:
| パターン | 割合 |
|---|---|
| 実在パッケージに「触発された」名前 | 38% |
| タイプミス由来 | 13% |
| 完全な創作 | 51% |
半分以上が「完全な創作」——つまり、どこにも存在しない、AIが勝手に作り出した名前です。
vibe codingとの相性の悪さ
Slopsquattingは、vibe codingと 最悪の相性 です。
vibe coderの行動パターン:
- AIにコード生成を依頼
pip install xxxやnpm install xxxをそのまま実行- パッケージの存在を確認しない
- パッケージの内容を確認しない
- インストール後も動作確認のみ
この行動パターンは、Slopsquatting攻撃に対して 完全に無防備 です。
具体的な対策と実装方法
Slopsquattingから身を守るための対策です。
必須の対策:
-
パッケージ名を手動で確認
- 公式サイトで存在を確認
- ダウンロード数、更新履歴を確認
-
lockfileとhash検証を使用
- 既知の信頼できるバージョンに固定
-
SBOM(Software Bill of Materials)を活用
- 依存関係の来歴を追跡
-
AIの「temperature」設定を下げる
- ランダム性を下げると幻覚が減少
-
隔離環境でインストール
- Docker コンテナや一時的なVMで実行
この事例から学ぶべき教訓
Slopsquatting事件から学ぶべきことは以下の通りです。
-
AIが推奨するパッケージは実在しない可能性がある
- 20%が存在しないパッケージ
-
幻覚は再現性がある
- 攻撃者は予測可能なターゲットを持つ
-
vibe codingはサプライチェーン攻撃に脆弱
- 確認なしのインストールは危険
-
暗号通貨・金融コードは特に危険
- $2.3Mの窃盗事例
-
パッケージ名は必ず手動で確認
- AIの出力を鵜呑みにしない
まとめ:重要ポイントの振り返り
- Slopsquattingは、AIのパッケージ名幻覚を悪用した新しい攻撃手法
- AIが推奨するパッケージの 20% が存在しない
- 幻覚の 58% は繰り返し発生(予測可能)
- huggingface-cliは3ヶ月で30,000回ダウンロード
- $2.3Mの暗号通貨窃盗事例も発生
- 教訓:AIが推奨するパッケージは存在しない可能性がある