>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Python

Wie man Vulnerability-Scanner mit Krawl verwirrt

Wenn Sie die Logs eines öffentlichen Webservers öffnen, werden Sie mit ziemlicher Sicherheit einen konstanten Strom von Müll finden: endlose Suchen nach /wp-login.php, /.env, /.git/HEAD oder alten Versionen von phpMyAdmin. Scanner und Parser jagen rund um die Uhr nach leichter Beute. Normalerweise blockieren wir den Zugriff einfach über NGINX oder schneiden sie mit WAF-Regeln ab. Aber es gibt einen anderen Ansatz: Kämpfen Sie nicht zurück, sondern füttern Sie die Automatisierung des Feindes mit erstklassiger Desinformation und leeren Sie dabei die Ressourcen des Angreifers.

Kürzlich bin ich auf das Projekt Krawl gestoßen. Es ist ein spezialisierter Täuschungsserver, der sich als verwundbare Webanwendung ausgibt, Bots mit endlosen Fallen-Seiten füttert und sogar realistisches HTML dynamisch mit Sprachmodellen generieren kann.

Krawl logo

Was diese Falle kann

Das Hauptziel von Krawl ist einfach: Sieht attraktiv für automatisierte Scanner aus, protokolliert ihr Verhalten und führt sie in eine Sackgasse.

Hier ist, was es intern verwendet:

  • Unendliche Link-Netze (Spider Traps). Das Projekt generiert Seiten mit zufälligen Links zueinander, was Parser zwingt, im Kreis zu laufen und Traffic zu verschwenden.
  • Gefälschte Admin-Panels und Konfigurationsdateien. Krawl reagiert auf Anfragen nach beliebten Pfaden wie WordPress, phpMyAdmin oder Login-Panels und sammelt eingegebene Passwörter.
  • Seitengenerierung über neuronale Netze. Wenn ein Scanner eine unbekannte Adresse trifft, kann Krawl OpenRouter oder OpenAI abfragen, um schnell kontextbezogenes HTML mit einer Verwundbarkeit zu rendern.
  • Fallen in robots.txt. Der Server deklariert verbotene Pfade, die Bots sofort zuerst überprüfen und so ihre Absichten offenbaren.

Deception page

Zusätzlich kann der Server Canary-Tokens von CanaryTokens injizieren. Wenn ein Angreifer versucht, einen gefundenen gefälschten API-Schlüssel in einem externen System zu verwenden, erhalten Sie sofort eine Benachrichtigung.

Wie Krawl die IP-Reputation berechnet

Bots zu fangen ist nicht genug – Sie müssen verstehen, wer tatsächlich an Ihre Tür klopft. Krawl analysiert im Hintergrund die Aktivität jeder eingehenden IP-Adresse anhand mehrerer Kriterien.

IP reputation scoring

Das System bewertet die Häufigkeit riskanter HTTP-Methoden, Besuche von Pfaden aus robots.txt, Request-Timing und Übereinstimmungen mit SQLi- oder XSS-Signaturen. Am Ende erhält die Adresse ein Label: Angreifer, schlechter Crawler, legitime Suchmaschine oder normaler Benutzer.

Wenn der Export aktiviert ist, können Sie die Daten direkt über die API für Ihre Netzwerkfilter abrufen:

curl "https://krawl.local/<SECRET_PATH>/api/export-ips?categories=attacker&fwtype=iptables"

Der Endpunkt liefert fertige Regeln für iptables, nftables, RouterOS oder Blocklisten für OPNsense und pfSense.

Monitoring-Dashboard

Es gibt eine Web-Oberfläche zur Beobachtung dessen, was passiert. Um zu verhindern, dass Bots versehentlich das eigene Admin-Panel des Honeypots finden, ist es hinter einem dynamischen geheimen Pfad (KRAWL_DASHBOARD_SECRET_PATH) und einem Passwort versteckt.

GeoIP Dashboard

Darin können Sie die Geografie der Angriffe sehen, eine Aufschlüsselung der Payload-Typen und eine detaillierte Akte zu jeder verdächtigen Adresse mit Request-Historie und Zeitachse.

Attack types

IP Insight

Zwei Betriebsmodi

Die Entwickler haben zwei Konfigurationen erstellt:

  1. Standalone. Läuft in einem einzelnen Container, speichert Daten in SQLite im WAL-Modus und behält den Cache direkt im Python-Prozessspeicher. Eine gute Option für private Projekte und kleine VPSe, wo der Traffic einige hunderttausend Anfragen nicht überschreitet.
  2. Skalierbar. Dieser bringt PostgreSQL und Redis mit. Dieser Modus wird benötigt, wenn Sie Krawl-Instanzen horizontal hinter einem Load Balancer skalieren oder das Projekt in Kubernetes über den offiziellen Helm-Chart bereitstellen möchten.

Use case architecture

Das typische Nutzungsmuster läuft darauf hinaus, Krawl neben Ihrer Hauptanwendung hinter NGINX oder Traefik zu platzieren. Der gesamte verdächtige Traffic oder Anfragen an nicht existierende Systempfade wird an den Honeypot weitergeleitet.

Schnellstart

Der einfachste Weg, das Projekt lokal auszuprobieren, ist das Ausführen eines Docker-Containers im Standalone-Modus:

docker run -d \
  -p 5000:5000 \
  -e KRAWL_DASHBOARD_SECRET_PATH="/my-secret-dashboard" \
  -e KRAWL_DASHBOARD_PASSWORD="admin-secret-password" \
  -v krawl-data:/app/data \
  --name krawl \
  ghcr.io/blessedrebus/krawl:latest

Wenn Sie die KI-gestützte Seitengenerierung konfigurieren möchten, fügen Sie einfach Umgebungsvariablen zu docker-compose.yml hinzu:

services:
  krawl:
    image: ghcr.io/blessedrebus/krawl:latest
    container_name: krawl-server
    ports:
      - "5000:5000"
    environment:
      - KRAWL_MODE=standalone
      - KRAWL_DASHBOARD_SECRET_PATH=/secret-dashboard
      - KRAWL_DASHBOARD_PASSWORD=super-safe-password
      - KRAWL_AI_ENABLED=true
      - KRAWL_AI_PROVIDER=openrouter
      - KRAWL_AI_API_KEY=your_openrouter_key
      - KRAWL_AI_MODEL=nvidia/nemotron-3-super-120b-a12b:free
    volumes:
      - krawl-data:/app/data
    restart: unless-stopped

volumes:
  krawl-data:

Wofür das nützlich sein wird

Krawl wird wahrscheinlich keinen vollständigen WAF auf einem hochfrequentierten Projekt ersetzen, aber es hat eine andere Nische. Es ist ein ausgezeichnetes Tool für Blue Teams, Homelabs und diejenigen, die reale Angriffsmuster auf ihren Diensten studieren möchten.

Anstatt Anfragen blind mit einer 404 abzulehnen, verwandeln Sie das Scannen in eine Falle, sammeln eine Datenbank bösartiger IPs und füttern Ihre Firewalls damit. Sie können mit einem normalen Docker-Container auf einer separaten Subdomain oder einem Testserver beginnen.

Ähnliche Projekte