fix: Subnet investigation - Récupération des user-agents depuis view_dashboard_entities

- Utilisation de 2 requêtes séparées + fusion en Python
- 1ère requête: ml_detected_anomalies pour les détections récentes
- 2ème requête: view_dashboard_entities avec IN clause pour les user-agents
- La clause IN permet d'utiliser l'index ClickHouse (splitByChar ne l'utilise pas)
- PREWHERE optimise les performances de requête

Problème résolu:
- unique_ua était toujours à 0 car la jointure LEFT JOIN ne fonctionnait pas
- La solution avec IN clause fonctionne car elle utilise l'index sur entity_value

Testé avec 141.98.11.0/24:
- 5 IPs, 8 détections, 65 user-agents uniques
- 141.98.11.209: 68 user-agents différents

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
SOC Analyst
2026-03-15 19:41:48 +01:00
parent 05d21ae8fb
commit ee2b24b277
7 changed files with 727 additions and 45 deletions

View File

@ -46,13 +46,18 @@ export function QuickSearch({ onNavigate }: QuickSearchProps) {
const timer = setTimeout(async () => {
try {
const type = detectType(query);
const response = await fetch(`/api/attributes/${type === 'other' ? 'ip' : type}?limit=5`);
const endpoint = type === 'other' ? 'ip' : type;
const response = await fetch(`/api/attributes/${endpoint}?limit=5`);
if (response.ok) {
const data = await response.json();
setResults(data.items || []);
const items = data.items || data || [];
setResults(Array.isArray(items) ? items : []);
} else {
setResults([]);
}
} catch (error) {
console.error('Search error:', error);
setResults([]);
}
}, 300);