Dem kann nur eine flexible Weiterleitung von Ports in Abhängigkeit von den einzelnen Hosts Rechnung tragen. Würden stattdessen etwa beliebige Verbindungsaufbauversuche auf eine zuvor festgelegte Menge an Ports pauschal an eine Analysekomponente weitergeleitet, so kämen dafür nur Ports infrage, die keines der Produktivsysteme benutzt. Ports, die dagegen nur von einer Teilmenge aller Systeme verwendet werden, blieben außen vor.
HoneypotMe bedient sich daher einer flexiblen Weiterleitung von Verbindungsaufbauversuchen an die Analysekomponente. HoneypotMe überprüft dazu für eingehende Pakete mit gesetztem SYN-Flag, ob ein entsprechender Empfangs-Socket an den angefragten Port gebunden ist. Wird ein Versuch registriert, einen nicht empfangsbereiten Port zu kontaktieren, so wird das SYN-Paket automatisch von HoneypotMe über einen Tunnel an die Analysekomponente weitergeleitet. Die kann nun eine TCP-Verbindung aufbauen und ein entsprechendes Antwort-Paket mit gesetzten SYN/ACK-Flags über den Tunnel an den Angreifer zurücksenden.
Die weitere Kommunikation findet logisch zwischen Angreifer und Analysekomponente statt, sodass das Opfersystem selbst die Verbindung nicht annehmen muss. Währendessen werden automatisch generierte RST-Pakete auf dem Opfersystem unter Linux mithilfe von
»libipq
«
dynamisch blockiert. Um zu verhindern, dass die Analysekomponente weitere Verbindungen über den Tunnel in das zu überwachende Netz aufbaut, verwirft HoneypotMe TCP-SYN-Pakete die über den Tunnel kommen. Darüber hinaus wird sichergestellt, dass weiterzuleitende TCP-Pakete jeweils die korrekte Absender-IP-Adresse verwenden.
Der Einsatz von HoneypotMe auf Produktivsystemen hat darüber hinaus verschiedene interessante Nebeneffekte. Weil geschlossene Ports als Honeypot dienen, kann der Angreifer – etwa mithilfe von
»nmap
«
– nicht unterscheiden, ob es sich bei den angebotenen Diensten des Opfersystems tatsächlich um real existierende oder um simulierte Dienste handelt. Die Menge der für den Angreifer sichtbaren Dienste setzt sich aus den Diensten auf dem Opfersystem plus den Diensten der Analysekomponente zusammen (
Abbildung 3
, 4). Infolgedessen ähneln sich Systeme mit HoneypotMe. Während dynamische Honeypots oft das Ziel verfolgen, sich möglichst den Produktivsystemen anzupassen, um eine Unterscheidung zu erschweren, gleicht HoneypotMe die Erscheinung von Produktivsystemen der des Honeypots an.
Darüber hinaus ist es mithilfe von HoneypotMe möglich, die Sicherheit der Produktivsysteme durch die Weiterleitung ungenutzter Ports direkt zu erhöhen. So ist es denkbar, dass Angreifer von realen verwundbaren Diensten des Opfersystems absehen und stattdessen einen Dienst des Honeypots angreifen. Selbstverbreitende Schadprogramme wie Phatbot, Agobot oder Spybot verwenden beispielsweise Angriffe auf verschiedene Dienste, um neue Systeme zu infizieren. Bricht ein Schadprogramm den Angriff nach dem ersten erfolgreichen Infektionsversuch auf einen simulierten Dienst ab, so werden reale verwundbare Dienste nicht angegriffen. In diesem Fall ließe sich also eine Infektion des Produktivsystems durch die Simulation von Diensten verhindern.
Im Unterschied dazu ist es auch möglich, dass menschliche Angreifer simulierte Dienste erkennen und sich infolgedessen auf einen anderen Dienst konzentrieren. In diesem Fall ist der manuelle Angriff zwar unter Umständen erfolgreich, der Angriff auf den simulierten Dienst zuvor wird aber bemerkt.