Montag, 1. März 2010


Topthema

Donnerstag, 13. April 2006 | Topthema

About Security #51: Ein Honeypot — Honeyd

(Link zum Artikel: http://www.entwickler.de/php/kolumnen/027994)

Nach der theoretischen Beschreibung von Honeypots in About Security #50 folgt in dieser Folge als praktisches Beispiel die Vorstellung eines Low-Interaction-Honeypods: Honeyd. Dabei handelt es sich um einen Daemon für Unix-artige Betriebssysteme, der inzwischen auch für Windows portiert wurde. Honeyd kann mehrere virtuelle Rechner auf einem Host emulieren. Dabei können sowohl verschiedene Betriebssysteme als auch verschiedene Dienste vorgetäuscht werden. Außerdem können ganze Netze einschließlich des zugehörigen Routings emuliert werden.

N E U ! Security aktuell
Täglich aktuelle Security-Infos!

Honeyd erlaubt im Zusammenspiel mit arpd die Überwachung aller in einem Netzwerk unbenutzten IP-Adressen. Bei einem Zugriff auf eine dieser Adressen kann von einem versuchten Angriff ausgegangen werden, da solche Zugriffe im normalen Betrieb nicht vorkommen sollten. Honeyd löst in diesem Fall einen Alarm aus. Interessanter aber wird es, wenn über einen emulierten Dienst mit dem Angreifer interagiert wird, um mehr über sein Vorhaben zu erfahren. Ein Zugriff auf z.B. einen Telnet-Server auf einer unbenutzten IP-Adresse könnte ein Angriff sein. Ohne weitere Informationen ist dies aber nicht sicher, denn es könnte sich auch einfach um einen Tippfehler bei der Eingabe der IP-Adresse handeln. Honeyd ermöglicht es, über die emulierten Dienste weitere Informationen über die Kommunikation zu sammeln. Diese Dienste werden über Skripte emuliert, die in einer beliebigen Sprache, z.B. Perl, Python, Unix-Shell, geschrieben sein können.

Honeyd wird über eine Konfigurationsdatei gesteuert, in der die zu emulierenden Betriebssysteme und Dienste sowie deren Verhalten festgelegt werden. Die dabei definierten virtuellen Rechner werden Templates genannt. Jede Konfigurationsdatei muss ein Default-Template besitzen. Dieses wird für alle Pakete verwendet, die an eine IP-Adresse gerichtet sind, für die es kein spezifisches Template gibt.

Für die emulierten Rechner bestimmter Netzwerkverkehr sollte vom Router zu dem Rechner weitergeleitet werden, auf dem der Daemon läuft. Ohne die Weiterleitung kann arpd verwendet werden, um alle an unbenutzte IP-Adressen gerichteten Pakete zum Honeypot-Rechner umzuleiten.

Eine Beispielkonfiguration
create teergrube
set teergrube personality "Solaris 2.6 - 2.7"
set teergrube default tcp action tarpit open
set teergrube default udp action block
set teergrube default icmp action block
bind a.b.c.d teergrube

Es wird ein Solaris-Server mit der IP-Adresse a.b.c.d emuliert. Honeyd emuliert den TCP/IP-Stack gemäß der definierten Personality, in diesem Fall "Solaris 2.6 - 2.7". Dabei benutzt Honeyd die gleiche Fingerprint-Datenbank wie nmap, um die Reaktion des emulierten Betriebssystems auf einen Fingerprinting-Versuch vorzutäuschen. Wird der virtuelle Rechner mit nmap gescannt, wird ein entsprechendes System erkannt. Alle TCP-Ports sind offen und so konfiguriert (Option tarpit), dass alle aufgebauten Verbindungen verlangsamt werden. UDP- und ICMP-Port sind geblockt, d.h. eingehende Pakete werden verworfen und es wird keine Antwort zurückgegeben.

Eine weitere Beispielkonfiguration
create honigtopf
set honigtopf personality "Linux 2.2.12 - 2.2.19"
add honigtopf tcp port 21 "sh /honeyd/ftp.sh "
add honigtopf tcp port 22 proxy :22
add honigtopf tcp port 25 "sh /honeyd/sendmail.sh "
add honigtopf tcp port 80 proxy :80
add honigtopf tcp port 110 "sh /honeyd/pop3.sh "
set honigtopf default icmp action block
set honigtopf default tcp action block
set honigtopf default udp action block
set honigtopf uptime 1327650
bind a.b.c.e honigtopf

Es wird ein Linux-Server mit der IP-Adresse a.b.c.e emuliert, auf dem ein FTP-Server (Port 21), ein SMTP-Server (Port 25) und ein POP3-Server (Port 110) laufen. Bei Verbindungsversuchen mit einem der emulierten Server wird das entsprechende Shellskript mit den eingehenden Daten aufgerufen. Alle SSH- (Port 22) und HTTP-Verbindungen (Port 80) werden an die IP-Adresse des Angreifers weitergeleitet. Verbindungsversuche zu anderen Ports werden abgeblockt.

Protokollierung
About Security: Die komplette Serie

Honeyd kennt zwei Protokollierungsoptionen: Die Verwendung des syslog und die Angabe einer Protokolldatei. Auf- und Abbau von Verbindungen sowie weitere relevante Pakete können im syslog protokolliert werden. Von Honeyd gestartete Dienste können den Daemon zur Protokollierung nutzen, indem sie Daten nach stderr schreiben. Wird die Kommandozeilenoption "-l" gesetzt, werden die Daten in der angegebenen Datei protokolliert. Um weitere Informationen zu sammeln, kann ein Intrusion-Detection-System, z.B. das in About Security #48 beschriebene Snort, eingesetzt werden.

Zur Auswertung der Logfiles gibt es außer den üblichen, für alle Logfiles nutzbaren Hilfsmitteln spezielle Tools wie Honeyview oder Honeydsum.pl.

Damit wird das Thema Honeypots vorerst abgeschlossen. In der nächsten Folge wird der Zusammenhang zwischen Firewalls, Intrusion-Detection- und -Prevention-Systemen und Honeypots zusammengefasst.

Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security – Übersicht zum aktuellen Thema "Honeypots"

Kommentare

Folgende Links könnten Sie auch interessieren