This rule detects potential compromise by matching network traffic or endpoint activity against four Internet of Things (IoT) indicators of compromise associated with unknown malware strains. Proactively hunting for these IOCs in Azure Sentinel is critical because unknown malware often lacks established behavioral signatures, making IOC-based detection essential for identifying stealthy intrusions before they escalate.
Malware Family: Unknown malware Total IOCs: 4 IOC Types: url, ip:port, sha256_hash
| Type | Value | Threat Type | First Seen | Confidence |
|---|---|---|---|---|
| ip:port | 89[.]125[.]66[.]231:7443 | botnet_cc | 2026-09-27 | 75% |
| url | hxxps://ibnuzubair.com/ | payload_delivery | 2026-09-27 | 90% |
| url | hxxps://www.bilisimzamani.net/ | payload_delivery | 2026-09-27 | 90% |
| sha256_hash | 00b4137aface054733925e229ff5db79413cf1d5972046303d99d18b6a67f658 | payload | 2026-09-27 | 75% |
// Hunt for network connections to known malicious IPs
// Source: ThreatFox - Unknown malware
let malicious_ips = dynamic(["89.125.66.231"]);
CommonSecurityLog
| where DestinationIP in (malicious_ips) or SourceIP in (malicious_ips)
| project TimeGenerated, SourceIP, DestinationIP, DestinationPort, DeviceAction, Activity
| order by TimeGenerated desc
// Hunt in Defender for Endpoint network events
let malicious_ips = dynamic(["89.125.66.231"]);
DeviceNetworkEvents
| where RemoteIP in (malicious_ips)
| project Timestamp, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName, ActionType
| order by Timestamp desc
// Hunt for access to known malicious URLs
// Source: ThreatFox - Unknown malware
let malicious_urls = dynamic(["https://ibnuzubair.com/", "https://www.bilisimzamani.net/"]);
UrlClickEvents
| where Url has_any (malicious_urls)
| project Timestamp, AccountUpn, Url, ActionType, IsClickedThrough
| order by Timestamp desc
// Hunt for files matching known malicious hashes
// Source: ThreatFox - Unknown malware
let malicious_hashes = dynamic(["00b4137aface054733925e229ff5db79413cf1d5972046303d99d18b6a67f658"]);
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 |
|---|---|
CommonSecurityLog | Ensure this data connector is enabled |
DeviceFileEvents | Ensure this data connector is enabled |
DeviceNetworkEvents | Ensure this data connector is enabled |
UrlClickEvents | Ensure this data connector is enabled |
Scenario: A security team deploys a new threat intelligence feed via a SIEM integration (e.g., Splunk or QRadar) that automatically creates detection rules or lookup tables for newly identified IOCs, including those from ThreatFox. If the “Unknown malware” IOCs are ingested as part of a bulk update or a test deployment, the system may log these as active detections before they are fully validated or whitelisted.
source=siem_ti_ingest or user=siem_admin).Scenario: An IT administrator performs a manual vulnerability scan or asset discovery using a tool like Tenable.io or Qualys, which may query or touch IOCs (such as specific file hashes or registry keys) associated with known or unknown malware families to verify patch levels or detect existing infections. This activity can trigger IOC-based detections if the scanner’s process matches the IOC criteria.
process_name=qualys_agent.exe, process_name=tenable_agent.exe) or from specific service accounts used for vulnerability management (e.g., user=svc_vuln_scan).Scenario: A DevOps team runs a scheduled job using Ansible or PowerShell to clean up temporary files or reset configurations on a staging server. If the cleanup script deletes or modifies files/keys that happen to match the IOCs for “Unknown malware” (e.g., a specific temp file hash or a registry key used for feature flags), the detection rule may fire.
parent_process=ansible.exe, parent_process=powershell.exe) and the