スロップスクワッティングとは何か、そしてそれを避ける方法

コンピュータ画面のコード.

この不快な響きの用語を見かけたことがあるなら、スロップスクワッティングとは何か、そしてそれがあなたにどのように影響するのかを疑問に思っていることでしょう。この厄介な攻撃は見つけるのが簡単ではありませんが、安全を保つために避ける方法があります。

スロップスクワッティングとは

すべてはAIの幻覚から始まります。これはAIが作り出すものです。スロップスクワッティングの目的のために、AIツールは実際には存在しないオープンソースパッケージを開発者に提案します。

サイバー犯罪者は、AIの幻覚がしばしば繰り返されることを発見しました。彼らはこの欠陥を利用して、これらの幻覚的な名前を使って悪意のあるパッケージを作成し、GitHubなどの信頼できるコードリポジトリホストにアップロードします。開発者が好きなAIプラットフォームにオープンソースパッケージを提案するように頼むと、チャットボットはサイバー犯罪者が使用している幻覚的な名前の1つを提案します。

ChatGPTにコードパッケージの提案を求める.

その結果、開発者はこれらの悪意のあるパッケージを自分のソフトウェアに挿入しています。一度実行されると、被害は発生し、攻撃者はコードが実行されるデバイスにアクセスします。

これが大きな問題のようには聞こえないかもしれませんが、ある研究では、16の主要なコード生成AIモデルのうち、推奨されたパッケージのほぼ20%が存在しないことがわかりました。さらに悪いことに、43%の幻覚的なパッケージ名は、同じプロンプトで10回実行するたびに繰り返されました。これにより、サイバー犯罪者が名前を選び、悪意のあるパッケージを繰り返し提案され、使用されることが容易になります。

この研究では、CodeLlamaが最も悪質なものでした。一方、GPT-4 Turboは幻覚が最も少なかったです。しかし、リスクが少ないからといって、完全に安全であるとは限りません。

注意すべきこと

あなたがプロフェッショナルであろうと、カジュアルな開発者であろうと、完全な初心者であろうと、スロップスクワッティングのリスクがあります。これは実際には、正当な安全なドメインと悪意のあるドメインの間に1文字だけの違いがあるタイポスクワッティングの一種です。しかし、タイポスクワッティングと同様に、スロップスクワッティングは以下の5つのことに注意すれば避けられます。

  1. わずかにスペルミスされたパッケージ名 – この赤信号は保証ではありません。特に、幻覚的なパッケージ名の大多数にはスペルミスがありません。それでも、何かがスペルミスされているのに気づいたら、使用する前に二度考えてください。
  2. 議論やフィードバックの欠如 – 議論がほとんどないパッケージは、安全に使用できない可能性があります。それは単に新しいものである可能性があります。または、開発者が見つけて無邪気に使用することを頼りにしている偽のパッケージである可能性もあります。
  3. 他の開発者からの警告 – AIの提案に頼るのは簡単ですが、少し時間をかけて追加のリサーチを行ってください。お気に入りの検索エンジンを使用して、他の人が提案されたパッケージについて何を言っているかを確認してから、自分で使用してください。
  4. 他のプラットフォームからの推奨がない – 可能であれば、複数のAIコーディングプラットフォームで同じまたは類似のプロンプトを試してください。パッケージがほとんどまたはまったく推奨されていない場合、それはスロップスクワッティングの大きな兆候かもしれません。
  5. 混乱を招く説明 – 開発者が「バイブコーディング」に頼ることがますます一般的になっています。これは、検証なしに提案を受け入れることを意味します。しかし、悪意のあるパッケージは、ホストされているサイトで混乱を招く説明を持つことがよくあります。

お気に入りのAIプラットフォームにリストを求めることで、すでに特定されている一般的なスロップスクワッティングパッケージを避けることもできます。

ChatGPTからのスロップスクワッティングパッケージのリスト.

最も重要な予防策

何を探すべきかを知っていても、スロップスクワッティングは多くの場合、見つけるのが難しいです。これは非常に新しいものであるため、セキュリティ専門家が悪意のあるパッケージを特定して排除するための信頼できるプロセスを開発するには時間がかかります。また、多くのAIプラットフォームも、モデルを訓練して幻覚的な名前やパッケージを認識し、使用する前に開発者に警告しようとしています。

それらのことが起こるまで、悪意のあるパッケージがあなたのソフトウェアやインストールされる可能性のあるデバイスを台無しにするのを防ぐための3つの方法があります。

最も重要なのは、常に安全なサンドボックス環境でコードを実行することです。VirtualBoxとVMWareは最も人気のある仮想マシンの2つで、無料で使用できます。また、クラウドベースのサンドボックス環境もありますが、ほとんどは数言語しかサポートしていません。Replitは50以上の言語をサポートしているため人気です。

2つ目は、パッケージが安全かどうかを確認するためにスキャンツールを使用することです。Socket Web Extensionが最も使いやすいオプションの1つだと私は思います。これは無料で使用でき、ダウンロードする前に多くのサイトをスキャンします。現在、ChromeベースのブラウザとFirefoxで利用可能です。

デスクトップの更新メニューでMicrosoftがTeamsをブロックするのを避ける方法

最後に、AIが提案するものは常に確認してください。AIに依存すればするほど、サイバー犯罪者が利用しやすくなります。コーディングを手伝うためにAIを使用しますが、使用する前にすべての提案を確認してください。

もしスロップスクワッティングの被害者になった場合は、他の開発者に知らせてください。ソーシャルメディア、Reddit、リポジトリホストに警告を投稿してください。使用しているAIプラットフォームのサポートに連絡して、悪意のあるパッケージ名を報告し、AIモデルのトレーニングを助けてください。情報を広めることで、他の人が自分自身を守る手助けになります。