↳ Source GitHubRègle analytiqueHigh

Whisper Security - Co-Hosted Malware Cluster Detection

Description

Identifies IP addresses that host multiple domains associated with malware. When an IP has more than 3 co-hosted domains and at least 3 of those domains are flagged as malware by Whisper threat intelligence, it strongly indicates compromised or adversary-controlled infrastructure.
Type de règle
Scheduled
Version
1.0.0
Statut déclaré
Available
Fréquence
1h
Période analysée
1d
Déclenchement
gt 0

Couverture MITRE déclarée

Sources déclarées

Métadonnées du fichier source. Aucune dépendance déduite du KQL.

Connecteurs

Types de données

Requête KQL

Requête originale, sans modification.

// MITRE ATT&CK: T1584.001 - Compromise Infrastructure: Domains
// Tactic: Resource Development
// Detects clusters of malware-hosting domains sharing the same IP infrastructure
let minCohostedCount = 3;
let minMalwareCoHosts = 3;
let cohostedInfra = WhisperInfraContext_CL
    | where TimeGenerated > ago(1d)
    | where cohostedCount > minCohostedCount
    | extend parsedIp = tostring(split(ipAddresses, ",")[0])
    | project indicator, parsedIp, cohostedCount, countries, registrar;
let malwareIndicators = WhisperThreatIntel_CL
    | where TimeGenerated > ago(1d)
    | where isMalware == true
    | project indicator, threatScore, threatLevel, feedNames;
cohostedInfra
    | join kind=inner (malwareIndicators) on indicator
    | summarize malwareCoHostCount = dcount(indicator), DnsDomains = make_set(indicator, 10), avgThreatScore = avg(threatScore), maxThreatScore = max(threatScore) by parsedIp, cohostedCount, countries, registrar
    | where malwareCoHostCount >= minMalwareCoHosts
    | extend DnsDomain = tostring(DnsDomains[0]), IPAddress = parsedIp
    | project TimeGenerated = now(), DnsDomain, IPAddress, malwareCoHostCount, cohostedCount, avgThreatScore, maxThreatScore, countries, registrar, DnsDomains

Entités déclarées

DNSIP

Contenus associés

Liens établis à partir des identifiants déclarés et des manifests des solutions.

Traçabilité de la source

GitHub

Les valeurs affichées proviennent des fichiers du dépôt Azure/Azure-Sentinel. Elles décrivent le modèle publié, pas la configuration de votre workspace.

Identifiant source
374a77f4-23ed-55dc-8441-8e47a1e079e9
Autres fichiers source 2Solutions/Whisper/Analytic Rules/CoHostedMalwareCluster.yamlsource ↗Solutions/Whisper/Data/Solution_Whisper.jsonsolution-membership ↗
GSTEP / SUIVI DU CATALOGUE

Ajouté au catalogue : 16 sept. 2026 · 05:49 UTC
Dernier changement observé : 16 sept. 2026 · 05:49 UTC

Dates de synchronisation GSTEP, distinctes des dates de publication du contenu source.