
Progetto Blue Team CY376 — DMZ pfSense, Suricata IDS/IPS e hardening automatizzato degli host contro CVE-2014-6271
CY376: Monitoraggio di Rete, Sicurezza e Auditing — Progetto di Fine Semestre Blue Team | Università delle Miniere e della Tecnologia, Tarkwa
Autore: Kennedy Kumi Holomah Numero di indice: FCM.41.018.148.23 ID studente: 9013004623
Questo progetto costruisce, protegge e monitora una zona demilitarizzata (DMZ) che ospita un server web Ubuntu/Apache esposto al pubblico, dietro un firewall pfSense, interamente all'interno di un laboratorio VMware Workstation isolato. È stato realizzato come esercitazione Blue Team per CY376 (Monitoraggio di Rete, Sicurezza e Auditing) presso l'Università delle Miniere e della Tecnologia di Tarkwa e dimostra un ciclo di difesa completo piuttosto che un singolo controllo isolato: un confine di rete segmentato, il rilevamento in linea su quel confine, un reale tentativo di sfruttamento di una CVE specifica, la remediation automatica e la ri-validazione che la correzione ha effettivamente chiuso la falla.
Il progetto associa deliberatamente ogni livello difensivo a prove concrete piuttosto che a una semplice schermata di configurazione: viene mostrato il rilevamento di Suricata che intercetta un tentativo di exploit Shellshock in tempo reale, lo stesso payload che fallisce completamente dopo l'applicazione dell'hardening, e i problemi infrastrutturali non ovvi incontrati lungo il percorso (impostazioni di offload hardware che bloccano silenziosamente la cattura dei pacchetti, l'ambito predefinito di HOME_NET che rompe silenziosamente le firme direzionali, il blocco dei permessi del loro stesso script di hardening che rompe il server che doveva proteggere) sono documentati come risultati a pieno titolo, non censurati.
HOME_NETscripts/dmz_web_hardening.sh) corregge Bash, disabilita il gestore CGI su cui si basa Shellshock, limita SSH alla LAN, abilita un firewall host (UFW) e fail2ban e blocca i permessi della web root.Documentazione completa, screenshot delle prove e analisi: docs/CY376_DMZ_Report_Kennedy_Kumi_Holomah.pdf.
| Host | Ruolo | Interfaccia / VMnet | Indirizzo IP |
|---|---|---|---|
| pfSense | Firewall / router | WAN (em0) | 192.168.248.138 (DHCP, NAT) |
| pfSense | Firewall / router | LAN (em2) | 192.168.20.1/24 |
| pfSense | Firewall / router | DMZ (em1) | 192.168.10.1/24 |
| Kali Linux | Host attaccante | VMnet4 (LAN) | 192.168.20.102 |
| LAN Client | Host LAN generico | VMnet4 (LAN) | 192.168.20.100 |
| DMZ Web Server | Target / asset protetto | VMnet3 (DMZ) | 192.168.10.10 |
| Wazuh Manager | Piattaforma SIEM / log | VMnet4 (LAN) | 192.168.20.103 |
Tutto il traffico tra segmenti passa esclusivamente attraverso pfSense; nessun percorso bypassa il firewall.
.
├── 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 ha come target l'host Ubuntu/Apache della DMZ. È scritto per essere sicuro da rieseguire: ogni file di configurazione toccato viene prima sottoposto a backup (suffisso .bak-YYYYmmdd-HHMMSS) e tutte le azioni vengono registrate in un file con timestamp in /var/log.
# On the DMZ web server
sudo bash scripts/dmz_web_hardening.sh
Prima di eseguirlo, rivedere la sezione CONFIG all'inizio dello script (sottorete LAN, porte HTTP/HTTPS) per adattarla alla propria topologia.
Cosa fa:
mod_cgi/mod_cgid (eliminando del tutto la superficie di attacco di Shellshock) e blocca proprietà/permessi della web root.Alla fine viene stampato un riepilogo di completamento e i dettagli completi di ogni passaggio sono nel report.
| Test | Prima dell'hardening | Dopo l'hardening |
|---|---|---|
| Tentativo di exploit Shellshock | Payload accettato; alert Suricata attivato (SID 2022028) | HTTP 404 — gestore CGI rimosso |
| SSH dalla LAN (Kali) | Disponibile, senza restrizioni | Disponibile, limitato a 192.168.20.0/24 |
| Accesso alla web root | Contenuto predefinito servito | Brevemente 403 durante l'hardening, poi ripristinato |
| Regola di drop personalizzata di Suricata | N/A | Blocco attivo confermato in caso di corrispondenza |
Vedere la Sezione 6 (Analisi e Raccomandazioni) del report per la discussione completa.