mcpField
C
cyber-audit

cyber-audit

github.com/davidondrejセキュリティ4.2k112 回インストール今日更新
リポジトリ

cyber-audit について

cyber-auditは、セキュリティアドバイザリに基づいてシステムを調べる読み取り専用スキルです。関連するチェックを選び、具体的な結果を日付入りのMarkdownレポートに記録し、監査用ディレクトリ以外は変更せずに判定を示します。

主な機能

  1. 01アドバイザリの対象範囲を特定
  2. 02関連チェックを並行実行
  3. 03具体的な結果を表に記録
  4. 04日付入りMarkdownレポートの作成
  5. 05緩和策を含む判定

活用シーン

  1. 01セキュリティアドバイザリの影響確認
  2. 02インストール済みパッケージとバイナリの監査
  3. 03監査記録としての調査結果保存

インストール

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

$npx skills add https://github.com/davidondrej/skills --skill cyber-audit

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

同梱ファイルagents/openai.yaml

詳細

cyber-audit

厳守するルール

  • 読み取り専用です。 ~/Documents/security-audits/ の外では、インストール、削除、アップグレード、再起動、ネットワーク呼び出し、ファイルの変更を行わないでください。
  • sudo は使わないでください。 例外はありません。
  • 1 回の実行につき、レポートは 1 件です。 判定が「影響なし」の場合でも、必ず最後に .md ファイルを書き込んでください。監査証跡が重要です。
  • チェックに状態を変更するコマンドが必要な場合は、実行せずにスキップし、表に「未チェック(状態の変更が必要なため)」と記載してください。

ワークフロー

  1. 対象範囲を特定します。 アドバイザリから、パッケージ/バイナリ名、影響を受けるバージョン、プラットフォーム(macOS/Linux/Windows)、攻撃ベクトル(サプライチェーン/RCE/ローカル/ネットワーク)を抽出します。
  2. チェックを並列で実行します(Bash ツールを使用し、1 つのメッセージ内で複数回呼び出します)。アドバイザリの種類に関連するチェックを選び、すべてを実行しないでください。
  3. チェックを進めながら表を作成します。 各行には、1 つのチェックと具体的な結果(バージョン番号、パス、「なし」、「該当なし」)を記載します。
  4. レポートを作成します。 ~/Documents/security-audits/YYYY-MM-DD-<short-kebab-slug>.md に保存します。環境ヘッダーから今日の日付を使用してください。
  5. ユーザーに伝えます。 判定を 1 行で伝え、レポートのパスを示します。

チェック項目(関連するものを選択)

# --- Node / npm ecosystem (supply-chain advisories) ---
which npm pnpm yarn; npm root -g; pnpm root -g 2>/dev/null
ls /opt/homebrew/lib/node_modules                                  # global npm
find ~ -maxdepth 8 -type d -name "<pkg>" 2>/dev/null \
  | grep -v -E "(Library/Caches|\.Trash)"                          # installed copies
find ~/Documents ~/Desktop ~/Downloads -maxdepth 8 -type f \
  \( -name "package.json" -o -name "package-lock.json" \
     -o -name "pnpm-lock.yaml" -o -name "yarn.lock" \) 2>/dev/null \
  | xargs grep -l "<pkg>" 2>/dev/null                              # direct + transitive

# --- Python ecosystem ---
which python3 pip pipx uv
pip list 2>/dev/null | grep -i "<pkg>"
find ~/Documents -maxdepth 6 -name "requirements*.txt" -o -name "pyproject.toml" \
  -o -name "poetry.lock" -o -name "uv.lock" 2>/dev/null | xargs grep -l "<pkg>" 2>/dev/null

# --- Homebrew / system binaries ---
brew list --versions <formula> 2>/dev/null
which <binary>; <binary> --version 2>/dev/null

# --- Running processes / listeners (for RCE / network CVEs) ---
pgrep -lf "<binary>"
lsof -iTCP -sTCP:LISTEN -P -n 2>/dev/null | grep "<port>"

# --- LaunchAgents / LaunchDaemons (persistence / autostart) ---
ls ~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons 2>/dev/null \
  | grep -i "<vendor>"

# --- Env vars that change exposure (e.g. OLLAMA_HOST, listening addr) ---
launchctl getenv <VAR>; grep -r "<VAR>" ~/.zshrc ~/.zprofile ~/.config 2>/dev/null

# --- VS Code / browser extensions (for IDE-targeted advisories) ---
ls ~/.vscode/extensions 2>/dev/null | grep -i "<ext>"

アドバイザリに上記以外のエコシステム(Rust cargo、Go modules、Ruby gems、Docker イメージなど)が記載されている場合も、同じパターンを適用します。グローバルなインストール先、マニフェストの grep、実行中のプロセスを確認してください。

レポートのテンプレート

ファイル:~/Documents/security-audits/YYYY-MM-DD-<short-kebab-slug>.md

# <Subject> — Audit

**Date:** YYYY-MM-DD
**Host:** the user's MacBook Pro

## <CVEs | Advisory> in scope

- **<ID or source> "<Name>"** — <one-line description>. <Affected versions or scope>.

## Audit results

| Check | Result |
|---|---|
| <Check 1> | <Result> |
| <Check 2> | <Result> |

## Verdict

**<Not affected. | Affected. | Partially affected.>**

- <Rationale bullet 1>
- <Rationale bullet 2>

## Action taken

None — diagnostic only, no files modified, no <packages installed/removed | services started/stopped | firewall rules changed>.

## Follow-ups

- <Actionable item, or "None" if truly nothing>

~/Documents/security-audits/ にある既存のレポートのトーンに合わせてください。簡潔で事実に基づき、箇条書きにし、曖昧な表現は避けてください。

判定の表現

  • 影響なし。 — パッケージ/バイナリが存在しない、インストール済みだが修正済み、または実行されておらず、公開されていない場合。
  • 影響あり。 — 脆弱なバージョンが存在し、かつ攻撃ベクトルから到達可能な場合。
  • 部分的に影響あり。 — 存在するものの、緩和策が講じられている場合(例:バイナリはインストール済みだがサービスは実行されていない、またはリスナーがループバックのみにバインドされている)。箇条書きで緩和策を明記してください。

読み取り専用ルールを破る場合

自分の判断でルールを破ることはありません。判定が「影響あり」の場合は、フォローアップに修正コマンドを記載して終了してください。実行するのはユーザーです。

参考資料

~/Documents/security-audits/ にある既存のレポートで、想定されるスタイルを確認できます。

  • 長文形式のベースライン監査レポート(形式が異なるため、まねしないでください)
  • 日付付きの YYYY-MM-DD-*.md アドバイザリレポート(これに形式を合わせてください)

コメント