Takeshi Ikemoto

医療 × 経営 × テクノロジー

·朝便 3本目·

見えない文字がコードを汚染、AI悪用の新たな脅威

GlasswormGitHubAI悪用不可視コード

一言で言うと

Glasswormと呼ばれる攻撃者が、Unicode Private Use Areaの不可視文字を利用してGitHubリポジトリやVS Code拡張機能に悪意のあるコードを埋め込み、大規模言語モデル(LLM: Large Language Model)を悪用して巧妙な偽装を行う新たなサイバー攻撃が確認されました。

何が起きているのか

Aikido Securityの研究者たちは、Glasswormと追跡される攻撃者が、少なくとも151のGitHubリポジトリを侵害していることを報告しました。この攻撃は2025年3月3日から3月9日の間に発生し、その後npmパッケージやVS Codeマーケットプレイスにも拡大しています。

攻撃手法は、人間には目に見えないUnicode Private Use Areaの文字、具体的には0xFE00から0xFE0Fおよび0xE0100から0xE01EFの範囲の文字を悪用するものです。これらの文字は、ほとんどのコードエディタやターミナルでゼロ幅の空白として表示されるため、開発者がプルリクエストをレビューしても悪意のあるコードの存在に気づくことは困難です。

隠されたバイトは、小さなデコーダーによって抽出され、`eval()`関数を通じて悪意のあるペイロードが実行されます。過去のGlassworm攻撃では、このペイロードがSolanaブロックチェーンをコマンド&コントロールチャネルとして利用し、トークン、認証情報、秘密情報を盗み出していました。

今回の攻撃は、バージョンアップや小規模なリファクタリングに見せかけた、標的プロジェクトのスタイルと一貫性のあるコミットメッセージを生成しており、攻撃者が大規模言語モデル(LLM: Large Language Model)を使用してこれらの巧妙な偽装を行っている可能性が指摘されています。Aikido Securityは、パッケージ名や依存関係の厳密な精査に加え、不可視のUnicode文字をスキャンできる自動ツールの使用を推奨しています。

AI業界の文脈では

この攻撃は、サイバーセキュリティの脅威が高度化し、特にソフトウェア開発のサプライチェーンの弱点が悪用されている現状を浮き彫りにしています。大規模言語モデル(LLM: Large Language Model)が、偽装工作やソーシャルエンジニアリングの自動化に使われ始めている可能性を示す事例でもあり、AIの進化が善用だけでなく悪用にもつながりうることを改めて考えさせます。

従来の目視によるコードレビューでは見つけにくい、新しいタイプの攻撃手法が広がっていることは、開発プロセスのセキュリティ対策を見直す必要性を示しています。また、Solanaブロックチェーンが追跡しにくい命令伝達経路として悪用されている点も、分散型技術の悪用リスクを示す重要な側面です。この種の攻撃は、AIが生成するコンテンツの信頼性や、開発環境全体の安全性への警戒を一段と高めます。

私の見立て

AIが悪意ある目的で利用され、従来のセキュリティ対策をすり抜ける巧妙な攻撃手法が現実のものとなっており、開発プロセス全体の信頼性をどう守るかが大きな課題になっています。

医療分野では、医療情報システムや研究データのリポジトリが標的となるリスクが高まります。患者データや機密性の高い研究成果が盗まれた場合、患者のプライバシー侵害だけでなく、医療機関の信頼失墜、法的責任、さらには研究の公正性にも深刻な影響を及ぼすでしょう。

経営の視点からは、サプライチェーン攻撃のリスクが一段と高まっていることを認識し、ソフトウェア開発プロセスにおけるセキュリティ監査を強化することが重要です。特に、外部ライブラリやオープンソースプロジェクトの利用には、これまで以上に慎重な評価と継続的な監視が求められます。

AIビルダーの視点では、LLMが生成するコードやコミットメッセージをこれまで以上に慎重に検証する必要があります。また、コードレビューや静的解析の仕組みに、不可視文字やLLMによる偽装を検出する機能を組み込むことが重要です。

→ 何が変わるか: ソフトウェア開発における信頼の前提が揺らぎ、従来のセキュリティ対策だけでは足りず、より高度な自動検出と検証の仕組みが重要になります。

→ 何をすべきか: 開発チームは、Unicodeの不可視文字を検出できる専用スキャンツールを導入し、GitHubリポジトリや依存関係のセキュリティチェックを自動化するとともに、LLMが生成するコードや文面を安易に信用しない運用を徹底することが重要です。