协议隧道技术指攻击者将恶意网络通信封装在合法协议中,以规避安全检测并突破网络访问控制的攻击手段。传统协议隧道通常利用SSH、DNS等协议实现数据封装,防御方可通过深度包检测(DPI)、协议一致性校验及异常流量分析等手段进行识别。ATT&CK建议监控非常用端口的协议使用、分析网络流量的语法结构合规性,以及检测客户端与服务端数据量失衡等异常模式。
为应对日益增强的流量检测能力,攻击者发展出深度协议混淆、云服务寄生、动态负载调节等新型隧道技术,通过协议栈重构、业务场景融合及行为特征模仿等手段,将恶意通信完全嵌入合法业务流,形成"协议即服务"的隐蔽通道体系。
现有协议隧道匿迹技术的演进呈现三大特征:协议栈操作维度扩展、网络上下文深度适配及通信行为动态优化。多协议嵌套隧道通过洋葱式封装突破单层协议检测,利用各层协议的合法性相互印证;云存储寄生隧道将恶意流量溶解于云服务海量API调用中,借助云平台信任背书实现通信白名单化;DNS隐蔽隧道结合DoH加密与查询模式动态调节,使检测方难以区分正常域名解析与隧道通信;元数据隐写隧道则创造性利用协议规范模糊地带,在确保协议完整性的前提下实现数据渗漏。这些技术的共同本质是将协议合规性作为核心防御突破点,通过协议标准的内生特性对抗外部检测机制。
匿迹技术的发展导致传统基于协议指纹识别和流量统计分析的防御手段逐渐失效,防御方需构建协议语义级解析能力,结合上下文行为建模和跨协议关联分析,同时引入云服务商的安全协同机制,方能有效应对新型隐蔽隧道威胁。
| 效应类型 | 是否存在 |
|---|---|
| 特征伪装 | ✅ |
| 行为透明 | ❌ |
| 数据遮蔽 | ✅ |
| 时空释痕 | ✅ |
攻击者通过协议封装和元数据隐写,使隧道流量在协议类型、交互模式等表层特征上与合法流量完全一致。例如将C2通信封装为视频流协议,或利用HTTP扩展头传输指令,使得流量在协议解析层呈现合法业务特征,规避基于协议指纹的检测规则。
采用TLS/SSL加密、协议嵌套封装等手段,对隧道流量进行多层加密保护。如通过DoH实现DNS查询加密,或在云存储API调用中使用平台原生HTTPS加密,使防御方无法通过流量解密获取有效载荷内容。
通过动态负载均衡和分布式隧道节点,将集中式通信拆解为低频次、多节点的离散交互。例如DNS隧道采用全球分布的权威服务器轮询机制,云存储隧道利用多区域存储桶同步数据,使通信特征在时间和空间维度被稀释,难以通过短期局部流量分析发现异常。
| ID | Name | Description |
|---|---|---|
| C0034 | 2022 Ukraine Electric Power Attack |
During the 2022 Ukraine Electric Power Attack, Sandworm Team deployed the GOGETTER tunneler software to establish a "Yamux" TLS-based C2 channel with an external server(s).[1] |
| S1063 | Brute Ratel C4 |
Brute Ratel C4 can use DNS over HTTPS for C2.[2][3] |
| C0027 | C0027 |
During C0027, Scattered Spider used SSH tunneling in targeted environments.[4] |
| C0032 | C0032 |
During the C0032 campaign, TEMP.Veles used encrypted SSH-based PLINK tunnels to transfer tools and enable RDP connections throughout the environment.[5] |
| G0114 | Chimera |
Chimera has encapsulated Cobalt Strike's C2 protocol in DNS and HTTPS.[6] |
| G1021 | Cinnamon Tempest |
Cinnamon Tempest has used the Iox and NPS proxy and tunneling tools in combination create multiple connections through a single tunnel.[7] |
| G0080 | Cobalt Group |
Cobalt Group has used the Plink utility to create SSH tunnels.[8][9][10] |
| S0154 | Cobalt Strike |
Cobalt Strike uses a custom command and control protocol that is encapsulated in HTTP, HTTPS, or DNS. In addition, it conducts peer-to-peer communication over Windows named pipes encapsulated in the SMB protocol. All protocols use their standard assigned ports.[11][12] |
| C0004 | CostaRicto |
During CostaRicto, the threat actors set up remote SSH tunneling into the victim's environment from a malicious domain.[13] |
| C0029 | Cutting Edge |
During Cutting Edge, threat actors used Iodine to tunnel IPv4 traffic over DNS.[14] |
| S0687 | Cyclops Blink |
Cyclops Blink can use DNS over HTTPS (DoH) to resolve C2 nodes.[15] |
| S0038 | Duqu |
Duqu uses a custom command and control protocol that communicates over commonly used ports, and is frequently encapsulated by application layer protocols.[16] |
| G1003 | Ember Bear |
Ember Bear has used ProxyChains to tunnel protocols to internal networks.[17] |
| G1016 | FIN13 |
FIN13 has utilized web shells and Java tools for tunneling capabilities to and from compromised assets.[18] |
| G0037 | FIN6 |
FIN6 used the Plink command-line utility to create SSH tunnels to C2 servers.[19] |
| S0173 | FLIPSIDE |
FLIPSIDE uses RDP to tunnel traffic from a victim environment.[20] |
| G0117 | Fox Kitten |
Fox Kitten has used protocol tunneling for communication and RDP activity on compromised hosts through the use of open source tools such as ngrok and custom tool SSHMinion.[21][22][23] |
| S1144 | FRP |
FRP can tunnel SSH and Unix Domain Socket communications over TCP between external nodes and exposed resources behind firewalls or NAT.[24] |
| S1044 | FunnyDream |
FunnyDream can connect to HTTP proxies via TCP to create a tunnel to C2.[25] |
| S1027 | Heyoka Backdoor |
Heyoka Backdoor can use spoofed DNS requests to create a bidirectional tunnel between a compromised host and its C2 servers.[26] |
| S0604 | Industroyer |
Industroyer attempts to perform an HTTP CONNECT via an internal proxy to establish a tunnel.[27] |
| S1020 | Kevin |
Kevin can use a custom protocol tunneled through DNS or HTTP.[28] |
| G0065 | Leviathan |
Leviathan has used protocol tunneling to further conceal C2 communications and infrastructure.[29] |
| S1141 | LunarWeb |
LunarWeb can run a custom binary protocol under HTTPS for C2.[30] |
| G0059 | Magic Hound |
Magic Hound has used Plink to tunnel RDP over SSH.[31] |
| S1015 | Milan |
Milan can use a custom protocol tunneled through DNS or HTTP.[28] |
| S0699 | Mythic |
Mythic can use SOCKS proxies to tunnel traffic through another protocol.[32] |
| S0508 | ngrok |
ngrok can tunnel RDP and other services securely over internet connections.[33][34][35][36] |
| G0049 | OilRig |
OilRig has used the Plink utility and other tools to create tunnels to C2 servers.[37][38][39] |
| S0650 | QakBot |
The QakBot proxy module can encapsulate SOCKS5 protocol within its own proxy protocol.[40] |
| S0022 | Uroburos |
Uroburos has the ability to communicate over custom communications methodologies that ride over common network protocols including raw TCP and UDP sockets, HTTP, SMTP, and DNS.[41] |
| ID | Mitigation | Description |
|---|---|---|
| M1037 | Filter Network Traffic |
Consider filtering network traffic to untrusted or known bad domains and resources. |
| M1031 | Network Intrusion Prevention |
Network intrusion detection and prevention systems that use network signatures to identify traffic for specific adversary malware can be used to mitigate activity at the network level. |
| ID | Data Source | Data Component | Detects |
|---|---|---|---|
| DS0029 | Network Traffic | Network Connection Creation |
Monitor for newly constructed network connections that are sent or received by untrusted hosts. |
| Network Traffic Content |
Monitor and analyze traffic patterns and packet inspection associated to protocol(s) that do not follow the expected protocol standards and traffic flows (e.g extraneous packets that do not belong to established flows, gratuitous or anomalous traffic patterns, anomalous syntax, or structure). Consider correlation with process monitoring and command line to detect anomalous processes execution and command line arguments associated to traffic patterns (e.g. monitor anomalies in use of files that do not normally initiate connections for respective protocol(s)). |
||
| Network Traffic Flow |
Monitor network data for uncommon data flows. Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. |