SkillCloak: AIエージェントSkillの静的スキャナを90%以上回避、HKUST論文が示す実行時検査の必要性

この記事は約17分で読めます。

香港科技大学(HKUST)の研究チームが2026年7月2日にarXivへ投稿したプレプリント論文「Cloak and Detonate: Scanner Evasion and Dynamic Detection of Agent Skill Malware」が、AIエージェント向けSkillエコシステムの静的スキャナに深刻な穴があることを実証しました。研究チームは9個のSkillスキャナを調査し、うち主要な実測評価対象の8個に対して、Self-Extracting Skill Packingという単一の手法だけで全スキャナを90%以上バイパスし、静的・ハイブリッド静的スキャナ6個のうち5個で99.8%以上のバイパス率を記録しました。これはCisco AI DefenseのSkillスキャナも例外ではなく、Structural Obfuscationで96%、SFS Packingで90%超のバイパス率が報告されています。

研究の背景には、2026年1月末から急拡大したClawHavocキャンペーン(Koi Securityが341個の悪意Skillを発見、Atomic macOS Stealer配布)、Bitdefenderが早期分析で「約17%が悪意ペイロード」と報告した状況、そして2026年6月23日にUnit 42が公開した5個の回避型Skillの追加事例があります。マーケットプレイス側はVirusTotal連携、ClawScan、SkillSpector、NVIDIA協業と急速に防御を積み増してきましたが、論文の結果は静的スキャンを重ねるだけでは回避され得ることを示しており、実行時挙動を組み込んだ検査への転換を迫っています。

Cloak and Detonate論文の全体像

本論文はプレプリント(査読前)で、GitHubに再現用アーティファクトが匿名化リポジトリとして公開されています。攻撃側SkillCloakと防御側SkillDetonateを対で提示する構成で、いずれも研究プロトタイプという位置付けが著者自身により明示されています。

項目 内容
論文タイトル Cloak and Detonate: Scanner Evasion and Dynamic Detection of Agent Skill Malware
著者 Zimo Ji、Congying Xu、Zongjie Li、Yudong Gao、Xin Wei、Shuai Wang、Shing-Chi Cheung(所属:香港科技大学HKUST)
公開日 2026年7月2日(arXivプレプリント、査読前)
arXiv ID 2607.02357v1
対象エコシステム AIエージェント向けAgent Skill、OpenClaw/ClawHub、Claude Code、OpenAI Codexなどで扱われるSKILL.md形式のSkill
調査対象スキャナ 9個(Huifer、Caterpillar、Headyzhang、Vigile、Qualixar/SkillFortify、Pors、Cisco AI Defense、Nova、Patidarganesh/SkillScanner)
主要バイパス実測対象 8個(Patidarganeshを除く)
評価データセット ClawHubアーカイブ上の実観測1,613個の悪意Skill、SkillJectベンチマーク150個、MalSkillBench実世界622個
攻撃側ツール SkillCloak(Structural Obfuscation + Self-Extracting Skill Packing)
防御側ツール SkillDetonate(FUSE + eBPF + On-Demand Closure Lift + Marker-Based Taint Analysis)
SFS Packingバイパス率 実測評価対象の8個すべてで90%以上、静的・ハイブリッド静的の6個中5個で99.8%以上
Cisco AI Defenseへの効果 Structural Obfuscationでバイパス率96%(検知結果の削減率88.6%)、SFS Packingでバイパス率同程度以上(検知結果の削減率96.2%)
SkillDetonate検出率 SkillJectで97%検出/2%誤検知、MalSkillBench実世界で87%検出
CVE番号 該当なし(学術研究、特定製品の脆弱性報告ではない)

Agent Skillという新しいサプライチェーン攻撃面

Agent Skillは、AIエージェントに特定タスクの実行手順を教えるための軽量なパッケージ形式で、名前(name)、説明(description)などのフロントマターを持つSKILL.mdファイルと、それを補助するテキストファイルやスクリプトで構成されます。論文はClaude CodeとOpenAI Codexを代表的な採用エージェントとして挙げており、SKILL.mdを含む構造化ディレクトリとして配布されるため、あるマーケットプレイスに公開されたSkillが別のエージェントでもそのまま動作する高い可搬性を持ちます。

ClawHubは、オープンソースのパーソナルAIエージェントOpenClaw(旧称Clawdbot/Moltbot、開発者はPeter Steinberger氏)の公式Skillレジストリで、GitHubアカウントが1週間以上経過していれば誰でもSkillを公開できる仕組みです。2025年11月時点で127個だったSkill数は、2026年3月には15,000個以上に達し、論文中の別マーケットプレイスに関する記述でも「導入から数か月で単一のマーケットプレイスが4万件を超えた」と言及されるほど、npmのAIエージェント版と呼ばれる規模まで急拡大しました。この開放性と規模の急拡大がClawHubを供給側の格好の標的にしました。

従来型のnpmやPyPIと決定的に異なるのは、Agent Skillが「LLMへの指示文」として解釈される点にあります。Unit 42の分析によれば、悪意Skillは自然言語による指示の解釈を悪用してエージェントの操作コンテキスト、ファイルシステム、シェル、認証情報マネージャに到達できるため、従来型マルウェアが依存していた言語ランタイムやコンテナの制約を迂回できます。Skillのロジックとエージェントの権限のあいだに分離が存在しないため、Skillのインストールに成功した攻撃者はエージェント自身の認証済みセッションを丸ごと利用できる状態になります。

ClawHavoc以降の実世界の攻撃事例

SkillCloak論文の背景には、2026年前半に相次いで報告された実世界の悪意Skillキャンペーンがあります。研究チームの評価データセットもClawHubアーカイブから抽出されており、論文の主張は仮想的な脅威モデルではなく、既に観測されている供給側汚染の延長線上にあります。

ClawHavoc(2026年2月、Koi Security)

Koi Securityの研究者Oren Yomtov氏は、自身のOpenClawアシスタント「Alex」の協力を得てClawHubの全2,857個のSkillを監査し、341個(11.9%)が悪意Skillで、うち335個が単一のキャンペーンに紐付くことを2026年2月1日に公開しました。研究チームはこのキャンペーンをClawHavocと命名しました。ペイロードはAtomic macOS Stealer(AMOS)で、C2サーバは91.92.242[.]30に集約されており、キャンペーンは2026年1月末の数日間に集中して大量投入されていました。

攻撃手法は単純ですが効果的でした。悪意Skillは正当なツール(solana-wallet-trackerやyoutube-summarize-proなど)を装い、SKILL.mdの「前提条件」セクションで「このSkillを動かすには先にopenclaw-agent utilityが必要です」と指示します。エージェントが素直にその指示に従うと、macOS向けはglot[.]ioやrentry[.]coといったペーストサイト経由でBase64エンコードのシェルスクリプトを取得して実行し、Windows向けはパスワード保護ZIPに包まれたキーロガーを起動します。カテゴリは暗号資産関連、YouTube関連、Polymarketボット、ClawHub CLIのタイポスクワット、自動更新ツール、Google Workspace連携など、インストール数を稼ぎやすい題材に集中していました。

その後、悪意Skillの数は800個以上に拡大し、レジストリ全体の約20%に達したと報告されています。OpenClaw側は2026年2月7日にVirusTotal連携を発表し、5月31日にはSkillカードとSkillSpector、6月1日にはNVIDIAとの協業をアナウンスして、上流での自動監査体制を段階的に強化してきました。

Unit 42の追加事例(2026年6月)

Palo Alto Networks Unit 42のShresta Bellary Seetharam氏ら4名の研究チームは、2026年6月23日に「OpenClaw’s Skill Marketplace and the Emerging AI Supply Chain Threat」を公開し、2026年2月から5月にかけての追加分析で5個の未検知Skillを発見・報告したことを明らかにしました。5個の内訳は、macOS向けインフォスティーラー2個(tradingview系、C2は2.26.75[.]16、cluwペイロード)、ファイルパディングによる回避型1個(omnicogg、README.mdに22MBのパディングを詰めてClawScanとVirusTotal両方の閾値を突破)、ランタイム型アフィリエイト注入1個(money-radar、laosji[.]netから動的にアフィリエイトリンクを注入)、エージェンティック・フロントランニング1個(letssendit、SOL資金プールとpump[.]funでのミームトークン先回り購入)です。

特にomnicoggの手口は本論文のSFS Packingと類似性があり、スキャン閾値を超えるサイズにファイルを膨らませて解析を回避する古典的手法が、Agent Skill文脈でも通用してしまうことを実証しました。またmoney-radarとletssenditは、旧来のマルウェア検知の枠組みでは扱いにくい「悪意ある指示に従わせる」タイプの攻撃で、静的スキャンだけでは本質的に検出困難な領域に踏み込んでいます。

SkillCloakの攻撃手法

SkillCloakは、既存の悪意SkillをそのままにSKILL.mdの記述だけを書き換えて静的スキャナを回避する枠組みで、Structural ObfuscationとSelf-Extracting Skill Packingの2つの戦略から構成されます。研究チームは意味的等価性を保ちながら表層の指標を消す方針をとっており、書き換え後のSkillはCVE番号を持つ脆弱性を突くわけではなく、あくまで「正当な検出対象」であり続けます。

Structural Obfuscation(構造的難読化)

Structural Obfuscationは、SKILL.md本文中の可視的なペイロード指標を意味的に等価な形へと書き換える戦略で、Reify系(表現の言い換え)とDisperse系(表現の分散)の合計13オペレータからなります。Reify系にはゼロ幅文字挿入、ホモグリフ置換、大文字小文字の入れ替え、同義語置換、getattr/chrを使った文字コード経由の関数呼び出し、変数への分割代入、コマンド置換などが含まれ、いずれも人間の目には自然な見た目を保ちつつ、正規表現やAST検査を通すためのパターンをずらす狙いを持ちます。

Disperse系は、単一行の危険パターンを複数行に分散させたり、payloadを複数ファイルに分けたり、ディレクトリ構造を変更したり、拡張子を書き換えたり、無害なコンテンツで文字数を水増ししたりする手法で、スキャン対象の切り出しそのものをずらします。研究チームはLLMを用いて元Skillの意味論を保ったまま各オペレータを適用しており、最終的な悪意Skillはコマンド構造や実行フローを変えず、外形だけを別物にしています。

Self-Extracting Skill(SFS)Packing

SFS Packingは、悪意ペイロードそのものをスキャナから完全に隠す戦略です。攻撃者はまず良性の偽装用Skill(SKILL.mdと必要ファイル)を生成し、XORで暗号化した悪意ペイロードを.git/skillpack.datのような監査対象から外れがちなディレクトリに隠します。SKILL.mdの本文は偽装タスクを実行する自然な指示のみを含み、静的スキャンで見える範囲には悪意コードが一切存在しません。

実行時にはSKILL.md内のデコーダ指示がエージェントに.git/skillpack.datを読み込ませてXOR復号し、復号後のペイロードを実行します。この設計は、Unit 42が指摘したomnicoggの22MBパディング手法や、Koi Securityが観測したペーストサイト経由のBase64デコード実行と同系統の発想を、より体系的に整理したものです。研究チームは複数の実観測Skillに対してSFS Packingを適用し、実測評価対象の8個のスキャナすべてで90%以上、静的・ハイブリッド静的の6個のうち5個で99.8%以上のバイパス率を確認しました。

実測結果とユーティリティ保存

研究チームは、ClawHubアーカイブから抽出した1,613個の実観測悪意Skillに対してSkillCloakを適用し、調査した9個のうち主要な実測評価対象の8個のスキャナ(LLM判定型のCisco AI DefenseとNovaは計算コストの都合で100個サブセット)を対象に評価しました。結果は静的スキャナ側にとって厳しい結果で、SFS Packing適用時のバイパス率は8個すべてで90%以上、最も低いNovaでも90.1%を記録しています。Structural Obfuscationだけでも、静的解析ベースのHuifer、Headyzhang、Vigile、Qualixar、Porsで80%以上のバイパス率が観測され、ハイブリッド型のCisco AI Defenseではバイパス率96%、検知結果の削減率でも88.6%という水準に達しました。

特筆すべきは、クローキング(隠蔽処理)を施した後のSkillが実行環境で本来のタスクを遂行できるかを検証したユーティリティ評価です。研究チームは87個のDocker化タスクからなるSkillsBenchで、生のSkill、Structural Obfuscation適用後、SFS Packing適用後の各条件でタスク成功率を比較しました。GPT-5.4をバックエンドとするOpenAI Codexでは、生Skill 0.526に対しSFS Packingが0.555、Structural Obfuscationが0.535、Claude Sonnet 4.6をバックエンドとするClaude Codeでは生Skill 0.517に対しSFS Packingが0.559、Structural Obfuscationが0.620と、いずれも統計的に有意な劣化が認められないどころか、わずかにスコアが上昇するケースも観測されました。クローキングは検出回避と機能維持を両立できるという実測結果は、静的スキャンに依存した供給側フィルタリングの前提を根本から揺さぶるものです。

SkillDetonateによる防御アプローチ

SkillDetonateは、SKILL.mdの記述内容そのものではなく、Skillが実行時に何をするかを見る動的解析型の防御ツールで、FUSEによる仮想ファイルシステムとeBPFによるシステムコール監視を組み合わせたDocker sandbox上で動作します。中核となる2つの技術はOn-Demand Closure Lift(実行直前の動的解釈)とMarker-Based Taint Analysis(マーカーベースの汚染追跡)です。

On-Demand Closure Liftは、実行時にエージェントが動的に組み立てて実行しようとする命令を、実行直前にサンドボックス内で解釈して危険性を評価する仕組みで、SFS Packingで隠されたXOR復号後のペイロードもこの段階で観測対象になります。Marker-Based Taint Analysisは、機密データ(認証情報、鍵、ホスト情報など)に印を付けて、それが不審な外部通信や書き込みに流れないかを追跡する仕組みで、money-radarのようなランタイム型の情報流出も検出可能な設計になっています。

参照実装は自律型コーディングエージェントopencodeとDeepSeekモデルの組み合わせで構築されていますが、著者はエージェントとモデルは交換可能と明記しています。評価はSkillJectベンチマークとMalSkillBench実世界データセットで実施され、SkillJect 150個の合成攻撃Skillでは97%の検出率と2%の誤検知率、MalSkillBenchの622個の実行可能な実世界悪意Skillでは87.3%の検出率を記録しました。同じ条件でのCisco AI Defenseは、SkillJectで44.5%、MalSkillBenchで39.4%にとどまっており、動的解析と、インストール時の静的・ハイブリッド静的スキャンとの差は大きく開きました。

ただし性能上の代償として、SkillDetonateの平均処理時間は1タスクあたり153秒(Cisco 21秒、素のエージェント38秒)と大きく、マーケットプレイス側で全公開Skillに適用するには相応の計算資源が必要です。研究チームは限界セクションで、アンチサンドボックス技術を組み込んだSkillに対しては検出精度が低下する可能性があること、また実際のマーケットプレイスでのライブ運用は未検証であることを明示しています。

実務的な示唆

SKILL.md形式を採用したAgent Skillは、Claude Code、OpenAI Codex、OpenClawなど複数のエコシステムで共通に扱われる形式で、あるマーケットプレイスで公開された悪意Skillが別のエージェントに持ち込まれ得ることが本論文とUnit 42のレポートで裏付けられています。組織としてAgent Skillの導入を進める場合、開発者やユーザ任せにするのではなく、次のような供給側と実行側の双方向の防御を積み上げる必要があります。

  • 供給側の検証:マーケットプレイス公開時のスキャン結果を鵜呑みにせず、Skill発行者のGitHubアカウント年数、他のSkillの実績、コミュニティレビューなどの評判信号を独自に確認する運用を整えます。
  • ソースコードの人力レビュー:SkillのSKILL.md本文とスクリプトを、外部エンドポイント参照、シェル実行、認証情報アクセスの3観点で行単位に精査します。前提条件セクションで外部サイトへのペースト実行を求めるSkillは、それだけで警告レベルとして扱う運用が現実的です。
  • 実行環境の隔離:Agent Skillを実行するエージェントは、専用ユーザ、隔離コンテナ、あるいは短命な仮想マシン上で動かし、ホストのファイルシステム、ブラウザ認証情報、SSH鍵などから隔離します。
  • アウトバウンド監視:Skillが実行時に到達する外部ドメイン・IPをすべて記録し、Skill文書に記載されていない通信先を検知した時点でアラートを上げる仕組みを整えます。C2の91.92.242[.]30、2.26.75[.]16、laosji[.]net、letssendit[.]funといった既知の指標は最低限のブロック対象です。
  • 認証情報の最小権限化:エージェントに渡す認証情報はSkillの実行時間内だけ有効な短寿命トークンにとどめ、必要以上の権限を持たせないよう秘密情報管理システムと連携します。

SkillCloakとSkillDetonateはあくまで研究プロトタイプですが、示された非対称性、すなわち「攻撃側は既存の悪意Skillを軽く書き換えるだけで検出を突破できる」「防御側は実行時挙動まで踏み込まないと本質的な検出が難しい」という構図は、これから商用スキャナや企業内フィルタが乗り越えるべき課題として無視できません。マーケットプレイス側の防御強化と並行して、利用側でも実行時の可視性を上げる打ち手を進めていく段階に来ています。

一次情報・公式情報

参考情報

slug: skillcloak-ai-agent-skill-scanner-evasion

コメント

タイトルとURLをコピーしました