🛡️ 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>
74 lines
2.8 KiB
SQL
74 lines
2.8 KiB
SQL
-- =============================================================================
|
|
-- Table classifications - Dashboard Bot Detector
|
|
-- =============================================================================
|
|
-- Stocke les classifications des IPs pour l'apprentissage supervisé
|
|
--
|
|
-- Usage:
|
|
-- clickhouse-client --host test-sdv-anubis.sdv.fr --port 8123 \
|
|
-- --user default --password <votre_mot_de_passe> < deploy_classifications_table.sql
|
|
--
|
|
-- =============================================================================
|
|
|
|
USE mabase_prod;
|
|
|
|
-- =============================================================================
|
|
-- Table pour stocker les classifications des IPs
|
|
-- =============================================================================
|
|
|
|
CREATE TABLE IF NOT EXISTS mabase_prod.classifications
|
|
(
|
|
-- Identification
|
|
ip String,
|
|
|
|
-- Classification
|
|
label LowCardinality(String), -- "legitimate", "suspicious", "malicious"
|
|
tags Array(String), -- Tags associés
|
|
comment String, -- Commentaire de l'analyste
|
|
|
|
-- Métriques pour ML
|
|
confidence Float32, -- Confiance de la classification (0-1)
|
|
features String, -- JSON avec toutes les features
|
|
|
|
-- Métadonnées
|
|
analyst String, -- Nom de l'analyste
|
|
created_at DateTime DEFAULT now() -- Date de classification
|
|
)
|
|
ENGINE = MergeTree()
|
|
PARTITION BY toYYYYMM(created_at)
|
|
ORDER BY (created_at, ip)
|
|
SETTINGS index_granularity = 8192;
|
|
|
|
-- =============================================================================
|
|
-- Index pour accélérer les recherches par IP
|
|
-- =============================================================================
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_classifications_ip
|
|
ON TABLE mabase_prod.classifications (ip) TYPE minmax GRANULARITY 1;
|
|
|
|
-- =============================================================================
|
|
-- Vue pour les statistiques de classification
|
|
-- =============================================================================
|
|
|
|
CREATE VIEW IF NOT EXISTS mabase_prod.view_classifications_stats AS
|
|
SELECT
|
|
label,
|
|
count() AS total,
|
|
uniq(ip) AS unique_ips,
|
|
avg(confidence) AS avg_confidence,
|
|
min(created_at) AS first_classification,
|
|
max(created_at) AS last_classification
|
|
FROM mabase_prod.classifications
|
|
GROUP BY label;
|
|
|
|
-- =============================================================================
|
|
-- FIN
|
|
-- =============================================================================
|
|
--
|
|
-- Vérifier que la table est créée :
|
|
-- SELECT count() FROM mabase_prod.classifications;
|
|
--
|
|
-- Voir les statistiques :
|
|
-- SELECT * FROM mabase_prod.view_classifications_stats;
|
|
--
|
|
-- =============================================================================
|