
「スロップスクワッティング」と呼ばれる新しい種類のサプライチェーン攻撃が、コーディングにおける生成AIツールの利用増加と、モデルが存在しないパッケージ名を「幻覚」させる傾向から出現しました。
スロップスクワッティングという用語は、セキュリティ研究者のSeth Larsonによって造語されました。タイポスクワッティングは、一般的なライブラリに酷似した名前を使って開発者を騙し、悪意のあるパッケージをインストールさせる攻撃手法です。
タイポスクワッティングとは異なり、スロップスクワッティングはスペルミスに頼りません。その代わりに、脅威アクターは、AIモデルがコーディング例でよく使用する名前にちなんで、PyPIやnpmなどのインデックス上に悪意のあるパッケージを作成する可能性があります。
2025年3月に発表されたパッケージ幻覚に関する研究論文では、調査対象となったケース(生成されたPythonおよびJavaScriptコードサンプル576,000件)の約20%で、推奨パッケージが存在しなかったことが示されています。
CodeLlama、DeepSeek、WizardCoder、MistralなどのオープンソースLLMでは状況がさらに悪化しますが、ChatGPT-4などの商用ツールでも約5%の割合で幻覚が発生しており、これは大きな問題です。
この研究で記録された幻覚パッケージ名の数は20万件を超え、膨大な数に上りましたが、そのうち43%は類似のプロンプトで繰り返し使用され、58%は10回の実行中に少なくとも1回は再出現しました。
調査によると、幻覚的に生成されたパッケージ名のうち38%は実際のパッケージ名をヒントにしたもの、13%はタイプミスによるもの、残りの51%は完全に捏造されたものであることが分かりました。
攻撃者がこの新しいタイプの攻撃を利用し始めた兆候は見られませんが、オープンソースのサイバーセキュリティ企業Socketの研究者は、幻覚的に生成されたパッケージ名は一般的で、繰り返し使用され、意味的にも妥当性があるため、容易に武器化できる予測可能な攻撃対象領域を作り出していると警告しています。
「全体として、幻覚的に生成されたパッケージの58%は10回の実行中に複数回繰り返されており、幻覚の大部分は単なるランダムノイズではなく、モデルが特定のプロンプトにどのように反応するかを示す、繰り返し発生するアーティファク トであることを示しています」とSocketの研究者は説明しています。(http://socket.dev/blog/slopsquatting-how-ai-hallucinations-are-fueling-a-new-class-of-supply-chain-attacks)
「この再現性は攻撃者にとっての価値を高め、わずかなモデル出力を観察するだけで、スロップスクワッティングの標的を特定しやすくなります。」
このリスクを軽減する唯一の方法は、パッケージ名を手動で検証し、AI生成コードスニペットに記載されているパッケージが本物または安全であると決して想定しないことです。
依存関係スキャナー、ロックファイル、ハッシュ検証を使用して、パッケージを既知の信頼できるバージョンに固定することは、セキュリティを向上させる効果的な方法です。
研究によると、AIの「温度」設定を下げる(ランダム性を減らす)と幻覚が減少することが示されています。したがって、AI支援コーディングやバイブコーディングを行う場合は、この点を考慮することが重要です。
結局のところ、AI生成コードは、本番環境で実行または展開する前に、必ず安全で隔離された環境でテストすることが賢明です。