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:
279
docs/components/waf/configuration.md
Normal file
279
docs/components/waf/configuration.md
Normal 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)
|
||||
Reference in New Issue
Block a user