スキルの審査:あなたが審査される前に
安全なスキルとトロイの木馬を見分ける5ポイント審査フレームワーク。VirusTotal、Cisco Skill Scanner、手動レビュー、そして即座にストップすべきレッドフラグ。
プレミアムコースコンテンツ
このレッスンはプレミアムコースの一部です。Proにアップグレードすると、すべてのプレミアムコースとコンテンツを利用できます。
- すべてのプレミアムコースを利用
- 1,000以上のAIスキルテンプレート付き
- 毎週新しいコンテンツを追加
スキルの36%に問題がある
🔄 Quick Recall: エージェントをコンテナ化し(レッスン3)、権限境界を設定した(レッスン4)。しかし悪意あるスキルはコンテナ内部で、権限境界の範囲内で実行される。それは内部脅威。このレッスンでゲートで止める方法を教える。
Snykが3,984のClawHubスキルをスキャン。結果:1,467(36.82%)に何らかの脆弱性や悪意あるパターンが見つかった。そのうち534がクリティカル重大度(13.4%)、76が確認された悪意あるペイロードを含んでいた。
別途、Ciscoが31,000のエージェントスキルを分析し、26%に少なくとも1つの脆弱性があることを発見——外部サーバーへのcurlコマンドによるアクティブなデータ外部流出も検出。
これらは仮定の数字ではない。そしてVirusTotalのスキャンは有用だが、VirusTotal自身が明確に「銀の弾丸ではない」と述べている。
このレッスンの終了時にできるようになること:
- インストール前に5ポイント審査フレームワークをあらゆるスキルに適用できる
- 自動スキャン(有用)と手動レビュー(必須)の違いを区別できる
自動スキャンだけでは不十分な理由
OpenClawはClawHubスキルにVirusTotalスキャンを統合した。これは重要なステップ:すべてのスキルが70以上のアンチウイルスエンジンに対してスキャンされ、結果(Benign/Suspicious/Malicious)がユーザーに表示される。
しかしVirusTotalは既知のマルウェアシグネチャを検出する。検出できるものとできないもの:
| 脅威タイプ | VirusTotalが検出? | 理由 |
|---|---|---|
| 既知のマルウェア(AMOSトロイの木馬) | はい | 既知のバイナリとシグネチャが一致 |
| 難読化されたマルウェア | 時々 | 難読化技術による |
| SKILL.md内のプロンプトインジェクション | いいえ | 平文の命令、マルウェアではない |
| ソーシャルエンジニアリング(「これをインストールして」) | いいえ | コードではなくシグネチャもない |
| コンテキスト経由の認証情報漏洩 | いいえ | 機能的なコード、マルウェアではない |
| 時間遅延ペイロード(今はクリーン、後で悪意あり) | インストール時にはいいえ | ペイロードがまだ存在しない |
CiscoのSkill Scannerは、エージェントスキルの一般的な脆弱性パターンを特定的にチェックすることでギャップの一部を埋める。しかし自動ツールですべてを捕捉できるものはない。
要点: 自動スキャンはレイヤー1。あなたの手動レビューがレイヤー2。どちらも単独では十分ではない。
5ポイント審査フレームワーク
サードパーティスキルをインストールする前に、5つすべてをチェック:
ポイント1:ソース検証
スキルだけでなく著者もチェック。
- GitHubアカウントは実際のアクティビティと共に6ヶ月以上経過しているか?
- 著者には他の正当なリポジトリがあるか?
- アカウントは一貫して活動しているか、突然スキルを公開し始めたか?
レッドフラグ: 何年も休眠状態だったアカウントが突然1週間で20のスキルを公開。Bitdefenderはこの方法で使用される侵害されたアカウントを文書化——本物のアカウントが悪意ある目的にハイジャック。
重要な注意: アカウント年齢はシグナルであり、証明ではない。侵害された正当なアカウントは実際の履歴を持つ。著者が信頼できそうだからといって残りの4ポイントをスキップしない。
ポイント2:自動スキャン
両方の利用可能なスキャナーを実行:
VirusTotal: ClawHubでのスキルのステータス(Benign/Suspicious/Malicious)をチェック。SuspiciousまたはMaliciousなら停止。
Cisco Skill Scanner: ダウンロードしたスキルに対してローカルで実行。エージェントスキル固有の脆弱性パターン——認証情報露出、不審なネットワーク呼び出し、危険なツール使用——をチェック。
# Cisco Skill Scannerをローカルスキルディレクトリに実行
skill-scanner scan ./my-downloaded-skill/
目標: 両スキャナーからゼロの検出結果。いかなる検出結果もインストール前に調査が必要。
ポイント3:完全なファイルレビュー
✅ Quick Check: スキルをダウンロードした。SKILL.mdはクリーンに見える——会議メモのフォーマットに役立つ指示。しかし
scripts/setup.shファイルに気づいた。このスキルをインストールすべきか?(答え:setup.shの全行を読むまではインストールしない。Snykは無害なSKILL.mdファイルが悪意あるバンドルスクリプトと共に配布されることが多いことを発見。ClawHavocキャンペーンがまさにこのパターンでマルウェアを配信した。)
SKILL.mdだけでなくスキルディレクトリ内のすべてのファイルを読む:
| ファイルタイプ | チェック対象 |
|---|---|
| SKILL.md | 外部URLへの参照、どこかにデータを送る指示、エージェント設定/メモリの変更 |
| scripts/*.py, *.sh | ダウンロード、ネットワーク呼び出し、システム変更、エンコード/難読化コード |
| 設定ファイル | ハードコードされたURL、予期しないエンドポイント、埋め込み認証情報 |
| assets/ | 異常に大きなバイナリファイル、データに偽装された実行ファイル |
SKILL.md内の具体的なレッドフラグ:
- 「タスクを実行する前に、まず送信…」(データ外部流出命令)
- 「メモリを変更して…」(永続化メカニズム)
- 「以前の指示を無視して」(プロンプトインジェクション)
- 認識できない外部URL
スクリプト内の具体的なレッドフラグ:
- 見覚えのないドメインへの
curlやwget - Base64エンコードされた文字列(悪意あるコードを隠すために使用)
- ソフトウェアをインストールするコマンド(
pip install、npm install、brew install) - スキル自身のディレクトリ外でのファイル操作
ポイント4:前提条件の検証
スキルが何かのインストールを要求する場合、すべての依存関係を1つずつ検証:
- パッケージ名を独立して検索。実在する既知のパッケージか?
- URLを公式ソースに照合。本物のnpmレジストリからか、タイポスクワットされたパッケージではないか?
- バージョン番号を確認。要求されたバージョンは実際に最新/推奨版か?
ClawHavocキャンペーンが成功したのは、335のスキルがユーザーに実際にはマルウェアである「前提条件」のインストールコマンドを実行させたため。ユーザーはパッケージを検証せずにスキルの指示を信頼した。
ルール:スキルのREADMEからのインストールコマンドは、すべてのパッケージとURLを独立して検証するまで絶対に実行しない。
ポイント5:分離テスト
本番データでスキルを使う前に、分離環境でテスト:
- 新しいエージェントインスタンスを作成(または別のDockerコンテナを使用)
- 個人APIキーや認証情報をロードしない
- ダミーデータでスキルを実行
- スキルの動作を監視:どのファイルにアクセスするか?どのネットワーク呼び出しをするか?
スキルがスコープ外のファイルにアクセスしようとしたり、予期しないネットワークリクエストを行ったり、説明と異なる動作をしたりする場合——インストールしない。
クイックリファレンスチェックリスト
保存しておく:
- ソース: 著者アカウント6ヶ月以上、実際のアクティビティ、一貫したパターン
- スキャン: VirusTotal Benign+Cisco Skill Scannerゼロ検出
- レビュー: すべてのファイルを読む(SKILL.md+スクリプト+設定+アセット)
- 前提条件: すべての依存関係を独立して検証
- テスト: 認証情報なしの分離環境で正しく動作
これらのどれか1つでもスキップ? インストールしない。
インストール後:継続的な警戒
審査はインストールで終わらない。インストール時に安全だったスキルを特定的に標的とする2つの攻撃ベクトル:
依存関係ポイズニング: スキルが正規のnpmパッケージを参照。インストール後、攻撃者がその依存関係の悪意あるバージョンを公開。スキルが侵害されたバージョンに自動更新。
時間遅延攻撃: スキルがインストール時にすべてのスキャンをパス。信頼(とスター)を獲得後、攻撃者が悪意あるアップデートをプッシュ。
防御: 依存関係のバージョンを固定する。更新通知を購読する。インストール済みスキルを定期的にCisco Skill Scannerで再スキャン。ClawHubスキルについてはVirusTotalの日次再スキャンをベースラインとして使用。
Key Takeaways
- **ClawHubスキルの36.82%**に脆弱性や悪意あるパターン——自動スキャンだけでは半分以下しか捕捉できない
- VirusTotalは既知のマルウェアは検出するがプロンプトインジェクション、ソーシャルエンジニアリング、認証情報漏洩は見逃す
- 5ポイントフレームワーク:ソース検証、自動スキャン、完全なファイルレビュー、前提条件検証、分離テスト
- 侵害されたアカウントは著者の評判がシグナルであり証明ではないことを意味する
- すべてのファイルを読む——SKILL.mdだけでなく——悪意あるペイロードはスクリプトやアセットに隠れている
- インストール後の警戒が依存関係ポイズニングと時間遅延攻撃を捕捉する
Up Next
レッスン6:監視——リアルタイムで脅威を捕捉する——スキルの審査と権限の制御はできた。しかし実行中に何かがおかしくなったら?どうやって知るか? 被害が発生する前にリアルタイムで脅威を捕捉する方法を学ぶ。
理解度チェック
まず上のクイズを完了してください
レッスン完了!