Initial commit: Bot Detector Dashboard for SOC Incident Response
🛡️ 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>
This commit is contained in:
73
deploy_classifications_table.sql
Normal file
73
deploy_classifications_table.sql
Normal file
@ -0,0 +1,73 @@
|
||||
-- =============================================================================
|
||||
-- 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;
|
||||
--
|
||||
-- =============================================================================
|
||||
Reference in New Issue
Block a user