當前位置:
首頁 > 最新 > 《Shadowsock翻牆流量檢測演算法》論文翻譯

《Shadowsock翻牆流量檢測演算法》論文翻譯

翻譯前言

隨著機器學習技術的火熱,國內不少實驗室一窩蜂的將機器學習納入自己的科研課題研究之中,這樣可以更好的找到發論文的結合點。我之前的所在實驗室就曾將機器學習引入漏洞挖據的研究之中,取到了很好的效果。但是據我所知,有些研究課題將機器學習引入並沒有帶來多少收益。本文將機器學習引入Shadowsock翻牆流量的檢測,旨在提高準確率節省人力,我認為準確率的提高主要在於:特徵的抽象和訓練數據的規模。論文中並沒有詳細的數據說明,我對於準確率部分的說明有保留意見。

原文標題

The Random Forest based Detection of Shadowsock s Traffic

作者

Ziye Deng1, Zihan Liu1, Zhouguo Chen2, Yubin Guo2

網路安全中心

通信安全實驗室

摘要

隨著匿名通信技術的發展,網路監控越來越困難。 如果可以有效地識別匿名流量,則可以防止這種技術的濫用。 由於機器學習的研究正在迅速發展,本文將隨機森林演算法(一種半監督學習方法)應用於Shadowsocks的流量檢測。 通過收集訓練組,採集特徵,訓練模型和預測結果來應用隨機森林演算法,在實驗中,我們可以獲得超過85%的檢測精度。 隨著熟練數據設置和測試設置的規模增加,檢測精度率逐漸增加,直到取向恆定。 下一步,我們將對訓練數據,測試設置和功能集進行幾個調整,以減少檢測時的誤報率。

關鍵詞

隨機森林演算法; 機器學習

一.引言

隨著近年來海外新聞的需求量不斷增加,包含政治,經濟,民主,金融,科技等方面的敏感信息。為了擺脫國家的防火牆獲取更多的消息,越來越多的人已經學會了如何使用代理軟體獲取相關的敏感資料。然而,高速開發的代理軟體通過翻越防火牆,已經成為廣播大量敏感信息的非法工具。因此,隱蔽交易的發生頻率很高。為了有效地防止這些事情發生,並立即發現和逮捕這些罪犯,我們不僅要對來自代理軟體的流量進行檢測和分類,而且要分別給具有某些特徵的加密流量標記不同的可疑標籤。這些工作可以為監督人員提供詳細的信息和數據,進行解密工作和內容分析。

在本文中,我們簡要介紹了Shadowsocks的運行原理[1]。下一步是從該代理軟體中全面分析流量,並從該軟體獲取功能信息。指出特徵數據和信息,我們使用Libpcap [2]來解決協議,使用機器學習來訓練特徵數據的某些部分,並在構建模型之後識別。

本文的結構如下:第二部分介紹本文的準備工作和貢獻。 我們將在第3節簡單介紹該軟體的運行原理。第4節將全面展示來自該代理軟體的每個流量的檢測原理。 相關的實驗室結果將在第5節中聲明。最後,第6節將是本文的總結。

二.相關工作

為了更好地了解Shadowsocks的流量特徵,我們參考了許多論文和材料來了解其運行機制,以確定檢測Shadowsocks流量的方法並提取所需的特徵信息。眾所周知,Shadowsocks的運行非常穩定-幾乎是我國最穩定和流暢的代理軟體,包括在翻牆的效率和速度(了不起!!!)。然而,目前的工作研究在檢測Shadowsocks的流量方面並沒有顯著的結果。由於Shadowsocks的穩定性和效率,我們可以使用Shadowsocks連接Anony-mous network TOR [3],VPN [4]等代理,這成為防火牆的嚴重威脅,給安全帶來更嚴重的問題。在本文中,我們提出了一種基於隨機森林演算法的Shadowsocks檢測方法[5]。我們通過使用機器學習處理Shadowsocks的流量[6],之後我們可以通過使用半監督學習[7]演算法來檢測Shadowsocks流量,精度超過85%,這可以保護和處理敏感數據來源的潛在危險。

目前,將機器學習演算法應用於流量檢測方面沒有太多的研究。流量檢測方法主要取決於人為識別,如阻塞埠,IP等。如果我們可以使用半監督或無監督的機器學習演算法,則可以通過機器簡單地完成流量檢測工作,這可以減少人員的工作量提高檢測效率。結合機器學習演算法和流量檢測也是本文的貢獻之一。

三.背景A.為什麼很難檢測到Shadowsocks?

Shadowsocks難以被發現的主要原因是Shadowsocks的運行機制很簡單。像代理軟體的大多數原則一樣,Shadowsocks首先建立一個基於SSH [8]的加密通道,其中包含防火牆外的伺服器;其次,Shadowsocks通過使用已建立的通道進行代理,這意味著通過SSH伺服器請求真正的伺服器。最後,通過SSH伺服器使用已建立的通道發迴響應數據。由於SSH本身是基於RSA [9]加密技術,因此防火牆在傳輸過程中無法分析加密數據的關鍵字,從而防止重連接問題。 SSH存在有針對性的干擾問題,所以Shadowsocks將socks5 [10]協議分為伺服器端和客戶端兩部分。詳細過程如下:首先,客戶端發送請求,根據sock5與本地Shadowsocks進行通信。由於本地的Shadowsocks通常是本地主機或路由器和任何其他機器,它們不會經過防火牆,因此它們不會受到防火牆的干擾。在Shadowsocks客戶端和伺服器之間,他們可以通過各種加密方式進行通信,因此,通過防火牆的數據包將顯示為公共TCP數據包。這些數據包沒有明顯的功能,防火牆無法解密這些數據,導致防火牆無法檢測和干擾這些數據。最後,Shadowsocks伺服器解密接收到的加密數據,並向實際伺服器發送真實請求,並將響應數據發送給Shadowsocks客戶端。詳細過程如圖1所示。我們可以看到,Shadowsocks的每個運行步驟都繞過了防火牆的檢測,並且不會被防火牆干擾。這就是為什麼很難人為地檢測到Shadowsocks的原因。

圖1 Shadowsocks的通信原理

這裡寫圖片描述

B.隨機森林演算法

統計學中,隨機森林演算法是一種分類器演算法。 分類器是確定給定樣本數據應屬於哪一類的演算法。 隨機森林包含許多決策樹,訓練樣本並進行預測。 預測結果由隨機森林中大多數決策樹決定。 在我們的方法中,我們將使用隨機森林演算法將流量分類為兩個分類,一個是「Shadowsocks流量」,一個是「無Shadowsocks流量」。

C.定義

1)數據包:數據包是網路中用於傳輸和交換數據的單元。 數據包包含的傳輸數據長度不一致。 在傳輸過程中,數據包將被打包成幀。 其方法是以特定格式添加多個信息,如數據包頭,數據包類型,消息長度,數據包版本等。

2)數據流:IP網路通常可以將網路流量定義為五元組:源IP地址,目的IP地址,源IP埠,目的IP埠和協議號。 因此,具有相同五元組的網路分組可以被看作是一個相同的流。

3)Biflow:二進位流,具有相同的源IP地址,目的IP地址,源IP埠,目的IP埠和協議號數據集。

4)hostProfile:一組在一個主機中經過一段時間後被過濾的數據包(文件保存為.pcap格式)。

四.我們提出的方法A.使用隨機森林演算法來檢測Shadowsocks的流量。

隨機森林由許多CART(分類和回歸樹)組成[11]。每組訓練數據使用的決策樹從總的訓練數據集合中取出,取出的單組訓練數據將被放回總訓練集合。當訓練每棵樹的節點時,從訓練組集合中取出用過的訓練組,其中列出的訓練組不會退回總訓練集合中。假設訓練數據總數為C,比例可以為C,sqrt(C),1 / 2sqrt(C),log2(C)。在我們的實驗中,我們使用默認值sqrt(C)。

當使用隨機森林演算法時,有幾個步驟可以檢測到Shadowsocks的流量,如下所示:

1)確定訓練過程所需的所有數據集和參數,包括訓練數據組P,測試集T,特徵維度F,CART t的數量,每個CART的深度d,節點使用的功能數f,終止包括節點s中最小樣本的條件,節點m中的信息增益最小。

2)從總訓練數據集合P去除訓練數據,訓練數據將返回,訓練數據組數量等於訓練組P(i)的數目,i表示數。將P(i)設置為根,並從根開始訓練。

3)如果當前節點沒有達到終止條件,則從F維特徵向量隨機抽取f個特徵,這些f特徵將不會返回到F維特徵向量。從這些f特徵中選擇具有最佳分類效果的特徵k及其閾值th。並利用這些k特徵進行判斷。如果值小於閾值,樣本將被分類為左側節點,如果該值大於閾值,則樣本將被分類為右側節點。如果當前節點達到終止條件,則將當前節點設置為葉節點。這個葉節點的預測輸出是當前節點樣本集中最大的分類c(j),假設當前樣本集中的c(j)的速率是概率。

4)訓練所有節點,直到所有節點被標記為葉節點或被訓練。

5)訓練所有CART,直到所有CART被訓練。

6)預測訓練數據組T,預測過程就像訓練過程一樣。 從當前CART根節點確定,如果小於當前節點的閾值,節點將進入左側節點,如果大於當前節點的閾值,節點將進入右側節點。 確定過程將維持直到葉節點輸出預測結果。

7)對CART輸出的所有預測值進行確定和計算,所有樹中預測概率的最大和是預測結果,這意味著c(j)的每個概率的總和。

B. Shadowsocks biflow的特點

從上述隨機森林演算法的過程可知,我們需要確定訓練數據組和特徵尺寸。 根據網路數據包hostProfile和biflow的屬性,我們提出幾個功能。 然後,我們捕獲一大堆Shadowsocks的流量,提取某些特徵值,並將其保存為訓練組。 具體功能部分如表1所示。 除此之外,我們還有一個3000維的向量,它記住在整個通信過程中是否出現上游和下游數據包的大小。

表1 部分特徵

這裡寫圖片描述

五.實驗和結果A.隨機森林演算法的過程,計算和價值

實驗步驟:

?捕獲純粹的Shadowsocks流量,處理這些流量,提取和保存某些功能。

?使用隨機森林演算法來模擬這些值。 在隨機森林演算法中,我們將CART的總值設置為100,將等級標準設置為「gini」,將提取要素的數量設置為sqrt(C),C是特徵維度的總數。 樹的最大深度設置為無,直到所有節點被識別為止。 分類結果標記為兩個分類,「是」和「否」。 剩下的參數被設置為Python的默認參數RandomForestClassifer函數。

?捕獲檢測流量,包括Shadowsocks流量和沒有Shadowsocks的流量。 提取某些特徵值並保存。 最後,使用隨機森林演算法構建模型並進行預測

B.數據採集

在本地主機上捕獲1G Shadowsocks的流量,在C中使用Libpcap lib來解決這些流量。我們用提取的特徵進行計算,得到所有的特徵值,並將它們作為訓練數據組保存到資料庫中。捕獲1G無Shadowsocks在本地主機的流量10次,使用libpcap處理這些數據。之後,隨機捕獲超過1G的Shadowsocks流量,並且在沒有任何Shadowsocks的流量的26個主機中,以相同的方式處理這些數據,並以測試集的形式存儲到資料庫中。

C.如何計算。

根據隨機森林演算法的判斷結果,我們人為地驗證了他們對隨機森林演算法的訓練集合和準確率的有效性。接下來,我們測試由不同尺寸的訓練組構建的模型的檢測精度。

從圖2可以看出,本實驗中特徵集的選擇效果良好。也可以證明,隨機森林演算法在Shadowsocks的流量檢測中的應用具有顯著的效果。我們也可以從圖2得出結論,使用較大的測試集可以得到更準確的結果。

圖2 檢測精度

這裡寫圖片描述

圖3說明越大的訓練集構造的模型具有越高的檢測率)

圖3 不同訓練集合大小的精度檢測

這裡寫圖片描述

六.結論

在我們的實驗中,我們驗證了將機器學習應用於流量檢測是非常有效的。 我們也得出結論,隨著訓練數據規模的增加,模型更加完善,檢測準確率也將提高。 另外,隨著測試集的規模增加,檢測的準確率也將增加。 將這種半監督機器學習演算法應用於流量檢測可以與人工方式相比,發現可以降低誤報率和成本。

在我們的方法中,我們採用了許多功能,可以在一定程度上提高檢測精度。 然而,它也增加了系統負擔,這使得模型相對冗餘。 在未來的工作中,我們將深入研究功能,找出最有效的特徵屬性,排除多個不必要的特徵,優化和簡化模型,提高整個系統的效率。

致謝

作者要感謝Zhuo ZhongLiu博士和Li Ruixing高工對這項工作的深刻的意見和討論。 感謝網路安全中心為實驗提供環境。 感謝通信安全實驗室提供深入研究的機會。

參考文獻

[1] Xu, Weiai Wayne, and Miao Feng. "Networked creativity on the censored web 2.0: Chinese users』 Twitter-based activities on the issue of internet censorship." Journal of Contemporary Eastern Asia 14.1 (2015): 23-43.

[2] Jacobson, Van, and S. McCanne. "libpcap: Packet capture library." Lawrence Berkeley Laboratory, Berkeley, CA(2009).

[3] Fagoyinbo, Joseph Babatunde. The Armed Forces: Instrument of Peace, Strength, Development and Prosperity. AuthorHouse. 2013- 05-24 [29 August 2014]. ISBN 9781477226476.

[4] Seid, Howard A., and Albert Lespagnol. "Virtual private network." U.S. Patent No. 5,768,271. 16 Jun. 1998.

[5] Liaw, Andy, and Matthew Wiener. "Classification and regression by randomForest."R news 2.3 (2002): 18-22.

[6] Goldberg, David E., and John H. Holland. "Genetic algorithms and machine learning." Machine learning 3.2 (1988): 95-99.

[7] Zhu, Xiaojin. "Semi-supervised learning." Encyclopedia of Machine Learning. Springer US, 2011. 892-897.

[8] Ylonen, Tatu, and Chris Lonvick. "The secure shell (SSH) protocol architecture." (2006).

[9] Kaliski, Burt. "PKCS# 1: RSA encryption version 1.5." (1998).

[10] Krawetz, Neal. "Anti-honeypot technology." IEEE Security & Privacy 2.1 (2004): 76-79.

[11] Fonarow, Gregg C., et al. "Risk stratification for in-hospital mortality in acutely decompensated heart failure: classification and regression

tree analysis." Jama 293.5 (2005): 572-580.

翻譯倉促,如有錯誤,歡迎指正~

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT面試題匯總 的精彩文章:

Android ListView常用屬性解析

TAG:IT面試題匯總 |