Skip to main content

Tuesday's Tip of the Week - First UDM Searches

  • July 14, 2026
  • 5 replies
  • 75 views

dnehoda
Staff
Forum|alt.badge.img+18

July 14, 2026

 

UDM Search Syntax

 

UDM Search is the ad-hoc query interface in Google SecOps. Specify field-value pairs joined with AND, OR, and NOT.

Key rules:

  • Fields use dot notation: metadata.event_type, principal.ip, target.user.userid
  • String values go in double quotes: metadata.event_type = "USER_LOGIN"
  • Combine with AND / OR, negate with NOT
  • Regex uses forward slashes: target.process.file.full_path = /mimikatz/
  • No $ variables, no match:, no outcome:, no condition: blocks. Those belong to YARA-L detection rules.

Example 1: Find All Failed Logins

metadata.event_type = "USER_LOGIN" AND security_result.action = "BLOCK"

This returns failed logins from all ingested sources. Add AND target.user.userid = "jsmith" to scope to a single user.

 

Example 2: Find Network Connections to Specific CIDRs’

metadata.event_type = "NETWORK_CONNECTION" AND network.direction = "OUTBOUND"

To check connections against a CIDR range, use the net.ip_in_range_cidr() function:

metadata.event_type = "NETWORK_CONNECTION" AND net.ip_in_range_cidr(target.ip, "198.51.100.0/24")

 

Example 3: Find Process Launches of Specific Binaries

Hunting for credential-dumping tools or recon utilities:

metadata.event_type = "PROCESS_LAUNCH" AND target.process.file.full_path = /mimikatz/

The regex catches any path containing "mimikatz." For a more targeted search:

metadata.event_type = "PROCESS_LAUNCH" AND target.process.file.full_path = /powershell\.exe/ AND target.process.command_line = /Invoke-WebRequest/

 

UDM Search vs. YARA-L

UDM Search is for ad-hoc hunting: run a query, review results, iterate. YARA-L is for persistent detection rules that evaluate continuously and fire alerts. Both use the same UDM fields.

 

5 replies

whathehack81
Forum|alt.badge.img+7

Great primer. One operational caveat for Example 1: security_result.action = "BLOCK" is not always equivalent to all failed logins. Normalization varies by source and parser, so I usually inspect a representative event’s security_result.* fields before treating BLOCK as the universal failure indicator. ✅

The same applies to process fields. Depending on the parser, the executable path may populate principal.process.file.full_path rather than target.process.file.full_path. ✅🔧

A reliable workflow is: start with the broad event type, inspect the normalized UDM fields, add user/host/IP constraints, then convert the validated search into YARA-L. That prevents silent false negatives when fields are mapped differently across sources. ✅🔥


dnehoda
Staff
Forum|alt.badge.img+18
  • Author
  • Staff
  • July 16, 2026

Thats just an example, 

 

If you want to see them all you can just do this:

 

metadata.event_type = "USER_LOGIN"  ## if you use this you can sort under the left hand side of your results under aggregations and show only waht you want for example, “BLOCK” “FAIL” or whatever that result is.  

 

OR 

 

metadata.event_type = "USER_LOGIN" AND security_result.action != "ALLOW"

 

 


dnehoda
Staff
Forum|alt.badge.img+18
  • Author
  • Staff
  • July 16, 2026

AND security_result.action = "BLOCK"

example from above 

 


whathehack81
Forum|alt.badge.img+7

Absolutely—the broad USER_LOGIN search and aggregation view are the right way to discover which normalized values the source produces.

My caveat is specifically about turning that exploration into detection logic: security_result.action != "ALLOW" may include parser-specific, unknown, challenge, or unset values in addition to actual failures. After reviewing the aggregation results, I would still validate the representative events and then explicitly select the values that correspond to failed authentication for that source.

The same validation step applies to whether process paths populate principal.process.file.full_path or target.process.file.full_path.


dnehoda
Staff
Forum|alt.badge.img+18
  • Author
  • Staff
  • July 16, 2026

The YARA tips are coming in the next couple weeks.