AIコーディングアシスタントは、ずっと前に単なるオートコンプリートのウィジェットであることをやめました。彼らはリポジトリをインデックスし、環境変数を読み取り、シェルコマンドを提案し、ターミナルに修正案をささやきます。彼らは、ソースコード、ローカルのトークン、クラウドのCLI設定、そしてSSHキーと同じメモリ空間に存在しています。その近接性により、彼らは理論的なものではなく、非常に直接的な方法で攻撃対象領域の一部となります。

ほとんどのチームは、これらのツールを急いで導入しました。開発者が拡張機能をインストールし、パーソナルアクセストークンで認証を行い、AIが生成した提案を受け入れ始めます。セキュリティレビューが追いつくことはめったにありません。最近の2つの脅威、Djinn StealerとChocoPoCは、そのギャップがいかに危険であるかを正確に示しています。

審査し忘れた隣人

アシスタントが実際にどこに位置しているかを考えてみてください。GitHub Copilot、Cursor、Continue、または同様のツールを使用している場合、それらは開いているファイル、プロジェクト構造、そして時にはローカルファイルシステム全体への読み取り権限を持っている可能性が高いです。それらは、ディスク上の予測可能な場所に認証トークンを保存します。それらはIDE内で実行されますが、IDE自体がユーザー権限で実行されています。つまり、ワークステーションを侵害するマルウェアは、資格情報を盲目的に探し回る必要はありません。AIアシスタントが、すでに興味深い鍵を一つの便利な場所に集めてしまっているからです。

これは仮説上のアーキテクチャの欠陥ではありません。Djinn Stealerは、まさにこのレイアウトを悪用するように構築されています。これは、開発者の資格情報とAIツールのセッションを具体的に標的にします。ファイルシステムのあらゆる隅々をスクレイピングするのではなく、コーディングワークフローを支えるトークンを狙います。もしアシスタントがGitHub、GitLab、またはクラウドプロバイダーに対して認証されている場合、そのセッションを盗むことは、攻撃者にコード以上のものをもたらします。それは、あなたのアイデンティティを与えるのです。彼らはあなたの名前でコミットをプッシュし、プライベートリポジトリを読み取り、あなたが日常的に使用しているものと同じAPIを調査することができます。

Djinn Stealer: あなたの王国の鍵を狙う

Djinn Stealerがマシンに侵入すると、どの引き出しにスペアキーが入っているかを知っているスマートな泥棒のように振る舞います。AIツールの設定ディレクトリ、ブラウザのセッションストア、そして開発者が数ヶ月の作業を通じて蓄積してきた資格情報ファイルを探索します。このスティーラーは、現代の開発環境がアクセスを集中させていることを知っています。AIアシスタント用の1つのOAuthトークンが、パッケージレジストリ、コンテナリポジトリ、およびインフラストラクチャAPIへのアクセスと重複することがあります。

開発者がローカルで概念実証(PoC)コードをテストするとき、リスクは倍増します。セキュリティ研究者から興味深いリポジトリをクローンし、動作を確認するためにスクリプトを実行すると、そのスクリプトはバックグラウンドで静かに資格情報収集プログラムを実行します。AIアシスタントのトークンはホームディレクトリ下の標準的なパスに存在するため、スティーラーはあなたがREADMEを読み終える前にそれらを外部に持ち出すことができます。最悪なのは、これらのトークンは本番システムではなく生産性ツール向けに生成されたものであるため、企業のSSOをバイパスすることがよくある点です。

ChocoPoC: 依存関係が嘘をつくとき

Djinn Stealerが家を襲撃する一方で、ChocoPoCは郵便受けから忍び込みます。この脅威は、Pythonの依存関係、具体的には frint や skytext という名前のパッケージの中に悪意のあるパスを隠しています。ペイロードは、不用意なレビューで捕まってしまうような目に見えるスクリプト内には存在しません。その代わりに、より深く自身を埋め込みます、