傳統 OS 指紋工具(Nmap、Xprobe、QueSO)高度依賴開放/關閉埠的 ICMP/TCP 回應,防火牆過濾導致誤判率飆升。RING 提出「單一開放埠 + TCP 重傳間隔分析」新範式,穿透防火牆限制。
TCP 三向交握中,客戶端發送 SYN 後故意不回 ACK,伺服器將重傳 SYN-ACK。不同作業系統的重傳間隔序列(RTO 演算法、初始值、退避策略)具有高度特徵性:
客戶端 → SYN → 伺服器
客戶端 ← SYN-ACK ← 伺服器 (t1)
客戶端 ← SYN-ACK ← 伺服器 (t2)
客戶端 ← SYN-ACK ← 伺服器 (t3) ...
測量相鄰重傳封包到達時間差 Δt,構成指紋向量 [Δt1, Δt2, ..., Δtn, RST行為]。
| 重傳次數 | Windows 2000 | FreeBSD 4.4 | Linux 2.2.14 | Linux 2.4 |
|---|---|---|---|---|
| 1st | 3 | 3 | 3.5 | 4.26 |
| 2nd | 6 | 6 | 6.5 | 6 |
| 3rd | 無 | 12 | 12.5 | 12 |
| 4th | 無 | 24 | 24.5 | 24 |
| RST | 無 | 30s 後 | 無 | 無 |
Win2k 僅重傳 2 次且無 RST;FreeBSD 指數退避至 24s 並發 RST;Linux 核心版本間細微差異亦可區分。
為消除網路延遲干擾,RING 在 SYN 中攜帶 TCP Timestamps 選項(RFC 1323),解析回應封包中的 TSval 還原發送端真實間隔,將「接收間隔」修正為「發送間隔」。
採用曼哈頓距離:
Distance = Σ |r_i - s_i|
r_i: 實測間隔, s_i: 資料庫樣本間隔
最小距離對應之 OS 即為識別結果。若距離接近,輔以 TCP 旗標(RST/FIN)、序號/確認號模式二次判斷。
RING 證明了「協議實作細節差異」是比「埠掃描回應」更穩健的指紋來源。單一開放埠即可識別,極大提升了防火牆後資產發現的成功率。結合傳統活躍掃描,可構建多層次識別體系。