Focus on exhausting CPU & Memory
HTTP(S) Flood
Characteristics
- Legitimacy of Requests: Mimics User Requests (GET, POST, PUT, …)
- Low and Slow Attacks: Smaller number of requests are sent slowly over time.
- Targeting Application Logic: Exploit weaknesses in App Handling.
Methods
- Rate Limiting (
limit_req
in NGINX ormod_reqtimeout
in Apache) - Geofencing - block from high-risk regions
- Anamoly Detection
- Timeouts - NGINX’s
keepalive_timeout
Slowloris
Working
- TCP Three-Way Handshake: Begins by completing the full TCP three-way handshake.
- Partial HTTP Requests: Once the connection is established, sends an incomplete HTTP request. For example, it might send the headers of an HTTP GET request but omit the final line or a portion of the headers.
- Keep-Alive and Timeout Manipulation: Slow-loris sends additional HTTP headers at regular intervals to keep the connection open without completing the request. This prevents the server from closing the connection due to inactivity.