ADMIN

2023

01

2022-12-29T12:00:00

Collaboration

PRAXIS

056

Security-Tipp

Sicherheit

Honeypot

OpenCanary zur Erkennung von Angriffen

Wenn der Vogel nicht mehr singt

von Dr. Matthias Wübbeling

Veröffentlicht in Ausgabe 01/2023 - PRAXIS

Kanarienvögel wurden früher von Bergleuten mit hinunter in die Grube genommen, weil sie sehr empfindlich auf Kohlenmonoxid reagieren. Fiel der Kanarienvogel von der Stange, mussten sich die Bergleute auf den Weg in Richtung frischer Luft begeben. Dadurch hat sich der Kanarienvogel sinnbildlich auch in die IT-Sicherheit eingeschlichen. Hier dient ein Canary der Erkennung von Angriffen. OpenCanary ist eine solche Variante, die Sie schnell und einfach im Netzwerk einsetzen können.

Die Idee, mit Honeypots Angreifer auf speziell präparierte Systeme eindringen zu lassen, um mehr über die Angreifer selbst und ihre genutzten Methoden zu erfahren, ist lange etabliert. So soll das Vorgehen der Täter ermittelt werden, vor allem, wie diese sich im Netzwerk weiterbewegen (Lateral Movement) oder auf welche Informationen sie zugreifen. Es gibt auch Honeypots für E-Mail-Spam: Extra für diesen Zweck erstellte E-Mailkonten werden in nicht-sichtbaren Bereichen von Webseiten veröffentlicht. Die Annahme ist nun, dass Bots diese Adressen sammeln und für die Verbreitung von Spam verwenden. Die eingehenden E-Mails sind damit alle Spam und können helfen, den Filter zu verbessern.
Mit OpenCanary [1] setzen Sie im Handumdrehen Netzwerkdienste auf und können sich bei Zugriffen informieren lassen. Dabei sind der Fantasie so gut wie keine Grenzen gesetzt. Zum einen besteht die Möglichkeit, OpenCanary einfach auf öffentlichen Adressen laufen zu lassen, die nicht anderweitig genutzt werden. Hier bieten sich oft benachbarte IP-Adressen von öffentlich verfügbaren Diensten, aber auch benachbarte oder ungenutzte Ports auf diesen Maschinen an. Wenn Sie einen Webserver betreiben, dann beantwortet dieser in der Regel Anfragen auf den Ports 80 und 443. Oft werden diese Anfragen heutzutage mit dem Webserver als Proxy an eigentlich interne Dienste weitergeleitet. Angreifer versuchen daher etwa über die Ports 8001, 8080, 8443 oder 9000 an schlechter abgesicherte oder verwundbare Server oder interne Informationen zu gelangen.
Betreiben Sie nun einen Honeypot mit einer öffentlichen IP-Adresse, stellen Sie rasch fest, dass unheimlich viele Anfragen gegen diesen Honeypot laufen. Die meisten davon sind vermutlich nur Scans, oft ausgelöst durch (meist) legitime Systeme, etwa Schwachstellenscanner wie Shodan [2] oder Sicherheitsforscher in aller Welt. Wenn Sie für jedes Event einen Alarm generieren, übersehen Sie die tatsächlichen Angriffe in der großen Menge.
Die Idee, mit Honeypots Angreifer auf speziell präparierte Systeme eindringen zu lassen, um mehr über die Angreifer selbst und ihre genutzten Methoden zu erfahren, ist lange etabliert. So soll das Vorgehen der Täter ermittelt werden, vor allem, wie diese sich im Netzwerk weiterbewegen (Lateral Movement) oder auf welche Informationen sie zugreifen. Es gibt auch Honeypots für E-Mail-Spam: Extra für diesen Zweck erstellte E-Mailkonten werden in nicht-sichtbaren Bereichen von Webseiten veröffentlicht. Die Annahme ist nun, dass Bots diese Adressen sammeln und für die Verbreitung von Spam verwenden. Die eingehenden E-Mails sind damit alle Spam und können helfen, den Filter zu verbessern.
Mit OpenCanary [1] setzen Sie im Handumdrehen Netzwerkdienste auf und können sich bei Zugriffen informieren lassen. Dabei sind der Fantasie so gut wie keine Grenzen gesetzt. Zum einen besteht die Möglichkeit, OpenCanary einfach auf öffentlichen Adressen laufen zu lassen, die nicht anderweitig genutzt werden. Hier bieten sich oft benachbarte IP-Adressen von öffentlich verfügbaren Diensten, aber auch benachbarte oder ungenutzte Ports auf diesen Maschinen an. Wenn Sie einen Webserver betreiben, dann beantwortet dieser in der Regel Anfragen auf den Ports 80 und 443. Oft werden diese Anfragen heutzutage mit dem Webserver als Proxy an eigentlich interne Dienste weitergeleitet. Angreifer versuchen daher etwa über die Ports 8001, 8080, 8443 oder 9000 an schlechter abgesicherte oder verwundbare Server oder interne Informationen zu gelangen.
Betreiben Sie nun einen Honeypot mit einer öffentlichen IP-Adresse, stellen Sie rasch fest, dass unheimlich viele Anfragen gegen diesen Honeypot laufen. Die meisten davon sind vermutlich nur Scans, oft ausgelöst durch (meist) legitime Systeme, etwa Schwachstellenscanner wie Shodan [2] oder Sicherheitsforscher in aller Welt. Wenn Sie für jedes Event einen Alarm generieren, übersehen Sie die tatsächlichen Angriffe in der großen Menge.
Einen echten Mehrwert bietet OpenCanary also, wenn Sie es in Ihrem internen Netzwerk betreiben. Ist ein Angreifer erst einmal in ein Unternehmensnetzwerk eingedrungen, verfolgt er unterschiedliche Ziele. Zunächst persistiert er seine Login-Möglichkeiten auf dem Rechner, auf dem er bereits Zugang hat. Vielleicht installiert er eine sogenannte Reverse-Shell, ein angepasstes Remote-Administration-Toolkit (RAT) oder einfach TeamViewer, um später immer wieder auf den übernommenen Rechner zugreifen zu können.
Einfache Installation in Docker
Um OpenCanary in Ihrem Netzwerk auszubringen, haben Sie unterschiedliche Möglichkeiten. Wenn Sie in Ihrer Python-Umgebung Pip verwenden, beginnen Sie die Installation einfach mit pip install opencanary. Für einzelne Module, etwa Samba, benötigen Sie dann noch weitere Abhängigkeiten. Einfacher geht es, wenn Sie auf Ihrem Server Docker einsetzen. Das Git-Repository von OpenCanary ist für die Nutzung bereits vorbereitet. Um Ihren Docker-Container zu erstellen, klonen Sie zunächst OpenCanary mit folgendem Kommando:
git clone https://github.com/thinkst/opencanary.git
Im Ordner "opencanary/data" finden Sie nun die Konfigurationsdatei ".opencanary.conf". In dieser konfigurieren Sie neben den aktiven Diensten Ihre Benachrichtigungen. Um im Fall eines Zugriffs eine E-Mail zu erhalten, suchen Sie unter "logger" die Konfiguration des PyLoggers. Hier sehen Sie bereits zwei Handler vorkonfiguriert, einmal für das Logging auf der Konsole und einmal das in die Logdatei "opencanary.log". Fügen Sie nun einen weiteren Handler hinzu:
"SMTP": {
       "class": "logging.handlers.SMTPHandler",
       "mailhost": ["it-administrator.de", 587],
      "fromaddr": "canary@it-adminstrator.de",
      "toaddrs" : ["alert@it-administrator.de"],
      "s ubject" : "Alarm von OpenCanary",
      "credentials" : ["canary@it-administrator", "passwort"],
      "secure" : []
}
Dabei müssen Sie unter "mailhost" den Port an Ihren Mailserver anpassen. Bei unseren Versuchen funktionierte die Namensauflösung des Mailhosts im Container nicht immer zuverlässig. Um bei Ihren Tests keine Fehler zu erhalten, setzen Sie statt der Domain einfach die IP-Adresse Ihres Mailservers ein.
Erster Testbetrieb
Möchten Sie zusätzlich zu den bereits angekurbelten Diensten "ftp" und "http" weitere aktivieren, suchen Sie jeweils den ".enabled"-Parameter und ändern den Wert von "false" auf "true". In Windows-Umgebungen bieten sich hier natürlich Terminalserver (RDP) an, während Angreifer in Linux-Umgebungen den Zugriff auf SSH-Server probieren würden, um sich im Netzwerk zu bewegen. Haben Sie alle gewünschten Dienste aktiviert, schließen Sie die Konfigurationsdatei. Bevor Sie den Container mit dem folgenden Kommando erstellen und starten, müssen Sie entsprechend der ausgewählten Dienste noch alle benötigten Ports in der Datei "docker-compose.yml" weiterleiten.
docker compose up -d --build latest
Nun können Sie mit netstat prüfen, ob Docker die gewählten Ports auch tatsächlich verwendet. In Ihrer E-Mail-Inbox haben Sie zwischenzeitlich Informationen zum Start von OpenCanary erhalten – Sie haben ja das Logging entsprechend konfiguriert. Um lediglich Alarme an die hinterlegte E-Mail-Adresse zu erhalten, richten Sie mit PyLogger entsprechende Filter ein. Haben Sie den HTTP-Dienst aktiviert, können Sie diesen testweise mit Ihrem Browser unter "https://localhost" aufrufen. OpenCanary emuliert unter der Adresse eine Synology Diskstation.
Anschließend sollten Sie in Ihrer Inbox eine E-Mail mit einem entsprechenden Alarm finden. Die Nachricht enthält lediglich einen JSON-formatierten Alarm. Da dieser von PyLogger erstellt wird, lässt sich dieser auch automatisch aus der von OpenCanary angelegten Logdatei auswerten, was sich für eine einfachere Integration in Ihr bestehendes Monitoring anbietet.
Die geloggten Informationen ändern sich von Dienst zu Dienst. So erhalten Sie bei der Verwendung des MySQL-Honeypots auch Benutzernamen und eventuell eingegebene Passwörter im "logdata"-Feld des Alarms. Damit erhalten Sie vielleicht schon einen ersten Hinweis, auf welchem Weg und eventuell unter welchem Benutzer der Angreifer agiert. Die wichtigste Information eines Alarms ist aber vermutlich der "src_host". Während das in diesem Beispiel einfach der Docker-Host ist, ist bei einem echten Angriff auf Ihre Systeme hier eine IP-Adresse in Ihrer Infrastruktur aufgelistet. Das System mit dieser IP-Adresse wird wahrscheinlich bereits unter der Kontrolle eines Angreifers stehen.
Die Reaktion auf die Erkennung eines Angreifers lässt sich zum Teil sogar automatisieren, wenn Sie dynamische Netzwerkkonfigurationen einsetzen. Dann können Sie den betroffenen Computer netzwerktechnisch isolieren und in einer geschützten Umgebung – einem sogenannten "Walled Garden" – zunächst weiterlaufen lassen und näher untersuchen, ohne dass der Angreifer direkt merkt, dass er bereits entdeckt ist. Falls nicht, sollten Sie das betroffene System für weitere Untersuchungen komplett aus dem Netzwerk entfernen.
Darstellung eines Synology-DiskStation-Logins, erzeugt von OpenCanary.
Fazit
Mit OpenCanary spüren Sie Angreifer auf deren Streifzug durch Ihr Netzwerk auf. Die ab Werk unterstützten Dienste decken die üblicherweise in einem Unternehmen vorhandenen Server ab und erregen so keine übermäßige Aufmerksamkeit des Angreifers. Der Security-Tipp in diesem Monat hat Ihnen gezeigt, wie Sie ohne großen Aufwand eine erste Version des Honeypot-Frameworks in Ihrem Netzwerk ausbringen und per E-Mail Alarme erhalten können. Ausgehend davon können Sie die Verteidigungslinie Ihres Unternehmens weiter ausbauen.
(dr)
Link-Codes
[1] OpenCanary: http://opencanary.org/