mcpField
S
skill-guard

skill-guard

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

skill-guard について

OpenClaw のスキル実行中に、ファイル、ネットワーク、コマンドの動作を用途と照合するセキュリティ監視スキルです。観察内容を記録し、異常や権限違反を重大度別に通知します。

主な機能

  1. 01ファイルの読み書きを監視
  2. 02外向きネットワーク接続を確認
  3. 03シェルコマンドの実行を監視
  4. 04スキルの目的に合わない動作を検知
  5. 05重大度に応じてインシデントをエスカレーション
  6. 06読み取り専用で動作を記録

活用シーン

  1. 01スキルによる認証情報ファイルへのアクセスを確認
  2. 02未申告のネットワーク接続を発見
  3. 03ワークスペース外への書き込みを検知
  4. 04不審なコマンドや永続化動作を監視

インストール

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

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

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

詳細

スキルガード

OpenClaw のランタイムセキュリティモニターです。スキルが有効な間、その動作を監視し、宣言された権限に違反する行為や不審なパターンを検出します。

監視対象

ファイルアクセス

スキルが読み書きするすべてのファイルを追跡します。

不審なファイルアクセスのパターン:

  • 認証情報ファイルの読み取り:~/.ssh/*、~/.aws/*、~/.gnupg/*、~/.config/gh/hosts.yml
  • プロジェクト外にある環境変数ファイルの読み取り:~/.env、/etc/environment
  • スタートアップ場所への書き込み:~/.bashrc、~/.zshrc、~/.profile、~/.config/autostart/
  • システムパスへの書き込み:/etc/、/usr/、/var/
  • 他のプロジェクトへの書き込み:現在のワークスペース外にある任意のパス
  • ブラウザーデータへのアクセス:~/.config/google-chrome/、~/Library/Application Support/
  • node_modules またはパッケージの依存関係の変更

想定されるファイルアクセス:

  • 現在のプロジェクトディレクトリにあるソースコードの読み取り
  • 想定された出力パス(src/, tests/, docs/)への生成コードの書き込み
  • スキルの目的に関連する設定ファイル(package.json、tsconfig.json)の読み取り
ネットワークアクティビティ

すべての外部接続を監視します。

不審なネットワークパターン:

  • ドメイン名ではなく IP アドレスへの接続
  • 標準以外のポート(80、443 以外)への接続
  • 大量の外部データ転送(情報流出の可能性)
  • 既知の悪意あるドメインまたは C2 サーバーへの接続
  • 不審な TLD への DNS クエリ
  • 機密ファイルの読み取り直後の接続(.env を読み取り → ネットワークリクエスト = 情報流出)

想定されるネットワークアクティビティ:

  • 宣言されたエンドポイント(SKILL.md に記載)への API 呼び出し
  • パッケージレジストリへの問い合わせ(npm、pypi、crates.io)
  • 公式ソースからのドキュメント取得
シェルコマンド

すべてのシェルコマンドの実行を監視します。

不審なコマンド:

  • curl、wget、nc、ncat — データ転送ツール
  • base64、openssl enc — エンコード/暗号化(難読化の可能性)
  • chmod +x、chown — 権限の変更
  • crontab、systemctl、launchctl — 永続化の仕組み
  • 不明なホストへの ssh、scp、rsync — リモートアクセス
  • システムディレクトリに対する rm -rf — 破壊的な操作
  • ダウンロードしたスクリプトの eval、source — リモートコード実行
  • ネットワークツールへのパイプ出力を含む任意のコマンド:cat file | curl
  • バックグラウンドプロセス:nohup、&、disown

想定されるコマンド:

  • git status、git log、git diff — リポジトリ操作
  • npm test、pytest、go test — テストランナー
  • npm install、pip install — パッケージのインストール(ユーザーの確認が必要)
  • package.json の scripts に宣言されたビルドコマンド

動作分析

異常検知

スキルの宣言された目的に一致しない動作を検出します。

スキルカテゴリ想定される動作異常な動作
コードレビューアーソースファイルを読み取る.env の読み取り、ファイルへの書き込み
テスト生成ツールソースを読み取り、テストファイルを書き込むネットワークリクエスト、シェルアクセス
ドキュメント作成ツールソースを読み取り、ドキュメントを書き込む認証情報ファイルの読み取り
セキュリティスキャナープロジェクト内のすべてのファイルを読み取るネットワークリクエスト、シェルアクセス
権限違反の検知

実際の動作を宣言された権限と照合します。

SKILL: example-skill
DECLARED PERMISSIONS: fileRead, fileWrite
ACTUAL BEHAVIOR:
  [OK] Read src/index.ts
  [OK] Write tests/index.test.ts
  [VIOLATION] Network request to api.example.com
  [VIOLATION] Shell command: curl -X POST ...

アラート形式

SKILL GUARD ALERT
=================
Skill: <name>
Severity: CRITICAL / HIGH / MEDIUM / LOW
Time: <timestamp>

VIOLATION: <description>
  Action: <what the skill did>
  Expected: <what it should do based on permissions>
  Evidence: <command, file path, or URL>

RECOMMENDATION:
  [ ] Terminate the skill immediately
  [ ] Revoke the specific permission
  [ ] Continue with monitoring
  [ ] Report to UseClawPro team

インシデントのエスカレーション

重大度トリガーアクション
CRITICAL認証情報ファイルへのアクセスとネットワーク接続直ちに終了し、認証情報をローテーションする
CRITICALリバースシェルのパターンを検出終了し、永続化の有無を確認する
HIGH宣言されていないネットワーク接続スキルを一時停止し、ユーザーに確認する
HIGHワークスペース外へのファイル書き込みスキルを一時停止し、変更内容を確認する
MEDIUM宣言されていないシェルコマンドログに記録して続行し、ユーザーに通知する
LOW想定外だが機密情報ではないファイルの読み取りログにのみ記録する

ルール

  1. 常に読み取り専用モードで実行してください。ガード自体がファイルを変更したり、ネットワークリクエストを行ったりしてはなりません
  2. 違反だけでなく、すべての観察結果を記録してください
  3. 判断に迷った場合は、疑わしいものとしてフラグを立ててください。脅威を見逃すよりも、誤検知のほうが望ましいです
  4. 宣言された権限だけでなく、動作をSKILL.mdの説明と照らし合わせてください
  5. 時間をかけた情報流出に注意してください。複数のリクエストにわたり、少量のデータが送信される場合があります

コメント