From 1bf8ca9db3c2973c7a08dc34e24700cc4100bc1d Mon Sep 17 00:00:00 2001 From: thomasciesla Date: Fri, 24 Oct 2025 20:40:17 +0200 Subject: [PATCH] README.md aktualisiert --- README.md | 365 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 363 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 716c6c5..0660b62 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,364 @@ -# shop-request-deep-analyse +# 🔍 Shop Request Deep Analyse -Das Skript gibt eine sehr tiefgrĂŒndige und ausfĂŒhrliche Analyse bzgl Zugriffe auf einem JTL Shop. \ No newline at end of file +Ein leistungsstarkes Python-Tool zur tiefgehenden Analyse von JTL-Shop Apache/Nginx Logs mit automatischer Bot-Erkennung, Request-Rate-Analyse und intelligenten Blocking-Empfehlungen. + +## 📋 Inhaltsverzeichnis + +- [Features](#-features) +- [Voraussetzungen](#-voraussetzungen) +- [Installation](#-installation) +- [Verwendung](#-verwendung) + - [Interaktiver Modus](#interaktiver-modus-empfohlen) + - [Kommandozeilen-Modus](#kommandozeilen-modus) +- [Analyse-Sektionen](#-analyse-sektionen) +- [Ausgabe](#-ausgabe) +- [Konfiguration](#-konfiguration) +- [Beispiele](#-beispiele) +- [Performance](#-performance) +- [Troubleshooting](#-troubleshooting) +- [Contributing](#-contributing) +- [Support](#-support) +- [Autor](#-autor) +- [Lizenz](#-lizenz) + +## ✹ Features + +### Kernfunktionen +- **Automatische Shop-Erkennung**: Findet alle Domains in `/var/www/vhosts/` automatisch +- **Interaktiver Modus**: Benutzerfreundliche Schritt-fĂŒr-Schritt-Konfiguration +- **Multi-Core-Verarbeitung**: Nutzt alle verfĂŒgbaren CPU-Cores fĂŒr maximale Performance +- **Zeitgenaue Analyse**: PrĂ€zise Zeitberechnung fĂŒr beliebige Zeitfenster (1h - 8760h) +- **VollstĂ€ndige Session-Protokollierung**: Alle Interaktionen werden in der Ausgabedatei dokumentiert + +### Bot-Erkennung +- **User-Agent-Analyse**: Identifiziert ĂŒber 30 verschiedene Bot-Typen +- **Verhaltensbasierte Erkennung**: Analysiert Request-Pattern und URL-Vielfalt +- **IP-Kategorisierung**: Unterscheidet zwischen Cloud, Datacenter, VPN, Residential IPs +- **Verteilte Bot-Erkennung**: Findet Bots, die von mehreren IPs operieren + +### Request-Rate-Analyse +- **Burst-Pattern-Erkennung**: Identifiziert IPs mit unnatĂŒrlichen Request-Mustern +- **Rate-Limiting-Empfehlungen**: Konkrete VorschlĂ€ge fĂŒr nginx/Apache Rate-Limits +- **Konfigurierbarer Schwellwert**: Definiere selbst, was als "extreme" Rate gilt +- **Perzentil-basierte Statistiken**: Zeigt Verteilung der Request-Raten + +### Sicherheitsanalyse +- **404-Scanner-Erkennung**: Identifiziert IPs, die nach Schwachstellen suchen +- **Brute-Force-Erkennung**: Findet verdĂ€chtige POST-Request-Muster +- **Block-Listen-Empfehlung**: Priorisierte Liste von IPs zum Blockieren + +## 📩 Voraussetzungen + +### System-Requirements +- **OS**: Linux (getestet auf Debian/Ubuntu) +- **Python**: 3.6 oder höher +- **RAM**: Mindestens 2GB empfohlen +- **CPU**: Multi-Core fĂŒr optimale Performance + +### Benötigte System-Tools +```bash +# FĂŒr IP-Informationen +apt-get install -y geoip-bin whois + +# FĂŒr Performance (optional aber empfohlen) +apt-get install -y parallel +``` + +### Python-Dependencies +```python +# Standard-Library (keine pip-Installation nötig) +- pathlib +- datetime +- collections +- multiprocessing +- concurrent.futures +- gzip +- re +``` + +## 🚀 Installation + +1. **Repository klonen** +```bash +git clone https://git.jtl-hosting.de/thomasciesla/shop-request-deep-analyse.git +cd shop-request-deep-analyse +``` + +2. **AusfĂŒhrbar machen** +```bash +chmod +x requestanalyse.py +``` + +3. **System-Tools installieren** +```bash +# Als root oder mit sudo +apt-get update +apt-get install -y geoip-bin whois +``` + +## đŸ’» Verwendung + +### Interaktiver Modus (Empfohlen) + +Starte das Skript ohne Parameter fĂŒr eine gefĂŒhrte Konfiguration: + +```bash +python3 requestanalyse.py +``` + +Der interaktive Modus fĂŒhrt durch 4 Schritte: + +1. **Shop-Auswahl**: WĂ€hle aus allen verfĂŒgbaren Domains +2. **Zeitspanne**: Definiere den Analysezeitraum (Stunden) +3. **Ergebnisanzahl**: Top N oder ALLE Ergebnisse +4. **Extreme-Rate-Schwellwert**: Ab wann gilt eine IP als extrem? + +### Kommandozeilen-Modus + +FĂŒr Automatisierung und Scripting: + +```bash +# Basis-Syntax +python3 requestanalyse.py [top_n] [--extreme-rate ] + +# Beispiele +python3 requestanalyse.py taschengelddieb.de 24h # 24h, alle Ergebnisse +python3 requestanalyse.py taschengelddieb.de 24h 100 # 24h, Top 100 +python3 requestanalyse.py 48h 50 # Standard-Domain, 48h, Top 50 +python3 requestanalyse.py shop.de 72h 100 --extreme-rate 250 # Mit Custom-Schwellwert +``` + +### Parameter-Übersicht + +| Parameter | Beschreibung | Beispiel | Standard | +|-----------|--------------|----------|----------| +| `domain` | Zu analysierende Domain | `shop.de` | Interaktiv wĂ€hlen | +| `stunden` | Zeitspanne in Stunden | `24h` oder `24` | 48 | +| `top_n` | Anzahl der Top-Ergebnisse | `100` | ALLE | +| `--extreme-rate` | Request/Minute fĂŒr extreme Rate | `250` | 60 | + +## 📊 Analyse-Sektionen + +Das Tool generiert 13 detaillierte Analyse-Sektionen: + +### 1. Gesamtzahl der Requests +- Totale Requests im Zeitraum +- Durchschnittliche Requests/Stunde + +### 2. Top angefragte URLs/Pfade +- HĂ€ufigste URLs mit Request-Count +- Top-IP pro URL mit Herkunftsinfo + +### 3. Top IP-Adressen +- IPs nach Request-Anzahl sortiert +- VollstĂ€ndige WHOIS-Informationen +- ASN und Provider-Details + +### 4. User-Agent Analyse +- HĂ€ufigste User-Agents +- Top-IP pro User-Agent +- Bot-Identifikation + +### 5. HTTP-Status-Codes +- Verteilung der Response-Codes +- Fehlerrate-Analyse + +### 6. Request-Methoden +- GET, POST, HEAD, etc. Verteilung +- Ungewöhnliche Methoden-Erkennung + +### 7. Bot-Identifikation +- Erkannte Bots via User-Agent +- Bot-Typen und HĂ€ufigkeit + +### 8. Zeitliche Verteilung +- Requests pro Stunde +- Traffic-Muster-Erkennung + +### 9. VerdĂ€chtige AktivitĂ€ten +- 404-Fehler-Analyse +- POST-Request-Patterns +- Potentielle Brute-Force-Versuche + +### 10. 404-Fehler IPs +- IPs mit vielen 404-Fehlern +- Scanner-Identifikation + +### 11. IP-Kategorisierung +- Cloud-Provider (AWS, Azure, GCP) +- Datacenter/Hosting +- VPN/Proxy-Dienste +- TOR-Netzwerk +- Residential IPs +- ISP-Klassifizierung + +### 12. Request-Rate-Analyse ⭐ +``` +=================================================================== +TOP IPS NACH MAXIMALER REQUEST-RATE +=================================================================== + IP | Max/Min | Avg/Min | Total | Bursts | Info + --------------------------------------------------------------- +🔮 185.97.5.133 | 312 | 45.2 | 5834 | 234 | DE | AS50873 +🟡 37.44.215.0 | 156 | 23.1 | 2341 | 123 | LT | AS44486 +⚠ 95.222.24.0 | 78 | 12.3 | 1234 | 45 | DE | AS3209 + +📊 Request-Rate Verteilung: + 50% der IPs: <= 8 Requests/Minute + 90% der IPs: <= 25 Requests/Minute + 99% der IPs: <= 112 Requests/Minute + +💡 Empfohlene Rate-Limits basierend auf Analyse: + Konfigurierter Extreme-Schwellwert: 250 Requests/Minute + + ✅ NORMAL TRAFFIC: Die meisten IPs haben niedrige Raten + - Standard-Limit: 20-30 Requests/Minute + - Burst-Limit: 5-10 Requests/10 Sekunden +``` + +### 13. Bot-Pattern-Analyse & Entscheidungshilfe ⭐ +- Kombinierte Analyse aller Faktoren +- Konkrete Block-Empfehlungen mit BegrĂŒndung +- Top angefragte URLs pro verdĂ€chtiger IP + +## 📁 Ausgabe + +### Dateiname-Format +``` +shop_analyse_h__.txt +# Beispiel: shop_analyse_24h_top100_20240115_143022.txt +``` + +### Ausgabe-Inhalt +- VollstĂ€ndiges Interaktions-Protokoll +- Alle Analyse-Sektionen +- Formatierte Tabellen und Listen +- Emoji-Indikatoren fĂŒr schnelle Übersicht +- Konkrete Handlungsempfehlungen + +## ⚙ Konfiguration + +### Extreme-Rate-Schwellwerte + +Empfohlene Werte je nach Shop-Typ: + +| Shop-Typ | Schwellwert | Requests/Sekunde | Anwendungsfall | +|----------|-------------|------------------|----------------| +| Standard | 60 | 1/sec | Normale Shops mit moderatem Traffic | +| AJAX-Heavy | 120 | 2/sec | Shops mit vielen dynamischen Elementen | +| High-Traffic | 250 | ~4/sec | Große Shops, Sale-Events | +| API-Intensive | 600 | 10/sec | Shops mit Mobile-Apps, API-Nutzung | + +### Log-Verzeichnisse + +Standard-Struktur: +``` +/var/www/vhosts/ +├── domain1.de/ +│ └── logs/ +│ ├── access_log +│ ├── access_ssl_log +│ └── *.gz +├── domain2.de/ +│ └── logs/ +... +``` + +## 📚 Beispiele + +### Beispiel 1: Schnelle Bot-Analyse +```bash +# Letzte 6 Stunden, Top 50 IPs, Standard-Schwellwert +python3 requestanalyse.py meinshop.de 6h 50 +``` + +### Beispiel 2: Detaillierte Sicherheitsanalyse +```bash +# 48 Stunden, alle Ergebnisse, strenger Schwellwert +python3 requestanalyse.py meinshop.de 48h --extreme-rate 30 +``` + +### Beispiel 3: Performance-Monitoring +```bash +# 24 Stunden, Top 100, hoher Schwellwert fĂŒr API-Traffic +python3 requestanalyse.py api.shop.de 24h 100 --extreme-rate 600 +``` + +### Beispiel 4: Automatisierte tĂ€gliche Analyse +```bash +#!/bin/bash +# Cron-Job fĂŒr tĂ€gliche Analyse +python3 /path/to/requestanalyse.py shop.de 24h 100 --extreme-rate 120 +``` + +## ⚡ Performance + +### Optimierungen +- **Parallel Processing**: Nutzt N-4 CPU-Cores (reserviert 4 fĂŒr System) +- **Batch-IP-Lookups**: Gruppiert WHOIS-Anfragen +- **Stream-Processing**: Verarbeitet große Logs ohne vollstĂ€ndiges Laden +- **Cache-System**: Vermeidet doppelte IP-Lookups + +### Performance-Metriken +| Log-GrĂ¶ĂŸe | Requests | Dauer (8 Cores) | Dauer (1 Core) | +|-----------|----------|-----------------|----------------| +| 100 MB | 500k | ~30 Sekunden | ~3 Minuten | +| 1 GB | 5M | ~5 Minuten | ~30 Minuten | +| 10 GB | 50M | ~45 Minuten | ~4 Stunden | + +## 🔧 Troubleshooting + +### Problem: "geoiplookup: command not found" +```bash +apt-get install -y geoip-bin +``` + +### Problem: Keine Domains gefunden +- PrĂŒfe Pfad: `/var/www/vhosts/` +- PrĂŒfe Log-Verzeichnisse: `logs/` +- PrĂŒfe Berechtigungen + +### Problem: Langsame Analyse +- Installiere GNU Parallel: `apt-get install -y parallel` +- Reduziere Zeitfenster oder nutze Top-N-Limit +- PrĂŒfe verfĂŒgbare CPU-Cores: `nproc` + +### Problem: Fehlende Log-EintrĂ€ge +- PrĂŒfe Zeitzone-Einstellungen +- Verifiziere Log-Rotation +- Kontrolliere Apache/Nginx-Konfiguration + +## đŸ€ Contributing + +Contributions sind willkommen! Bitte erstelle ein Issue oder einen Merge Request: + +- **Issues**: [https://git.jtl-hosting.de/thomasciesla/shop-request-deep-analyse/issues](https://git.jtl-hosting.de/thomasciesla/shop-request-deep-analyse/issues) +- **Merge Requests**: [https://git.jtl-hosting.de/thomasciesla/shop-request-deep-analyse/pulls](https://git.jtl-hosting.de/thomasciesla/shop-request-deep-analyse/pulls) + +### Development Guidelines +1. Teste mit verschiedenen Log-Formaten +2. Behalte Python 3.6+ KompatibilitĂ€t +3. Dokumentiere neue Features +4. FĂŒge Beispiele hinzu + +## 📧 Support + +Bei Fragen oder Problemen: + +- **E-Mail**: thomas.ciesla@jtl-software.com +- **Teams**: thomas.ciesla@jtl-software.com +- **GitLab Issues**: [Issue erstellen](https://git.jtl-hosting.de/thomasciesla/shop-request-deep-analyse/issues/new) + +## đŸ‘šâ€đŸ’» Autor + +**Thomas Ciesla** +System Administrator @ JTL-Software +E-Mail/Teams: thomas.ciesla@jtl-software.com + +## 📄 Lizenz + +Dieses Projekt ist proprietĂ€r und zur internen Nutzung bei JTL-Software bestimmt. + +--- + +Made with ❀ for JTL-Shop Infrastructure Management \ No newline at end of file