[Chaos CD][Datenschleuder] [81]
  [Chaos CD]
  [Datenschleuder] [81] Honeypots
[ -- ] [ ++ ] [Suchen]  

Honeypots

Der sportlich intressesierte Nerd begibt sich heutzutage nicht mehr auf die Jagd nach offenen wLANs - nein, wir versuchen etwas viel Interessanteres zu "fangen": Cracker, Kreditkartenbetrüger, Wrümer, Spammer. Manchmal landen auch ScriptKiddies im Honigtopf.

Was ist ein Honeypot?

Ein Honeypot ist ein Gerät (meist ein Computer), dessen Zweck darin besteht, gescannt und angegriffen zu werden, daher auch der Name. Sinn des Ganzen ist es entweder, seine "echten" Netze zu schützen, oder man möchte etwas über die Motivation, Techniken und Werkzeuge der Angreifer lernen. Ein Honeynet ist ein Netz, was aus mehreren Honeypots und einigen Kontroll-Rechneren besteht.

Wer einen Admin-Job hat, kann so einiges über die Gefahren lernen, die im großen, "bösen" Internet so lauern. Man bekommt auch ein ganz gutes Gefühl dafür, wie sich Angriffe bemerkbar machen. Für jeden Computerforensiker bieten sich nach einem erfolgreichen Eindringen in den Honeypot, jede Menge Möglichkeiten, seine Fähkeiten zu verbessern und zu testen. Natürlich kann man einen Honeypot auch als Crackerfahrschule betreiben und sich zeigen lassen, wie man System XYZ doch auf bekommt. Manchmal stellt ein Honeynet eine gute Möglichkeit dar, dem Chef zu demonstrieren, dass Sicherheit wichtig ist. Es wurden auch schon Spammer und Kreditkartenbetrüger in einem Honeynet gefangen.

Honeypots gibt es in verschieden Interaktionsgraden, von der mehr oder minder guten Simulation bestimmter Dienste, bis hin zu kompletten Netzen.

Honeyd, von Niels Provos, ist ein Opensource lowinteraction Honeypot, der in der Lage ist mehrere Netzwerke mit Routing Topologie, Latenz und Paket-Verlusten zu simulieren. Er schafft es sogar nmap-OS-fingerprints zu fälschen. Auf der anderen Seite des Spektrums, kann man mit alten Rechnern, ein kleines Netzwerk aufbauen und eine alte Linux-Distribution oder Windoof installieren. In so einem Netzwerk bieten sich dem Angreifer natürlich ganz andere Möglichkeiten.

honeyd

Honeyd läuft als Userspace-Daemon auf den meisten Unixen, er benutzt libpcap, libevent und libdumbnet um für jeden virtuellen Honeypot einen eignen TCP/IP Stack zu simulieren (so werden auch die TCP/IP-OS-Fingerprints mit simuliert). Honeyd simuliert ein oder mehrere Netzwerke aus virtuellen Honeypots, für die Simulation der einzelnen Dienste verwendet er externe Scripte. Man kann sich honeyd in etwa wie einen inetd für Honeynets vorstellen. Es gibt bereits einige Scripte, die z.B. komplette IIS/Apache Webserver simulieren. Wenn man nun diese Scripte in Logdateien schreiben lässt, werden alle Einbruchsversuche protokolliert. Wirklich Eindringen kann der Angreifer (hoffentlich) nicht, da die Scripte nur simulieren, man kann natürlich bis zu einem gewissen Grad, die Bugs einfach mit simulieren. Wenn man seinem Honeyd mit systrace, rsbac, SELinux oder VServer etwas einsperrt, hat man ohne großes Risiko recht interessante Logfiles. Nach der Zeit wird das aber langweilig, also auf zu den interessanteren Dingen:

Honeynet GenI

Bei einem Honeynet der ersten Generation (GenI) stellt man einen gut gesicherten Firewall/Gateway vor ein "echtes" Netzwerk, das Honeynet. In dieses Netzwerk sollen die Leute dann einbrechen und wir können sie dabei beobachten. Um zu verhindern, dass jemand Schaden in externen Netzen anrichten, erlauben wir dem Honeynet nur 5 ausgehende Verbindungen am Tag. Da in dem Honeynet ja niemand arbeitet, muss man nur noch DNS, NTP etc. freischalten. Alle anderen ausgehenden Verbindungen sind ein Zeichen, dass der Honeypot gecracked wurde, daher lasse ich mir dies per automatischer EMail mitteilen. Das Network Intrusion System (NIDS) überwacht und loggt allen Netzwerkverker. Ich benutze zur Zeit snort, als NIDS. Auf den syslogserver gehe ich später ein. Baitn'switch bietet die Möglichkeit Angreifer auf das Honeynet umzuleiten, um die produktiven Netze zu schützen.

Honeynet GenII

Die zweite Generation der Honeynets benutzen anstatt einem Gateway eine Bridge mit Paketfilterfunktinalität und snort_inline . Die Bridge verbindet das Honeynet mit dem Rest der Welt (auch dem eventuellen Produktiv-Netz), dies hat den Vorteil, dass die Bridge nicht so leicht zu entdecken ist (z.B. mit traceroute).

Snort_inline ist ein Patch für das NIDS snort, der es snort erlaubt Pakete zu manipulieren, sie wegzuwerfen oder die Verbindung zu resetten. Implementiert ist dieses Feature durch das netfilter Userspace Queue von Linux, zur Zeit gibt es noch keinen Port für andere Unixe. Mit Snort_inline verhindert man viele Attacken des Honeynets auf externe Netze und somit kann man etwas mehr ausgehende Verbindungen erlauben: 10-20 pro Tag ist ein guter Wert. Ausserdem macht es Spass Shellcodes/NOPSlides geben 0-Bytes auszutauschen...

Data Control & Data Caputre

Wie gesagt, es gilt zu verhindern, dass man mit dem Honeynet Schaden anrichten kann. Daher das Connectionlimit, eine schmalbandige Anbindung und evtl. snort_inline. Desweiteren wollen wir natürlich genaustes wissen, was der Angreifer auf unserem System so treibt. Snort ist in der Lage den Netzwerkverkehr sowohl als Sessionlogs oder auch im tcpdump formart aufzuzeichnen. Die Snort-Sessionlogs sind im Prinzip ASCII-Zeichen Dumps der einzelnen Verbindungen.

Die meisten Rootkit/Backdoors verwenden mittlerweile verschlüsselte Kommunikationskannäle, so dass uns ein Sniffer nicht weiter hilft. Da ich aber schon gerne weiss, was die Leute so auf meinem System treiben, brauchen wir noch einen TTY-Logger. Der Angreifer soll diesen nicht entdecken und auch nicht durch ein RootKit austauschen, daher finde ich sebek sehr chick. Sebek ist ein Linux Loadable Kernel Modul (LKM), das die Eingaben auf allen (Pseudo)TTYs per UDP an einen Rechner sendet. Es gibt mittlerweile auch einen OpenBSD Port. Sebek verbiegt die RawSocket Implementierung des Kernels so, dass man Pakete von bestimmten AbsenderMAC-Adressen nicht mehr sieht. Das heißt für alle Rechner mit sebek LKM ist der sebek Traffic nicht sichtbar, auch nicht im promiscuous mode (beim sniffen). Ansonsten gibt es noch einen Patch für die Bash, der die Bash-History ins Netzwerk loggt, leider für jeden sichtbar. Sebek funktioniert nur ab einem 2.4er Kernel, daher hat man u.U. keine andere Wahl. Für Solaris bietet sich RemoteBSM an.

Als nächstes bleibt noch syslog. Mit syslog kann man etwas tricksen: Wir stellen einen (besser gesicherten) Syslogserver in unser Honeynet. Damit zwingen wir den fähigen Einbrecher, tiefer in die Trickkiste zu greifen. Wenn es den Angreifer gelingt den Syslogserver zu öffnen, stört dies nicht weiter, da von snort auch der syslog Traffic mit gesnifft wird :-) . Aus diesem und anderen Gründen empfiehlt es sich Hubs in Honeynets zu verwenden.

Tripwire, Process Accounting oder chkrootkit sind ebenfalls immer sehr hilfreich. Die Daten eines gecrackten Systems sichert man am besten, indem man eine KNOPPIX-CD bootet und dann die Partionen mit dd | nc auf einen anderen Rechner überträgt. Eine Sicherung der Partionsimages auf CD, DVD oder andere readonly-Medien ist ratsam.

Zur intensiven Analyse des Dateisystems ist TCT gut geeignet. Leider kommt es zur Zeit nur mit ext2/3 und UFS zurecht. Auf Computerforensik will ich aus Platzgründen nicht weiter eingehen, das Honeynet Project hat aber einige gute Papers hierzu veröffentlicht.

Das Wichtige ist, dass man mehrere Schichten Logging/Data Control hat, wenn eine Schicht versagt, steht man nicht vor einer Katastrophe, denn irgendwas geht immer schief. Des weiteren gilt das Motto: "Um so mehr Daten ich habe, umso leichter wird die Analyse." Ein Honeynet produziert, im Gegensatz zu einem produktiven System, recht wenig Traffic, ca 5-30MB jeden Tag. Es ist einfach jede Verbindung zum Honeynet suspekt. Wenn ein honeypot eine ausgehende Verbindung aufbaut, ist er wohl aufgemacht worden, da ja niemand auf dem Honeypot regulär arbeitet.

Mein Setup

Ich betreibe z.Z. ein Honeynet mit RH8.0, leider habe ich nur eine statische IP Adresse zur Verfügung, aber wenigstens ist der RH8.0 Honeypot primary DNS für eine Domain. In dem Netz befinden sich noch ein Cisco Router und ein paar andere Dinge, leider hat nur die RedHat Kiste eine offizielle IP Adresse. RedHat8.0 läuft jetzt seit ca. 7 Wochen und ist bis jetzt noch nicht geöffnet wurden, was mich etwas trauig macht. Davor hatte ich einen SuSE7.3 honeypot, der ist zweimal (immer Sonntags) von Freizeit ScriptKiddies durch den sambal exploit geöffnet wurden. Dies ist keine Wertung der Distris an sich, es zeigt nur, dass man sein System aktuell halten will. Als nächstes werde ich mal etwas anderes als Linux versuchen. Windows Honeypots werde ich mir ersparen. IMHO ziehen IIS, Exchange und Konsorten nur ScriptKiddies an.

Gefahren

Ein Honeypot ist kein Produkt, das man im Laden kauft, per Plugn'Play anschließt und dann in die Ecke stellt. Ein Honeypot sollte am besten von mindestens 2 Leuten 24x7 im Auge behalten. Man sollte sich langsam an die Thematik heran tasten: Erstmal den honeyd testen, viel lesen und die Mailinglisten abonnieren.

Auf der Honeynet Project Webseite finden sich die sogenannte " Scan of the Month Challenges" des Honeypot Projects. Das sind z.B. tcpdump logs von einem Angriff auf einen Honeypot, die zu analysieren sind, um herauszubekommen, was genau dort vorgefallen ist. Erst wenn man in der Lage ist den Großteil dieser Aufgaben zu meistern, sollte man sich an ein "richtiges" Honeynet wagen. Andernfalls ist es sinnlos, da ihr nicht in der Lage sein werdet, die anfallenden Daten auszuwerten.

Denn bei allen Sicherheitsmaßnahmen sollte man nicht vergessen, dass man mit dem Feuer spielt! Ich will der Polizei nicht erklären müssen, warum mein Rechner gerade die BSI Seite exploited hat. Die haben bestimmt richtig viel Verständniss für euren Wissensdurst und Honeynet Geschichten.

Um ein Honeynet sinnvoll zu betreiben, braucht man statische IP Adressen. Mit honeyd kann man auch etwas Spass ohne statische IP Adressen haben, aber selbst das ist nicht wirklich lohnend. Ich selbst habe es 3 Wochen lang mit einer Dialup IP Adressen versucht, leider erfolglos. Man kann sich aber über IPSEC/OpenVPN eine statische IP Adresse nach hause tunneln lassen, wenn man nur eine Einwähl-Internetverbindung mit dynamischer Adresse hat.

Die rechtliche Situation nicht ganz einfach, vor allem in den USA, mehr dazu im Internet:

Ich würde gerne dem Honeynet Project als deutsches Honeynet beitreten, dazu brauche ich aber noch ein paar Leute die mitmachen. Bei Interesse einfach [Mail]mir mailen .

Ansonsten bleibt noch zu sagen: Wenn ihr das nächste mal auf einem Rechner seid, wo ihr eigentlich nicht sein solltet, und nach der 12. ausgehenden Connection Schluss ist, schaue ich euch wohl gerade auf die Finger (-; .

Mailinglisten

Bücher

  • "Know Your Enemy", Honeypot Project, Addison-Wesley ISBN: 0-201-74613-1
  • " Honeypots - Tracking Hackers", Lance Spitzner, Addison-Wesley ISBN: 0321108957

Links

 

 

  [Chaos CD]
  [Datenschleuder] [81] Honeypots
[ -- ] [ ++ ] [Suchen]