hands-on modsecurity & logging · a1:2017-injection top_10-2017_top_10 4 4@xeraa

44
Hands-On ModSecurity & Logging Philipp Krenn@xeraa @xeraa

Upload: others

Post on 29-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Hands-On

ModSecurity & LoggingPhilipp Krenn@xeraa

@xeraa

Page 2: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Let's talk about security...

@xeraa

Page 3: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

@xeraa

Page 4: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

A1:2017-Injectionhttps://www.owasp.org/index.php/

Top_10-2017_Top_10

@xeraa

Page 5: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

@xeraa

Page 6: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

A10:2017-Insufficient Logging & Monitoring

https://www.owasp.org/index.php/Top_10-2017_Top_10

@xeraa

Page 7: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

@xeraa

Page 8: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Developer !

@xeraa

Page 9: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Disclaimer

I build highly monitored Hello World apps

@xeraa

Page 10: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Hello World of SQL Injection:https://xeraa.wtf

@xeraa

Page 11: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

https://xeraa.wtf/login.php !

@xeraa

Page 12: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Hello World of SQL Injection

$sql = "SELECT * FROM `employees` WHERE name='$name' AND password=SHA1('$password')";

@xeraa

Page 13: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Hello World of SQL Injection' or true --

@xeraa

Page 14: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

@xeraa

Page 15: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

https://xeraa.wtf/read.php?id=1 !

@xeraa

Page 16: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

sqlmap --url "https://xeraa.wtf/read.php?id=1" --purge

@xeraa

Page 17: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Hello World of SQL Injection$sql = "SELECT * FROM employees WHERE id = " . trim($_GET["id"]);error_log("SQL query [read.php]: " . $sql . "\n", 3, "/var/log/app.log");

mysqli_multi_query($link, $sql);if($result = mysqli_use_result($link)){ $row = mysqli_fetch_array($result, MYSQLI_ASSOC);

@xeraa

Page 18: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Injection

;INSERT INTO employees (name) VALUES ('Bad Actor')

@xeraa

Page 19: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

No Escaping Either;INSERT INTO employees (name) VALUES ('<script>alert("Hello Friend")</script>')

@xeraa

Page 20: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

What's going on in our app?

@xeraa

Page 21: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa
Page 22: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa
Page 23: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa
Page 24: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

@xeraa

Page 25: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa
Page 26: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

@xeraa

Page 27: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

@xeraa

Page 28: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

@xeraa

Page 29: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa
Page 30: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa
Page 31: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

DELETE or DROP?

@xeraa

Page 32: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

@xeraa

Page 33: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Open source

Cross-platform web application firewall (WAF)

Visibility into HTTP(S) traffic

Rules to implement protections

@xeraa

Page 34: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

OWASP ModSecurity Core Rule Set (CRS) Version 3

• HTTP Protocol Protection

• Real-time Blacklist Lookups

• HTTP Denial of Service Protections

• Generic Web Attack Protection

• Error Detection and Hiding

@xeraa

Page 35: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Commercial Rules from Trustwave SpiderLabs

• Virtual Patching

• IP Reputation

• Web-based Malware Detection

• Webshell / Backdoor Detection

• Botnet Attack Detection

• HTTP Denial of Service (DoS) Attack Detection

@xeraa

Page 36: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Rerun sqlmapsqlmap --url "https://xeraa.wtf/read.php:8080?id=1" --purge

@xeraa

Page 37: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa
Page 38: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Log to JSONSecAuditLogFormat JSON

https://www.cryptobells.com/mod_security-json-audit-logs-revisited/

@xeraa

Page 39: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Custom RuleSecRule REQUEST_FILENAME "form.php" "id:'400001',chain,deny,log,msg:'Spam detected'"SecRule REQUEST_METHOD "POST" chainSecRule REQUEST_BODY "@rx (?i:(pills|insurance|rolex))"

@xeraa

Page 40: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

@xeraa

Page 41: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Conclusion

@xeraa

Page 42: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Exampleshttps://github.com/xeraa/mod_security-log

@xeraa

Page 43: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

ModSecurity ❤

Logging

@xeraa

Page 44: Hands-On ModSecurity & Logging · A1:2017-Injection  Top_10-2017_Top_10 4 4@xeraa

Hands-On

ModSecurity & LoggingPhilipp Krenn@xeraa

@xeraa