近期,觀成科技安全研究團隊在現網中檢測到了利用Gost工具實現加密隧道的攻擊行為。Gost是一款支持多種協議的隧道工具,使用go語言編寫。該工具實現了多種協議的隧道通信方法,例如TCP/UDP協議,Websocket,HTTP/2,QUIC,TLS等。
2022年11月,Gost更新了V3新版本,在新版本中新增了ICMP隧道功能。ICMP隧道是利用ICMP協議的Echo類型報文(ping命令所采用)進行數據傳輸,Gost在ICMP之上利用QUIC協議來實現安全可靠的數據傳輸,因此該ICMP隧道可以看作是QUIC-over-ICMP數據通道。QUIC協議是一種加密協議,所以該隧道也是一種加密隧道。
2.隧道原理分析隧道的搭建需要客戶端和服務端兩端,客戶端負責接收socks5代理協議,解析後将數據封裝成ICMP協議發送到服務端,服務端接收後解析成原始流量并轉發。
圖 1 隧道示意圖
ICMP隧道傳輸的數據,由兩部分構成:MessageHeader和QUIC數據。MessageHeader的長度固定10個字節,前四個字節存放magicNumber,默認為固定字符串“GOST”,最後兩字節存放後續載荷的長度。
圖 2 MessageHeader構成
QUIC協議是一種基于UDP的低時延的互聯網傳輸層加密協議,和TLS類似,使用加密握手來完成密鑰交換。ICMP隧道中的QUIC數據是基于quic-go包實現的。
圖 3 QUIC實現
在ICMP隧道的流量數據中,緊随MessageHeader之後,就是QUIC數據。隧道中傳輸的QUIC數據舍棄了QUIC協議的公共包頭,直接傳輸QUIC協議的幀包。根據幀包的格式解析,第一個字節為幀類型,用來解釋幀包的屬性。下圖流量中,幀類型為0xC3(11000011B),最高位“1”表示這是一個STREAM幀,用來進行數據傳輸。
圖 4 STREAM幀包
下圖數據包中的幀類型為0x4D(01001101B),最高兩位“01”表示這是一個ACK幀,用來保證數據傳輸的可靠性。
圖 5 ACK幀包
QUIC協議是一種加密協議,通過流量無法直接觀察數據内容。但是從流量數據包的長度上看,ACK幀的長度遠小于STREAM幀,而常規的ICMP協議的Echo類型報文數據長度往往都是相同的。
圖 6 數據包長度特征
3.産品檢測觀成瞰雲(ENS)-加密威脅智能檢測系統能夠對GOST工具産生的ICMP隐蔽隧道流量進行檢測。
4.總結
利用Gost工具搭建ICMP隧道,攻擊者可以将攻擊流量隐藏在隧道之中,從而規避流量監測設備,大幅度降低被發現的可能性。目前,越來越多的攻擊者利用ICMP、DNS等協議來實現隐蔽隧道加密通信,我們将會保持對此類工具的密切跟蹤和研究。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!