Add complete French (fr) and Chinese (zh) translations for all documentation: - Root files: README, CHANGELOG, SECURITY, BETA-RELEASE - docs/: All 16 core documentation files - DOCS/: All 19 deep-dive documents including embedded/ and archive/ - package/secubox/: All 123+ package READMEs - Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/ Total: 346 translation files created Each file includes language switcher links for easy navigation between English, French, and Chinese versions. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
308 lines
13 KiB
Markdown
308 lines
13 KiB
Markdown
# Systeme de Defense CVE Couche 7 SecuBox
|
|
|
|
> **Languages:** [English](../DOCS/CVE-LAYER7.md) | Francais | [中文](../DOCS-zh/CVE-LAYER7.md)
|
|
|
|
**Version:** 1.0.0
|
|
**Derniere Mise a Jour:** 2026-02-28
|
|
|
|
## Apercu
|
|
|
|
L'innovation CVE Couche 7 combine trois piliers de defense pour une securite complete des applications web:
|
|
|
|
1. **WAF mitmproxy** - Detection de motifs de menaces en temps reel (70+ motifs CVE)
|
|
2. **Scenarios CrowdSec** - Decisions de bannissement intelligentes avec seuils adaptatifs
|
|
3. **Agent de Triage CVE** - Evaluation des vulnerabilites et remediation assistees par IA
|
|
|
|
## Architecture
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ COUCHE 7: Traitement des Requetes │
|
|
│ ┌──────────────────────────────────────────────────────────┐ │
|
|
│ │ HAProxy (port 8080) → mitmproxy (inspection MITM) │ │
|
|
│ │ ↓ │ │
|
|
│ │ secubox_analytics.py │ │
|
|
│ │ (70+ motifs CVE, detection sub-100ms) │ │
|
|
│ └──────────────────────────────────────────────────────────┘ │
|
|
│ ↓ │
|
|
│ [Arbre de Decision] │
|
|
│ ┌────────────────┬─────────────┬──────────────┐ │
|
|
│ ↓ ↓ ↓ ↓ │
|
|
│ [Autoriser] [Logger Menace] [Auto-Ban] [Alerte] │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
↓
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ PIPELINE DE LOG DES MENACES │
|
|
│ ┌──────────────────────────────────────────────────────────┐ │
|
|
│ │ Fichiers de Log: │ │
|
|
│ │ • /var/log/secubox-access.log (toutes les requetes) │ │
|
|
│ │ • /data/threats.log (entree parseur CrowdSec) │ │
|
|
│ │ • /data/autoban-requests.log (decisions de ban) │ │
|
|
│ │ • /tmp/secubox-subdomain-metrics.json (analytiques) │ │
|
|
│ └──────────────────────────────────────────────────────────┘ │
|
|
│ ↓ │
|
|
│ [Moteur CrowdSec] │
|
|
│ 8 scenarios specifiques mitmproxy │
|
|
│ ┌─────────────────┬──────────────┬──────────┐ │
|
|
│ ↓ ↓ ↓ ↓ │
|
|
│ [CVE] [Scanner] [SSRF] [Shell] │
|
|
│ ban 30m ban 10-30m ban 10m ban 60m │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
↓
|
|
┌─────────────────────────────────────────────────────────────────┐
|
|
│ REPONSE & REMEDIATION │
|
|
│ ┌──────────────────────────────────────────────────────────┐ │
|
|
│ │ CrowdSec Firewall Bouncer: │ │
|
|
│ │ • Blocages bases sur IP (regles iptables/nftables) │ │
|
|
│ │ • Integration liste blanche/noire │ │
|
|
│ └──────────────────────────────────────────────────────────┘ │
|
|
│ ↓ │
|
|
│ ┌──────────────────────────────────────────────────────────┐ │
|
|
│ │ Agent de Triage CVE (optionnel): │ │
|
|
│ │ • Correle les motifs CVE avec les donnees NVD │ │
|
|
│ │ • Evaluation d'impact LocalAI │ │
|
|
│ │ • Recommandations de correctifs │ │
|
|
│ └──────────────────────────────────────────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
## Composant 1: Analytique WAF mitmproxy
|
|
|
|
### Emplacement
|
|
- **Config:** `/etc/config/mitmproxy`
|
|
- **Addon Analytique:** `/srv/mitmproxy/addons/secubox_analytics.py`
|
|
- **Regles WAF:** `/srv/mitmproxy/waf-rules.json`
|
|
|
|
### Categories de Motifs CVE
|
|
|
|
| Categorie | Motifs | Severite | Auto-Ban |
|
|
|-----------|--------|----------|----------|
|
|
| **Injection SQL** | 18 | Critique | Oui |
|
|
| **Injection de Commande** | 16 | Critique | Oui |
|
|
| **XSS** | 17 | Haute | Seuil |
|
|
| **Traversee de Chemin** | 14 | Haute | Seuil |
|
|
| **XXE** | 8 | Critique | Oui |
|
|
| **SSRF** | 14 | Haute | Seuil |
|
|
| **Log4Shell/JNDI** | 8 | Critique | Oui |
|
|
| **CVE 2021-2025** | 70+ | Critique | Immediat |
|
|
| **Botnet Routeur** | 20+ | Critique | Immediat |
|
|
|
|
### CVE Supportees (2021-2025)
|
|
|
|
**2024-2025:**
|
|
- CVE-2025-15467 (Debordement de pile OpenSSL CMS)
|
|
- CVE-2025-0282 (Ivanti Connect Secure)
|
|
- CVE-2024-3400 (PAN-OS GlobalProtect)
|
|
- CVE-2024-21887 (Ivanti Connect Secure)
|
|
- CVE-2024-1708/1709 (ScreenConnect)
|
|
- CVE-2024-27198 (TeamCity)
|
|
- CVE-2024-21762 (Fortinet FortiOS)
|
|
|
|
**2023:**
|
|
- CVE-2023-34362 (Injection SQL MOVEit)
|
|
- CVE-2023-22515 (Escalade de privileges Confluence)
|
|
- CVE-2023-46747 (F5 BIG-IP)
|
|
- CVE-2023-4966 (Citrix Bleed)
|
|
|
|
**2021-2022:**
|
|
- CVE-2021-44228 (Log4Shell)
|
|
- CVE-2021-41773 (Traversee de chemin Apache)
|
|
- CVE-2022-22965 (Spring4Shell)
|
|
- CVE-2022-1388 (F5 BIG-IP)
|
|
|
|
### Configuration Auto-Ban
|
|
|
|
```uci
|
|
config autoban 'autoban'
|
|
option enabled '1'
|
|
option ban_duration '4h'
|
|
option min_severity 'high'
|
|
option sensitivity 'moderate'
|
|
option moderate_threshold '3'
|
|
option moderate_window '300'
|
|
option whitelist '127.0.0.1,192.168.255.1'
|
|
```
|
|
|
|
**Niveaux de Sensibilite:**
|
|
- **Agressif:** Ban immediat a la premiere menace critique
|
|
- **Modere:** Ban apres 3 menaces en 5 minutes (defaut)
|
|
- **Permissif:** Ban apres 5 menaces en 1 heure
|
|
|
|
## Composant 2: Scenarios CrowdSec
|
|
|
|
### Emplacement
|
|
- **Scenarios:** `/etc/crowdsec/scenarios/`
|
|
- **Parseur:** `/etc/crowdsec/parsers/s01-parse/secubox-mitmproxy.yaml`
|
|
- **Acquisition:** `/etc/crowdsec/acquis.d/secubox-mitmproxy.yaml`
|
|
|
|
### Scenarios de Menaces mitmproxy
|
|
|
|
| Scenario | Type | Declencheur | Duree de Ban |
|
|
|----------|------|-------------|--------------|
|
|
| `secubox/mitmproxy-attack` | Leaky | SQLi, XSS, CMDi, LFI, XXE | 15m |
|
|
| `secubox/mitmproxy-cve` | Trigger | CVE + severite critique | 30m |
|
|
| `secubox/mitmproxy-botscan` | Leaky | Scanners de vulnerabilites | 30m |
|
|
| `secubox/mitmproxy-shell-hunter` | Trigger | Chasse aux shells/backdoors | 60m |
|
|
| `secubox/mitmproxy-config-hunter` | Leaky | Chasse aux fichiers de config | 30m |
|
|
| `secubox/mitmproxy-scanner` | Leaky | Scan admin/env | 10m |
|
|
| `secubox/mitmproxy-ssrf` | Leaky | Tentatives SSRF | 10m |
|
|
| `secubox/mitmproxy-suspicious-ua` | Leaky | User-Agent suspect | 15m |
|
|
|
|
### Format de Log (JSON)
|
|
|
|
```json
|
|
{
|
|
"timestamp": "2026-02-28T12:00:00Z",
|
|
"source_ip": "1.2.3.4",
|
|
"host": "example.com",
|
|
"request": "GET /../../../etc/passwd HTTP/1.1",
|
|
"threat_type": "path_traversal",
|
|
"pattern": "../../../etc/passwd",
|
|
"severity": "critical",
|
|
"cve": "",
|
|
"category": "lfi",
|
|
"is_bot": true,
|
|
"bot_type": "vulnerability_scanner",
|
|
"bot_behavior": "config_hunting"
|
|
}
|
|
```
|
|
|
|
## Composant 3: Agent de Triage CVE
|
|
|
|
### Emplacement
|
|
- **Config:** `/etc/config/cve-triage`
|
|
- **CLI:** `/usr/bin/cve-triage`
|
|
- **Bibliotheque:** `/usr/lib/cve-triage/`
|
|
|
|
### Workflow
|
|
|
|
1. **Collecteur** (`collector.sh`):
|
|
- Collecte les paquets installes (opkg, dpkg, apk)
|
|
- Scanne les conteneurs LXC et images Docker
|
|
- Croise les references avec l'API NVD
|
|
|
|
2. **Analyseur** (`analyzer.sh`):
|
|
- Scoring de severite base sur CVSS
|
|
- Evaluation d'impact LocalAI (optionnel)
|
|
- Analyse des vecteurs d'attaque
|
|
|
|
3. **Recommandeur** (`recommender.sh`):
|
|
- Recommandations de correctifs
|
|
- Strategies d'attenuation
|
|
- Conseils de surveillance
|
|
|
|
4. **Applicateur** (`applier.sh`):
|
|
- Workflow d'approbation base sur une file
|
|
- Option d'application automatique (configurable)
|
|
- Capacite de rollback
|
|
|
|
### Configuration
|
|
|
|
```uci
|
|
config cve-triage 'main'
|
|
option enabled '1'
|
|
option scan_interval '3600'
|
|
option min_severity 'medium'
|
|
option auto_apply_patches '0'
|
|
option localai_analysis '1'
|
|
```
|
|
|
|
## Points d'Integration
|
|
|
|
### mitmproxy → CrowdSec
|
|
|
|
1. mitmproxy ecrit les logs de menaces JSON dans `/data/threats.log`
|
|
2. Le parseur CrowdSec `secubox-mitmproxy` extrait les champs
|
|
3. 8 scenarios evaluent la severite et decident la duree de ban
|
|
4. Le bouncer pare-feu applique les blocages IP
|
|
|
|
### mitmproxy → Triage CVE
|
|
|
|
1. Le champ CVE de la detection passe a l'agent de triage
|
|
2. Le triage correle avec l'API NVD
|
|
3. Genere les recommandations de remediation
|
|
4. Met a jour la sensibilite auto-ban si necessaire
|
|
|
|
### Boucle de Retroaction Auto-Ban
|
|
|
|
1. Les tentatives CVE haute severite declenchent des bans immediats
|
|
2. Les tentatives repetees depuis la meme IP escaladent la duree de ban
|
|
3. La protection liste blanche/endpoint WireGuard previent les faux positifs
|
|
4. Integration de la liste de blocage communautaire CrowdSec
|
|
|
|
## Emplacements des Fichiers
|
|
|
|
| Composant | Chemin | Objectif |
|
|
|-----------|--------|----------|
|
|
| Config WAF | `/etc/config/mitmproxy` | Parametres auto-ban |
|
|
| Regles WAF | `/srv/mitmproxy/waf-rules.json` | Definitions de motifs |
|
|
| Analytique | `/srv/mitmproxy/addons/secubox_analytics.py` | Moteur de detection |
|
|
| Log Menaces | `/data/threats.log` | Entree CrowdSec |
|
|
| Log Acces | `/var/log/secubox-access.log` | Toutes les requetes |
|
|
| Log Auto-ban | `/data/autoban-requests.log` | Decisions de ban |
|
|
| Scenarios | `/etc/crowdsec/scenarios/` | Regles CrowdSec |
|
|
| Triage CVE | `/usr/lib/cve-triage/` | Bibliotheque agent |
|
|
|
|
## Metriques & Surveillance
|
|
|
|
### Metriques de Sous-domaines
|
|
|
|
Export JSON temps reel: `/tmp/secubox-subdomain-metrics.json`
|
|
|
|
- Comptes de requetes par domaine
|
|
- Distribution des types de menaces
|
|
- Top 20 URIs par sous-domaine
|
|
- Statistiques basees sur les pays
|
|
|
|
### Limitation de Debit
|
|
|
|
```python
|
|
RATE_LIMITS = {
|
|
'path_scan': {'window': 60, 'max': 20},
|
|
'auth_attempt': {'window': 60, 'max': 10},
|
|
'bot_request': {'window': 60, 'max': 30},
|
|
'normal': {'window': 60, 'max': 100},
|
|
}
|
|
```
|
|
|
|
## Commandes
|
|
|
|
### Voir les menaces actives
|
|
```bash
|
|
# Menaces recentes
|
|
tail -f /data/threats.log | jq
|
|
|
|
# Log auto-ban
|
|
cat /data/autoban-requests.log
|
|
|
|
# Decisions CrowdSec
|
|
cscli decisions list
|
|
```
|
|
|
|
### Ban/deban manuel
|
|
```bash
|
|
# Bannir une IP pour 4 heures
|
|
cscli decisions add --ip 1.2.3.4 --duration 4h --reason "Ban manuel"
|
|
|
|
# Supprimer le ban
|
|
cscli decisions delete --ip 1.2.3.4
|
|
```
|
|
|
|
### Verifier l'etat
|
|
```bash
|
|
# Etat du WAF mitmproxy
|
|
mitmproxyctl status
|
|
|
|
# Etat CrowdSec
|
|
cscli metrics
|
|
|
|
# Etat Triage CVE
|
|
cve-triage status
|
|
```
|
|
|
|
## Voir Aussi
|
|
|
|
- [Configuration UCI mitmproxy](../package/secubox/secubox-app-mitmproxy/README.md)
|
|
- [Scenarios Personnalises CrowdSec](../package/secubox/secubox-app-crowdsec-custom/README.md)
|
|
- [Agent de Triage CVE](../package/secubox/secubox-cve-triage/README.md)
|