Security ist ein stets aktuelles Thema in der IT. Deshalb widmet sich das ADMIN-Magazin 04/2012 speziell Sicherheitsaspekten und gibt Antworten auf die Fragen: ... (mehr)

Flexible Portauswahl

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.

Angriffsszenarios

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.

Abbildung 3: Sichtbare Ports nach Überprüfung eines gewöhnlichen Linux-Webservers mit
Abbildung 4: Sichtbare Ports eines Linux-Webservers mit aktivem HoneypotMe nach Überprüfung durch

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.

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023