Navigation Reference

The homepage search spans detection rules and events/audit logs/record types. Use the filter dropdowns below the search bar (Type / Vendor / Tactic / More) for the most common filters, or type operators directly in the search box.

Shared behaviors#

Every operator takes the form name:value. These rules apply across the operators, so the tables below do not repeat them.

Negation#

Prefix a negatable operator with - to exclude its matches, for example tactic:execution -vendor:splunk. Negation stacks and refines a query. You can also pair it with a positive term. A - on a bare word (-foo) stays free text. A comma list under a negation excludes each alternative (-vendor:sigma,elastic drops both), and negation validates all-or-nothing. One invalid alternative keeps the whole token in free text instead of a partial exclusion.

Every operator negates, including the facet operators, the list operators, the indicator operators, and the semantic labels. An alias negates in the same bucket as its canonical form (-ta:execution is -tactic:execution). -type:rules returns every result kind except rules, -has:sample equals no:sample, -no:sample equals has:sample, and -like:slug drops the seed rule together with its equivalent, stricter, and broader relatives.

Standalone -kind: / -field: / -value: (with no positive field:, value:, or kind: in the query) exclude at rule level. They drop every rule carrying a matching predicate leaf, so type:rules -kind:is_null lists the rules that never null-check. Alongside a positive indicator filter they instead refine which leaves count as a match.

Search operators#

The tables share three columns. Operator is the token you type, with its alias in parentheses where one exists. Argument is what follows the colon. Effect is what the operator returns.

Scope#

OperatorArgumentEffect
type:events, rules, providers, all (default)Restrict results to one type. type:rules with no other term browses the whole rule corpus
vendor:a vendor value (see Vendor values)Filter rules to one or more detection vendors. An unrecognized item leaves the whole token in free text

MITRE ATT&CK#

OperatorArgumentEffect
tactic: (ta:)tactic slug, display name, or TA-id (credential_access, TA0006)Rules tagged with the tactic. In ATT&CK v19, TA0005 is stealth (legacy defense_evasion folds onto it) and TA0112 is defense_impairment
technique: (tech:)technique ID (T1003, T1003.001)Rules tagged with the technique

Severity#

OperatorArgumentEffect
severity: (sev:)critical, high, medium, low, informational (info)Rules at the given severity

Rule structure#

OperatorArgumentEffect
correlation:single_event, sequence, alternatives, alternatives_cross_log, all_required, correlatedRules of that correlation shape
with:an event ID (stackable)Rules that bind the event ID, including single-event rules. with:4624 with:4769 requires both. with:4624,4769 binds either
has: / no:timewindow, threshold, newtermsRule-structure flags. has:timewindow requires a time window, has:threshold requires a threshold-cardinality rule, and has:newterms requires an Elastic new-terms baseline. no: inverts each flag
like:a rule slugRules in the same canonical-form equivalence class or a subsumption pair with the seed. Cards label each as equivalent, stricter, or broader. For example like:okta_api_token_created returns the Sigma seed rule okta_api_token_created plus Panther's okta_api_key_created labeled stricter

Predicate fields#

These return rule cards and follow the list-operator comma rule above. Occurrences AND across the operator, and a comma list within one occurrence ORs.

OperatorArgumentEffect
uses:a field name (substring, stackable)Rules whose predicate tree touches the field (any value, any kind). Compare field:, which also narrows each rule card to the matching leaf and adds indicator cards
excludes:a field name (substring, stackable)Rules with a top-level not() clause on the field. This is the community's FP-whitelist tradecraft, per field
by: (groupby:)a field name (substring, stackable)Rules whose group_by_keys contain the term (case-insensitive)

Rule body#

body: is a deep full-text search over each rule's raw body/source text (the query as authored, including comments and syntax that never lands in the predicate tree), not just the parsed predicates that uses: / field: / value: search. Matching is exact-token, not substring. The index tokenizes on lowercased runs of 2+ alphanumeric or underscore characters, so body:mimikatz matches a rule whose body contains the standalone token mimikatz but not mimikatz2. The token index is a separate artifact that loads on the first body: query rather than shipping with the base search bundle.

OperatorArgumentEffect
body:a token (stackable)Rules whose raw source text contains the token. body:mimikatz,sekurlsa is either-or. body:mimikatz body:sekurlsa requires both

Indicators#

The field: / value: / indicator: operators search detection-rule predicates, answering the question "has anyone written a rule for this IOC?" They drive two result kinds at once. The indicator tier shows one card per field+value pair, ranked by rule count. Each card shows the predicate kind, the total rule count with vendor breakdown, and the first 5 contributing rules. The card's +N more button expands the rest in place, so every contributing rule is one click away. The rule tier narrows rule cards to those carrying a predicate leaf that matches the filter (the card's matching-indicators line shows which leaf matched).

The two result kinds have different inclusion rules. The search returns a rule card when that rule has a matching predicate, even if no other rule uses the same field, predicate kind, and value. It returns an indicator card only when at least two rules use the same canonical field, predicate kind, and value, so indicator cards are not a complete list of every predicate or monitored value in the matching rules. When a rule appears without a corresponding indicator card, use its matching-predicates line or Show stages & exclusions to inspect that rule. To extract every distinct value selected by the complete query, use Copy matching values in the results toolbar.

OperatorArgumentEffect
field:a field name (quote for exact, field:"Image")Predicate field. Substring + *-glob by default, so field:Image also matches ParentImage. An unquoted comma list is an OR-group over field names (field:Image,ParentImage matches either), while a quoted value stays a single literal field name
value:a value (quote for exact or for spaces, value:"net user")Predicate value. Substring + *-glob by default (value:*mimikatz*). Never comma-split, since a real predicate value can carry a literal comma. A comma-bearing value that returns nothing gets called out in the status line, in case the comma was meant as an OR-group
indicator:F=V (indicator:Image=*\powershell.exe)Shorthand for field:F value:V. Quote either half for an exact match. Neither half is comma-split
kind:a predicate kind (see Predicate kinds)Filter by that predicate kind. The query ignores an unknown alternative beside a known one. The diagnostic fires only when every alternative is unknown

kind: / field: / value: also narrow rule cards to those carrying a matching predicate leaf, ANDing with every other structural filter. For example vendor:elastic kind:cidr_match returns Elastic rules with a cidr_match leaf, and type:rules kind:is_null returns rules with an is_null leaf. They drive the indicator tier in parallel, and the card's matching-indicators line shows which leaf matched.

Curated semantic labels#

Four operators tag each rule by what its detection logic is about. They are the identity involved, the permission or access scope concerned, the resource inspected, and the operation performed. The site derives them from structured rule signals (parsed predicate fields, values, providers, platforms, and correlation keys), but the labels themselves are curated interpretations, not native IR properties. operation:public_exposure, for example, recognizes specific positive rule signals that indicate a resource was made public. There is no universal IR node named "public exposure."

Use these operators to discover related detection families across vendors, then validate a promising result with its matching predicates or a more direct field:, value:, kind:, or uses: query. A missing label does not prove the rule cannot detect the behavior, and a matching label does not make every rule interchangeable. A single rule commonly carries several labels. For example an LSASS-dump rule is resource:credential, and an Entra guest invite can be identity:external operation:account_lifecycle.

These operators filter rule cards only. Values are a closed vocabulary that autocomplete lists in full. A few curated aliases fold to the canonical value (spnservice_principal, guestexternal, adminadmin_role, kmscrypto_key, secretcredential, podworkload, login/signinauthentication, mfamfa_change).

OperatorArgumentEffect
identity:an identity valueRules whose logic involves that actor or target identity type
permission:a permission valueRules involving that permission grant or access scope
resource:a resource valueRules whose inspected object is that resource type
operation:an operation valueRules performing that security-relevant operation

Platform & domain#

OperatorArgumentEffect
platform: (plat:)one of the locked 19-value platform vocabulary (windows, linux, macos, cross-platform, aws, azure, gcp, m365, intune, google-workspace, okta, github, onepassword, kubernetes, network, web, saas, identity, application)Rules targeting that platform (a rule may carry several)
domain: (dom:)endpoint, cloud, identity, saas, container, network, web, applicationRules in that detection domain

Event attributes#

The "More" panel exposes six of these as three-way selects (any, yes, no) rather than checkboxes. Choosing yes writes has:<flag> into the query, no writes no:<flag>, and any removes the token. You can also type any event flag inline, including ones the panel does not expose.

OperatorArgumentEffect
has: / no:an event flag (see Event flags)Events that have (has:) or lack (no:) the attribute

Value reference#

The enumerated vocabularies referenced above. Each table pairs the canonical Value (with its alias in parentheses where one exists) with its Meaning.

Vendor values#

Used with vendor:.

ValueMeaning
sigmaSigma
elasticElastic
splunk (spl)Splunk
kusto (kql, sentinel, defender)Kusto (Microsoft Sentinel + Defender XDR)
chronicle (secops)Chronicle (Google SecOps)
pantherPanther
mql (sublime)Sublime MQL

Predicate kinds#

Used with kind:. The kind is the canonical predicate operator (how a rule matches a value), normalized across vendor lingo (kind:contains covers both Sigma's |contains modifier and Splunk's contains function).

ValueMeaning
containsSubstring match (folds the contains and match kinds together)
eqExact equality
starts_withPrefix match
ends_withSuffix match
regex_match (regex)Regular-expression match
cidr_match (cidr)IP / CIDR range match
wildcardWildcard / glob match
inMembership in a value set
neNot-equal
gt / lt / ge / leNumeric comparators
length_compareString / array length comparison (flags suspiciously long or empty fields)

For example value:10.0.0.0/8 kind:cidr_match, field:Image value:c:\windows\ kind:starts_with, field:CommandLine kind:regex, kind:in field:process_name.

is_null / is_not_null narrow rule cards and produce presence indicator cards. kind:is_null lists the fields the corpus null-checks (with rule counts and vendor breakdown). Because is_null / is_not_null carry no value, the card shows just the field and the kind. like is its own vendor-native kind (a SQL-style LIKE pattern, typed literally). It narrows rule cards, but the indicator tier does not carry it. The inverse holds for macro, length_compare, and func_call. They match indicator cards only, never rule cards, because the rule tier deliberately drops those leaf kinds as non-IoC structure. cross_field_compare is value-bearing but rare, and a field/kind/value combination used by only one rule does not produce an indicator card.

Identity values#

Used with identity:.

ValueMeaning
applicationAn OAuth application / app-registration actor
assumed_roleA temporary-credential role session (AWS AssumeRole, web identity)
externalA guest, cross-tenant B2B, or outside-collaborator identity
rootThe root / superuser account (AWS Root, UID 0, macOS/ESXi root)
service_accountA service account (GCP IAM SA, Kubernetes ServiceAccount, Linux daemon)
service_principalAn Entra service principal / app registration
userA named user identity

Permission values#

Used with permission:.

ValueMeaning
admin_roleA full-admin role or permission set (Global Admin, AdministratorAccess, Entra tier-0 roles)
application_roleAn Entra application-role assignment
wildcard_grantA wildcard (*) resource or principal in an IAM / resource policy
pass_roleThe AWS iam:PassRole permission
ews_mail_accessThe EWS.AccessAsUser.All mailbox-access permission
full_access_as_appThe full_access_as_app application permission
mail_readThe Graph Mail.Read scope
mail_readwriteThe Graph Mail.ReadWrite scope
mail_sendThe Graph Mail.Send scope

admin_role and application_role also include BloodHound Enterprise attack-path findings, which are computed posture ("a principal can reach that role"), not an observed grant.

Resource values#

Used with resource:.

ValueMeaning
credentialCredential-bearing material (LSASS/SAM/NTDS/DPAPI, cloud keys & secrets, credential files)
crypto_keyA KMS / Key Vault cryptographic key
storageObject storage (S3 bucket, GCS, Azure blob container)
fileA file operated on (download / upload / create / delete / modify)
workloadA container / serverless workload (K8s pod, container EDR, Lambda, Cloud Functions)
computeA VM / compute instance (Azure VM, AWS EC2, GCP instance, ESXi VM)
snapshotA disk / DB snapshot (AWS EBS/RDS, Azure/GCP disk snapshot)
network_configA network-boundary or firewall config (security groups, NACLs, netsh, iptables)
network_destinationA network destination as the inspected object (C2 host, malicious domain, beacon)
scheduled_taskA scheduled task / cron job (schtasks, TaskCache, crontab, K8s CronJob)
persistence_locationAn autostart location (registry Run keys, Startup folder, systemd unit, launchd)
writable_directoryA world-writable / attacker-writable directory (/tmp, /dev/shm, curated Windows dirs)
kernel_moduleA kernel module / driver (insmod/modprobe, Windows .sys driver load)
mailboxA mailbox / mail folder (inbox rules, EWS, Graph mailFolders)
emailAn email message object
ci_workflowA GitHub Actions workflow_run / workflow_job
branch_protectionA GitHub branch-protection rule / ruleset

credential also includes BloodHound Enterprise attack-path findings (LAPS/gMSA read, DCSync, Kerberoast), which are computed posture, not an observed access.

Operation values#

Used with operation:.

ValueMeaning
authenticationA sign-in / logon, including failed-auth and brute-force
permission_grantA role or permission granted to a principal
policy_changeAn access-control / security policy object changed
account_lifecycleA user / service / guest account created or deleted
credential_creationNew credential material minted (access key, service-account key, password reset)
mfa_changeAn MFA factor enrolled, reset, disabled, or bypassed
federation_changeAn IdP federation / SSO trust configuration changed
oauth_consentAn OAuth application consent granted
mail_accessA mailbox / message accessed (MailItemsAccessed, AdminMailAccess)
mailbox_ruleAn inbox / transport forwarding rule created or modified
interactive_accessAn interactive / remote-shell session (K8s exec, RDP, pty shell, SSM)
impersonationOne identity acting as another (Okta/K8s/GCP/Exchange impersonation)
service_tamperA defensive service or security control stopped / disabled / tampered (T1562)
logging_tamperAn audit / detection logging control disabled or deleted
public_exposureA resource made publicly / anonymously reachable
external_sharingA resource shared externally / via an anonymous link
secret_accessA stored secret read / retrieved
data_deletionDestructive / bulk data deletion (bucket/object delete, BigQuery destructive, device wipe)
privileged_workloadA privileged container / pod (hostPath, host namespace, added capabilities)
cryptominingCryptomining activity (mining pools, stratum, miner processes)

Event flags#

Used with has: / no:. has: requires the flag, and no: excludes it.

ValueMeaning
sampleEvents with real .evtx sample data
fieldsEvents with human-written field descriptions
notesEvents with community analyst notes
refsEvents with external reference links
traceTrace events from MOF-based providers
3rdpartyEvents from non-Microsoft vendors
ruleEvents with any detection rule
patternEvents that link to detection patterns
descriptionEvents with a prose description
pageEvents with their own canonical page
sigma / elastic / splunk / kusto / chronicleEvents with rules from that specific vendor (the vendor value aliases above work here too)

Flag values comma-split (has:sigma,threshold sets both) and validate all or nothing, so an unknown flag keeps the whole token in free text. With type:rules, the event flags return the rule set unfiltered and the status line says so (the flags describe events, which the rules scope never shows).

Free text & exact match#

Bare words (no operator) match event titles, fields, and descriptions, and, for rules, the title, description, and indexed predicate field/value tokens, so a keyword that lives only in a rule's logic still surfaces it. Quote a phrase for an exact multi-word match, for example "logon type" 4624 requires the exact phrase plus the free-text term.

Examples#

QueryWhat it does
4624Event 4624 (Security Auditing logon) first, then rules referencing it
kerberosProvider matches, then Kerberos rules, then Kerberos events
tactic:credential_access vendor:sigmaAll Sigma rules tagged with the Credential Access tactic
vendor:sigma,elastic technique:T1003.001LSASS-dumping rules authored in Sigma or Elastic (comma = OR), then ANDed with the technique
tactic:execution -vendor:splunkExecution-tagged rules from every vendor except Splunk
vendor:chronicle lsassChronicle (Google SecOps) rules matching "lsass"
field:CommandLine value:*mimikatz*Rules that filter CommandLine for mimikatz substrings
field:Image,ParentImage value:*mimikatz*Rules whose Image or ParentImage field carries a mimikatz value (comma = OR over field names)
indicator:Image=*\powershell.exeRules checking the Image field for paths ending in \powershell.exe
vendor:elastic kind:cidr_matchElastic rules carrying a CIDR-range predicate leaf (kind narrows the rule cards)
type:rules -kind:is_nullEvery rule except those carrying an is_null presence check (standalone indicator negation excludes at rule level)
-type:rules kerberosKerberos events and providers, since excluding the rules kind still leaves the other two
with:4624 with:4769Rules that watch both Logon (4624) and TGS-REQ (4769), a Kerberoasting-flavored correlation
like:win_system_krbrelayup_service_installationThe KrbRelayUp detection's equivalence class, sibling rules from sigma and splunk on the same service-install signature
uses:Image -uses:CommandLineRules touching Image but not CommandLine
excludes:ParentImageRules that whitelist a parent-process path to suppress FPs. Handy when tuning a new rule on the same field
body:mimikatzRules whose raw source text mentions mimikatz anywhere (comments, macros, non-predicate syntax), not just matching predicate values
identity:external operation:account_lifecycleRules where a guest or other external identity is invited, created, or removed (Entra guest invites and their cloud cousins)
"privilege escalation" has:sample no:3rdpartyExact phrase, with sample event data, Microsoft providers only

Result types#

Each result card carries a small label in the leading edge showing its type.

A single query collects at most 200 rule cards and 100 indicator cards. The rule count shown on an indicator card is not capped (it reflects every contributing rule), so for an exact rule total on a query that hits the 200-card ceiling, either read the indicator card counts or split the query by vendor: and sum the results. Copy matching values is not limited by either card cap.

Working with results#

Each rule card has a Show stages & exclusions button that inlines the rule's stages, predicates, exclusions, and indicators in a scrollable panel beneath the card. It fetches the rule page once and caches per-rule for subsequent toggles. Useful for peeking at structural detail across several search hits without losing query context.

A Compact view / Expanded view toggle sits at the left of the toolbar above the cards. Compact view collapses every card to a single line for scanning large result sets. The choice persists across visits, and toggling writes a view= parameter into the URL hash so a copied link reproduces the same density.

The results toolbar provides Copy as markdown and Copy as JSON. Markdown export is a 12-column table (Type, Title, Vendor / Provider, Severity, Events, Technique IDs, Technique Names, Tactics, Author, Description (~2 sentences), Source (GitHub URL minus the host prefix), URL). JSON export is a flat array with the same 12 columns as snake_case keys (type, title, vendor_or_provider, severity, event_ids, technique_ids, technique_names, tactics, author, description, source_url, url). Every cell is a plain string, lists join with semicolons, and descriptions stay untruncated, so the output pastes straight into a JSON-to-CSV converter for spreadsheet use. Both cover every result in the current collected set, not just the visible page.

Predicate searches using field:, value:, indicator:, or kind: also provide Copy matching values. It copies one distinct, non-empty predicate value per line by reading every rule that satisfies the complete query. It includes values used by only one rule and ignores the 100-indicator and 200-total-card caps. For example, with:13 field:"TargetObject" copies every indexed TargetObject value from rules that bind event ID 13, even when no indicator card exists for that value.

Keyboard shortcuts#

The site provides Vimium-style navigation.

Scrolling#

j and k to scroll down/up

d and u to scroll one-half page down/up

gg to scroll to the top

G to scroll to the bottom

f to show a single character per link that you can enter to open in the same tab

Searching#

/ to start a search. On a page with a search box it focuses the box. On a Windows catalog provider page it takes you to the /windows/ catalog search. On every other page it takes you to the combined event and rule search on the home page. The ?search= URL parameter that these redirects carry is presence-only, so any value (or none) focuses the search box on load.

Search results#

Arrow Down and Arrow Up to navigate results

Enter to open the highlighted result

Escape to close results

h to go back in page history

l to go forward in page history

Reading your query back#

A line under the search box explains the current query in plain language, for example "Rules binding event 4624 and also binding event 4769 but not from splunk." It updates on every keystroke and stays blank for an empty box.

When a value does not match its operator's vocabulary, for example sev:hi, the explanation adds a short warning and a clickable fix ("Did you mean severity:high?"). Clicking the fix corrects the query in place.

Focusing an empty search box opens a starter panel with your recent searches at the top and curated example questions grouped under four headings ("What events exist", "How the rule is built", "What the rule is about", "What the rule looks for"). Clicking a question runs its query. Escape closes the panel.

A rule page carries the same idea in its Indicators and Exclusions tables. Each row gets a Search column that runs the matching query back on the home search, so you can pivot from one rule's predicate straight into every other rule that shares it.

The curated identity, permission, resource, and operation labels above have their own reference page at /references/semantic-labels/, with every value's meaning and how many rules carry it.