Detect Network Topology in Sumo Logic CSE
Adversaries may gather information about the victim's network topology that can be used during targeting. This includes physical and logical arrangement of external-facing and internal network environments, network devices such as gateways and routers, and routing infrastructure. Threat actors like Volt Typhoon and Salt Typhoon have conducted extensive network topology reconnaissance to identify critical infrastructure paths, upstream/downstream network segments, and inter-network connectivity before executing intrusion campaigns. Detection focuses on two surfaces: (1) network discovery tool execution on managed endpoints indicating an insider or post-compromise enumeration phase, and (2) external scanning patterns visible in perimeter logs indicating pre-compromise reconnaissance by external actors.
MITRE ATT&CK
- Tactic
- Reconnaissance
- Technique
- T1590 Gather Victim Network Information
- Sub-technique
- T1590.004 Network Topology
- Canonical reference
- https://attack.mitre.org/techniques/T1590/004/
Sumo Detection Query
// Branch 1: Endpoint process execution detection
(_sourceCategory="windows/sysmon" OR _sourceCategory="endpoint/process")
| where EventID = 1 OR event_type = "process"
| parse field=CommandLine "*" as cmd_line nodrop
| parse field=Image "*\\*" as img_path, img_name nodrop
| eval img_lower = toLowerCase(img_name)
| eval cmd_lower = toLowerCase(cmd_line)
| eval is_discovery_tool = if(
img_lower matches /^(nmap|masscan|zmap|netdiscover|nbtscan|arp-scan|unicornscan|lansweeper)(|\.exe)$/,
1, 0)
| eval is_route_enum = if(
cmd_lower matches /(tracert|traceroute|pathping|tracepath|route\s+print|netstat\s+-r|ip\s+route|get-netroute|get-netneighbor|arp\s+-a|arp\s+-n)/,
1, 0)
| eval is_snmp_recon = if(
cmd_lower matches /(snmpwalk|snmpget|snmpenum|snmpbulk|snmptrap)/,
1, 0)
| eval is_os_fingerprint = if(
cmd_lower matches /(nmap\s+-o|os-detection|os-fingerprint|os-scan)/,
1, 0)
| eval is_topo_map = if(
cmd_lower matches /(--traceroute|cdp\s+neighbors|lldp|show\s+ip\s+route|ospf|eigrp)/,
1, 0)
| eval recon_score = is_discovery_tool + is_route_enum + is_snmp_recon + is_os_fingerprint + is_topo_map
| where recon_score > 0
| eval risk_category = if(is_snmp_recon = 1, "SNMP_Topology_Recon",
if(is_os_fingerprint = 1, "OS_Fingerprinting",
if(is_discovery_tool = 1 and is_route_enum = 1, "Combined_Network_Mapping",
if(is_discovery_tool = 1, "Network_Discovery_Tool",
if(is_route_enum = 1, "Routing_Enumeration", "General_Topology_Recon")))))
| fields _messageTime, Computer, User, Image, CommandLine, ParentImage, ParentCommandLine, risk_category, recon_score
| sort by _messageTime desc
// Branch 2: Network connection scanning (run as separate query and correlate)
// (_sourceCategory="windows/sysmon" OR _sourceCategory="network/flow")
// | where EventID = 3 OR event_type = "network"
// | where DestinationPort in (161, 162, 179, 520, 521, 646, 2049, 8291)
// | where !((DestinationIp startswith "127.") or DestinationIp = "::1")
// | count_distinct(DestinationIp) as unique_hosts, values(DestinationPort) as ports by Computer, User, Image, CommandLine
// | where unique_hosts > 5
// | eval risk_category = "Broadcast_Protocol_Scanning" Detects network topology reconnaissance on endpoints via Sumo Logic CSE. Parses Sysmon Event ID 1 (process create) to score commands matching network discovery tools, route enumeration, SNMP recon, OS fingerprinting, and topology mapping patterns. A composite ReconScore enables severity tiering. A commented second branch detects multi-host scanning on routing/management protocol ports via Sysmon Event ID 3 network connections.
Data Sources
Required Tables
False Positives & Tuning
- Security tools like Nessus, Qualys agents, or CrowdStrike Spotlight running periodic network discovery from designated scanner accounts
- Network operations center staff using nmap or traceroute for routine connectivity diagnostics and path analysis
- Automated CMDB/asset discovery jobs (ServiceNow Discovery, Lansweeper agents) that enumerate network routes and ARP tables on a schedule
- DevOps pipeline scripts that call 'ip route' or 'netstat -r' during container or VM provisioning workflows
Other platforms for T1590.004
Testing Methodology
Validate this detection against 5 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Network Topology Discovery via Traceroute and Route Table Enumeration
Expected signal: Sysmon Event ID 1: Process Create events for route.exe, tracert.exe, arp.exe, netstat.exe with their respective command lines. Sysmon Event ID 11: File Create event for route_output.txt in %TEMP%. Sysmon Event ID 3: Network connections from tracert.exe to 8.8.8.8 and intermediate hops. Security Event ID 4688 (if process auditing enabled) for each spawned process.
- Test 2SNMP Network Device Topology Enumeration
Expected signal: Auditd/Sysmon-for-Linux process execution event for snmpwalk with command line containing OIDs .1.3.6.1.2.1.4.22 (ARP table) and .1.3.6.1.2.1.4.24 (routing table). Network connection event (UDP/161) to target host. File creation event for /tmp/snmp_arp_output.txt. Syslog entries from snmpd if local daemon receives the query.
- Test 3PowerShell Network Neighbor and Route Enumeration
Expected signal: Sysmon Event ID 1: Process Create for powershell.exe with CommandLine containing 'Get-NetRoute', 'Get-NetNeighbor', 'Get-NetIPAddress', 'ConvertTo-Json'. PowerShell ScriptBlock Log Event ID 4104 with full script content. Sysmon Event ID 11: File Create event for network_topology.json in %TEMP%.
- Test 4Nmap Host Discovery and OS Detection Scan
Expected signal: Sysmon Event ID 1: Process Create for nmap.exe with CommandLine containing '-sn', '-O', '--osscan-guess', '-oX'. Multiple Sysmon Event ID 3 network connection events for ICMP and TCP probes across the /24 range. Sysmon Event ID 11: File Create events for nmap_discovery.xml and nmap_osdetect.xml in %TEMP%.
- Test 5BGP and Routing Protocol Reconnaissance via Netstat
Expected signal: Auditd/Sysmon-for-Linux process execution events for netstat, ss, ip with command lines containing routing protocol ports (179 BGP, 520 RIP, 646 LDP). File creation events for /tmp/routing_protocols.txt, /tmp/routing_table_full.txt, /tmp/arp_cache.txt. If Sysmon for Linux installed: Event ID 1 (Process Create) for each command.
References (9)
- https://attack.mitre.org/techniques/T1590/004/
- https://dnsdumpster.com/
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa24-038a
- https://blog.talosintelligence.com/salt-typhoon-analysis/
- https://www.mandiant.com/resources/blog/fin13-a-cybercriminal-threat-actor-focused-on-mexico
- https://nmap.org/book/man-output.html
- https://learn.microsoft.com/en-us/powershell/module/nettcpip/get-netroute
- https://learn.microsoft.com/en-us/azure/sentinel/connect-sysmon
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1590.004/T1590.004.md
Unlock Pro Content
Get the full detection package for T1590.004 including response playbook, investigation guide, and atomic red team tests.