This detection rule identifies adversary activity by monitoring network traffic and endpoint logs against six specific Indicators of Compromise (IOCs) linked to the Kuiper threat actor. Proactively hunting for these signals in Azure Sentinel is critical because early identification of Kuiper’s unique behavioral patterns allows the SOC team to isolate compromised assets before lateral movement or data exfiltration occurs.
Malware Family: Kuiper Total IOCs: 6 IOC Types: md5_hash, sha1_hash, sha256_hash
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| sha256_hash | 7d936e44f50cafb14afdc8ea652905f611db0f04f10da8feb5d5ba74bcbf5a22 | payload | 2026-07-18 | 95% |
| sha1_hash | 4d66fca32efec8db198b4ff11ed5bb653a39d6e8 | payload | 2026-07-18 | 95% |
| md5_hash | 52c1c5a26091c68f322fc44b0afcd6d0 | payload | 2026-07-18 | 95% |
| md5_hash | 3dd256518361ce5770b58c28b2847df5 | payload | 2026-07-18 | 95% |
| sha256_hash | 5cdb6a3810a5148518252110e51655297a6a9832f254f65f804b5a6fad1e3259 | payload | 2026-07-18 | 95% |
| sha1_hash | 358cafc8ac2911426b31c56cce308437d68b0db7 | payload | 2026-07-18 | 95% |
// Hunt for files matching known malicious hashes
// Source: ThreatFox - Kuiper
let malicious_hashes = dynamic(["7d936e44f50cafb14afdc8ea652905f611db0f04f10da8feb5d5ba74bcbf5a22", "4d66fca32efec8db198b4ff11ed5bb653a39d6e8", "52c1c5a26091c68f322fc44b0afcd6d0", "3dd256518361ce5770b58c28b2847df5", "5cdb6a3810a5148518252110e51655297a6a9832f254f65f804b5a6fad1e3259", "358cafc8ac2911426b31c56cce308437d68b0db7"]);
DeviceFileEvents
| where SHA256 in (malicious_hashes) or SHA1 in (malicious_hashes) or MD5 in (malicious_hashes)
| project Timestamp, DeviceName, FileName, FolderPath, SHA256, InitiatingProcessFileName
| order by Timestamp desc
| Sentinel Table | Notes |
|---|---|
DeviceFileEvents | Ensure this data connector is enabled |
Here are specific false positive scenarios for the ThreatFox: Kuiper IOCs detection rule in an enterprise environment, including suggested filters and exclusions:
Software Supply Chain Updates via Package Managers
kuiper binary or Docker images, triggering network connections to the exact IPs and domains listed in the 6 IOCs.10.20.50.0/24) or specific service accounts (e.g., svc-ansible-patch, wsus-admin). Additionally, filter out connections where the destination port is standard package registry ports (80, 443) and the User-Agent header contains “Ansible” or “WSUS”.CI/CD Pipeline Artifact Retrieval
env=prod-cicd or specific hostnames like jenkins-agent-01). Implement a filter to ignore traffic from these sources during standard build windows (e.g., 08:00–18:00 UTC) if the destination matches the Ku