layer-7 dos hash collisions. provide cyber fraud protection to websites prevent business logic...

20
Layer-7 DoS Hash Collisions

Upload: godfrey-walters

Post on 11-Jan-2016

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

Layer-7 DoS

Hash Collisions

Page 2: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

Provide cyber fraud protection to websites

Prevent business logic attacks on web applications

Heuristic web user behavior analysis

Signature-free 0-day attack detection

About Hybrid Security

Page 3: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

Layer-7 DoS

• Slowloris: Written by RSnake, exploits slow HTTP headers

• R.U.Dead.Yet: Written by Raviv Raz, exploits slow POST fields

• Keep-Dead: Written by Esrun,exploits long Keep-Alive sessions

Page 4: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

Hash DoS

• HashDoS – Advisory published by Julian Wäld & Alexander Klink, Dec. 28, 2011

• Vulnerability in ASP.NET (MS11-100)

• Vulnerability in PHP 4 and 5

• Also vulnerable:Java, Tomcat, Python, Ruby, Oracle

Page 5: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

Hash TablesHash Key

login=root passwd=123

Insert, search, delete node

with O(n) complexity

Page 6: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

Hash CollisionsHash Key

EzEz=123

EzFY=123

FYEz=123

When h(Ez) = h(FY)…

Insert, search, delete node

become O(n²) complexity

Page 7: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

DJBX33A Hashing• Daniel J. Bernsetin, 33 additions• Used in 32 bit PHP 5, Java Tomcat• Similar function used in Ruby

Page 8: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

Hashing With the Pigeons

Strings

Hashes

• Apparently, a non-injective function

• More commonly known as the pigeonhole principle

Page 9: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

DJBX33X Hashing

• Daniel J. Bernsetin, 33 XORs• Used in 32/64 bit PHP 4 & ASP.NET• Similar function used in Python

Page 10: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

Linear Collision Generation

h('Ey') = 31¹ · 69 + 31° · 121 = 2260

h('FZ') = 31¹ · 70 + 31° · 90 = 2260

h('Eya') = 31 · (31¹ · 69 + 31° · 121) + 31°·97

= 31 · (31¹ · 70 + 31° · 90) + 31°·97

= h('FZa')

Page 11: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

DEMODEMO

Page 12: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

Using Binary Permutations

h('EzEz') (00)

= h('EzFY') (01)

= h('FYEz') (10)

= h('FYFY') (11)

Page 13: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

Pre-computing rainbow tables

• Calculate long permutations of colliding char pairs• Create many same-hash field names for POST• More advanced Meet-In-The-Middle techniques

improve rainbow table creation exponentially

Page 14: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

PHP 5

• DJBX33X• 1 Gbit speed keeps

~ 10,000 i7 core CPU busy• POST limited by 8 MB• POST limited by max_input_time

(default on Ubuntu/BSD = 60 seconds)

Page 15: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

<?

php echo $_POST["param"];

?>

Page 16: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

• DJBX33X• Breakable using

Meet-In-The-Middle• 30 kbits/sec keeps

1 core-2 CPU busy• With 1 Gbit keeps

~ 30,000 core-2 CPU busy

Page 17: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

<%

Response.Write Request.Form['param'];

%>

Page 18: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

POST http://victim.com/

Host: victim.com

Connection: keep-alive

Content-Length: 1000000

User-Agent: Mozilla/5.0

Cookie: __utmz=181569312.1294666144.1.1

EzEzEzEzEzEzEzEz=&EzEzEzEzEzEzEzFY=&

EzEzEzEzEzEzEzG8=&EzEzEzEzEzEzEzH%17=&…

Page 19: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

PoC already in the wildPoC already in the wild

Page 20: Layer-7 DoS Hash Collisions. Provide cyber fraud protection to websites Prevent business logic attacks on web applications Heuristic web user behavior

Thank YouThank You

[email protected]://www.hybridsec.com