Esaurimento Servizi: Service Exhaustion Flood (T1499.002)
La tecnica T1499.002 - Service Exhaustion Flood appartiene alla tattica TA0040 (Impact) del framework MITRE ATT&CK e descrive attacchi mirati all'esaurimento delle risorse di specifici servizi di rete, tipicamente web server, DNS e servizi TLS. L'obiettivo dell'attaccante non è saturare la banda disponibile — come accade nei volumetric flood — ma consumare CPU, memoria, thread worker o connessioni concorrenti del software applicativo che eroga il servizio.
Le varianti più comuni includono l'HTTP flood, in cui un elevato numero di richieste HTTP legittime satura il web server o l'applicazione sottostante, e l'SSL renegotiation attack, che sfrutta la funzionalità di rinegoziazione crittografica del protocollo TLS: l'handshake asimmetrico ha un costo computazionale sbilanciato a sfavore del server, permettendo a un singolo client di generare carico sproporzionato.
A differenza dei network flood puri (T1498), questa tecnica opera al layer 7 e può risultare invisibile ai controlli di rete tradizionali basati su throughput. L'impatto sul business è significativo: indisponibilità di portali web, interruzione di API critiche, degradazione di servizi cloud con conseguente esplosione dei costi in ambienti a billing basato sul consumo. La MITRE elenca 1 mitigazione ufficiale (M1037) e 4 strategie di detection cross-platform su Windows, Linux, macOS e IaaS, a testimonianza della trasversalità del problema su ogni piattaforma che esponga servizi applicativi.
La simulazione controllata di un Service Exhaustion Flood in un contesto red team richiede ambienti isolati (lab virtualizzati o range dedicati) e autorizzazione formale scritta. Eseguire questi test contro infrastrutture di produzione, anche interne, senza pianificazione con il blue team è irresponsabile e potenzialmente illegale.
Per HTTP flood applicativi lo standard di fatto in ambito lab è Apache JMeter (open source), che permette di modellare thread group con centinaia di virtual user contro endpoint HTTP/HTTPS, misurando il degrado di risposta del target. Alternative più leggere sono wrk (open source), utile per benchmark ad alta concorrenza con sintassi minimale come wrk -t12 -c400 -d30s https://target-lab.local/, e hey (open source), pensato per generare carico HTTP configurabile in termini di richieste al secondo. Per test più realistici che includano logica di navigazione, Locust (open source) permette di scrivere scenari in Python con utenti simulati che eseguono flussi applicativi completi.
Per il caso specifico della SSL renegotiation, il tool storico di riferimento è thc-ssl-dos (open source, disponibile su GitHub), che sfrutta l'asimmetria computazionale dell'handshake TLS. Prima di usarlo va verificato se il target abbia la rinegoziazione abilitata: con openssl s_client -connect target:443 si può digitare R durante la sessione per tentare una rinegoziazione manuale. Se il server risponde con un nuovo handshake, è vulnerabile per design a questa classe di attacchi.
Una catena d'attacco tipica in un esercizio red team parte con una fase di reconnaissance applicativa: identificare endpoint costosi in termini di CPU (ricerche full-text, generazione PDF, query complesse), enumerare header di risposta per capire il web server sottostante (Apache, Nginx, IIS) e la sua versione. Segue una fase di baseline: misurare il tempo di risposta normale con carico minimo, per poi incrementare progressivamente la concorrenza fino a osservare il degrado.
Su ambienti Linux, un attaccante interno può stressare un servizio esposto localmente con ab -n 100000 -c 500 http://localhost:8080/expensive-endpoint (Apache Bench, open source, incluso nel pacchetto apache2-utils). Su Windows, PowerShell con Invoke-WebRequest in loop parallelo tramite ForEach-Object -Parallel può generare carico applicativo mirato senza tool esterni. Per test di endpoint API JSON pesanti, k6 (open source) di Grafana Labs consente di scriptare in JavaScript scenari con checkpoint di performance e soglie di failure automatiche.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo