mcpField
S
skill-security-audit

skill-security-audit

github.com/smartchainarkセキュリティ10514 回インストール37 週間前に更新
リポジトリ

skill-security-audit について

インストール済みの Claude と OpenClaw のスキルを対象とするセキュリティ監査スキルです。悪意あるパターンをスキャンし、重要度別に結果を整理して、確認と対処の手順を示します。

主な機能

  1. 01スキルディレクトリの自動検出とスキャン
  2. 0213種類のリスクパターンの検出
  3. 03重要度と確信度による結果表示
  4. 04指定パスのスキャンと JSON 出力
  5. 05手動確認とインシデント対応の手順

活用シーン

  1. 01インストール済みスキルの悪意あるパターン確認
  2. 02個別スキルディレクトリの詳細監査
  3. 03JSON 形式でのスキャン結果処理
  4. 04重大な検出結果に応じた隔離と認証情報の更新

インストール

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

$npx skills add https://github.com/smartchainark/skill-security-audit --skill skill-security-audit

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
LICENSE
.gitignore
blog-post.md
references/
remediation-guide.md
ioc-database.md
threat-patterns.md
scripts/
ioc_database.json
skill_audit.py

詳細

スキルのセキュリティ監査

インストール済みの Claude および OpenClaw スキルに含まれる悪意のあるパターンを検出します。ClawHub プラットフォーム上の 472 件以上の悪意のあるスキルに関する SlowMist の分析に基づいています。

トリガー

ユーザーが次のいずれかに言及した場合に、このスキルを使用します:安全性監査、セキュリティ監査、スキルのチェック、スキルの安全性、スキルのスキャン、サプライチェーンセキュリティ、スキルのスキャン、悪意のあるものの検出、悪意のあるスキル、スキルのセキュリティスキャン

クイック監査ワークフロー

ユーザーからセキュリティ監査を依頼された場合は、次の 5 つの手順に従います。

Step 1: スキャナーを実行する
python3 ~/.claude/skills/skill-security-audit/scripts/skill_audit.py

次の場所にあるすべてのスキルを自動検出してスキャンします:

  • ~/.claude/skills/
  • ~/.openclaw/workspace/skills/
  • ~/.openclaw/openclaw.json → skills.load.extraDirs にある追加ディレクトリ
Step 2: 結果を分析する

スキャナーの出力を確認します。検出結果はスキルごとにまとめられ、深刻度順に並んでいます:

深刻度意味必要な対応
CRITICAL既知の悪意ある IOC との一致、認証情報の窃取、またはダウンロードして実行する動作直ちに削除し、認証情報をローテーションする
HIGH難読化、永続化メカニズム、権限昇格手動での確認が必要で、悪意がある可能性が高い
MEDIUM不審なパターン(Base64、ネットワーク呼び出し、高エントロピー)コンテキストを確認する。正当な場合もあります
LOWソーシャルエンジニアリング的な命名、情報提供のみ注意喚起として記録する
Step 3: ユーザーに報告する

次の形式で検出結果を提示します:

## Audit Summary
- Skills scanned: N
- Files scanned: N
- CRITICAL: N | HIGH: N | MEDIUM: N | LOW: N

## Critical/High Findings (if any)
For each finding:
- Skill name and file path
- What was detected and why it's dangerous
- Recommended action

## Medium/Low Findings (if any)
Brief summary, noting which are likely false positives
Step 4: 対応を推奨する

CRITICAL の検出結果の場合:

  1. インシデント対応手順については references/remediation-guide.md を確認する
  2. 認証情報の窃取が検出された場合、ユーザーの認証情報のローテーションを支援する
  3. 悪意のあるスキルの隔離を支援する

HIGH の検出結果の場合:

  1. フラグが立てられたコードをユーザーが手動で確認できるよう支援する
  2. そのパターンがコンテキスト上で正当なものか、悪意のあるものかを判断する
Step 5: フォローアップする
  • 特定のスキルを詳しくスキャンすることを提案する:python3 skill_audit.py --path /path/to/skill
  • references/threat-patterns.md を使って、検出結果を詳しく説明することを提案する

スキャナーコマンドのリファレンス

# Scan all discovered skills
python3 ~/.claude/skills/skill-security-audit/scripts/skill_audit.py

# Scan a single skill directory
python3 ~/.claude/skills/skill-security-audit/scripts/skill_audit.py --path /path/to/skill

# JSON output (for programmatic use)
python3 ~/.claude/skills/skill-security-audit/scripts/skill_audit.py --json

# Filter by minimum severity
python3 ~/.claude/skills/skill-security-audit/scripts/skill_audit.py --severity high

# Disable colored output
python3 ~/.claude/skills/skill-security-audit/scripts/skill_audit.py --no-color

# Use custom IOC database
python3 ~/.claude/skills/skill-security-audit/scripts/skill_audit.py --ioc-db /path/to/ioc.json

終了コード: 0 = 問題なし、1 = 低/中リスク、2 = 高リスク、3 = 重大、4 = スキャナーエラー

13 の検出カテゴリ

検出器検出内容深刻度
Base64Detector50 文字を超えるエンコード文字列(data:image を除く)MEDIUM→HIGH
DownloadExecDetectorcurl|bash、wget|sh、fetch+eval のパターンCRITICAL
IOCMatchDetector既知の悪意ある IP、ドメイン、URL、ファイルハッシュCRITICAL
ObfuscationDetectorリテラル以外の引数を使う eval/exec、16 進数エンコード、chr() の連鎖HIGH
ExfiltrationDetectorZIP とアップロードの組み合わせ、機密ディレクトリの列挙HIGH
CredentialTheftDetectorosascript のパスワードダイアログ、キーチェーンへのアクセス、SSH キーの読み取りCRITICAL
PersistenceDetectorcrontab、launchd、systemd、シェルプロファイルの変更HIGH
PostInstallHookDetectornpm postinstall、pip setup.py cmdclassHIGH→CRITICAL
HiddenCharDetectorゼロ幅文字、Unicode の双方向オーバーライドMEDIUM
EntropyDetector長い行における Shannon エントロピーが 5.5 を超えるものMEDIUM
SocialEngineeringDetectorcrypto/wallet/airdrop/security-update に関連する命名LOW→MEDIUM
NetworkCallDetectorsocket、http、urllib、requests、fetch、curl、wgetMEDIUM
PrivilegeEscalationDetectorsudo、chmod 777、setuid、admin グループの変更HIGH

信頼度スコアについて

各検出結果には信頼度スコア(0~100)が含まれます:

  • 80-100:本物の脅威である可能性が非常に高い
  • 50-79:不審なため、手動での確認を推奨
  • 30-49:誤検出の可能性があります。コンテキストを確認してください
  • <30:情報提供のみ。信頼度は低い

手動レビューのチェックリスト

スキャナーが何かを検出した場合は、以下も確認してください。

  1. ソースの確認 — スキルの提供元は公式または検証済みですか? 作成者の評判を確認してください。
  2. 権限の範囲 — スキルが、記載された機能に必要な範囲を超える権限を要求していませんか?
  3. スクリプトの監査 — すべての .sh、.py、.js ファイルを読み、難読化や予期しないネットワーク呼び出しがないか確認してください。
  4. 依存関係の確認 — スキルにパッケージの依存関係がある場合は、npm audit または pip-audit を実行してください。
  5. 変更履歴のレビュー — 最近のアップデートで、不審な変更が加えられていませんか?

IOC データベースの更新

IOC データベースは scripts/ioc_database.json にあります。新しいインジケーターを追加するには、次の手順を実行してください。

  1. 既存のスキーマに従って JSON ファイルを編集します
  2. スキャナーを実行し、新しい IOC が検出されることを確認します
  3. 人が読みやすいバージョンとの整合性を保つため、references/ioc-database.md を更新します

参考ドキュメント

詳細については、必要に応じて以下のファイルを参照してください。

  • references/ioc-database.md — コンテキストと出典を含む IOC の全リスト
  • references/threat-patterns.md — 9 種類の攻撃パターンの詳細(二段階ペイロード、Base64 バックドア、パスワードフィッシングなど)
  • references/remediation-guide.md — インシデント対応の手順(隔離、認証情報のローテーション、永続化のクリーンアップ、報告)

コメント