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.
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.
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.
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.
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.
Zwei Betriebsmodi
Die Entwickler haben zwei Konfigurationen erstellt:
- 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.
- 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.
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