40. DoS and DDoS – Availability Attacks
40.5 Application-Layer DoS – Slow and Heavy Requests
Application-layer DoS does not always need Tbps. Ideas defenders must know:
- Many requests to expensive URLs (search, report export, login without cache)
- Slowloris-class concepts: hold many connections open slowly so worker slots exhaust (Apache/nginx worker limits matter)
- Large slow POST bodies / incomplete headers (timeouts help)
Blue fixes that actually help SMEs:
limit_req/limit_connin nginx; Apachemod_evasive/ reqtimeout modules (distro docs)- Short timeouts; sensible
worker_connections/ MaxRequestWorkers - WAF / bot management at CDN
- Cache static + safe GETs at edge
# nginx snippet for YOUR lab origin – rate limit zone (example values; tune!)
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
server {
listen 80;
server_name orders.lab;
location / {
limit_req zone=one burst=10 nodelay;
proxy_read_timeout 10s;
# root /var/www/orders; ...
}
}
# Amazon Linux style – after editing nginx config on YOUR VM
sudo nginx -t
sudo service nginx reload
| Red team (attacker) does | Blue team (defender) detects / stops |
|---|---|
| Many concurrent slow connections to exhaust workers | limit_conn; shorter timeouts; more workers behind LB carefully |
| HTTP flood on uncached dynamic page | CDN/WAF; cache; rate limit; CAPTCHA on abuse |
| Targets login without lockout / rate limit | Fail2ban-ish / WAF rules; MFA; progressive delays |
Ravindra Bagale's Tip
Students worker_processes auto sodun rate limit visaratat. Size + limit donhi pahije. Interview: "application DoS is often cheap RPS that hurts origin CPU – I rate-limit and cache."
Lab
Disposable Ubuntu/Amazon Linux VM host-only: install nginx, serve a tiny PHP/index.html for Raja-Rani Traders order page. From Kali use ab or siege with low concurrency and short run against http://192.168.56.XX/ only. Note latency. Add limit_req. Re-run same load. Document before/after. Stop if host CPU pegs – this is a classroom, not a burn-in.