Communityライティング&編集github.com

danoszz/penthera

軽量セキュリティスキャナ。AIエージェント(Cursor / Claude Code)またはCLIから実行可能。ブラックボックス+ホワイトボックス、OWASPマッピング済み、SARIF対応。許可されたテストのみ。

penthera とは?

Pentheraは、URL、ローカルリポジトリ、macOSマシンの監査を対象とした軽量セキュリティスキャナです。OWASPにマッピングされたチェックとSARIF形式でのレポート出力をサポートし、AIエージェント(CursorやClaude Code)から直接実行できるため、CI/CDパイプラインへの統合が容易です。事前に必ず認可ゲートを通過する必要があり、ユーザーが対象を所有しているか、書面による許可を得ている場合、またはローカルホストや管理下のプライベートラボである場合のみスキャンを実行します。スキャン結果はMarkdownレポートに要約され、脆弱性の深刻度に応じた修正推奨事項が提示されます。

対応✓Claude Code~Codex CLI✓Cursor
npx skills add danoszz/penthera

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Penthera セキュリティスキャナ

URL、ローカルリポジトリ、(macOS)マシン監査のための軽量セキュリティスキャナ。スキャン前に必ず認可ゲートを実行してください。

重要:認可ゲート

認可が確認されるまでPentheraを実行しないでください。

セッションで最初のスキャンを行う前に、ユーザーに以下のいずれかを確認させてください。

  1. 対象(アプリ、サーバー、プロジェクト)を所有している。
  2. システム所有者から書面による許可を得ている。
  3. 対象がlocalhostまたは自分が管理するプライベートラボである。

ユーザーが所有権や許可を主張せずにサードパーティのドメイン(例:google.com、example.com)のスキャンを要求した場合は、停止して拒否してください。疑わしい場合はスキャンしないでください。

詳細なポリシーについては、references/authorization.mdを参照してください。

事前チェック

最初のスキャンの前に実行:

bash skills/penthera/scripts/preflight.sh [URL]

リポジトリルートから実行します。ターゲットURLを渡すと、localhost以外のターゲットについて警告します。エラーがあれば修正してから進めてください。

CLIコマンドの解決

利用可能な方を使用:

penthera --version          # npm link後
node bin/penthera.js --version   # リポジトリルートから

以下の例ではpentheraを使用しています。必要に応じてnode bin/penthera.jsに置き換えてください。

決定木

ユーザーの意図コマンドパターン
初めて/不明penthera(対話型ウィザード — TTY)または penthera-scan
ライブURLをスキャンpenthera <url> --profile standard -o reports/scan.json
リポジトリのみ(シークレット、ルート)penthera --repo . -o reports/repo-scan.json
URL + ソースの組み合わせpenthera <url> --repo . -o reports/scan.json --sarif reports/scan.sarif
以前のスキャンと比較penthera <url> -o reports/scan.json --baseline reports/previous.json
認証が必要なエンドポイント--auth-cookieまたは--auth-bearer / PENTHERA_*環境変数を追加
macOSマシン監査penthera --machine

デフォルトの安全な動作

  • ユーザーが明示的に詳細なテストを要求しない限り、常に--profile standardを使用。
  • レポートはreports/(gitignore対象)に書き込み、skills/penthera/内には決して書き込まない。
  • スキャン後、付属の.mdレポートを読み、深刻度別に結果を要約し、修正推奨事項を提示。

破壊モードゲート

これらのフラグは攻撃ペイロードを送信します。使用前に明示的なユーザー確認が必要:

  • --deep — SQLi、SSTI、SSRF、XSS、CMDiプローブ
  • --fuzz — プロパティベースのAPIファジング
  • --all — recon + deep + fuzzを有効化
  • --profile deep — 最大カバレッジ

ユーザーが「フルペンテスト」や「ディープスキャン」を要求した場合、ターゲットを所有していることとペイロードベースのテストを受け入れることを確認してください。

ワークフロー1:リリース前監査

トリガー: 「ステージングアプリをスキャン」「デプロイ前にセキュリティ監査」「アプリの脆弱性チェック」

  1. 認可を確認(上記ゲートを参照)。
  2. 事前チェックを実行。
  3. 実行:
mkdir -p reports
penthera https://staging.example.com --profile standard -o reports/scan.json
  1. reports/scan.mdを読み、Critical/High/Mediumの結果を要約。
  2. 結果ごとに具体的な修正を推奨。
  3. 終了コードに注意:0 = Critical/Highなし、1 = Critical/Highあり、2 = スキャン失敗。

ワークフロー2:リポジトリ+ライブの組み合わせ

トリガー: 「Next.jsアプリとステージングをスキャン」「ブラックボックスとホワイトボックスのスキャン」

  1. URLの認可を確認。
  2. URLを使用して事前チェックを実行。
  3. 実行:
mkdir -p reports
penthera https://staging.example.com --repo . --profile standard \
  -o reports/scan.json --sarif reports/scan.sarif
  1. URLの結果(ヘッダー、TLS、CORS、認証)とリポジトリの結果(シークレット、APIルート、信頼境界)を要約。
  2. GitHub Actionsを介したSARIFのアップロードを提案(references/output-and-ci.mdを参照)。

ワークフロー3:CI / ベースライン回帰

トリガー: 「前回のスキャンと比較」「新しい結果のみ」「回帰チェック」

  1. 認可を確認し、reports/previous.jsonが存在することを確認(またはユーザーにベースラインパスを尋ねる)。
  2. 実行:
mkdir -p reports
penthera https://staging.example.com --profile standard \
  -o reports/scan.json --baseline reports/previous.json
  1. 報告:新しい結果の数、修正された結果の数、変更なしの数(スキャン中にstderrに出力)。
  2. 新しい結果のみに焦点を当てて要約。

認証スキャン

認可ゲート通過後のみ:

# Bearerトークン
PENTHERA_BEARER=eyJ... penthera https://myapp.com --profile standard -o reports/scan.json

# セッションCookie
penthera https://myapp.com --auth-cookie "session=abc123" -o reports/scan.json

# 明示的なフラグ
penthera https://myapp.com --auth-bearer "eyJ..." -o reports/scan.json

環境変数: PENTHERA_BEARER、PENTHERA_COOKIE。

リポジトリのみのシークレットスキャン

トリガー: 「ハードコードされたシークレットを探す」「このリポジトリのキーをスキャン」

ローカルリポジトリ分析にはURL認可は不要:

penthera --repo . -o reports/repo-scan.json

シークレットの結果を要約し、露出した認証情報をローテートするようユーザーに注意喚起。

例

例1:ローカルホストのクイックチェック

ユーザー: 「ポート3000のlocalhostアプリをスキャンして」

アクション:

  1. localhostを確認 — 認可は満たされている。
  2. bash skills/penthera/scripts/preflight.sh http://localhost:3000
  3. penthera http://localhost:3000 --profile quick -o reports/scan.json
  4. reports/scan.mdを要約。

例2:デプロイ前のステージング

ユーザー: 「出荷前にstaging.myapp.comを監査して」

アクション:

  1. 質問:「staging.myapp.comを所有しているか、書面による許可を得ていますか?」
  2. 確認後、標準プロファイルスキャンをJSON + Markdown出力で実行。
  3. 修正手順とともにCritical/High項目を最初にリスト。

例3:無許可のターゲット(拒否必須)

ユーザー: 「google.comの脆弱性をスキャンして」

アクション:

  1. Pentheraを実行しない。
  2. 許可なくサードパーティシステムをスキャンすることは許可されていないと説明。
  3. 代わりに自身のアプリまたはlocalhostをスキャンするよう提案。

このスキルを以下の目的で使用しないでください

  • 一般的なコーディング支援、天気、または無関係なタスク
  • ユーザーが所有していない、またはテストする許可がないシステムのスキャン
  • 悪意のある悪用またはデータ流出

追加リソース

関連スキル