und Einsatzszenarien 67. DFN-Betriebstagung Hendrik Walter, avency GmbH
September 17 2
Was wir machen avency SYSTEMS & SECURITY IT-Consulting Infrastrukturanalyse Audits, Pentests Beratung, Betriebsunterstützung Trainings 01 02 IT-Security Endpoint-Security (Antivirus etc.) Network-Security (Firewall-Lösungen) Individualentwicklung Schnittstellen & Server- Architekturen Individual Data Automation 04 03 Managed Services Domain-Management E-Mail-Management Secure Hosting Secure Cloud
Was ist ein IPS? Intrusion Prevention System Zu deutsch: Eindringungsverhinderungssystem Ziel: Aktive Überwachung des Datenverkehrs. Angriffe und Sicherheitsverletzungen erkennen und ggf. blockieren. September 17 4
Möglicher IPS Aufbau Intrusion Prevention System Die IPS Nodes erhalten über SPAN/Mirror Ports von den Switchen aus den gesamten Traffic. Im Falle einer positiven Mustererkennung kann ein Reset zum Switch gesendet werden, um TCP Verbindung zu terminieren, bevor die vollständige Payload das Zielsystem erreicht. September 17 5
Möglicher IPS Aufbau Intrusion Prevention System Die IPS Nodes sind inline zwischengeschaltet und befinden sich z. B. direkt zwischen Switch und Firewall. Auf diese Weise können ungewünschte Pakete terminiert werden, bevor irgendetwas den Empfänger erreicht. Um die Ausfallsicherheit zu erhöhen, gibt es s.g. Fail-Open Interface. September 17 6
IPS Signaturen selber bauen mit der Forcepoint NGFW (auch bekannt als Stonesoft, McAfee, Intel ) September 17 7
Was sind IPS Signaturen? Intrusion Prevention System Ähnlich wie klassische Virenscanner arbeiten IPS Systeme mit Mustererkennung. Die Muster werden auch Signaturen genannt. Neben der Mustererkennung verwenden moderne IPS Systeme auch heuristische Methoden sowie maschinelles Lernen um Angriffe zu erkennen. September 17 8
Situationen (Reguläre Ausdrücke) Forcepoint/Stonesoft unterscheidet zwischen: Situationen (Signatur/Muster) Korrelationen (Zusammenhängende Situationen) Situationen und Korrelationen lassen sich beliebig verschachteln. September 17 9
Situationen (Reguläre Ausdrücke) Situationen Situationen sind Signaturen, welche in der Regel von Forcepoint erstellt und per automatischem Update verteilt werden. (ca 1-2 mal pro Woche) Zum Beispiel Antivirus Signaturen oder IPS Signaturen September 17 10
Reguläre Ausdrücke Situationen beruhen auf regulären Ausdrücken. Der reguläre Ausdruck wird mittels deterministischem endlichem Automaten (DEA) ausgewertet. Die Größe des endlichen Automaten ist limitiert (Speicher). September 17 11
Reguläre Ausdrücke September 17 12
Reguläre Ausdrücke Endlicher Automat für den regulären Ausdruck.*abc September 17 13
Reguläre Ausdrücke Dieser Ausdruck würde den DEA sprengen:.*aaaaaa.* bbbbbb.*aaaaaa b{300} cccccc.* oder x{300} am Anfang eines Ausdrucks wird effizient ausgewertet, in der Mitte würde der DEA aber zu groß..* oder {n} mit großem n darf nur am Beginn eines Ausdruck/Zweig verwendet werden. September 17 14
Reguläre Ausdrücke Lösung: Unter-Ausdrücke (sub-expression) regex(<sub-expr>) Beispiel: Finde aaa gefolgt von beliebigen 100 Zeichen außer c gefolgt von bbb.*aaa[^c]{100}bbb würde den DEA sprengen. Daher Unter-Ausdruck verwenden:.*aaa(?[regex( [^c]{100}bbb(?[sid(),cancel]) ) ]) September 17 15
Einsatzszenarien Beispiel: Anonymous Low Orbit Ion Cannon (LOIC) DDoS Angriff abwehren. Kontext: HTTP Normalized Request Line Aufruf: GET /index.html?id=123456789&msg=we+are+anonymous Regulärer Ausdruck: (?x).*\?id=(?[regex( [\d\.]{6,10}&msg=(?i)we%20are%20anonymous(?-i) (?[sid(),cancel]))]) September 17 16
Einsatzszenarien Fertige Forcepoint IPS Signatur: September 17 17
Einsatzszenarien IPS Regel (Beispiel): Wenn LOIC Situation von der Quell Zone Extern auf die Gruppe Webserver zutrifft dann terminiere die Verbindung und setze die Source IP für eine Stunde auf einer oder mehreren Firewalls auf die Blacklist. September 17 18
Situationen Situationen werden generell von Forcepoint erstellt/gepflegt und per automatischem Update verteilt (in der Regel ca. 1-2 mal pro Woche). September 17 10
Einsatzszenarien Beispiel: Abwehr von WordPress Brute-Force Angriffen (Viele bekannte CMS Systeme (z.b. Wordpress, Joomla, Typo3 etc.) werden häufig aufgrund schwacher Passwörter und nicht nur aufgrund von Exploits gehackt!) Apache Log: xxx.xxx.xxx.195 - - [22/Sep/2017:18:36:17 +0200] "POST /wp-login.php HTTP/1.0" 302 0 "-" "-" xxx.xxx.xxx.195 - - [22/Sep/2017:18:36:19 +0200] "POST /wp-login.php HTTP/1.0" 302 0 "-" "-" xxx.xxx.xxx.195 - - [22/Sep/2017:18:36:32 +0200] "POST /wp-login.php HTTP/1.0" 302 0 "-" "-" xxx.xxx.xxx.195 - - [22/Sep/2017:18:36:33 +0200] "POST /wp-login.php HTTP/1.0" 302 0 "-" "-" xxx.xxx.xxx.195 - - [22/Sep/2017:18:36:34 +0200] "POST /wp-login.php HTTP/1.0" 302 0 "-" "-" Kontext: HTTP Normalized Request Line Regulärer Ausdruck für die Erkennung eines Loginseiten-Aufrufs:.*wp-login\.php September 17 20
Einsatzszenarien Situation zum Erkennen eines WordPress Loginseiten-Aufrufs September 17 21
Einsatzszenarien Korrelierte Situation zum Erkennen eines Brute-Force-Angriffs September 17 22
Einsatzszenarien IPS Regel Beispiel: Wenn die Analyzer_Wordpress Situation von der Quell Zone Extern auf die Gruppe Webserver zutrifft, dann terminiere die Verbindung und setze die Source IP für die Destination IP auf einer oder mehreren Firewalls auf die Blacklist und antworte mit einer HTTP Seite. September 17 23
Einsatzszenarien Blacklist-Einstellungen September 17 24
Einsatzszenarien HTTP Antwortseite bei Terminierung (einfache Nachricht oder individuelles HTML) September 17 25
Einsatzszenarien Und was ist mit HTTPS? Möglich via TLS Inspection! Nachteile: Alle Zertifikate inkl. privatem Schlüssel müssen auf dem SMC Server unverschlüsselt abgelegt werden. Bei hunderten bis tausenden Zertifikaten ist das schwer zu verwalten. TLS Inspection ist nur im Inline IPS Mode möglich. (Kein Capture Interface!) Lösungsansatz: Vorgeschalteter Reverse Proxy z.b. nginx September 17 26
Einsatzszenarien Komplexeres Signatur Beispiel, IPS als WAF Anwendung: Webservice liest Input aus XML File: POST /register_delegate.php HTTP/1.1 Host: www.bundestag.de Content-Type: text/xml; charset=utf-8 Content-Length: 100 <?xml version="1.0" encoding="utf-8"?> <user> <name>martin Schulz</name> <title> </title> <location_id>007</location_id> </user>... Annahme: Verwundbarkeit bei Verarbeitung des location_id Parameters, Werte > 256 erzeugen einen Buffer Overflow. Lösung: Variablen im IPS validieren: (?x).*<user>(?[user_tag_seen=1]).*</user>(?[user_tag_seen=0]).*<location_id>(?[user_tag_seen == 1 -> ( parse_dec(3)>256 -> sid() ) ]) September 17 27
Anwendungsbeispiele Uni Münster Einsatzszenarien Westfälische Wilhelms-Universität Münster WS 2016/17: 44.692 Studierende, 7.900 Mitarbeiter, 238 Gebäude Stonesoft IPS seit 2013 Im IPS im Wesentlichen die vom Hersteller empfohlenen High-Secure Grundschutzregeln False-Positives selten, Regelwerk leicht anpassbar Wenig Aufwand im Tagesgeschäft Im Tagesverlauf ca. 50M FW-Discards und 100k IPS-Terminates September 17 28
Anwendungsbeispiel Uni Münster Einsatzszenarien Szenario: RDP- und SSH Server sind oft in der Whiteliste -> Dienste offen im Internet Trotz IPS melden Nutzer immer wieder häufige Attacken insb. gegen RDP und SSH Ports. Verteilte Angriffe sind schwer zu erkennen, vor allem wenn sie mit geringer Bandbreite/Versuchen stattfinden. Auch kann das IPS nicht in den Verkehr hineinsehen, da verschlüsselt. Kann das ZIV nicht was dagegen machen, ihr habt doch ein IPS? September 17 29
Anwendungsbeispiel Uni Münster Einsatzszenarien Annahme: Ein normaler menschlicher User macht einen oder höchstens wenige Loginversuche. Angreifer machen das i.d.r. häufig bis super-häufig (mehrere tausend Versuche pro Minute). An dieser Stelle haben wir angesetzt. September 17 30
Anwendungsbeispiel Uni Münster Einsatzszenarien 1. Werden innerhalb von 30 Sekunden 4 SSH-Verbindungen von einer Source-IP aus dem Internet (nicht Uni-intern!) zu einer Destination-IP in der Uni versucht, matched die IPS-Situation "SSH-Brute-Force". Es passiert noch nichts (nur Logging). 2. Tritt "SSH-Brute-Force" selber nochmals 3 mal in einem Zeitfenster von max. 10 Minuten auf, so kommt die externe Source-IP für 1 Stunde auf die Firewall-Blacklist. Diese IPS Situation nennt sich dann "SSH-Brute-Force-2". 3. Tritt "SSH-Brute-Force-2" selber nochmals 3 mal in einem Zeitfenster von max. 60 Minuten auf, so kommt die externe Source-IP für 1 Tag auf die Firewall-Blacklist. Diese Situation nennt sich dann "SSH-Brute-Force-3". September 17 31
Weitere Anwendungen Einsatzszenarien Schonmal gesehen? (Dank an Jens@RWTH!) If eval() is the answer, you're almost certainly asking the wrong question. eval(base64_decode( )) ist zu 99,999% Schadcode! Bei nahezu jeder Kompromittierung PHP-basierter Webanwendungen wird diese Art der code obfuscation verwendet! September 17 32
Weitere Anwendungen Einsatzszenarien Können wir Requests/Uploads verhindern, welche diesen String enthalten? Ja! IPS Situation mit regulärem Ausdruck:.*eval\(base64_decode\( Kontext Suche in request line, client stream und text files. Blacklist und Tschüss Last but not least: Tipp für das Säubern der Webserver: $ find. -name "*.php" -print xargs sed -i 's@eval(base64_decode( JGE9y.."));@@g' September 17 33
Vielen Dank für Ihre/Eure Aufmerksamkeit! 34
Disclaimer Die Nutzung jeglicher Vorschläge (Reguläre Ausdrücke, Regeln, Befehle) erfolgt auf eigene Gefahr! Die Situationen sind nicht von Forcepoint getestet/freigegeben. Jegliche Haftung ist ausgeschlossen. September 17 35