Network Boundary Bridging
This detection identifies adversary activity consistent with MITRE ATT&CK T1599 (Network Boundary Bridging), where threat actors compromise perimeter network devices — routers, firewalls, or internal segmentation appliances — and reconfigure them to allow prohibited traffic to cross trust boundaries. Detection focuses on unauthorized ACL modifications, NAT rule changes, routing table manipulation, and firewall policy changes sourced from network device syslog and configuration audit trails ingested into SIEM. Because this technique targets network infrastructure rather than endpoints, primary telemetry comes from CommonSecurityLog (CEF-formatted device logs), Syslog, and network device AAA/TACACS+ audit streams. High-severity modifications include permit-any rules, deletion of blocking ACLs, addition of bypass NAT entries, and introduction of static routes to previously isolated segments.
let SuspiciousKeywords = dynamic(["permit ip any any", "no access-list", "access-group removed", "nat bypass", "ip route 0.0.0.0", "no ip access-group", "access-list extended permit", "shutdown", "policy deleted", "rule removed", "bypass", "clear access-list", "no firewall"]);
let NetworkVendors = dynamic(["Cisco", "Palo Alto Networks", "Fortinet", "Check Point", "Juniper Networks", "SonicWall", "WatchGuard", "F5", "Barracuda"]);
CommonSecurityLog
| where DeviceVendor in~ (NetworkVendors)
| where Activity has_any ("ACL-change", "config-change", "policy-change", "route-change", "nat-change", "firewall-change", "configuration")
or Message has_any (SuspiciousKeywords)
| where DeviceAction !in~ ("deny", "blocked", "drop", "reject")
| extend ChangeType = case(
Message has_any ("access-list", "ACL", "access-group"), "ACL_Modification",
Message has_any ("nat", "NAT", "overload"), "NAT_Rule_Change",
Message has_any ("ip route", "route add", "static route", "gateway"), "Route_Modification",
Message has_any ("policy", "rule", "filter"), "Policy_Change",
Message has_any ("shutdown", "no shutdown", "interface"), "Interface_Change",
"Other"
)
| extend RiskScore = case(
Message has "permit ip any any", 100,
Message has "no access-list", 95,
Message has "nat bypass", 95,
Message has "ip route 0.0.0.0", 90,
Message has "access-group removed", 85,
Message has "clear access-list", 80,
Message has "policy deleted", 75,
70
)
| where RiskScore >= 75
| project TimeGenerated, DeviceVendor, DeviceProduct, DeviceAddress, ChangeType, RiskScore, Activity, Message, SourceUserName, SourceIP, Computer
| order by RiskScore desc, TimeGenerated desc Data Sources
Required Tables
False Positives
- Authorized network engineers performing scheduled maintenance during approved change windows — validate against change management system (ServiceNow/Jira)
- Automated network management tools (Cisco DNA Center, Ansible AWX, SolarWinds NCM) pushing approved configuration templates
- Security operations performing penetration test or red team exercises with pre-authorized network changes
- Firewall rule cleanup projects legitimately removing outdated ACL entries as part of hygiene programs
References (5)
Unlock Pro Content
Get the full detection package for T1599 including response playbook, investigation guide, and atomic red team tests.