
Проект CY376 Blue Team — pfSense DMZ, Suricata IDS/IPS и автоматизированное усиление защиты хостов от CVE-2014-6271
CY376: Network Monitoring, Security and Auditing — End-of-Semester Project Blue Team | University of Mines and Technology, Tarkwa
Автор: Kennedy Kumi Holomah Номер по журналу: FCM.41.018.148.23 Студенческий ID: 9013004623
Этот проект разворачивает, защищает и мониторит демилитаризованную зону (DMZ), в которой размещён публично доступный веб-сервер Ubuntu/Apache за межсетевым экраном pfSense, полностью в изолированной лаборатории VMware Workstation. Он создан как упражнение Blue Team для курса CY376 (Network Monitoring, Security and Auditing) в University of Mines and Technology, Tarkwa, и демонстрирует полный защитный жизненный цикл, а не отдельный контроль в изоляции: сегментированная граница сети, встроенное обнаружение на этой границе, реальная попытка эксплуатации конкретной CVE, автоматическое исправление и повторная проверка того, что исправление действительно закрыло брешь.
Проект намеренно сопровождает каждый защитный слой доказательствами, а не просто скриншотами конфигурации: показано, как обнаружение Suricata перехватывает живую попытку эксплуатации Shellshock в реальном времени, как тот же самый payload после применения усиления защиты полностью не срабатывает, а также неочевидные проблемы инфраструктуры, встреченные по ходу работы (настройки аппаратного offload, незаметно блокирующие захват пакетов; стандартная область HOME_NET, незаметно ломающая направленные сигнатуры; блокировка разрешений самой скриптом усиления защиты, ломающая сервер, который он должен был защищать), задокументированы как самостоятельные находки, а не отредактированы.
HOME_NET подсетью DMZ, чтобы атакующий трафик из LAN рассматривался как внешний.scripts/dmz_web_hardening.sh) обновляет Bash, отключает обработчик CGI, на который опирается Shellshock, ограничивает SSH только сетью LAN, включает хостовый межсетевой экран (UFW) и fail2ban, а также ужесточает права на корень веб-каталога.Полный отчёт, скриншоты-доказательства и анализ: docs/CY376_DMZ_Report_Kennedy_Kumi_Holomah.pdf.
Весь трафик между сегментами проходит исключительно через pfSense; ни один путь не обходит межсетевой экран.
.
├── README.md
├── .gitignore
├── scripts/
│ └── dmz_web_hardening.sh # Скрипт усиления защиты хоста для веб-сервера DMZ
├── docs/
│ └── CY376_DMZ_Report_Kennedy_Kumi_Holomah.pdf # Полный отчёт по проекту
└── evidence/
└── figure01_lab_topology.png ... figure11_wazuh_dashboard.png
# 11 подписанных скриншотов из отчёта, пронумерованных в соответствии
# с номерами рисунков, используемыми в docs/CY376_DMZ_Report_*.pdf
scripts/dmz_web_hardening.sh предназначен для хоста Ubuntu/Apache в DMZ. Он написан так, чтобы его можно было безопасно запускать повторно: каждый изменяемый конфигурационный файл сначала резервируется (суффикс .bak-YYYYmmdd-HHMMSS), а все действия записываются в файл журнала с меткой времени в /var/log.
# На веб-сервере DMZ
sudo bash scripts/dmz_web_hardening.sh
Перед запуском проверьте секцию CONFIG в начале скрипта (подсеть LAN, порты HTTP/HTTPS), чтобы она соответствовала вашей топологии.
Что делает скрипт:
mod_cgi/mod_cgid (полностью убирая поверхность атаки Shellshock) и ограничивает права владельца/доступа к корню веб-каталога.В конце выводится сводка о завершении, а подробности каждого шага приведены в отчёте.
Полное обсуждение см. в разделе 6 (Analysis and Recommendations) отчёта.
| Хост | Роль | Интерфейс / 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 Client | Обычный хост в LAN | VMnet4 (LAN) | 192.168.20.100 |
| DMZ Web Server | Цель / защищаемый актив | VMnet3 (DMZ) | 192.168.10.10 |
| Wazuh Manager | SIEM / платформа логов | VMnet4 (LAN) | 192.168.20.103 |
| Тест | До усиления защиты | После усиления защиты |
|---|
| Попытка эксплуатации Shellshock | Payload принят; сработало оповещение Suricata (SID 2022028) | HTTP 404 — обработчик CGI удалён |
| SSH из LAN (Kali) | Доступен, без ограничений | Доступен, ограничен 192.168.20.0/24 |
| Доступ к корню веб-каталога | Отдавал содержимое по умолчанию | Кратковременно 403 во время усиления, затем восстановлен |
| Пользовательское drop-правило Suricata | Н/Д | Подтверждена активная блокировка при совпадении |