``Layer-7 DoS`` Presentation

advertisement
Universal
HTTP
Denial-of-Service
About Hybrid
• Creating web-business-logic security
• Doing cool stuff in AI research
• Optimizing acceptance rate for Web-bound
transactions
• Minimizing false rejects typical to signature-based
solutions
How Would You Like Your Website?
Slow or DEAD?
•
•
•
•
•
Slowloris abuses handling of
HTTP request headers ssslooowly…
Written by RSnake
Iteratively injects one custom header at a
time and goes to sleep
Web server vainly awaits the
line space that will never come 
Stuck in phase I forever. Kinda like Tron
•
•
•
•
R-U-Dead-Yet? abuses HTTP
web form fields
Iteratively injects one custom byte
into a web application post field
and goes to sleep
Application threads become
zombies awaiting ends of posts
till death lurks upon the website
Stuck in phase II forever.
Kinda like Tron sequels
SlowLoris
According to HTTP RFC 2616:
Request
= Request-Line
*(( general-header
| request-header
| entity-header ) CRLF)
CRLF
[ message-body ]
SlowLoris
GET http://www.google.com/ HTTP/1.1
Host: www.google.com
Connection: keep-alive
User-Agent: Mozilla/5.0
X-a: b
X-a: b
X-a: b
X-a: b
X-a: b
SlowLoris
DEMO
SlowLoris Mitigation
Patching Apache
• Use Apache Patch
to moderate average timeout thresholds
(Link at end of presentation)
According to SpiderLabs:
• ModSecurity >=2.5.13
• Add directive: “SecReadStateLimit 5”
• Then ModSecurity Alerts like this:
“ [Mon Nov 22 17:44:46 2010] [warn]
ModSecurity: Access denied with code 400.
Too many connections [6] of 5 allowed in READ
state from 211.144.112.20 Possible DoS Consumption Attack [Rejected] ”
R-U-D-Y
Vulnerability
POST
http://victim.com/
discovered by Tom Brennan
Host:Wong
and
victim.com
Onn Chee:
Connection:
keep-alive
http://www.owasp.org/images/4/43/Layer_7_DDOS.pdf
Content-Length: 1000000
User-Agent: Mozilla/5.0
Cookie: __utmz=181569312.1294666144.1.1
username=AAAAAAAAAAAAAAAAAAAAAAAAA…
R-U-D-Y
DEMO
Waging War Upon SCADA
Waging War Upon SCADA
• Stuxnet operated from within Iran’s nuclear
facilities to tamper with uranium-enrichment
centrifuges
• R-U-D-Y integrated with SHODAN’s API
could allow automatic location and
disruption of Web-facing SCADA controllers
from any anonymous location on Earth
R-U-D-Y Mitigation
• Add directive: “RequestReadTimeout body=30”
• Add a rule:
SecRule RESPONSE_STATUS "@streq 408“ \
"phase:5,t:none,nolog,pass, \
setvar:ip.slow_dos_counter=+1,expirevar:ip. \
slow_dos_counter=60"
SecRule IP:SLOW_DOS_COUNTER "@gt 5“ \
"phase:1,t:none,log,drop, \
msg:'Client Connection Dropped due to high \
# of slow DoS alerts'"
Other (potential?) Attack Vectors
• Complex structures such as: SOAP, JSON, REST
• Encapsulated protocols such as: SIP, AJAX binary
streams
Future
Research
• Use a protocol fuzzer such as
PEACH or SPIKE to explore the entropy of
HTTP RFC-compliant input
• Use nested and/or broken data structures to
detect server-side zombie behavior
If we knew what it was we were doing,
it would not be called research, would it?
(Albert Einstein)
Reference
• SlowLoris:
http://ha.ckers.org/slowloris/
• Anti-SlowLoris Patch:
http://synflood.at/tmp/anti-slowloris.diff
• Mitigation with ModSecurity:
http://blog.spiderlabs.com/2010/11/advancedtopic-of-the-week-mitigating-slow-http-dosattacks.html
• R.U.D.Y:
http://hybridsec.com/tools/rudy/
• Chapters In Web Security:
http://chaptersinwebsecurity.blogspot.com
Thank You
raviv@hybridsec.com
Download