mcpField
S
setup-auditor

setup-auditor

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

setup-auditor について

setup-auditorは、OpenClaw環境を対象とするセキュリティ監査スキルです。ワークスペースの認証情報、エージェント設定、権限、サンドボックスの準備状況、永続化の兆候を順に確認し、リスクと対処案を報告します。

主な機能

  1. 01ワークスペース内の認証情報スキャン
  2. 02エージェント設定と権限の監査
  3. 03Dockerサンドボックス準備状況の確認
  4. 04永続化と侵害の兆候の調査
  5. 05リスクと修正案の報告

活用シーン

  1. 01新しいOpenClaw環境の評価
  2. 02ファイル読み取りスキルの実行前確認
  3. 03セキュリティインシデント後の再監査
  4. 04定期的なセキュリティ衛生チェック

インストール

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

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

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

詳細

セットアップ監査

OpenClaw の環境セキュリティ監査を行います。ユーザーのワークスペース、設定、サンドボックスのセットアップを確認し、スキルを安全に実行できるかどうかを判断します。

一言で言うと: セットアップについて教えてください → 準備ができているか、何を修正すべきかをお伝えします。

使用するタイミング

  • fileRead アクセスを持つスキルを実行する前(秘密情報が漏えいする可能性があります)
  • 新しい OpenClaw 環境をセットアップするとき
  • セキュリティインシデントの後(セットアップを再確認します)
  • 定期的なセキュリティ衛生チェック

ウィザードの手順(ユーザーに以下の質問をします)

Q1: What's your workspace path?
    → I'll scan for .env, .aws, .ssh, credentials

Q2: What host agent do you use? (Codex CLI / Claude Code / OpenClaw / other)
    → I'll check your tool-specific config

Q3: What are your permission defaults? (network / shell / fileWrite)
    → I'll verify least-privilege is applied

Q4: Do you use Docker/sandbox for untrusted skills?
    → I'll check isolation readiness

Q5: Any ports open or remote access configured?
    → I'll check exposure surface

監査手順(4 ステップ)

ステップ 1:認証情報のスキャン

fileRead を持つスキルからアクセス可能な、ワークスペース内に漏えいした秘密情報がないかスキャンします。

優先度の高いスキャン対象ファイル:

  • .env、.env.local、.env.production、.env.*
  • docker-compose.yml(環境変数のセクション)
  • config.json、settings.json、secrets.json
  • *.pem、*.key、*.p12、*.pfx

ホームディレクトリ内のファイル(ユーザーの同意を得てスキャン):

  • ~/.aws/credentials、~/.aws/config
  • ~/.ssh/id_rsa、~/.ssh/id_ed25519、~/.ssh/config
  • ~/.netrc、~/.npmrc、~/.pypirc

検出するパターン:

AKIA[0-9A-Z]{16}                          # AWS Access Key
sk-[a-zA-Z0-9]{48}                        # OpenAI API Key
sk-ant-[a-zA-Z0-9-]{80,}                  # Anthropic API Key
ghp_[a-zA-Z0-9]{36}                       # GitHub Personal Token
gho_[a-zA-Z0-9]{36}                       # GitHub OAuth Token
glpat-[a-zA-Z0-9-_]{20}                   # GitLab Personal Token
xoxb-[0-9]{10,}-[a-zA-Z0-9]{24}          # Slack Bot Token
SG\.[a-zA-Z0-9-_]{22}\.[a-zA-Z0-9-_]{43} # SendGrid API Key
-----BEGIN (RSA |EC |DSA |OPENSSH )?PRIVATE KEY-----
-----BEGIN PGP PRIVATE KEY BLOCK-----
(postgres|mysql|mongodb)://[^\s'"]+:[^\s'"]+@
(password|secret|token|api_key|apikey)\s*[:=]\s*['"][^\s'"]{8,}['"]

スキップする対象: node_modules/、.git/、dist/、build/、ロックファイル、テスト用フィクスチャ。

出力のサニタイズ: 秘密情報の値を完全な形で表示しないでください。必ず ████████ で切り詰めます。さらに、以下もマスクします。

  • メールアドレス → j***@example.com
  • ホームディレクトリのフルパス → ~/
  • 内部ホスト名 → [internal-host]
ステップ 2:設定の監査

ユーザーの OpenClaw/エージェント設定を確認します。

AGENTS.md/設定の確認:

  • AGENTS.md が存在する(存在しない場合は CRITICAL — 動作上の制約がありません)
  • ルールが明確である(「すべてのツールを有効にする」ではない)
  • 禁止事項のセクションに ~/.ssh、~/.aws、~/.env が含まれている

権限のデフォルト設定:

  • デフォルトで network: none
  • shell: prompt(確認を必須にする)
  • ファイルアクセスがプロジェクトディレクトリに限定されている
  • 4 つすべての権限を持つスキルがない

ゲートウェイ(該当する場合):

  • 認証が有効になっている
  • mDNS ブロードキャストが無効になっている
  • リモートアクセスに HTTPS を使用している
  • レート制限が設定されている
  • 許可するオリジンにワイルドカード * がない
ステップ 3:サンドボックスの準備状況

信頼できないスキルを分離して実行できるか確認します。

Docker サンドボックスの確認:

  • Docker/コンテナランタイムが利用可能
  • 非 root ユーザーが設定されている
  • リソース制限(メモリ、CPU、pids)が設定されている
  • ネットワーク分離が利用可能

必要に応じたサンドボックスプロファイルの生成:

読み取り専用スキルの場合:

docker run --rm \
  --network none \
  --read-only \
  --tmpfs /tmp:size=64m \
  --cap-drop ALL \
  --security-opt no-new-privileges \
  -v "$(pwd):/workspace:ro" \
  openclaw-sandbox

読み書きスキルの場合:

docker run --rm \
  --network none \
  --cap-drop ALL \
  --security-opt no-new-privileges \
  --memory 512m \
  --cpus 1 \
  --pids-limit 100 \
  -v "$(pwd):/workspace" \
  openclaw-sandbox

セキュリティフラグ(必ず含める):

フラグ目的
--cap-drop ALLLinux のすべてのケイパビリティを削除
--security-opt no-new-privileges権限昇格を防止
--network noneネットワークを無効化(デフォルト)
--memory 512mメモリを制限
--cpus 1CPU を制限
--pids-limit 100プロセス数を制限
USER openclaw非 root として実行

絶対に生成しないもの: --privileged、Docker ソケットのマウント、機密ディレクトリ(~/.ssh、~/.aws、/etc)のマウント。

ステップ 4:永続化の確認

過去に侵害された兆候がないか確認します。

  • ~/.bashrc、~/.zshrc、~/.profile — 不明な追加項目がない
  • ~/.ssh/authorized_keys — 不明な鍵がない
  • crontab -l — 不明なエントリがない
  • .git/hooks/ — 想定外のフックがない
  • node_modules — 想定外の変更がない
  • 不明なバックグラウンドプロセスがない

出力形式

SETUP AUDIT REPORT
==================
Workspace: <path>
Host agent: <tool>

VERDICT: READY / RISKY / NOT_READY

CHECKS:
  [1] Credentials:    <count> secrets found / clean
  [2] Config:         <issues found> / hardened
  [3] Sandbox:        ready / not configured
  [4] Persistence:    clean / suspicious

FINDINGS:
  [CRITICAL] .env:3 — OpenAI API Key exposed
    Action: Move to secret manager, add .env to .gitignore
  [HIGH] mDNS broadcasting enabled
    Action: Set gateway.mdns.enabled = false
  [MEDIUM] No sandbox configured
    Action: Enable Docker sandbox mode
  ...

FIX CHECKLIST (do these, re-run until READY):
  [ ] Add .env to .gitignore
  [ ] Rotate exposed API key sk-proj-...████
  [ ] Create AGENTS.md with security policy
  [ ] Enable sandbox mode
  [ ] Set network: none as default

GENERATED FILES (review before applying):
  .openclaw/sandbox/Dockerfile
  .openclaw/sandbox/docker-compose.yml
  AGENTS.md (template)

ルール

  1. 必ずウィザードの質問をする — 推測しない
  2. 秘密情報の値を完全な形で表示しない
  3. .gitignore を確認し、機密ファイルが無視対象になっていない場合は警告する
  4. network アクセスを持つスキルを実行する前に監査する場合 — すべての検出事項の重大度を CRITICAL に引き上げる
  5. 生成したファイルは .openclaw/sandbox/ に保存する — 既存のプロジェクトファイルを上書きしない
  6. ファイルを書き込む前に、必ずユーザーの確認を得る
  7. 露出した秘密情報がローカルのみの場合でも、認証情報のローテーションを常に推奨する

コメント