AI News HubLIVE
站内改写3 分で読了

直感とAIがPython開発者を災害から救う

Python開発者のRoman Imankulov氏は、直感とAIエージェントを使って、採用テストを装った悪意のあるリポジトリを特定した。このリポジトリにはnpmインストールスクリプトに隠されたバックドアが含まれており、AIエージェントが被害が発生する前にそれを警告した。この事件は、ソフトウェアサプライチェーンを標的にしたソーシャルエンジニアリング攻撃の増加と、防御的なコードレビューにおけるAIの可能性を浮き彫りにしている。

ソースHacker News AI著者: Bender

Python開発者のRoman Imankulov氏は、巧妙に仕組まれたソーシャルエンジニアリングの罠に陥りかけたが、直感とAIコードレビューエージェントによって災難を免れた。

Imankulov氏はLinkedInで、小規模な暗号通貨スタートアップの採用担当者を名乗る人物から連絡を受け、動作しない概念実証コードの調査を依頼された。同社はリードエンジニアを必要としていると説明されたが、Imankulov氏はこのリクエストに違和感を覚えた。「こうした攻撃については聞いたことがありました。もし自分が標的だったらどうしようと考えました。それは過去の経験に基づいていました」と同氏はインタビューで語った。

安全策として、Imankulov氏はHetzner上でVPSを起動し、リポジトリをクローンした後、Piコーディングエージェント(Codexを実行)を使用してコードの読み取り専用分析を行った。同氏はエージェントが「コードは汚いが安全」と返すと予想していたが、予想に反してエージェントは即座に「このコードを実行しないでください。トラップがあります」と警告した。

AIエージェントがフラグを立てたのは、app/test/index.jsファイルだった。このファイルには、テストスイート設定を装って断片化されたサーバーURLと、サーバーからの応答を実行するネットワークリクエストが含まれており、バックドアとして機能していた。Imankulov氏は自分自身でコードをざっと見たときは見落としていたこの脆弱性を、AIエージェントが発見したことを評価した。

このリポジトリをnpm installしただけでバックドアが作動した。package.jsonファイルには、インストール後にスクリプトを実行する「prepare」フックが含まれていた。悪意のあるリポジトリはGitHubによって削除されたが、クローンはまだ入手可能である。

独立系オープンソースセキュリティアーキテクトのDevashri Datta氏は、この攻撃の巧妙さは開発者の標準的なワークフローを乗っ取る点にあると説明する。攻撃者は疑わしいバイナリを実行させるのではなく、開発者が自動的に実行するnpm installに依存した。package.jsonのprepareライフサイクルフック内に実行ロジックを埋め込むことで、悪意のあるペイロードが依存関係解決中に自動的にトリガーされる。この手法は新しいものではないが、開発者が自動操縦でnpm installを実行するため、依然として非常に効果的である。

Imankulov氏は、悪意のあるリポジトリのコミットは確立されたウェブプレゼンスを持つ開発者のように見えたが、連絡を取ったところ、その氏は何度もGitHubでなりすましを受けており、自分はそのコードを書いていないと述べた。採用担当者のLinkedInプロフィールは実際のアートジャーナリストを参照していたが、Imankulov氏はそれが偽造されたプロフィールであると考えている。

この種のソフトウェアサプライチェーンを標的にしたソーシャルエンジニアリング攻撃は一般的になりつつある。今月初めには、北朝鮮関連の詐欺師が偽の面接や求人情報を使って開発者アカウントを侵害するキャンペーンを展開していることが報じられた。

Datta氏は、Imankulov氏の対応はセキュリティ意識の高い開発者がコードレビューの衛生習慣をどのように改善しているかを示していると述べた。従来のガイダンスは信頼できないコードをサンドボックス化するか手動でレビューすることだったが、ここではローカルAIエージェントを制約された読み取り専用環境に展開し、コードベースを実行前に分析した。このアプローチは、疲労や社会的圧力に影響されず、異常な動作を迅速に表面化する。

対策として、npm 12ではnpm installコマンドの動作が変更され、allowScripts設定がデフォルトでオフになる。GitHubの製品マネージャーLeo Balter氏は、インストール時のライフサイクルスクリプトがnpmエコシステムで最大のコード実行面であると説明し、スクリプトの実行をオプトインにすることでリスクを軽減すると述べた。Imankulov氏は個人的にpnpmに切り替えてデフォルトでスクリプトを実行しないようにしている。Datta氏は、エンタープライズがソフトウェアサプライチェーンセキュリティを開発者エンドポイントまで拡張する必要性を強調した。