Was macht Analyse von Webserver-Logs auf Eindringversuche?
Verwendungszweck
- Bei der Untersuchung von Sicherheitsvorfällen, die eine Analyse von Webserver-Logs auf Eindringversuche erfordern
- Beim Erstellen von Erkennungsregeln oder Threat-Hunting-Abfragen für diesen Bereich
- Wenn SOC-Analysten strukturierte Verfahren für diese Analyseart benötigen
- Bei der Validierung der Sicherheitsüberwachungsabdeckung für verwandte Angriffstechniken
Voraussetzungen
- Vertrautheit mit Konzepten und Tools der Sicherheitsbetriebsführung
- Zugang zu einer Test- oder Laborumgebung für die sichere Ausführung
- Python 3.8+ mit den erforderlichen Abhängigkeiten
- Entsprechende Autorisierung für alle Testaktivitäten
Anleitung
- Abhängigkeiten installieren:
pip install geoip2 user-agents
- Webserver-Zugriffslogs im Combined Log Format (Apache) oder Nginx-Standardformat sammeln.
- Jeden Logeintrag parsen und extrahieren: IP, Zeitstempel, Methode, URI, Statuscode, Antwortgröße, User-Agent, Referer.
- Erkennungsregeln anwenden:
- SQL-Injection:
UNION SELECT, OR 1=1, ' OR ', Hex-Kodierungsmuster
- LFI/Pfadtraversierung:
../, /etc/passwd, /proc/self, php://filter
- XSS:
<script>, javascript:, onerror=, onload=
- Scanner-Signaturen: User-Agents von nikto, sqlmap, dirbuster, gobuster, wfuzz
- Brute-Force: >50 POST-Anfragen an Login-Endpunkte von derselben IP innerhalb von 5 Minuten
- Mit GeoIP-Daten anreichern und einen priorisierten Ergebnisbericht erstellen.
python scripts/agent.py --log-file /var/log/nginx/access.log --geoip-db GeoLite2-City.mmdb --output web_intrusion_report.json
Beispiele
SQLi im URI erkennen
192.168.1.100 - - [15/Jan/2024:10:30:45 +0000] "GET /products?id=1' UNION SELECT username,password FROM users-- HTTP/1.1" 200 4532
Scanner-User-Agent-Erkennung
Nikto/2.1.6, sqlmap/1.7, DirBuster-1.0-RC1, gobuster/3.1.0