web-threat-mitigation
OWASP ZAP、Burp Suite、ModSecurity WAF(OWASP CRS使用)を用いたWebアプリの脅威検知・緩和に関する実践ラボ。ケーススタディ:Spring4Shell(CVE-2022-22965)。ローカルDockerベースの構成。
Web脅威緩和ラボ – OWASP ZAP、ModSecurity & CVEエクスプロイト
このリポジトリは、一般的なWebアプリケーションの脅威をシミュレートし、分析し、緩和することに焦点を当てたラボのドキュメントです。脆弱性のあるターゲットのインストール、スキャンツール、WAF(OWASP CRSを備えたModSecurity)の導入、そしてCVE-2022-22965(Spring4Shell)のライブエクスプロイトを含みます。
ラボの目的
- 脆弱性のあるWebアプリケーション(WebGoat)をDockerでデプロイする
- OWASP ZAPとBurp Suiteを使用して脆弱性スキャンを実行する
- Nginx + ModSecurity + OWASP CRS 4.9.0を使用してリバースプロキシをセットアップする
- WAF導入前後の結果を分析する
- Spring4Shellをエクスプロイトし、WAFの有効性を検証する
使用ツール
- Docker + Docker Compose
- OWASP ZAP と Burp Suite
- ModSecurity(libnginx-mod-http-modsecurity経由)
- OWASP Core Rule Set(CRS 4.9.0)
- Metasploit Frameworkを備えたKali Linux
- CentOS 9 Stream & Debian 12
ラボのワークフロー
- WebGoatのデプロイ をCentOS上でDockerを使用して行い、ポート8080で公開。



- 初期スキャン をKali LinuxからOWASP ZAPを使用して実施:
- 高リスクアラート:SQLインジェクション、Spring4Shell
- 中リスク:CSP欠如、CSRFトークン、パラメータ改ざん
- 情報:バージョン漏えい、潜在的なXSS、セッションの問題


- リバースプロキシのデプロイ をDebian 12上でnginxを使用して実施。

- WAFのセットアップ をOWASP CRSと、以下からロードしたルールで実施:
/etc/nginx/coreruleset-4.9.0/crs-setup.conf
/etc/nginx/coreruleset-4.9.0/rules/*.conf
ルールはModSecurityログを確認してテストし、有効化しました。



- WAF導入後のスキャン をOWASP ZAPで実施した結果:
- アラートの減少(ブロックまたはマスクされたレスポンス)
- WAF保護が有効であることの確認


- エクスプロイトテスト をMetasploitを使用してSpring4Shellに対して実施:
- WAFなし:RCE成功(リバースシェルペイロード)
- WAFあり:CRS検出によりエクスプロイトがブロックされる


結論
このラボは、多層防御の重要性を示しています:
- 脆弱性のあるアプリは、保護なしで簡単に露出する可能性がある
- ZAP/Burpは脆弱性の特定と分類に役立つ
- ModSecurityとOWASP CRSは攻撃対象領域を効果的に削減する
- WAFは適切なチューニングにより、Spring4Shellのような実世界のCVEをブロックできる
著者
Bruno Paolo Huamán Vela (ペルー、リマ)
サイバーセキュリティ専攻学生 – ウラル連邦大学(UrFU)