Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port...

25
Netzbasierte Erkennung von mittels Port Knocking versteckten Diensten und Back- doors Felix von Eye, Michael Grabatin, Wolfgang Hommel

Transcript of Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port...

Page 1: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Netzbasierte Erkennung von mittels PortKnocking versteckten Diensten und Back-doorsFelix von Eye, Michael Grabatin, Wolfgang Hommel

Page 2: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Wichtige Abgrenzung

Was wir nicht betrachten:

Schwachstellen

Eingebaute Hintertüren in regulären Diensten, z. B.

Umgehung der AutorisierungskomponenteUndokumentierte Default-Passwörter

Dies erfordert fundamental andere Erkennungsalgorithmen.

⇒ Wir fokussieren uns im Folgenden auf die Erkennung vonversteckten Diensten.

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 2

Page 3: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Wichtige Abgrenzung

Was wir nicht betrachten:

Schwachstellen

Eingebaute Hintertüren in regulären Diensten, z. B.

Umgehung der AutorisierungskomponenteUndokumentierte Default-Passwörter

Dies erfordert fundamental andere Erkennungsalgorithmen.

⇒ Wir fokussieren uns im Folgenden auf die Erkennung vonversteckten Diensten.

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 2

Page 4: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Wichtige Abgrenzung

Was wir nicht betrachten:

Schwachstellen

Eingebaute Hintertüren in regulären Diensten, z. B.

Umgehung der AutorisierungskomponenteUndokumentierte Default-Passwörter

Dies erfordert fundamental andere Erkennungsalgorithmen.

⇒ Wir fokussieren uns im Folgenden auf die Erkennung vonversteckten Diensten.

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 2

Page 5: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Wichtige Abgrenzung

Was wir nicht betrachten:

Schwachstellen

Eingebaute Hintertüren in regulären Diensten, z. B.

Umgehung der AutorisierungskomponenteUndokumentierte Default-Passwörter

Dies erfordert fundamental andere Erkennungsalgorithmen.

⇒ Wir fokussieren uns im Folgenden auf die Erkennung vonversteckten Diensten.

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 2

Page 6: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Wichtige Abgrenzung

Was wir nicht betrachten:

Schwachstellen

Eingebaute Hintertüren in regulären Diensten, z. B.

Umgehung der AutorisierungskomponenteUndokumentierte Default-Passwörter

Dies erfordert fundamental andere Erkennungsalgorithmen.

⇒ Wir fokussieren uns im Folgenden auf die Erkennung vonversteckten Diensten.

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 2

Page 7: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Was ist Port Knocking?

Client 2

TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002Server

SYNRST

SYNRST

SYNACKPSHFIN

Typ 8Code 16

Zeitlicher Ablauf der Port-Knocking-Sequenz

Client 1

SYNRST

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 3

Page 8: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Gegenmaßnahmen?

Firewalls

Lokales Scannen nach aktiven Diensten

Analyse des Netzverkehrs

Aber: Geht das auchin heterogenen, nicht zentral administriertenHochschulnetzen?

bei gut gemachter Malware, die Rootkit-Funktionalitätenbesitzt?

ohne Tool-Unterstützung?

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 4

Page 9: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Gegenmaßnahmen?

Firewalls

Lokales Scannen nach aktiven Diensten

Analyse des Netzverkehrs

Aber: Geht das auchin heterogenen, nicht zentral administriertenHochschulnetzen?

bei gut gemachter Malware, die Rootkit-Funktionalitätenbesitzt?

ohne Tool-Unterstützung?

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 4

Page 10: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Grundsätzliche Ideen

„Kenne dein Netz und deine Dienste“Regelmäßige Ermittelung des Ist-Zustands

„Kenne deine Kommunikation“Speichern von relevanten KommunikationsmetadatenKommunikation von regulären Diensten ausfilternFlow-Records korrelieren und filtern, um z. B. Portscans zuerkennen

„Erkenne Backdoors“Erkennung von irregulären DienstkommunikationsmusternErkennung der Port-Knocking-Sequenz

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 5

Page 11: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Grundsätzliche Ideen

„Kenne dein Netz und deine Dienste“Regelmäßige Ermittelung des Ist-Zustands

„Kenne deine Kommunikation“Speichern von relevanten KommunikationsmetadatenKommunikation von regulären Diensten ausfilternFlow-Records korrelieren und filtern, um z. B. Portscans zuerkennen

„Erkenne Backdoors“Erkennung von irregulären DienstkommunikationsmusternErkennung der Port-Knocking-Sequenz

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 5

Page 12: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Grundsätzliche Ideen

„Kenne dein Netz und deine Dienste“Regelmäßige Ermittelung des Ist-Zustands

„Kenne deine Kommunikation“Speichern von relevanten KommunikationsmetadatenKommunikation von regulären Diensten ausfilternFlow-Records korrelieren und filtern, um z. B. Portscans zuerkennen

„Erkenne Backdoors“Erkennung von irregulären DienstkommunikationsmusternErkennung der Port-Knocking-Sequenz

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 5

Page 13: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Datenquellen

Mögliche Quellen für den Ist-ZustandPortscansCMDBmanuelle Eingruppierung

Flow Records zur Speicherung der Kommunikationsmuster

ausgewählter Teil der Header-Informationen, insb. keinPayload, verfügbarFlow-Records-kompatiblen Protokolle (insb. TCP, UDP undICMP)manuelle Eingruppierung

Netz- Interface

Flow-Record-Aggregator

Portscanner

Filterung & Sequenzerkennung

mit Perl

Cflow.pm

Flow-Record-Dateien

Portscan-Datei

Konsolenausgabe

Konfigurations-parameter &

Ausnahmeliste

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 6

Page 14: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Datenquellen

Mögliche Quellen für den Ist-ZustandPortscansCMDBmanuelle Eingruppierung

Flow Records zur Speicherung der Kommunikationsmusterausgewählter Teil der Header-Informationen, insb. keinPayload, verfügbarFlow-Records-kompatiblen Protokolle (insb. TCP, UDP undICMP)manuelle Eingruppierung

Netz- Interface

Flow-Record-Aggregator

Portscanner

Filterung & Sequenzerkennung

mit Perl

Cflow.pm

Flow-Record-Dateien

Portscan-Datei

Konsolenausgabe

Konfigurations-parameter &

Ausnahmeliste

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 6

Page 15: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Datenquellen

Mögliche Quellen für den Ist-ZustandPortscansCMDBmanuelle Eingruppierung

Flow Records zur Speicherung der Kommunikationsmusterausgewählter Teil der Header-Informationen, insb. keinPayload, verfügbarFlow-Records-kompatiblen Protokolle (insb. TCP, UDP undICMP)manuelle Eingruppierung

Netz- Interface

Flow-Record-Aggregator

Portscanner

Filterung & Sequenzerkennung

mit Perl

Cflow.pm

Flow-Record-Dateien

Portscan-Datei

Konsolenausgabe

Konfigurations-parameter &

Ausnahmeliste

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 6

Page 16: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Wie wird ein versteckter Dienst erkannt?

Verbindungsrichtung

Systemklassifikation

Protokoll

Ausgehend

Eingehend

Reaktion

Vollständiger Handshake

UDP

TCP

Kein Dienst oder Firewall

Portscan erkennt Dienst

Nein

Ja

Versteckter Dienst

Nein

Regulärer DienstJa

Erlaubte Verbindung

Kann nicht näher kontrolliert werden

Server

ClientPotentielle Backdoor

Automatisches Update oder ähnliches

Ja

Nein

Gleiche Pakete auch an andere Hosts

Potentiell verdächtigAntwort

Keine

Vermutlich Portscan oder ähnliches

Potentiell verdächtig

Ja

Nein

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 7

Page 17: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Erkennung der Port-Knocking-Sequenz

Wird bei erkannten versteckten Diensten durchgeführt

Nützlich zum Finden von ähnlicher Malware

Erleichtert die forensische Analyse

Wertet die letzten 10ms der Kommunikation aus

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 8

Page 18: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Prototypische Tests

Internet Aufzeichnen von Flow-Records

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 9

Page 19: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Prototypische Tests

Internet Aufzeichnen von Flow-Records

6 Systeme, 3 Linux-Server, 3 Windows-Server/-ClientsSammlung der Flow-Records auf der Auswerteeinheit;Überwachung jeglicher KommunikationInstallation verschiedener Dienste und BackdoorsNutzung dieser Dienste im Friendly-User-Betrieb

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 9

Page 20: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Prototypische Tests

Internet Aufzeichnen von Flow-Records

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 9

Page 21: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Prototypische Tests

Internet Aufzeichnen von Flow-Records

Sammlung von > 1 000 000 Flow RecordsPortscan mit nmap; Auswertung durch Perl-PrototypErkennung aller genutzten Port-Knocking-SequenzenNur 16 False Positives

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 9

Page 22: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Erkannte Schwächen

Export der Flow-Records nur zeitverzögert (bis 15 MinutenDelay)

Prototyp ist bisher noch ein wenig langsam

Zusammenhängende Port-Knocking-Sequenzen nur innerhalbeines Zeitfensters von 10ms

Noch nicht alle Dienste werden zuverlässig als legitim erkannt(z. B. FTP)

Erkennung von Portscans zum Ausfiltern muss noch verbessertwerden

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 10

Page 23: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Zusammenfassung

Flow-Record-basiertes Verfahren

Einpflegen von relevanten Background-Wissen (legitimeDienste und Netzbereiche)

Erkennung von irregulären Dienstkommunikationsmustern

Erkennung von einfachem Port-Knocking-Sequenzen

Prototypische Implementierung

Relativ geringe Anzahl von False Positives

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 11

Page 24: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Ausblick

Schutz von kritischen Systemen in speziellen Netzen

Integration des Ansatzes in Honeypots

Portierung für Software Defined Networks

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 12

Page 25: Netzbasierte Erkennung von mittels Port Knocking versteckten … · 2015. 8. 6.  · Was ist Port Knocking? Client 2 TCP: 5002 TCP:80 UDP:53 ICMP TCP:443 TCP:5002 Server SYN RST SYN

Fragen?

Kontakt:Felix von Eye

[email protected]

08.06.2015 Felix von Eye — Backdoors — 8. DFN-Forum 13