偵測傳輸流量中的 OpenVPN 會話

密西根大學的一組研究人員發布了一項研究結果,該研究涉及在監控傳輸流量時識別(VPN 指紋)與基於 OpenVPN 的伺服器的連接的可能性。結果,確定了三種方法來識別其他網路資料包中的 OpenVPN 協議,這些資料包可用於流量檢查系統以阻止基於 OpenVPN 的虛擬網路。

在擁有超過 85 萬用戶的網路供應商 Merit 的網路上對所提出的方法進行測試表明,該方法能夠以較低的誤報率識別 20% 的 OpenVPN 會話。為了進行測試,我們準備了一個工具包,首先以被動模式動態偵測 OpenVPN 流量,然後透過主動伺服器檢查來驗證結果的正確性。強度約 XNUMX Gbps 的流量被鏡像到研究人員創建的分析器上。

偵測傳輸流量中的 OpenVPN 會話

在實驗過程中,分析器能夠成功識別出由惡意用戶端建立的1718 個測試OpenVPN 連接中的2000 個,這些連接使用了40 種不同的典型OpenVPN 配置(該方法成功地用於39 種配置中的40 種)。此外,在八天的實驗中,在中轉流量中識別出 3638 個 OpenVPN 會話,其中 3245 個會話得到確認。值得注意的是,所提出的方法中的誤報上限比先前提出的基於機器學習的方法低三個數量級。

另外,也評估了 OpenVPN 流量追蹤保護方法在商業服務中的效能 - 在使用 OpenVPN 流量隱藏方法的 41 個測試 VPN 服務中,在 34 個案例中識別出了流量。無法偵測到的服務使用 OpenVPN 以外的附加層來隱藏流量(例如,透過附加加密隧道轉送 OpenVPN 流量)。大多數成功識別的服務都使用了 XOR 流量失真、沒有適當隨機流量填充的額外混淆層,或者同一伺服器上存在非混淆的 OpenVPN 服務。

所涉及的識別方法是基於與未加密封包標頭、ACK 封包大小和伺服器回應中 OpenVPN 特定模式的綁定。第一種情況,與封包頭中「opcode」欄位的綁定可以作為連接協商階段識別的對象,它採用固定範圍的值,並根據連接以一定的方式變化設定階段。識別歸結為識別流的前 N ​​個資料包中操作碼變化的特定序列。

第二種方法是基於OpenVPN中ACK封包僅在連線協商階段使用且同時具有特定大小的事實。識別基於以下事實:給定大小的 ACK 封包僅出現在會話的某些部分(例如,使用 OpenVPN 時,第一個 ACK 封包通常是會話中傳送的第三個封包)。

偵測傳輸流量中的 OpenVPN 會話

第三種方法是主動檢查,是由於OpenVPN伺服器回應連線重置請求時發送特定的RST封包(使用「tls-auth」模式時該檢查不起作用,因為OpenVPN伺服器忽略來自未通過TLS 驗證的客戶端的請求)。

偵測傳輸流量中的 OpenVPN 會話


來源: opennet.ru

添加評論