Web Server Security Reviewer
Web サーバ(nginx / apache、Linux 中心)の Phase 1 設定セキュリティレビュースキル。target_profile.yaml で対象を確定し、MANIFEST.txt + manifest_attestation.txt で証跡 integrity を検証、SSH 直接 or 証跡受領モードで 9 観点を read-only 走査します。Windows / IIS は v1 hard fail。
API不要
スキルパッケージをダウンロード (.skill) GitHubでソースを見る
目次
1. 概要
nginx / apache が動作する Linux Web サーバ向けの Phase 1 設定セキュリティレビューを構造化された手順で実施します。証跡収集モードは2つ:
- SSH 直接(read-only) — 立会者承認のもと、6 階層ガードレールで明示的に許可されたコマンドだけを実行
- 証跡受領(manifest) —
MANIFEST.txt(SHA256)とmanifest_attestation.txt(真正性 attestation)を受領し、整合性検証してからレビュー
指摘は 3 軸(Exploitability × Blast Radius × Service Criticality)でスコアリング。証跡から確認できない項目は黙って落とさず observation_status で管理し、確認済み/未確認の境界を明示します。最終化前のセルフレビューは必須。Windows / IIS 対象は v1 で hard fail します。
2. 前提条件
- Python 3.9 以上、PyYAML
- SSH モード: 踏み台/立会者承認、Read-Only 認証情報
- 証跡モード:
MANIFEST.txt、manifest_attestation.txt、参照される証跡ファイル一式 - 対象: Linux(RHEL ファミリー優先 / nginx or apache)。Windows / IIS は v1 対象外。
3. クイックスタート
# ローカルにスキルをインストール
make install SKILL=web-server-security-reviewer
# または .skill パッケージを取得
curl -L -o web-server-security-reviewer.skill \
https://github.com/takusaotome/claude-skills-library/raw/main/skill-packages/web-server-security-reviewer.skill
# 内部整合性検証(17 PASS 期待)
cd skills/web-server-security-reviewer && python3 scripts/verify_skill.py
Claude Code 内で対象プロファイル(ロール、OS、Web サーバ、環境)と証跡モードを伝えると、スキルがワークフローに沿って案内します。
4. 進め方
- スコープ&target_profile —
assets/target_profile_template.yamlで対象を確定(ホストロール/OS/Web サーバ/環境) - 整合性ゲート — manifest モードでは全ファイルの SHA256 を
MANIFEST.txtと突合、manifest_attestation.txtの真正性レベルを確認 - 9 観点スキャン —
references/checklist_9axes.yaml定義のチェックを実行: OS/リソース/ログ/ネットワーク/サービス/認証/監視/バックアップ/証明書 - ガードレール強制 — 全コマンドを 6 階層フィルタへ通す:
allowed/conditional/conditional_sensitive/ask-first/exceptional_sensitive_read/forbidden。禁止コマンドは 21 個明示 - 重大度スコアリング — 各指摘に Exploitability + Blast Radius + Service Criticality を付与。証跡から確認不能なものは
observation_statusで管理 - セルフレビュー —
assets/self_review_template.mdでの確認パスを最終化前に必須実施 - 出力 — レポート/アクションプラン/指摘テーブルを生成。生証跡はレポートディレクトリと分離
5. 使用例
- 公開向け nginx の本番投入前ハードニングレビュー
- 直接 SSH 不可な内部 apache サーバの定期姿勢監査(manifest モード)
- 第三者から提供された証跡ダンプを integrity 証明とともにレビュー
- 確認できなかった項目を
observation_statusで次回スコープに繰越 - 運用引き渡し可能な action plan を生成
6. 出力の読み方
- レポート (
assets/report_template.md) — 指摘・重大度・推奨対応を含むナラティブ - アクションプラン (
assets/action_plan_template.md) — 優先度付き対応バックログ - 指摘テーブル (
assets/finding_table_template.md) — チケット取込用の構造化テーブル - セルフレビュー (
assets/self_review_template.md) — 最終化前完了 - 証跡ディレクトリ構成 (
assets/evidence_directory_layout.md) —evidence_dir/とraw_evidence_store/の分離を強制
各指摘は 3 状態のいずれか: confirmed(証跡から確認済)/observed-pending(管理された未確認状態)/out-of-scope(例: Windows/IIS hard fail)。
7. ベストプラクティス
command_reference.yamlのカタログ外コマンドは escalation なしに実行しない(カタログが立会者との契約)observation_statusは回避策ではなく機能。確認不能な指摘を黙って消すのは品質ギャップ- 生証跡(フル設定、鍵情報)は
raw_evidence_store/に隔離し、レポートに直接埋め込まない - manifest モードで attestation level が閾値未満なら作業を中止(
references/secret_masking.mdとverification_summary.mdを参照) - テンプレートや command_reference を変更したら必ず
scripts/verify_skill.pyを再実行
8. 他スキルとの連携
- レビューで実インシデントや侵害指標を検知した場合は
incident-rca-specialistを併用 - J-SOX / SOX マッピングが必要な場合は
compliance-advisorに指摘を引き渡し - 関連ワークフローを探す場合は同カテゴリ一覧を参照: カテゴリ一覧
- 日本語スキルカタログ全体: スキルカタログ
9. トラブルシューティング
python3 scripts/verify_skill.pyが FAIL — 22 件すべて PASS することが前提(section H wizard pipeline smoke を含む)。実運用前に原因調査- Manifest integrity が失敗 — 作業中止。証跡再収集 or
references/guardrails.mdに従ってエスカレーション - Windows / IIS 対象を検知 — v1 では設計的に hard fail。別プロセスを使用
- 未解決のテンプレート/コマンド ID —
verify_skill.pyが表示。実レビュー前にクロスリファレンスを修正 - レポートドラフトに機微情報が混入 —
raw_evidence_store/へ移動し、references/secret_masking.mdのマスキング規則を適用
10. リファレンス
参照ガイド:
skills/web-server-security-reviewer/references/checklist_9axes.yamlskills/web-server-security-reviewer/references/command_reference.yamlskills/web-server-security-reviewer/references/finding_taxonomy.mdskills/web-server-security-reviewer/references/guardrails.mdskills/web-server-security-reviewer/references/input_contract.mdskills/web-server-security-reviewer/references/observation_status.mdskills/web-server-security-reviewer/references/schema_validation.mdskills/web-server-security-reviewer/references/secret_masking.mdskills/web-server-security-reviewer/references/severity_criteria.mdskills/web-server-security-reviewer/references/unsupported_matrix.mdskills/web-server-security-reviewer/references/verification_summary.mdskills/web-server-security-reviewer/references/role_extensions/_schema.yamlskills/web-server-security-reviewer/references/role_extensions/generic_edge.yamlskills/web-server-security-reviewer/references/role_extensions/generic_internal.yamlskills/web-server-security-reviewer/references/role_extensions/generic_public_facing.yamlskills/web-server-security-reviewer/references/interview_wizard.md— Phase 0 対話ウィザード 7 stage 宣言的設問仕様 (v1.1+)
スクリプト:
skills/web-server-security-reviewer/scripts/verify_skill.py— 内部整合性検証 (22 checks)skills/web-server-security-reviewer/scripts/verification_run.pyskills/web-server-security-reviewer/scripts/build_target_profile.py— wizard 回答 JSON → target_profile.yaml ビルダー (default 補完 / 派生 / hard-fail gate)
アセット:
skills/web-server-security-reviewer/assets/target_profile_template.yamlskills/web-server-security-reviewer/assets/manifest_template.txtskills/web-server-security-reviewer/assets/manifest_attestation_template.txtskills/web-server-security-reviewer/assets/finding_table_template.mdskills/web-server-security-reviewer/assets/report_template.mdskills/web-server-security-reviewer/assets/action_plan_template.mdskills/web-server-security-reviewer/assets/evidence_directory_layout.mdskills/web-server-security-reviewer/assets/self_review_template.mdskills/web-server-security-reviewer/assets/wizard_answers_example.json—build_target_profile.py用ウィザード回答サンプル
English Version
- 詳細な解説、背景説明、個別の運用判断は English version を参照してください。