AIが生む偽パッケージ「スロップスクワッティング」とは
AIコーディングアシスタントが引き起こすハルシネーション(幻覚)を悪用した新たなサプライチェーン攻撃「スロップスクワッティング」が浮上している。AIが存在しない架空のパッケージ名を推薦した際、攻撃者がその名前でマルウェアを登録することで、開発者が気づかないうちに悪意あるコードをプロジェクトへ組み込んでしまう仕組みだ。従来のタイポスクワッティング対策では検出できないため、既存のレジストリ保護が機能しないという深刻な問題がある。

AIコーディングアシスタントの普及が、ソフトウェア開発の現場に新たなサプライチェーンリスクをもたらしている。「スロップスクワッティング(Slopsquatting)」と呼ばれる攻撃手法が登場し、AIが生成する存在しないパッケージ名を悪用してマルウェアを開発環境に混入させるという脅威が指摘されている。
スロップスクワッティングという名称は、「AIスロップ(AIが生成する粗悪なコンテンツ)」と「タイポスクワッティング」を組み合わせた造語だ。タイポスクワッティングとは、人気パッケージのスペルをわずかに誤ったドメインや名前を登録し、入力ミスをした利用者を罠にかける古典的な手口で、すでに数十年の歴史がある。パッケージレジストリ(ソフトウェアの配布・管理サービス)側もこの手口への対策を積み重ねてきた。しかしスロップスクワッティングは、単純なスペルミスではなく「もっともらしく聞こえる架空のパッケージ名」をAI自身が生成してしまうという点で、従来の防御策が機能しないという問題がある。
具体的な仕組みはこうだ。開発者がAIアシスタントにコード生成を依頼すると、AIはときとして実在しないオープンソースパッケージを推薦することがある。これをLLM(大規模言語モデル)の「ハルシネーション(幻覚)」と呼ぶ。この段階ではまだ無害だが、攻撃者がそのパッケージ名をあらかじめ把握し、同名のマルウェアを含むパッケージを登録しておけば、開発者が気づかないままに悪意あるコードが自分のプロジェクトへ取り込まれてしまう。AIがある特定の架空パッケージ名を繰り返し推薦する傾向があるため、攻撃者はどの名前を狙えばよいかを事前に調査できるという点も問題を深刻にする。
例えば、既存の人気パッケージ「cross-env」を模した「crossenv」といったタイポスクワット名は、レジストリの保護機能によって検出される。一方、AIが勝手に作り出す「cross-env-extended」や「mpn install cross-env file」のような名前は、既存の防御システムでは脅威として認識されない。こうした盲点が、大規模な侵害を可能にする土台となっている。
ハルシネーションの持続性と深刻さを示すデータも報告されている。ある研究チームが10のプログラミング言語にまたがる1万4675パッケージの3万1267件の脆弱性を分析したところ、脆弱性の報告数が年間98%のペースで増加していることが判明した。これは、オープンソースパッケージ数そのものの年間増加率(25%)を大幅に上回る数字だ。さらに、脆弱性の平均存続期間が85%延びており、問題が発見されてから修正されるまでの時間が長くなっていることも確認された。悪意あるパッケージが本番環境で数か月から数年にわたって検出されないまま放置されうることを示しており、被害の広がりが静かに進行するリスクがある。
この問題が持つ意味は、AIツールの「便利さ」と「リスク」が表裏一体であるという点にある。AI支援によるコーディングは生産性を高める一方で、開発者が出力内容をそのまま信頼することで、外部からの侵入口を自ら開いてしまうという構造的な脆弱性を生む。LLMのハルシネーションはもともと「誤情報を本物として扱うリスク」として知られてきたが、スロップスクワッティングはその性質が直接的なセキュリティ脆弱性へと転化した例と見ることができる。
開発者にとっての実践的な対応としては、AIが提案するパッケージ名をそのまま採用せず、パッケージレジストリで実在を確認する習慣が求められる。組織レベルでは、依存関係の自動スキャンツールの活用や、パッケージ導入前の審査プロセスの整備が有効な対策として位置づけられる。AIコーディングツールが開発現場に深く根付いていくなかで、この種の攻撃への警戒がソフトウェア開発の標準的なセキュリティ慣行として組み込まれていくかどうかが、今後の注目点となる。
本記事は、AI issue編集部が事実(ファクト)をもとに独自に作成・編集した著作物です。著作権はAI issueに帰属し、無断転載・再配布およびAIの学習・活用を禁じます。