
CY376 ブルーチームプロジェクト — pfSense DMZ、Suricata IDS/IPS、および CVE-2014-6271 に対する自動化されたホスト堅牢化
CY376: ネットワーク監視・セキュリティ・監査 — 学期末プロジェクト ブルーチーム | タルクワ鉱山技術大学
著者: Kennedy Kumi Holomah インデックス番号: FCM.41.018.148.23 学生ID: 9013004623
このプロジェクトは、隔離されたVMware Workstationラボ内で、pfSenseファイアウォールの背後に公開用Ubuntu/Apache Webサーバーをホストする非武装地帯(DMZ)を構築、保護、監視するものです。これはタルクワ鉱山技術大学のCY376(ネットワーク監視・セキュリティ・監査)のブルーチーム演習として構築され、単独の対策ではなく防御ライフサイクル全体を示しています。すなわち、セグメント化されたネットワーク境界、その境界でのインライン検知、特定のCVEに対する実際のエクスプロイト試行、自動化された是正、そして修正が実際にギャップを埋めたことの再検証です。
このプロジェクトは、各防御レイヤーを設定スクリーンショットだけでなく証拠と意図的に対応付けています。Suricataの検知がライブのShellshockエクスプロイト試行をリアルタイムで捕捉する様子、ハードニング適用後に同じペイロードが完全に失敗する様子、さらに作業中に遭遇した非自明なインフラ問題(ハードウェアオフロード設定がパケットキャプチャを静かにブロックする、デフォルトのHOME_NETスコープが方向性シグネチャを静かに壊す、ハードニングスクリプト自身のパーミッションロックダウンが保護対象のサーバーを壊す)が、それ自体が調査結果として文書化されており、編集で削除されることはありません。
HOME_NETがDMZサブネットに正しくスコープされているため、LAN発の攻撃トラフィックは外部として扱われます。scripts/dmz_web_hardening.sh)がBashにパッチを適用し、Shellshockが依存するCGIハンドラーを無効化し、SSHをLANに制限し、ホストファイアウォール(UFW)とfail2banを有効化し、Webルートのパーミッションをロックダウンします。完全なレポート、証拠スクリーンショット、分析: docs/CY376_DMZ_Report_Kennedy_Kumi_Holomah.pdf
すべてのセグメント間トラフィックはpfSenseのみを通過します。ファイアウォールを迂回する経路はありません。
.
├── README.md
├── .gitignore
├── scripts/
│ └── dmz_web_hardening.sh # Host hardening script for the DMZ web server
├── docs/
│ └── CY376_DMZ_Report_Kennedy_Kumi_Holomah.pdf # Full project report
└── evidence/
└── figure01_lab_topology.png ... figure11_wazuh_dashboard.png
# The 11 captioned screenshots from the report, numbered to match
# the figure numbers used throughout docs/CY376_DMZ_Report_*.pdf
scripts/dmz_web_hardening.shはDMZのUbuntu/Apacheホストを対象としています。再実行しても安全なように設計されています。触れるすべての設定ファイルは最初にバックアップされ(.bak-YYYYmmdd-HHMMSSサフィックス)、すべての操作は/var/log配下のタイムスタンプ付きファイルにログ記録されます。
# On the DMZ web server
sudo bash scripts/dmz_web_hardening.sh
実行前に、スクリプト先頭のCONFIGセクション(LANサブネット、HTTP/HTTPSポート)を確認し、自身のトポロジに合わせてください。
実行内容:
mod_cgi/mod_cgidの無効化を促し(Shellshockの攻撃対象領域を完全に除去)、Webルートの所有者/パーミッションをロックダウンします。完了サマリーが最後に出力され、各ステップの詳細はレポートに記載されています。
詳細な議論については、レポートのセクション6(分析と推奨事項)を参照してください。
| ホスト | 役割 | インターフェース / VMnet | IPアドレス |
|---|
| pfSense | ファイアウォール / ルーター | WAN (em0) | 192.168.248.138 (DHCP, NAT) |
| pfSense | ファイアウォール / ルーター | LAN (em2) | 192.168.20.1/24 |
| pfSense | ファイアウォール / ルーター | DMZ (em1) | 192.168.10.1/24 |
| Kali Linux | 攻撃者ホスト | VMnet4 (LAN) | 192.168.20.102 |
| LANクライアント | 一般LANホスト | VMnet4 (LAN) | 192.168.20.100 |
| DMZ Webサーバー | ターゲット / 保護対象資産 | VMnet3 (DMZ) | 192.168.10.10 |
| Wazuhマネージャー | SIEM / ログプラットフォーム | VMnet4 (LAN) | 192.168.20.103 |
| テスト | ハードニング前 | ハードニング後 |
|---|
| Shellshockエクスプロイト試行 | ペイロードが受理され、Suricataアラートが発報(SID 2022028) | HTTP 404 — CGIハンドラーが削除済み |
| LANからのSSH(Kali) | 利用可能、無制限 | 利用可能、192.168.20.0/24に制限 |
| Webルートへのアクセス | デフォルトコンテンツを配信 | ハードニング中に一時的に403、その後復旧 |
| カスタムSuricataドロップルール | N/A | 一致時にアクティブブロックを確認 |