Enable Discovery debug logging for production troubleshooting
- Add DISCOVERY_LOG_LEVEL=debug - Add DISCOVERY_SHOW_PROGRESS=true - Temporary changes for debugging InitializerProcessor fixes on production
This commit is contained in:
135
docs/components/waf/index.md
Normal file
135
docs/components/waf/index.md
Normal file
@@ -0,0 +1,135 @@
|
||||
# WAF (Web Application Firewall)
|
||||
|
||||
> **Dokumentationshinweis:** Diese Dokumentation ist vollständig aktualisiert und stellt die aktuelle Implementierung der WAF-Komponente korrekt dar.
|
||||
|
||||
## Übersicht
|
||||
|
||||
Die WAF-Komponente (Web Application Firewall) ist ein fortschrittliches Sicherheitssystem, das Webanwendungen vor verschiedenen Bedrohungen schützt. Es verwendet Machine Learning und statistische Analysen, um Anomalien zu erkennen und potenzielle Angriffe zu blockieren, bevor sie Schaden anrichten können.
|
||||
|
||||
## Hauptkomponenten
|
||||
|
||||
### WAF-Klasse
|
||||
|
||||
Die zentrale Klasse für die WAF-Funktionalität:
|
||||
|
||||
```php
|
||||
// Klasse initialisieren
|
||||
$waf = new Waf($config, $eventDispatcher);
|
||||
|
||||
// Request prüfen
|
||||
$result = $waf->analyzeRequest($request);
|
||||
|
||||
// Entscheidung treffen
|
||||
if ($result->isBlocked()) {
|
||||
// Request blockieren
|
||||
}
|
||||
```
|
||||
|
||||
### MachineLearningEngine
|
||||
|
||||
Verarbeitet Requests mit Machine-Learning-Algorithmen:
|
||||
|
||||
- Extrahiert Features aus Requests
|
||||
- Vergleicht mit bekannten Mustern
|
||||
- Erkennt Anomalien und ungewöhnliches Verhalten
|
||||
- Klassifiziert potenzielle Bedrohungen
|
||||
|
||||
### Detektoren
|
||||
|
||||
Verschiedene Detektoren für unterschiedliche Arten von Anomalien:
|
||||
|
||||
- `StatisticalAnomalyDetector`: Erkennt statistische Abweichungen
|
||||
- `ClusteringAnomalyDetector`: Gruppiert ähnliche Requests und identifiziert Ausreißer
|
||||
- Erweiterbar für zusätzliche Detektoren
|
||||
|
||||
### Middleware-System
|
||||
|
||||
```php
|
||||
// In Bootstrap oder Application-Klasse
|
||||
$app->addMiddleware(WafMiddleware::class);
|
||||
```
|
||||
|
||||
## Feature-Extraktion
|
||||
|
||||
Die WAF extrahiert verschiedene Features aus eingehenden Requests:
|
||||
|
||||
1. **Request-Metadaten**: URL, HTTP-Methode, Header
|
||||
2. **Parameter-Analyse**: Anzahl, Länge, Entropie der Parameter
|
||||
3. **Inhaltsmuster**: Spezielle Zeichen, Skript-Tags, SQL-Fragmente
|
||||
4. **Verhaltensanalyse**: Anfragehäufigkeit, Sitzungsdauer, Navigationsmuster
|
||||
|
||||
## Anomalie-Erkennung
|
||||
|
||||
Der Anomalie-Erkennungsprozess umfasst:
|
||||
|
||||
1. **Feature-Extraktion** aus dem eingehenden Request
|
||||
2. **Baseline-Vergleich** mit normalen Verhaltensmustern
|
||||
3. **Anomalie-Bewertung** durch verschiedene Detektoren
|
||||
4. **Entscheidungsfindung** basierend auf Schwellenwerten und Regeln
|
||||
|
||||
## Konfiguration
|
||||
|
||||
Die WAF kann über die Konfigurationsdatei angepasst werden:
|
||||
|
||||
```php
|
||||
// config/waf.php
|
||||
return [
|
||||
'enabled' => true,
|
||||
'learning_mode' => false,
|
||||
'threshold' => 0.75,
|
||||
'detectors' => [
|
||||
'statistical' => true,
|
||||
'clustering' => true
|
||||
],
|
||||
'whitelist' => [
|
||||
'ips' => ['127.0.0.1'],
|
||||
'paths' => ['/api/health']
|
||||
]
|
||||
];
|
||||
```
|
||||
|
||||
## Integration
|
||||
|
||||
### Service-Container
|
||||
|
||||
Die WAF wird automatisch registriert und kann per Dependency Injection verwendet werden:
|
||||
|
||||
```php
|
||||
public function __construct(private readonly Waf $waf) {}
|
||||
```
|
||||
|
||||
### Event-Integration
|
||||
|
||||
Die WAF löst folgende Events aus:
|
||||
|
||||
- `waf.request_analyzed`: Nach der Analyse eines Requests
|
||||
- `waf.request_blocked`: Wenn ein Request blockiert wird
|
||||
- `waf.anomaly_detected`: Bei Erkennung einer Anomalie
|
||||
|
||||
## Feedback-System (geplant)
|
||||
|
||||
Ein Feedback-System für die WAF ist in Planung und wird folgende Funktionen bieten:
|
||||
|
||||
- Admin-Interface zur Überprüfung von WAF-Entscheidungen
|
||||
- Feedback-Mechanismus für falsch positive/negative Ergebnisse
|
||||
- Kontinuierliches Training der ML-Modelle basierend auf Feedback
|
||||
|
||||
## Fehlerbehebung
|
||||
|
||||
### Häufige Probleme
|
||||
|
||||
1. **Falsch positive Blockierungen**:
|
||||
- Überprüfen Sie die Whitelist-Konfiguration
|
||||
- Passen Sie den Schwellenwert an
|
||||
- Aktivieren Sie den Lernmodus vorübergehend
|
||||
|
||||
2. **Leistungsprobleme**:
|
||||
- Deaktivieren Sie rechenintensive Detektoren
|
||||
- Implementieren Sie Caching für wiederholte Anfragen
|
||||
- Optimieren Sie die Feature-Extraktion
|
||||
|
||||
## Weiterführende Informationen
|
||||
|
||||
- [Machine Learning Dokumentation](machine-learning.md)
|
||||
- [WAF-Konfiguration](configuration.md)
|
||||
- [Sicherheitsrichtlinien](/guides/security.md)
|
||||
Reference in New Issue
Block a user