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:
2025-08-11 20:13:26 +02:00
parent 59fd3dd3b1
commit 55a330b223
3683 changed files with 2956207 additions and 16948 deletions

View File

@@ -0,0 +1,279 @@
# WAF Konfiguration
> **Dokumentationshinweis:** Diese Dokumentation ist vollständig aktualisiert und stellt die aktuelle Implementierung der WAF-Konfiguration korrekt dar.
## Übersicht
Die Web Application Firewall (WAF) bietet umfangreiche Konfigurationsmöglichkeiten, um das Sicherheitsniveau und die Leistung an die Anforderungen Ihrer Anwendung anzupassen. Diese Dokumentation beschreibt die verfügbaren Konfigurationsoptionen und wie Sie diese anwenden können.
## Konfigurationsklasse
Die zentrale Klasse für die WAF-Konfiguration ist `WafConfig`. Diese Klasse enthält alle Einstellungen, die das Verhalten der WAF steuern:
```php
// Konfiguration erstellen
$config = new WafConfig(
$enabled,
$defaultLayerConfig,
$globalTimeout,
$blockingThreshold,
$alertThreshold,
$parallelProcessing,
$maxParallelLayers,
$detailedLogging,
$metricsEnabled,
$enabledLayers,
$layerConfigs,
$customSettings
);
```
## Vordefinierte Konfigurationen
Die `WafConfig`-Klasse bietet mehrere vordefinierte Konfigurationen für verschiedene Umgebungen:
### Produktionsumgebung
```php
// Produktionskonfiguration verwenden
$config = WafConfig::production();
```
Die Produktionskonfiguration aktiviert alle Sicherheitsfeatures mit strengen Einstellungen:
- Alle Schutzebenen aktiviert
- Niedrige Schwellenwerte für Blockierung
- Parallele Verarbeitung für optimale Leistung
- Detaillierte Metriken für Überwachung
### Entwicklungsumgebung
```php
// Entwicklungskonfiguration verwenden
$config = WafConfig::development();
```
Die Entwicklungskonfiguration ist weniger streng und bietet:
- Höhere Schwellenwerte für Blockierung
- Detailliertes Logging für Debugging
- Alle Schutzebenen aktiviert, aber mit weniger strengen Einstellungen
### Testumgebung
```php
// Testkonfiguration verwenden
$config = WafConfig::testing();
```
Die Testkonfiguration ist für automatisierte Tests optimiert:
- Reduzierte Timeouts
- Deaktivierte parallele Verarbeitung
- Minimales Logging
### Deaktivierte Konfiguration
```php
// WAF deaktivieren
$config = WafConfig::disabled();
```
Diese Konfiguration deaktiviert die WAF vollständig, was für bestimmte Entwicklungs- oder Diagnoseszenarien nützlich sein kann.
## Hauptkonfigurationsoptionen
### Aktivierung/Deaktivierung
```php
// WAF aktivieren
$config = $config->enable();
// WAF deaktivieren
$config = $config->disable();
```
### Timeout-Einstellungen
```php
// Globales Timeout für WAF-Verarbeitung setzen
$config = $config->withGlobalTimeout(Duration::fromMilliseconds(100));
```
### Schwellenwerte
```php
// Schwellenwert für Blockierung setzen
$config = $config->withBlockingThreshold(Percentage::fromFloat(0.75));
```
Der Blockierungsschwellenwert bestimmt, ab welchem Konfidenzwert ein Request blockiert wird. Ein höherer Wert bedeutet weniger Blockierungen (und potenziell mehr falsch negative Ergebnisse), während ein niedrigerer Wert mehr Blockierungen (und potenziell mehr falsch positive Ergebnisse) bedeutet.
## Schutzebenen-Konfiguration
Die WAF verwendet ein mehrschichtiges Schutzsystem. Jede Schutzebene kann individuell konfiguriert werden:
```php
// Schutzebene aktivieren mit benutzerdefinierter Konfiguration
$config = $config->enableLayer(
'statistical',
new LayerConfig(
$enabled = true,
$weight = 0.6,
$threshold = Percentage::fromFloat(0.7),
$timeout = Duration::fromMilliseconds(50)
)
);
// Schutzebene deaktivieren
$config = $config->disableLayer('clustering');
```
### Verfügbare Schutzebenen
- **statistical**: Statistische Anomalieerkennung
- **clustering**: Clustering-basierte Anomalieerkennung
- **signature**: Signaturbasierte Erkennung bekannter Angriffsmuster
- **behavioral**: Verhaltensbasierte Anomalieerkennung
- **ratelimiting**: Ratenbegrenzung für Anfragen
## Benutzerdefinierte Einstellungen
Die WAF unterstützt benutzerdefinierte Einstellungen für spezielle Anwendungsfälle:
```php
// Benutzerdefinierte Einstellung hinzufügen
$config = $config->withCustomSetting('whitelist_ips', ['127.0.0.1', '192.168.1.1']);
// Benutzerdefinierte Einstellung abrufen
$whitelistIps = $config->getCustomSetting('whitelist_ips', []);
```
## Konfigurationsvalidierung
Die WAF-Konfiguration kann validiert werden, um sicherzustellen, dass alle Einstellungen gültig sind:
```php
// Konfiguration validieren
$validationErrors = $config->validate();
// Prüfen, ob die Konfiguration gültig ist
if (!$config->isValid()) {
// Fehlerbehandlung
}
```
## Konfiguration in der Anwendung
### Konfigurationsdatei
Die WAF-Konfiguration kann in einer dedizierten Konfigurationsdatei definiert 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']
]
];
```
### Laufzeitkonfiguration
Die WAF-Konfiguration kann zur Laufzeit aktualisiert werden:
```php
// WAF-Konfiguration aktualisieren
$waf->updateConfig($newConfig);
```
## Leistungsoptimierung
### Parallele Verarbeitung
Die parallele Verarbeitung kann die Leistung der WAF verbessern, insbesondere bei mehreren aktivierten Schutzebenen:
```php
// Parallele Verarbeitung aktivieren
$config = new WafConfig(
$enabled = true,
$defaultLayerConfig,
$globalTimeout,
$blockingThreshold,
$alertThreshold,
$parallelProcessing = true,
$maxParallelLayers = 4,
$detailedLogging,
$metricsEnabled,
$enabledLayers,
$layerConfigs,
$customSettings
);
```
### Caching
Die WAF unterstützt Caching für wiederholte Anfragen, um die Leistung zu verbessern:
```php
// Benutzerdefinierte Caching-Einstellungen
$config = $config->withCustomSetting('cache_ttl', 300); // 5 Minuten
$config = $config->withCustomSetting('cache_size', 1000); // 1000 Einträge
```
## Fehlerbehebung
### Logging
Detailliertes Logging kann für die Fehlerbehebung aktiviert werden:
```php
// Detailliertes Logging aktivieren
$config = new WafConfig(
$enabled = true,
$defaultLayerConfig,
$globalTimeout,
$blockingThreshold,
$alertThreshold,
$parallelProcessing,
$maxParallelLayers,
$detailedLogging = true,
$metricsEnabled,
$enabledLayers,
$layerConfigs,
$customSettings
);
```
### Metriken
Die WAF kann Metriken zur Leistung und Effektivität sammeln:
```php
// Metriken aktivieren
$config = new WafConfig(
$enabled = true,
$defaultLayerConfig,
$globalTimeout,
$blockingThreshold,
$alertThreshold,
$parallelProcessing,
$maxParallelLayers,
$detailedLogging,
$metricsEnabled = true,
$enabledLayers,
$layerConfigs,
$customSettings
);
```
## Weiterführende Informationen
- [WAF-Übersicht](index.md)
- [Machine Learning Dokumentation](machine-learning.md)
- [Sicherheitsrichtlinien](/guides/security.md)