Implementieren Sie Honeypot auf Cisco-Routern



Mir kam der Gedanke, auf dem Cisco-Router einen Anschein des bekannten fail2ban-Pakets zu erwecken, indem ich nur den Router selbst verwendete.

Es funktioniert so. Trap-Regeln werden in der Zugriffsliste erstellt, die an die Schnittstelle des Border-Internet-Routers angehängt ist. Wenn eine Regel ausgelöst wird, wird ein Ereignis protokolliert. Jede Zeile eines solchen Ereignisses enthält eine spezielle Bezeichnung, um die Auswahl zu erleichtern. Das Protokoll wird analysiert und alle IP-Adressen, die in den Trap fallen, werden in eine spezielle Objektgruppe eingegeben. Diese Gruppe kann in derselben Zugriffsliste verwendet werden, um den Zugriff für Angreifer auf alle IP-Adressen und Ports unseres Netzwerks zu sperren.

Um diesen Artikel zu verstehen, müssen Sie wissen, was Zugriffslisten sind und wofür sie bestimmt sind, und Sie müssen auch wissen, wie Objektgruppen in Zugriffslisten verwendet werden.

Zugriffslistenfallen


Zum Beispiel schreiben wir eine Regel für eine Eingangszugriffsliste, nach der alle Versuche fallen, über das Internet in den Telnet-Port unserer Geräte zu gelangen. Bitte beachten Sie, dass am Ende der Regel ein eindeutiges Etikett „HONEYPOT001“ angebracht ist. Dann werden wir im Protokoll danach suchen.

ip access-list extended acl-WAN-In … deny tcp any any eq telnet log HONEYPOT001 … 

Es ist wichtig, die richtigen Kriterien für Fallen auszuwählen.

Versuche, von außen über Port 23 (Telnet) eine Verbindung herzustellen, sind möglicherweise am häufigsten. In diesem Fall wird die Objektgruppe sofort mit IP-Adressen von Bots aus dem gesamten Internet gefüllt, und der für Zugriffslisten zugewiesene Speicher wird einfach beendet.

Sie können Versuche abfangen, eine Verbindung zu Ihrem Gerät über Port 22 (ssh) herzustellen. Sie sind eine Größenordnung kleiner als Telnet. Sie können Versuche abfangen, auf eines Ihrer Geräte zuzugreifen.

Eine große Anzahl von Bots kriecht auf Port 7547 und versucht, mithilfe des CPE-WAN-Verwaltungsprotokolls eine Verbindung herzustellen.

Eine andere Möglichkeit wäre, Versuche zu fangen, den an Port 4786 aktivierten Smart Install Client zu verwenden.

Sie können auch einen Trap an Port 80 festlegen, indem Sie eine IP-Adresse auswählen, auf der Sie keinen Webserver haben. Die Hauptsache hier ist, dass Suchmaschinenroboter nicht hineinfallen.

Hier ist ein Beispiel für einen Trap auf einer IP-Adresse [192.0.2.10].

 ip access-list extended acl-WAN-In … deny tcp any host 192.0.2.10 eq www log HONEYPOT002 … 

Protokollanalyse


Die Anmeldung am Router sollte natürlich im Voraus aktiviert werden, dann wird so etwas in das Protokoll aufgenommen:

 225435: Jan 11 08:57:13.838: %SEC-6-IPACCESSLOGP: list acl-WAN-In denied tcp 123.199.32.7(59472) -> 192.0.2.9(23), 1 packet [HONEYPOT001] 

Wir sehen, dass versucht wurde, von der externen IP-Adresse [123.199.32.7] auf den 23. Port unserer IP-Adresse [192.0.2.9] zuzugreifen. Das Etikett "HONEYPOT001" in der Zeile ist ebenfalls vorhanden. Übrigens ist [123.199.32.7] ein echter Angreifer, der beim Schreiben eines Artikels erwischt wurde.

Zum Parsen des Protokolls verwenden wir den Embedded Event Manager (EEM), ein in Cisco IOS integriertes Tool zur Automatisierung von Aufgaben und zur Optimierung des Softwareverhaltens.

Erstellen Sie im Konfigurationsmodus des Routers ein Applet, das das Protokoll analysiert. Wenn sich in der Protokollzeile die Bezeichnung „HONEYPOT001“ befindet, wird die IP-Adresse des Angreifers ausgeschnitten und diese Adresse der BlackList-Objektgruppe des Hosts hinzugefügt.

 event manager applet honeypot event syslog occurs 1 pattern "HONEYPOT001" action 100 regexp "([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)" "$_syslog_msg" result IP_address action 200 if $_regexp_result eq "1" action 210 cli command "enable" action 220 cli command "conf t" action 230 cli command "object-group network hosts-BlackList" action 240 cli command "h $IP_address" action 250 cli command "end" action 260 syslog msg "IP address $IP_address added to blacklist" action 270 end action 300 cli command "exit" 

  • Wenn die nächste Zeile im Protokoll mit der Bezeichnung „HONEYPOT001“ gefunden wird, tritt ein Ereignis auf.
  • Im Ereignishandler wird aus der Protokollzeile gemäß dem Muster "([0-9] + \. [0-9] + \. [0-9] + \. [0-9] +)" die IP-Adresse des Angreifers herausgeschnitten und zugewiesen Variable IP_Adresse (Aktion 100);
  • Wenn die Adresse erfolgreich ausgeschnitten wurde und keine Probleme beim Parsen der Zeile auftreten (Aktion 200), werden Konsolenbefehle ausgeführt, die die IP-Adresse zur Objektgruppe hinzufügen (Aktion 210 - 250).
  • Im Protokoll wird ein Eintrag über das Auslösen der Falle vorgenommen (Aktion 260).

Zugriffssperre


Das erste, was mir in den Sinn kommt, ist die Verwendung der Objektgruppe, um Angreifer für alle Ressourcen unseres Netzwerks vollständig zu blockieren.

Die Blockierungsregel muss sich in der Zugriffsliste über der Regel mit dem Trap befinden, damit die gesperrte IP-Adresse nicht immer wieder in den Trap fällt.

 ip access-list extended acl-WAN-In … deny ip object-group hosts-BlackList any … deny tcp any any eq telnet log HONEYPOT001 … 

Amnestie


Früher oder später überschreitet die Objektgruppe alle zulässigen Größen, sodass Sie eine Amnestie durchführen müssen, indem Sie alte IP-Adressen daraus löschen. Dazu schreiben wir ein Applet, das dies beispielsweise einmal pro Woche um Mitternacht am Sonntag ausführt.

Auf dem Weg zum Schreiben werden wir zwei Fallstricke begegnen.

Sie können die in der Zugriffsliste verwendete Objektgruppe nicht löschen. Daher müssen Sie zuerst die Zeilennummer der Zugriffsliste ermitteln, in der die Gruppe verwendet wird. In unserem Beispiel ist dies Zeile 60. Wir werden diese Nummer verwenden, um die Zeile mit der Gruppe aus der Zugriffsliste zu entfernen und sie dann an ihren ursprünglichen Platz zurückzubringen.

Sie können keine leere Objektgruppe erstellen. Daher fügen wir sofort beim Erstellen einer Gruppe die IP-Adresse [255.255.255.255] hinzu. Diese Adresse wird niemals von Routern weitergeleitet, die das lokale Netzwerk mit anderen Netzwerken verbinden. Daher erwarten wir keine Verbindungen von diesem Netzwerk.

 event manager applet DeleteBlackList event timer cron name timer-cron1 cron-entry "@weekly" action 100 cli command "enable" action 200 cli command "conf t" action 210 cli command "ip access-list ext acl-WAN-In" action 215 cli command "no 60" action 220 cli command "exit" action 225 cli command "no object-group net hosts-BlackList" action 230 cli command "object-group net hosts-BlackList " action 240 cli command "host 255.255.255.255" action 245 cli command "exit" action 250 cli command "ip access-list ext acl-WAN-In" action 255 cli command "60 deny ip object-group hosts-BlackList any" action 260 cli command "exit" action 265 cli command "end" action 300 syslog msg "Completed" action 400 cli command "exit" 

  • Entfernen Sie die Regel mit der Objektgruppe aus der Zugriffsliste. (Aktion 210 - 220);
  • die Gruppe selbst löschen (Aktion 225);
  • Erstellen Sie die Objektgruppe erneut und geben Sie die Broadcast-IP-Adresse ein. (Aktion 230 - 245);
  • Wir bringen die Regel an den alten Ort in der Zugriffsliste zurück. (Aktion 250 - 260).

Was tun, wenn Zugriffslisten-Tags nicht unterstützt werden?


Viele IOS erlauben trotz der Tatsache, dass die Funktion "Syslog Correlation ACL" in ihnen deklariert ist, keine Kennzeichnung von Zugriffslistenzeichenfolgen.

In diesem Fall können Sie die sogenannten generierten Hashwerte verwenden. (vom Gerät generierter Hashwert), der den Protokollnachrichtenzeilen hinzugefügt wird.

Wenn das IOS-nicht beide Optionen unterstützt, müssen Sie die Analyse etwas komplizieren.
Wir ändern die Regel mit einem Trap in der Zugriffsliste. Anstelle von "log" verwenden wir "log-input".

 ip access-list extended acl-WAN-In … deny tcp any any eq telnet log-input … 

In diesem Fall werden Informationen über den Namen der physischen Schnittstelle und möglicherweise über die MAC-Adresse des Nachbarrouters, der das Paket weitergeleitet hat, zusätzlich in das Protokoll aufgenommen.
Die folgende Meldung wird beispielsweise in das Protokoll aufgenommen:

 Jan 11 00:20:23 172.25.100.43 2394768: Jan 10 20:20:22.808: %FMANFP-6-IPACCESSLOGP: SIP1: fman_fp_image: list acl-WAN-In denied tcp 123.199.32.7(7537) Port-channel1.88-> 192.0.2.9(23), 1 packet 


Die Regel zum Aktivieren des Ereignisses hat dann folgende Form:

 event syslog occurs 1 pattern "Port-channel1\.88-> 192\.0\.2\." 

Was zu lesen


Informationen zur eindeutigen Identifizierung der Regeln, die die Nachricht im Protokoll generiert haben:
ACL-Syslog-Korrelation

Informationen zu Embedded Event Manager:
Konfigurationshandbuch für Embedded Event Manager

Source: https://habr.com/ru/post/de436280/


All Articles