Detections
Explore public detection logic contributed by the community across SIEM and rule languages.
135 detections
Filters
Last updated
All Time
Detection languages
55
42
22
10
3
Contributors
39
25
25
15
8
Categories
76
23
17
11
8
Platforms
88
37
17
10
3
Products / Services
10,680
9,761
6,694
4,418
3,744
MITRE Techniques
36
35
33
25
23
CVEs
6
3
3
3
1
IDS Classtypes
1
IDS Protocols
1
Detects algorithmically generated domain names at the resolver. Malware families
using a DGA cycle through many candidate domains to find their live controller, so
the resolver sees a burst of long, random-looking names, most of which fail to
resolve.
Resolver-level visibility covers every device that uses the resolver, including
those with no endpoint agent — appliances, IoT and unmanaged hosts.
Onboarding: INFOBLOX is ingested via Syslog (CEF) (Bloo extractor 155).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dns where sourcename='INFOBLOX' and action='DNS_QUERIED'
and len(query) > 30
| groupby srcip, query, recordtype, responsecode
using a DGA cycle through many candidate domains to find their live controller, so
the resolver sees a burst of long, random-looking names, most of which fail to
resolve.
Resolver-level visibility covers every device that uses the resolver, including
those with no endpoint agent — appliances, IoT and unmanaged hosts.
Onboarding: INFOBLOX is ingested via Syslog (CEF) (Bloo extractor 155).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dns where sourcename='INFOBLOX' and action='DNS_QUERIED'
and len(query) > 30
| groupby srcip, query, recordtype, responsecode
Detects a host generating an unusual rate of failed DNS resolutions. A high NXDOMAIN
rate is the signature of a client searching for something that mostly does not exist
— DGA malware hunting for its live controller, or tooling enumerating subdomains.
This complements the DGA detection: entropy catches the shape of the names, NXDOMAIN
rate catches the behaviour regardless of how the names look.
Onboarding: INFOBLOX is ingested via Syslog (CEF) (Bloo extractor 155).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dns where sourcename='INFOBLOX' and action='DNS_QUERIED'
and lower(responsecode) like '%nxdomain%'
| duration 10m
| groupby srcip
| select srcip, count(*) as cnt
| having cnt > 50
rate is the signature of a client searching for something that mostly does not exist
— DGA malware hunting for its live controller, or tooling enumerating subdomains.
This complements the DGA detection: entropy catches the shape of the names, NXDOMAIN
rate catches the behaviour regardless of how the names look.
Onboarding: INFOBLOX is ingested via Syslog (CEF) (Bloo extractor 155).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dns where sourcename='INFOBLOX' and action='DNS_QUERIED'
and lower(responsecode) like '%nxdomain%'
| duration 10m
| groupby srcip
| select srcip, count(*) as cnt
| having cnt > 50
Detects a pattern of lease denials consistent with DHCP starvation, where an attacker
requests leases until the pool is empty so that legitimate devices cannot obtain an
address. It is typically a precursor to a rogue DHCP server taking over address
assignment and redirecting traffic.
Onboarding: WIN-DHCP is ingested via Syslog (Bloo extractor 79).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dhcp where sourcename='WIN-DHCP' and action='IP_LEASE_DENIED'
| duration 10m
| groupby macaddress
| select macaddress, count(*) as cnt
| having cnt > 20
requests leases until the pool is empty so that legitimate devices cannot obtain an
address. It is typically a precursor to a rogue DHCP server taking over address
assignment and redirecting traffic.
Onboarding: WIN-DHCP is ingested via Syslog (Bloo extractor 79).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dhcp where sourcename='WIN-DHCP' and action='IP_LEASE_DENIED'
| duration 10m
| groupby macaddress
| select macaddress, count(*) as cnt
| having cnt > 20
Detects DNS tunnelling, where data is encoded into queries and answers against a
domain the attacker controls. TXT records carry the most payload per query, so a
high volume of TXT lookups beneath one parent domain is the characteristic shape.
Tunnelling is slow, which means it is usually evidence of a long-running compromise
rather than a recent one.
Onboarding: INFOBLOX is ingested via Syslog (CEF) (Bloo extractor 155).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dns where sourcename='INFOBLOX' and action='DNS_QUERIED'
and lower(recordtype) = 'txt'
| duration 1h
| groupby srcip
| select srcip, count(*) as cnt
| having cnt > 100
domain the attacker controls. TXT records carry the most payload per query, so a
high volume of TXT lookups beneath one parent domain is the characteristic shape.
Tunnelling is slow, which means it is usually evidence of a long-running compromise
rather than a recent one.
Onboarding: INFOBLOX is ingested via Syslog (CEF) (Bloo extractor 155).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dns where sourcename='INFOBLOX' and action='DNS_QUERIED'
and lower(recordtype) = 'txt'
| duration 1h
| groupby srcip
| select srcip, count(*) as cnt
| having cnt > 100
Detects a DHCP-driven DNS update for a hostname not present in the asset inventory.
Dynamic DNS registration lets a device choose the name under which it is reachable,
and an attacker can use that to impersonate a service or make a rogue host appear
legitimate to anything resolving by name.
Onboarding: WIN-DHCP is ingested via Syslog (Bloo extractor 79).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dhcp where sourcename='WIN-DHCP'
and action in ('DNS_UPDATE_REQUEST', 'DNS_UPDATED')
| groupby macaddress, srcip, user, resultcode
Dynamic DNS registration lets a device choose the name under which it is reachable,
and an attacker can use that to impersonate a service or make a rogue host appear
legitimate to anything resolving by name.
Onboarding: WIN-DHCP is ingested via Syslog (Bloo extractor 79).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dhcp where sourcename='WIN-DHCP'
and action in ('DNS_UPDATE_REQUEST', 'DNS_UPDATED')
| groupby macaddress, srcip, user, resultcode
Detects a DHCP lease request from a MAC address absent from the asset inventory. DHCP
sees every device that joins the network, including those with no agent, no domain
membership and no EDR — which makes it the only reliable place to catch unmanaged
hardware appearing on the wire.
Requires an inventory of known MAC addresses to compare against; without one this
detection has nothing to anchor to.
Onboarding: WIN-DHCP is ingested via Syslog (Bloo extractor 79).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dhcp where sourcename='WIN-DHCP' and action='IP_LEASED'
| groupby macaddress, srcip, user
sees every device that joins the network, including those with no agent, no domain
membership and no EDR — which makes it the only reliable place to catch unmanaged
hardware appearing on the wire.
Requires an inventory of known MAC addresses to compare against; without one this
detection has nothing to anchor to.
Onboarding: WIN-DHCP is ingested via Syslog (Bloo extractor 79).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dhcp where sourcename='WIN-DHCP' and action='IP_LEASED'
| groupby macaddress, srcip, user
Detects repeated lease denials for one MAC address. Denials occur when a device is
refused an address — commonly because it is not permitted on the segment — so a
device persistently retrying is attempting to join a network it has been excluded
from.
Onboarding: WIN-DHCP is ingested via Syslog (Bloo extractor 79).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dhcp where sourcename='WIN-DHCP' and action='IP_LEASE_DENIED'
| duration 1h
| groupby macaddress, resultcode
refused an address — commonly because it is not permitted on the segment — so a
device persistently retrying is attempting to join a network it has been excluded
from.
Onboarding: WIN-DHCP is ingested via Syslog (Bloo extractor 79).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dhcp where sourcename='WIN-DHCP' and action='IP_LEASE_DENIED'
| duration 1h
| groupby macaddress, resultcode
Detects one MAC address obtaining an unusual number of distinct leases. Legitimate
devices hold a lease and renew it. Rapid cycling suggests either MAC spoofing or a
device deliberately churning addresses to frustrate tracking and evade controls bound
to an IP.
Onboarding: WIN-DHCP is ingested via Syslog (Bloo extractor 79).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dhcp where sourcename='WIN-DHCP' and action='IP_LEASED'
| duration 1h
| groupby macaddress
| select macaddress, distinct_count(srcip)
| having distinct_count_col1 > 5
devices hold a lease and renew it. Rapid cycling suggests either MAC spoofing or a
device deliberately churning addresses to frustrate tracking and evade controls bound
to an IP.
Onboarding: WIN-DHCP is ingested via Syslog (Bloo extractor 79).
Integration guide: https://bloo.io/docs/hypercloud/syslog-connector
BQL (Bloo Query Language):
stream=dhcp where sourcename='WIN-DHCP' and action='IP_LEASED'
| duration 1h
| groupby macaddress
| select macaddress, distinct_count(srcip)
| having distinct_count_col1 > 5
Detects DNS resolution attempts for newly registered or suspicious top-level domains (e.g., .xyz, .top, .live) that mimic corporate Identity Provider (IdP) or Single Sign-On (SSO) login portals. This behavior is characteristic of Adversary-in-the-Middle (AiTM) phishing kits like EvilProxy or Tycoon2FA, intended to capture user session tokens. Note: This rule monitors for initial domain contact and should be correlated with subsequent authentication logs to identify potential session hijacking.
Detects potential DNS tunneling or command-and-control (C2) traffic by identifying abnormally long DNS query names, which often indicate encoded data channels, and suspicious usage of TXT or NULL DNS records, which are frequently used by tools like Cobalt Strike, dnscat2, and iodine for C2 communication.
Detects DNS query activity from processes commonly used as AI agent runtimes (e.g., python.exe, node.exe) toward domains characterized by DGA-like patterns, such as long alphanumeric strings or high-consonant density, which may indicate command-and-control communication.
Detects an abnormally high volume of unique DNS subdomain queries originating from a single source IP address within a short time window. This behavior is often indicative of automated reconnaissance techniques, such as subdomain brute-forcing or dictionary attacks, used to discover infrastructure or hidden services.
Detects high-entropy or unusually long encoded subdomain labels in DNS queries, which are characteristic of DNS tunneling tools like iodine, dnscat2, and dns2tcp used for command and control (C2) communication or data exfiltration over the DNS protocol.
This rule detects potential DNS tunneling activities often used for Command and Control (C2) communication. It monitors for high volumes of DNS requests involving records commonly abused for tunneling (TXT, NULL, CNAME) from a single host to a specific parent domain. It further identifies suspicious patterns characterized by long, high-entropy subdomain labels (>45 characters) and a high frequency of distinct labels, which are indicative of encoded C2 traffic.
Detects anomalous DNS traffic patterns indicative of malware Domain Generation Algorithms (DGA). The rule identifies multiple NXDOMAIN responses for domains exhibiting high-entropy character structures (high consonant-to-vowel ratios, random alphanumeric string patterns) originating from a single source IP within a short timeframe, which is a common indicator of C2 beaconing attempts.
Detects anomalous DNS activity characterized by high-frequency IP address rotation for a single domain within a 10-minute window. This behavior is indicative of fast-flux DNS techniques used by attackers to maintain C2 infrastructure and evade domain-based blocking or IP reputation filtering.
Detects DNS queries containing long, high-entropy subdomain labels, which are characteristic of DNS tunneling techniques. Adversaries use DNS tunneling to bypass network controls by embedding C2 communications within DNS protocol fields. This rule identifies suspicious query structures, specifically targeting extended length and high character diversity in subdomains while filtering out common CDN domains that exhibit similar structural behaviors.
Detects instances where the Firefox browser or its plugin container process initiates a DNS query for domains containing 'pdf.gusercontent.com', which is a known lookalike pattern used to masquerade as legitimate Google infrastructure for potential command and control or data exfiltration activities.
Detects instances where the system DNS process (dns.exe) on a domain controller performs recursive DNS resolution towards a set of external IP addresses associated with suspicious infrastructure (AS202412). The rule correlates this activity with recent network connections from common web browsers or system utilities (msedge.exe, svchost.exe) on the same host to identify potential proxying of malicious DNS queries.
Detects DNS queries to chattypetty.com, associated with the ChatGPT Custom GPT ClickFix campaign (Huntress reporting).
This is one of three logsource-scoped rules split from a combined KQL IOC hunt because Sigma only supports one logsource per rule.
IP/URL matching is covered by a separate network_connection rule; file-hash matching is covered by a separate process_creation rule.
This is one of three logsource-scoped rules split from a combined KQL IOC hunt because Sigma only supports one logsource per rule.
IP/URL matching is covered by a separate network_connection rule; file-hash matching is covered by a separate process_creation rule.
Detects DNS queries to chattypetty.com, associated with the ChatGPT Custom GPT ClickFix campaign (Huntress reporting).
This is one of three logsource-scoped rules split from a combined KQL IOC hunt because Sigma only supports one logsource per rule.
IP/URL matching is covered by a separate network_connection rule; file-hash matching is covered by a separate process_creation rule.
This is one of three logsource-scoped rules split from a combined KQL IOC hunt because Sigma only supports one logsource per rule.
IP/URL matching is covered by a separate network_connection rule; file-hash matching is covered by a separate process_creation rule.
Page 1 of 7



