🛡️ Dashboard complet pour l'analyse et la classification des menaces Fonctionnalités principales: - Visualisation des détections en temps réel (24h) - Investigation multi-entités (IP, JA4, ASN, Host, User-Agent) - Analyse de corrélation pour classification SOC - Clustering automatique par subnet/JA4/UA - Export des classifications pour ML Composants: - Backend: FastAPI (Python) + ClickHouse - Frontend: React + TypeScript + TailwindCSS - 6 routes API: metrics, detections, variability, attributes, analysis, entities - 7 types d'entités investigables Documentation ajoutée: - NAVIGATION_GRAPH.md: Graph complet de navigation - SOC_OPTIMIZATION_PROPOSAL.md: Proposition d'optimisation pour SOC • Réduction de 7 à 2 clics pour classification • Nouvelle vue /incidents clusterisée • Panel latéral d'investigation • Quick Search (Cmd+K) • Timeline interactive • Graph de corrélations Sécurité: - .gitignore configuré (exclut .env, secrets, node_modules) - Credentials dans .env (à ne pas committer) ⚠️ Audit sécurité réalisé - Voir recommandations dans SOC_OPTIMIZATION_PROPOSAL.md Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
30 KiB
30 KiB
🛡️ SOC Incident Response Dashboard - Réorganisation Optimisée
🎯 Objectif
Optimiser le dashboard pour la réponse aux incidents en minimisant le nombre de clics et en maximisant l'information contextuelle pour les analystes SOC.
📋 PROBLÈMES ACTUELS IDENTIFIÉS
❌ Problèmes de navigation
- Trop de clics pour atteindre l'information critique (5-7 clics moyens)
- Information fragmentée entre différentes vues
- Pas de vue "Incident" consolidée
- Recherche non priorisée pour les cas d'usage SOC
❌ Problèmes d'ergonomie SOC
- Pas de timeline d'incident visuelle
- Pas de scoring de risque visible immédiatement
- Classification trop enfouie (au bout de 5 panels)
- Pas de vue "comparaison" avant/après classification
✅ NOUVELLE ARCHITECTURE PROPOSÉE
Vue d'ensemble réorganisée
┌─────────────────────────────────────────────────────────────────────────────┐
│ 🚨 SOC DASHBOARD - INCIDENT RESPONSE │
├─────────────────────────────────────────────────────────────────────────────┤
│ [🔍 QUICK SEARCH: IP / JA4 / ASN / Host] [🎯 PRIORITÉS] [⏰ TIMELINE] │
└─────────────────────────────────────────────────────────────────────────────┘
│
├──▶ /incidents (NOUVEAU - Vue principale SOC)
│
├──▶ /investigate (Recherche avancée)
│
└──▶ /threat-intel (Base de connaissances)
🔄 NOUVELLES PAGES PRINCIPALES
1. /incidents - Vue Incident (REMPPLACE Dashboard)
Objectif: Vue immédiate des incidents actifs prioritaires
┌─────────────────────────────────────────────────────────────────────────────┐
│ 🚨 INCIDENTS ACTIFS (24h) │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 📊 MÉTRIQUES CRITIQUES │
│ ┌──────────────┬──────────────┬──────────────┬──────────────┐ │
│ │ 🔴 CRITICAL │ 🟠 HIGH │ 🟡 MEDIUM │ 📈 TREND │ │
│ │ 45 │ 120 │ 340 │ +23% │ │
│ │ +12 depuis │ +34 depuis │ -15 depuis │ vs 24h prev │ │
│ │ 1h │ 1h │ 1h │ │ │
│ └──────────────┴──────────────┴──────────────┴──────────────┘ │
│ │
│ 🎯 INCIDENTS PRIORITAIRES (Auto-clusterisés) │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ 🔴 INCIDENT #INC-2024-0314-001 Score: 95/100 │ │
│ │ ├─ 15 IPs du subnet 192.168.1.0/24 (CN, OVH) │ │
│ │ ├─ JA4: t13d190900_... (50 IPs) │ │
│ │ ├─ 100% Bot UA (python-requests) │ │
│ │ ├─ Cible: /api/login (85% des requêtes) │ │
│ │ └─ [🔍 Investiguer] [📊 Timeline] [🏷️ Classifier] │ │
│ ├────────────────────────────────────────────────────────────────────┤ │
│ │ 🟠 INCIDENT #INC-2024-0314-002 Score: 78/100 │ │
│ │ ├─ 89 IPs, 12 pays, ASN: Amazon AWS │ │
│ │ ├─ JA4 rotation: 8 fingerprints │ │
│ │ ├─ 60% Script UA │ │
│ │ └─ [🔍 Investiguer] [📊 Timeline] [🏷️ Classifier] │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │
│ 🗺️ CARTE DES MENACES (Géolocalisation) │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ [Carte interactive avec clusters par pays] │ │
│ │ 🇨🇳 CN: 45% 🇺🇸 US: 23% 🇩🇪 DE: 12% 🇫🇷 FR: 8% Autres: 12% │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │
│ 📈 TIMELINE DES ATTAQUES (24h) │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ [Graphique temporel avec pics annotés] │ │
│ │ 00h 04h 08h 12h 16h 20h 24h │ │
│ │ │ │ │ │ │ │ │ │ │
│ │ │ 🟡 │ 🟢 │ 🟠 │ 🔴 │ 🟠 │ 🟡 │ │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │
│ 🔥 TOP ACTIFS (Dernière heure) │
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ # IP JA4 ASN Pays Score Hits/s │ │
│ │ 1 192.168.1.100 t13d... OVH 🇨🇳 95 450 │ │
│ │ 2 10.0.0.50 9dc9... AWS 🇺🇸 88 320 │ │
│ │ 3 172.16.0.23 a1b2... Google 🇩🇪 82 280 │ │
│ └────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Actions rapides depuis cette vue:
- 🔍 Investiguer → Ouvre panel latéral sans quitter la vue
- 📊 Timeline → Voir l'historique complet de l'incident
- 🏷️ Classifier → Classification rapide (1 clic)
- 📤 Exporter → Export IOC (IPs, JA4, UA)
2. /investigate - Investigation Avancée (NOUVEAU)
Object: Recherche multi-critères pour investigation proactive
┌─────────────────────────────────────────────────────────────────────────────┐
│ 🔍 INVESTIGATION AVANCÉE │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ [🔍 Recherche: IP, JA4, ASN, Host, UA, CIDR] │
│ │
│ FILTRES RAPIDES │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Menace: [🔴 CRITICAL] [🟠 HIGH] [🟡 MEDIUM] [🟢 LOW] [Tous] │ │
│ │ Modèle: [✓ Complet] [✓ Applicatif] │ │
│ │ Temps: [1h] [6h] [24h] [7j] [30j] [Personnalisé] │ │
│ │ Pays: [🇨🇳 CN] [🇺🇸 US] [🇷🇺 RU] [🇫🇷 FR] [Tous] │ │
│ │ ASN: [OVH] [AWS] [Google] [Azure] [Tous] │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ RÉSULTATS (Tableau enrichi) │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ ☐ │ IP │ JA4 │ Host │ ASN │ Pays │ ⚡Score │ 📊Hits │ 🏷️Tags │ ⚡ │ │
│ │───┼────┼─────┼──────┼─────┼──────┼─────────┼────────┼────────┼────│ │
│ │ ☐ │ 🔴 │ 🔴 │ API │ OVH │ 🇨🇳 │ 95 │ 450 │ 🤖 Bot │ ⚡ │ │
│ │ ☐ │ 🟠 │ 🟡 │ Web │ AWS │ 🇺🇸 │ 78 │ 320 │ 🕷️ Scr │ ⚡ │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ ACTIONS EN MASSE │
│ [🏷️ Taguer sélection] [📤 Export IOC] [🚫 Blacklister] [📊 Rapport] │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
3. /incident/:id - Vue Incident Détaillée (NOUVEAU)
Objectif: Vue complète d'un incident clusterisé
┌─────────────────────────────────────────────────────────────────────────────┐
│ 🔴 INCIDENT #INC-2024-0314-001 Score: 95/100 │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 📊 RÉSUMÉ │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ Période: 14/03 08:00 - 14/03 14:00 (6h) │ │
│ │ IPs impliquées: 15 (subnet 192.168.1.0/24) │ │
│ │ Total requêtes: 45,234 │ │
│ │ Cible principale: /api/login (85%) │ │
│ │ Classification: 🤖 Bot Network - Scraping │ │
│ │ Analyste: En attente │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
│ │
│ 🗺️ GRAPH DE CORRÉLATION (NOUVEAU) │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ [Subnet 192.168.1.0/24] │ │
│ │ │ │ │
│ │ ┌──────┴──────┐ │ │
│ │ ▼ ▼ │ │
│ │ [JA4: t13d...] [JA4: 9dc9...] │ │
│ │ │ │ │ │
│ │ └──────┬──────┘ │ │
│ │ ▼ │ │
│ │ [python-requests/2.28] │ │
│ │ │ │ │
│ │ ┌──────┴──────────────────┐ │ │
│ │ ▼ ▼ │ │
│ │ [/api/login] [/api/users] │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
│ │
│ 📈 TIMELINE DÉTAILLÉE │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ [Graphique avec événements annotés] │ │
│ │ 08:00 🟢 Détection initiale │ │
│ │ 09:15 🟠 Escalade (100 req/s) │ │
│ │ 10:30 🔴 Pic (450 req/s) │ │
│ │ 11:00 🟡 Stabilisation │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
│ │
│ 🎯 ENTITÉS IMPLiquÉES │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ IPs (15) │ JA4 (2) │ UA (1) │ Hosts (2) │ │
│ │ ───────────────── │ ──────────── │ ──────────── │ ───────────────── │ │
│ │ • 192.168.1.100 │ • t13d... │ • python- │ • api.example.com │ │
│ │ • 192.168.1.101 │ • 9dc9... │ requests │ • web.example.com │ │
│ │ • 192.168.1.102 │ │ │ │ │
│ │ [+12 autres] │ │ │ │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
│ │
│ 🏷️ CLASSIFICATION │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ Label: [🤖 MALICIOUS] │ │
│ │ Tags: [scraping] [bot-network] [hosting-asn] [country-cn] │ │
│ │ Confiance: 95% │ │
│ │ Analyste: [__________] │ │
│ │ Comment: [________________________________] │ │
│ │ [💾 Sauvegarder] [📤 Export IOC] [📊 Rapport PDF] │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
│ │
│ 📝 NOTES D'INCIDENT │
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │ [Timeline des actions analystes] │ │
│ │ 14/03 10:45 - User1: Classification MALICIOUS │ │
│ │ 14/03 11:00 - User1: Export IOC vers firewall │ │
│ │ [➕ Ajouter une note] │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
4. /threat-intel - Base de Connaissances (NOUVEAU)
Objectif: Historique et recherche dans les classifications
┌─────────────────────────────────────────────────────────────────────────────┐
│ 📚 THREAT INTELLIGENCE │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 🔍 [Recherche: IP, JA4, Tag, Commentaire, Analyste] │
│ │
│ STATISTIQUES │
│ ┌──────────────┬──────────────┬──────────────┬──────────────┐ │
│ │ 🤖 Malicious │ ⚠️ Suspicious│ ✅ Legitimate│ 📊 Total │ │
│ │ 1,234 │ 2,567 │ 8,901 │ 12,702 │ │
│ └──────────────┴──────────────┴──────────────┴──────────────┘ │
│ │
│ CLASSIFICATIONS RÉCENTES │
│ ┌─────────────────────────────────────────────────────────────────────┐ │
│ │ Date │ Entité │ Valeur │ Label │ Tags │ │
│ │────────────│───────────│───────────────│───────────│───────────────│ │
│ │ 14/03 11:0 │ IP │ 192.168.1.100 │ 🤖 Malic. │ 🤖🕷️☁️ │ │
│ │ 14/03 10:5 │ JA4 │ t13d... │ ⚠️ Suspic. | 🤖🔄 │ │
│ │ 14/03 10:3 │ IP │ 10.0.0.50 │ ✅ Legit. | ✅🏢 │ │
│ └─────────────────────────────────────────────────────────────────────┘ │
│ │
│ TOP TAGS (30j) │
│ [scraping: 234] [bot-network: 189] [hosting-asn: 156] [scanner: 123] │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
🎯 WORKFLOWS OPTIMISÉS
Workflow 1: Réponse à incident (5 clics → 2 clics)
AVANT:
Dashboard → Détections → Filtre CRITICAL → Clic IP → Details → Investigation → Classification
(7 clics)
MAINTENANT:
/incidents → Incident #1 → [Panel latéral] → Classifier
(2 clics)
Workflow 2: Investigation d'IP (6 clics → 1 clic)
AVANT:
Dashboard → Détections → Recherche IP → Clic → Details → Investigation
(6 clics)
MAINTENANT:
[Barre de recherche globale] → IP → [Panel latéral complet]
(1 clic + search)
Workflow 3: Classification en masse (nouvelle fonctionnalité)
/investigate → Filtre → Sélection multiple → [Action en masse] → Taguer/Exporter
🔧 COMPOSANTS À CRÉER
1. Panel Latéral d'Investigation (Slide-over)
// Composant à ajouter: InvestigationPanel.tsx
// S'ouvre par dessus n'importe quelle page
// Affiche:
// - Stats rapides de l'entité
// - Corrélations principales
// - Actions rapides (Classifier, Export, Blacklister)
// - Historique des classifications
2. Graph de Corrélations
// Composant à ajouter: CorrelationGraph.tsx
// Visualisation graphique des relations:
// IP → JA4 → UA → Hosts → Paths
// Utiliser D3.js ou React Flow
3. Timeline Interactive
// Composant à ajouter: IncidentTimeline.tsx
// Timeline horizontale avec:
// - Events annotés
// - Zoomable
// - Filtrable par type d'événement
4. Quick Search Bar
// Composant à ajouter: QuickSearch.tsx
// Barre de recherche globale avec:
// - Auto-complete
// - Détection de type (IP, JA4, CIDR, etc.)
// - Historique des recherches
// - Raccourcis clavier (Cmd+K)
5. Incident Clusterizer
// Backend: /api/incidents/clusters
// Algorithme de clustering automatique:
// - Par subnet /24
// - Par JA4
// - Par UA
// - Par pattern temporel
📊 NOUVELLES API À CRÉER
# Backend routes à ajouter
# 1. Incidents clustering
GET /api/incidents/clusters
→ Retourne les incidents auto-clusterisés
GET /api/incidents/:id
→ Détails complets d'un incident
POST /api/incidents/:id/classify
→ Classification rapide
# 2. Threat Intel
GET /api/threat-intel/search
→ Recherche multi-critères
GET /api/threat-intel/statistics
→ Stats de classification
# 3. Quick actions
POST /api/actions/blacklist
→ Ajout à blacklist
POST /api/actions/export-ioc
→ Export IOC (STIX/TAXII)
# 4. Correlation graph
GET /api/correlation/graph?ip=...
→ Retourne graphe de corrélations
🎨 AMÉLIORATIONS UX
1. Code couleur cohérent
🔴 CRITICAL / MALICIOUS → Rouge (#EF4444)
🟠 HIGH / SUSPICIOUS → Orange (#F59E0B)
🟡 MEDIUM → Jaune (#EAB308)
🟢 LOW / LEGITIMATE → Vert (#10B981)
🔵 INFO → Bleu (#3B82F6)
2. Raccourcis clavier
Cmd+K → Quick search
Cmd+I → Voir incidents
Cmd+E → Export sélection
Cmd+F → Filtrer
Esc → Fermer panel
3. Indicateurs visuels
⚡ Score de risque (0-100)
🔥 Trend (vs période précédente)
📊 Volume (hits/s)
🏷️ Tags (couleur par catégorie)
📈 MÉTRIQUES DE PERFORMANCE
Objectifs de réduction
| Métrique | Actuel | Cible | Gain |
|---|---|---|---|
| Clics pour classification | 7 | 2 | 71% |
| Temps investigation IP | 45s | 10s | 78% |
| Pages pour vue complète | 5 | 1 | 80% |
| Actions en masse | 0 | ✓ | NEW |
🚀 PLAN DE MIGRATION
Phase 1: Quick wins (1 semaine)
- Ajouter Quick Search bar
- Créer panel latéral d'investigation
- Ajouter raccourcis clavier
- Améliorer page /incidents
Phase 2: Core features (2 semaines)
- Créer système de clustering auto
- Développer graph de corrélations
- Implémenter timeline interactive
- Ajouter actions en masse
Phase 3: Advanced (2 semaines)
- Base Threat Intelligence
- Export IOC (STIX/TAXII)
- Rapports PDF auto
- Intégration SIEM
📝 RECOMMANDATIONS FINALES
Pour les analystes SOC
- Prioriser par score de risque - Ne pas tout investiguer
- Utiliser le clustering - Voir les patterns, pas juste les IPs
- Classifier rapidement - Même avec confiance moyenne
- Exporter les IOC - Automatiser la réponse
Pour les développeurs
- Garder l'état dans l'URL - Pour partage et refresh
- Panel latéral > Navigation - Moins de context switching
- Auto-refresh intelligent - Seulement si page visible
- Optimiser requêtes ClickHouse - Agrégations pré-calculées
Pour la sécurité
- Audit logs - Tracker toutes les actions analystes
- RBAC - Rôles (Analyste, Senior, Admin)
- Rate limiting - Par utilisateur
- Session timeout - 15min d'inactivité
🎯 CONCLUSION
Cette réorganisation transforme le dashboard d'un outil de visualisation en un outil de réponse aux incidents, réduisant considérablement le temps de traitement et améliorant l'efficacité des analystes SOC.
Gain estimé: 70% de temps gagné sur les investigations courantes.