Block-Bad-IP

Block-Bad-IP ist ein intelligentes System, um die Möglichkeit des Missbrauchs von Online-Systemen zu reduzieren.

Download Version 1.0.0.0
Quelltext auf GitLab


Cyberangriffe beginnen häufig mit der Suche nach Schwachstellen die sich aus der Ferne ausnutzen lassen z.B. auf Webservern oder anderen online Services wie VPN, Remote-Desktop, SSH etc. Dafür versuchen Scanner bekannte Schwachstellen oder schwache Passwörter zu finden. Meistens hinterlassen diese Versuche Spuren in Logfiles. Block-Bad-IP (bbip) erkennt diese Anomalien in Logfiles und blockiert die IP-Adressen der Scanner. Eine andere Methode solche Scanner zu identifizieren ist Honeypot. bbip öffnet die Ports von populären Online Service. Jede IP-Adresse, die versucht sich mit diesen Ports zu verbinden wird geblockt, weil das die Scanner sind, die nach Schwachstellen suchen. Um falsche Alarme zu vermeiden hat bbip Listen mit vertrauenswürdigen IP-Adressen und FQDN z.B. für bekannte Web-Crawler. Außer der Erkennung eines Scanner, kann bbip auch die überdurchschnittliche Nutzung verhindern.

Für das Blockieren wird iptables /usr/sbin/iptables verwendet. Wenn eine IP-Adresse als Scanner identifiziert wird(Bad-IP), wird sie zunächst für ein Stunde geblockt. Beim zweiten Mal für einen Tag. Bei dritten Mal oder mehr für eine Woche. Wenn Bad-IP zwei Wochen nicht wieder vorkommt, dann wird die IP aus der Datenbank entfernt.

Struktur der Anwendung

/usr/local/bin/bbip - die ausführbare Datei. Die Startparameter:

/usr/local/bin/bbipd - Das Startscript. Die Startparameter: start|stop|status|restart

/etc/bbip/setvar - das Konfigurationsfile für Startscript.

/etc/bbip/trusted-dns.txt - die Liste mit Regular Expressions (Muster) für vertrauenswürdige FQDN. Alle gefundenen Bad-IPs werden per DNS zu FQDN konvertiert und geprüft, ob diese in der Liste sind. z.B ”.yandex.ru$” alle FQDN die mit “.yandex.ru” enden werden ignoriert.

/etc/bbip/trusted-ip.txt - die Liste mit Regular Expression (Muster) für vertrauenswürdige IP Adressen. Z.B. “^95.223.75.”- alle IP Adressen die mit 95.223.75 anfangen, werden ignoriert.

Konfigurationsfile

Beispiel für Erkennung eines Scanners auf Basis der Muster im Apache Logfile

<logfilerule>
        <name>Web scanner 1</name>
        <logpath>/var/log/httpd/access.log</logpath>
        <error>" [4,5]\d\d \d{1,3} ".*$</error>
        <exclude>robots.txt</exclude>
        <ip>(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) </ip>
        <timesmax>1</timesmax>
        <interval>2</interval>
        <enable>true</enable>
    </logfilerule>

Beispiel für Honeypot.

<honeypotrule>
        <name>Microsoft RDP Server</name>
        <bind>127.0.0.1:3389</bind>
        <enable>false</enable>
    </honeypotrule>

Weiter Beispiele finden Sie in /etc/bbip/config-example.xml

Konfigurationsparameter

Die Konfigurationsparameter für Monitoring Logfile

Die Konfigurationsparameter für Monitoring Online-Service


Copyright (c) 2021, Andrej Koslov. Distributed under BSD-3 License