Honeypot im Heimnetzwerk

Hi,
ich würde gerne zu test zwecken einen Honeypot in meinem Lokalen Netzwerk aufstellen, jetzt gibt es recht viel über google zu verschiedenen Software Lösungen, aber bei mir fängt die Frage bei der Hardware an, könnte ich das z.b. auf einem Rasperberry Pie verwirklichen ? Wenn ja eine besonderer Version? Dann natürlich die Frage nach dem OS und der Software algemein, das angebot ist ja recht groß, aber was könnt ihr empfehlen?

Und die aktuell letzte Frage, wie sollte ich den Honeypot in meinem Netzwerk integrieren, wenn man als ausgangs (eingangs) Situation davon ausgeht das das InternetSignal an einer FritzBox 6490 ankommt, und alles andere dahinter steht.

Freue mich auf eure Tips.

Danke
 
Die Frage ist ja erstmal für welche Protokolle der Honeypot sein soll. Und dann stellt sich natürlich die Frage, wie du potentielle Angreifer in den Honeypot umleiten willst. Hast du z.B. irgendwo ein Host mit einem IDS laufen, das du über deine Fritzbox freigibst? Und ist dieses IDS in der Lage Anfragen auf den Honeypot umzuleiten? Oder willst du einfach den Honeypot in's Netz stellen und auf bestimmten Ports entsprechende Protokoll-Simulationen freigeben?
 
Die Frage ist ja erstmal für welche Protokolle der Honeypot sein soll. Und dann stellt sich natürlich die Frage, wie du potentielle Angreifer in den Honeypot umleiten willst. Hast du z.B. irgendwo ein Host mit einem IDS laufen, das du über deine Fritzbox freigibst? Und ist dieses IDS in der Lage Anfragen auf den Honeypot umzuleiten? Oder willst du einfach den Honeypot in's Netz stellen und auf bestimmten Ports entsprechende Protokoll-Simulationen freigeben?

Vieleicht versteh ich die Thematik auch nicht richtig, aber der Honeypot soll aus meiner sicht im Netzwerk stehen und die aufmerksamkeit eines eindringlings auf sich ziehen (weil dort anscheinend interessante Dienste laufen /Daten liegen) Darauf müßte dann doch das IDS laufen oder?

Was würdest du denn empfehlen?
 
Es gibt verschiedene Möglichkeiten Honeypots einzusetzen. Natürlich kann man sie als Falle direkt an einen Port binden, wenn dieser eh nicht wirklich benötigt wird. Allerdings sollte der Honeypot dann auch zumindest halbwegs mit dem Protokoll umgehen können, das der Angreifer auf dem Port erwarten würde. Denn sonst fällt ziemlich schnell auf, dass es sich um einen Honeypot handelt.

Eine andere Möglichkeit ist, dass ein IDS Anfragen, die es als potentiellen Angriff erkennt, in einen Honeypot umleitet, so dass sich der Angreifer auf dem Honeypot austoben kann, während das System weiterhin den echten Dienst auf dem Port bedient. Das IDS routet also lediglich die IP des Angreifers um. Sowas wird z.B. gern genutzt um Bots von Botnetzen einzufangen um sie später analysieren zu können.

Natürlich gibt's noch ein paar weitere Methoden. Alle bedingen aber, dass der eingesetzte Honeypot mit dem vom Angreifer erwarteten Protokoll umgehen und entsprechend passende Responses auf die Anfragen senden kann. Beispiel: Ein Botnet probiert Standard-SSH-Logins von Routern durch. Ein Honeypot der darauf reagieren und den zugehörigen Bot einfangen will, muss natürlich SSH beherrschen. Bringt ja wenig, wenn er mit IMAP-Responses antwortet, womit dann der Bot nicht klar kommt. Wobei es natürlich durchaus für die Analyse eines Botnets auch interessant sein kann, welche Protokolle der Spreader alles beherrscht und ob er in der Lage ist Protokolle zu erkennen und entsprechend darauf zu reagieren.

Und dann kommt's natürlich auch noch darauf an, was du mit dem Honeypot erreichen willst. Willst du z.B. nur IPs sammeln, die von einem Botnet infiziert sind, reicht es, wenn der alle Verbindungsversuche aufzeichnet. Willst du hingegen einen Bot fangen, sollte natürlich der Honeypot eine Umgebung bereitstellen, in der sich der Bot einnisten aber nur noch kontrolliert nach außen funken kann. Willst du Exploits analysieren, die bei einem Angriff eingesetzt werden, muss natürlich sämtlicher Traffic mitgeschnitten werden. usw. usf..

Mal schnell ein Standard-Programm in einer VM installieren ist also nicht der richtige Weg. Du solltest schon wissen, was dein Honeypot können soll. Honeyd z.B. kann relativ vielseitig eingesetzt werden um verschiedene Protokolle und vermeintliche Systeme bereitzustellen. Es ist relativ einfach zu konfigurieren und kann normale Shell-Skripte nutzen um bestimmte vermeintlich angreifbare Software zu simulieren. Beispielskripte findest du auf deren Homepage. Etwas komplexer wird's, wenn du echte VMs als Honeypots verwendest und darauf tatsächlich angreifbare Services bereitstellst und z.B. mittels iptables-Content-Check o.ä. den Angreifer auf den jeweiligen Service umleitest.
 
Hi,
erstmal vielen Dank für deine ausführliche und gute erklärung!
Scheint mir so als ob die Thematik doch etwas komplexer ist als ich sie erwartet hab. Da ich über die Fritzbox keine Verbindung von aussen zulasse (alle Ports geschlossen) und ich auch nicht glaube das ein Angreifer viel spass dran hätte bei mir einzudringen(gibt nix zu holen) ist das für mich eher was was mich Thematisch interessiert und was ich mal ein wenig testen wollte, und vieleicht lieg ich ja auch mit meiner einschätzung falsch und es gibt doch mehre versuche bei mir einzudringen.

Wenn ich dich richtig verstehe wäre aber ein "optimales" vorgehen wenn ich einen IDS laufen hätte der bei auffälligkeiten das ganze an den Honeypot weiterleitet? Also z.b. zwei Pie's, einer wo ein IDS drauf läuft ( dann müsste doch der gesamte Traffic über den IDS geleitet werden oder) oder könnte ich das z.b. über die Fritzbox Firewall bzw. IPTablets auf der Fritzbox realisieren? und den Honeypot dann auf dem zweiten Pie?
 
Du hast auf jeden Fall auch bei deinem privaten Anschluss immer das Hintergrundrauschen, das man im Netz durch Botnetze immer hat. D.h. irgendwelche Spreader von Botnetzen scannen ganze IP-Ranges ab oder feuern wahllos irgendwelche Exploits oder typische Default-Logins auf bestimmte Ports ab. Du wirst z.B. auf Port 80 immer wieder Kram wie diesen reinbekommen:

Code:
2.230.49.27 - - [07/Sep/2017:23:25:21 +0200] "HEAD http://X.X.X.X:80/2phpmyadmin/ HTTP/1.1" 404 - "-" "Mozilla/5.0 Jorgee"
2.230.49.27 - - [07/Sep/2017:23:25:20 +0200] "HEAD http://X.X.X.X:80/phpmyadmin4/ HTTP/1.1" 404 - "-" "Mozilla/5.0 Jorgee"
2.230.49.27 - - [07/Sep/2017:23:25:20 +0200] "HEAD http://X.X.X.X:80/phpmyadmin3/ HTTP/1.1" 404 - "-" "Mozilla/5.0 Jorgee"
2.230.49.27 - - [07/Sep/2017:23:25:20 +0200] "HEAD http://X.X.X.X:80/phpmyadmin2/ HTTP/1.1" 404 - "-" "Mozilla/5.0 Jorgee"
2.230.49.27 - - [07/Sep/2017:23:25:20 +0200] "HEAD http://X.X.X.X:80/phpmyAdmin/ HTTP/1.1" 404 - "-" "Mozilla/5.0 Jorgee"
2.230.49.27 - - [07/Sep/2017:23:25:20 +0200] "HEAD http://X.X.X.X:80/phpMyAdmin/ HTTP/1.1" 404 - "-" "Mozilla/5.0 Jorgee"
2.230.49.27 - - [07/Sep/2017:23:25:20 +0200] "HEAD http://X.X.X.X:80/phpMyadmin/ HTTP/1.1" 404 - "-" "Mozilla/5.0 Jorgee"
2.230.49.27 - - [07/Sep/2017:23:25:20 +0200] "HEAD http://X.X.X.X:80/phpmyadmin/ HTTP/1.1" 401 - "-" "Mozilla/5.0 Jorgee"
2.230.49.27 - - [07/Sep/2017:23:25:20 +0200] "HEAD http://X.X.X.X:80/mysql/mysqlmanager/ HTTP/1.1" 404 - "-" "Mozilla/5.0 Jorgee"
2.230.49.27 - - [07/Sep/2017:23:25:20 +0200] "HEAD http://X.X.X.X:80/mysql/sqlmanager/ HTTP/1.1" 404 - "-" "Mozilla/5.0 Jorgee"
2.230.49.27 - - [07/Sep/2017:23:25:20 +0200] "HEAD http://X.X.X.X:80/mysql/dbadmin/ HTTP/1.1" 404 - "-" "Mozilla/5.0 Jorgee"
2.230.49.27 - - [07/Sep/2017:23:25:20 +0200] "HEAD http://X.X.X.X:80/mysql/admin/ HTTP/1.1" 404 - "-" "Mozilla/5.0 Jorgee"

Das ist eine typische Scan-Signatur eines Perl-basierten Bots, der sich über Lücken in PHPMyAdmin verbreitet. Der prüft einfach typische Installationsordner für PHPMyAdmin ob er irgendwo einen validen Response bekommt. Das Teil ist enorm weit verbreitet und wird gern von Script-Kiddies verwendet, die einfach nur den Header im Skript sowie den IRC-Server, der als C&C verwendet wird, austauschen um ihn als ihren Bot auszugeben. Variieren tun hier meist nur die Ordnernamen geringfügig und die (gefakten) Browser-Signaturen. Wenn man dem ein angreifbares PHPMyAdmin anbietet, kannst du davon ausgehen, dass du davon im Monat etwa 5-10 Stück einfängst. Ich nenne ihn daher gern den Honeypot-Spammer. ;) Daneben gibt es ein paar Modifikationen für Wordpress (schaut meist nach der Datei xmlrpc.php und feuert dann beliebige Login-Versuche darauf ab) oder Joomla und andere Webapplikationen, die für ihre Sicherheitslücken bekannt sind.

Du kannst auch keinen SSH-Server auf seinem Default-Port lassen, ohne dass du ständig solchen Kram rein bekommst:

Code:
Sep  7 16:56:37 bitmuncher-28 sshd[28362]: Invalid user prueba from 51.15.52.242
Sep  7 16:56:32 bitmuncher-28 sshd[28360]: Invalid user vagrant from 51.15.52.242
Sep  7 16:56:29 bitmuncher-28 sshd[28357]: Invalid user vagrant from 51.15.52.242
Sep  7 16:56:23 bitmuncher-28 sshd[28355]: Invalid user vagrant from 51.15.52.242
Sep  7 16:56:18 bitmuncher-28 sshd[28353]: Invalid user linuxacademy from 51.15.52.242
Sep  7 16:56:14 bitmuncher-28 sshd[28351]: Invalid user linuxacademy from 51.15.52.242
Sep  7 16:56:11 bitmuncher-28 sshd[28348]: Invalid user user from 51.15.52.242
Sep  7 16:56:06 bitmuncher-28 sshd[28345]: Invalid user chef from 51.15.52.242

Wobei die Benutzernamen hier ziemlich variieren, aber meist auch irgendwelche typischen Linux-Systemaccounts beinhalten (vagrant, nagios, postgres, ftpuser, oracle), aber auch Namen wie a, admin, root, ubuntu, ubnt und ähnliches. Das ist ein Bot, der einfach, sobald er einen offenen Port 22 findet, diverse typische SSH-Accounts mit ein paar einfachen Passwörtern ausprobiert. Ziemlich ineffizient, aber so weit, wie das verbreitet ist, scheint es doch ab und an zu funktionieren.

Ich behaupte, dass es wohl kaum eine IP im Netz gibt, die nicht mindestens ein Mal am Tag von irgendeinem Bot besucht wird. Denn diese primitiven Botnetze prüfen nicht, ob da ein valider Service läuft und ob der ggf. eine angreifbare Version laufen hat. Die feuern einfach ziemlich wahllos ihre Exploits auf ganze IP-Ranges ab.

Sowas mit einem Honeypot einzufangen ist daher auch kein Problem und du musst keinen echten Service aufsetzen, so lange du deren Requests immer so beantwortest, wie sie es erwarten.

Insgesamt gibt es aber nunmal kein optimales Setup. Ein IDS setzt du z.B. typischerweise dann in Verbindung mit einem Honeypot ein, wenn du echte Services im Netz anbietest und potentielle Angriffe von diesen fernhalten willst. Dann kann dein IDS den reinkommenden Traffic analysieren, valide Anfragen an deinen Service durchlassen und potentielle Angriffe in einem Honeypot umleiten, wo du den Angriffsversuch genauer analysieren kannst. Dadurch kannst du mit ein klein bisschen Erfahrung z.B. erkennen, ob das ein gezielter Angriff war oder ob einfach nur ein Bot vorbeigeschaut hat und entsprechend darauf reagieren oder auch nicht. Nimmst du dir etwas Zeit deinen Honeypot immer weiter auszubauen, kann der die Analyse in >90% der Fälle auch irgendwann allein. Dann lässt du dir von dem Honeypot nur noch eine Email schicken, wenn er einen bisher unbekannten Angriffsversuch gefunden hat.

Willst du hingegen nur IPs von Botnetzen sammeln, reicht es, wenn du eine Maschine laufen hast, auf der für jeden möglichen Dienst ein Honeypot läuft. Ich nutze sowas z.B. um die Firewalls meiner Server dynamisch zu konfigurieren. Da die Honeypot-Maschinen garantiert keine validen Anfragen bekommen können (sind ja schliesslich nur Honeypots), kann ich davon ausgehen, dass jede darauf eingehende Verbindung von einer IP kommt, die entweder ein manueller Angreifer oder Teil eines Botnetzes ist. Die IP wird dann an alle meine Server weitergereicht und dort mittels iptables so lange gesperrt, bis mich jemand fragt, warum er meine echten Server/Dienste nicht erreichen kann. (Dann war's nämlich eine dynamische IP, die mittlerweile ihren Besitzer gewechselt hat.)

Hast du als Ziel Bots zu sammeln um sie zu analysieren oder gar Botnetze zu kartographieren, dann musst du natürlich den Bots die Möglichkeit geben sich einzunisten. Das ist etwas aufwendiger, weil du deinem Honeypot nach und nach beibringen musst auf verschiedene Exploits zu reagieren und diese so zu beantworten, wie es ein echter verwundbarer Service tun würde. Und du musst natürlich dafür sorgen, dass der eingeschleuste Bot, sobald er tatsächlich auf der Kiste gelandet ist, keinen Kontakt mehr zu anderen IPs als zu seinem C&C aufnimmt, weil du sonst ggf. in rechtliche Schwierigkeiten kommen kannst. Du willst ja nicht, dass dein Honeypot für DDoS-Angriffe oder ähnliches missbraucht wird. Geht's dir nur um die Bots selbst und nicht noch um die Exploits, die sie ggf. auf Anweisung ihres C&C nachladen, kannst du natürlich nach dem Einnisten einfach sämtliche Verbindungen für den Bot kappen.

Und willst du nur ein Skiddy ärgern, das sich etwas zu viel mit seinen Skills brüstet, biete ihm einen Honeypot an um sich darauf auszutoben. Die Responses für seine Hack-Versuche baust du dann so um, dass sie seinen Rechner blockieren. ;)

Kurzum: Es gibt kein optimales Setup. Wie du Honeypots einsetzt, hängt ganz davon ab, was du damit erreichen willst. Deine Fritzbox ist für alle Zwecke jedoch relativ irrelevant, weil du ja darauf keine VMs laufen lassen kannst. Die ist dann also lediglich der Port-Forwarder, damit deine Honeypots auch aus dem Internet erreichbar sind. Meist ist aber ein kleiner VServer für 5 Euro im Monat die bessere Wahl als das Heimnetzwerk, weil du zum einen dort diese Forward-Problematik nicht hast und zum anderen die IP-Ranges von Rechenzentren häufiger Ziele von Angriffen werden. Ausserdem kann es ja auch vorkommen, dass irgendwelche Wartungsverbindungen von deinem Provider auf deinem Netzwerk eingehen, die du dann ggf. in einen Honeypot umlenken würdest. Soll Provider geben, die sowas nicht gern sehen. ;)
 
Nochmal vielen Dank für deine Ausführliche Antwort.

Werd mal versuche mich die nächste Zeit mehr mit der Thematik auseinanderzusetzen und damm mal sehen wie ich es aufbaue.
P.S man kann auf der FB JAMVM mittels Freetz installieren, und dann hätte man zumindest eine kleine VM auf der Box am laufen:)
 
Zurück
Oben