陳志鵬, 張 鵬, 黃彩云, 劉慶云, 邢麗超
1中國(guó)科學(xué)院大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院, 北京 中國(guó)100049
2中國(guó)科學(xué)院信息工程研究所 信息內(nèi)容安全技術(shù)國(guó)家工程實(shí)驗(yàn)室, 北京 中國(guó)100093
隨著信息及網(wǎng)絡(luò)技術(shù)的發(fā)展, 網(wǎng)絡(luò)空間已成為繼陸??仗熘獾牡谖蹇臻g, 是世界各國(guó)戰(zhàn)略必爭(zhēng)高地。網(wǎng)絡(luò)空間運(yùn)行體系的組成要素可被分為 4 種類(lèi)型: 載體、資源、主體和操作。其中, 網(wǎng)絡(luò)空間載體是網(wǎng)絡(luò)空間的軟硬件設(shè)施, 是提供信息通信的系統(tǒng)層面的集合; 網(wǎng)絡(luò)空間資源是在網(wǎng)絡(luò)空間中流轉(zhuǎn)的數(shù)據(jù)內(nèi)容, 包括人類(lèi)用戶(hù)及機(jī)器用戶(hù)能夠理解、識(shí)別和處理的信號(hào)狀態(tài); 網(wǎng)絡(luò)空間主體是互聯(lián)網(wǎng)用戶(hù),包括傳統(tǒng)互聯(lián)網(wǎng)中的人類(lèi)用戶(hù)以及未來(lái)物聯(lián)網(wǎng)中的機(jī)器和設(shè)備用戶(hù); 網(wǎng)絡(luò)空間的操作是對(duì)網(wǎng)絡(luò)資源的創(chuàng)造、存儲(chǔ)、改變、使用、傳輸、展示等活動(dòng)[1]。
代理服務(wù)作為網(wǎng)絡(luò)空間載體的一種形式, 在數(shù)據(jù)緩存、訪問(wèn)加速、負(fù)載均衡等方面發(fā)揮了不可替代的作用。根據(jù)GWI (global web index) Social統(tǒng)計(jì)代理使用報(bào)告[2]和 Roberts等人[3]研究指出, 代理服務(wù)由于其特有的功能被世界上許多國(guó)家的人們所采用。另一方面, 根據(jù) Sandvine1Sandvine (2013). Global Internet Phenomena Report: 2H 2013.https://www.sandvine.com/trends/global-internet-phenomena/公司最近公布的流量類(lèi)型的統(tǒng)計(jì)數(shù)據(jù)顯示, 無(wú)論是從應(yīng)用類(lèi)型還是從網(wǎng)絡(luò)用戶(hù)的維度, 網(wǎng)絡(luò)流量使用的比重分布有很強(qiáng)的偏向性。在不同地域上這種流量的應(yīng)用類(lèi)型分布特性還有所區(qū)別, 通過(guò)有效的代理服務(wù), 可以減少重復(fù)數(shù)據(jù)傳輸導(dǎo)致的帶寬消耗, 減少資金浪費(fèi); 還可以改善目標(biāo)用戶(hù)的服務(wù)體驗(yàn); 對(duì)于熱點(diǎn)內(nèi)容, 提供就近代理緩存服務(wù), 因而經(jīng)歷更少的網(wǎng)絡(luò)延時(shí), 帶來(lái)更快的響應(yīng)速度。
但是, 代理服務(wù)技術(shù)也是一把雙刃劍, 代理服務(wù)在給人們生產(chǎn)和生活帶來(lái)便利的同時(shí), 一些惡意分子也充分利用代理服務(wù)進(jìn)行網(wǎng)絡(luò)犯罪和服務(wù)。例如, 在訂票高峰期, 很多第三方搶票軟件通過(guò)代理服務(wù)購(gòu)票, 但是, 搶票軟件不一定都可靠, 一些搶票軟件非但沒(méi)有常規(guī)的搶票功能, 反而會(huì)攜帶病毒或者存在其它的安全隱患(捆綁銷(xiāo)售等等)。還有一些代理服務(wù)會(huì)改變用戶(hù)數(shù)據(jù)包的目標(biāo)傳輸?shù)刂? 并將用戶(hù)的瀏覽器請(qǐng)求重定向, 然后對(duì)流氓網(wǎng)絡(luò)的路由地址進(jìn)行解析。其結(jié)果就是, 原始的網(wǎng)絡(luò)流量會(huì)被重定向至加載了廣告和惡意軟件的惡意站點(diǎn)。而這些代理服務(wù)與廣告網(wǎng)站(或一些惡意軟件站點(diǎn))之間存在著利益關(guān)系, 他們一同合作并創(chuàng)造出了大量的廣告流量收益, 然后雙方就可以對(duì)這些收入進(jìn)行分?jǐn)?。Giorgos[4]等人研究了 HTTP代理服務(wù)中存在的大量惡意行為,如注入或修改廣告、搜集用戶(hù)敏感信息等。另外, 一些欺詐交易也是通過(guò)惡意代理服務(wù)的方式進(jìn)行的, 給人們的生產(chǎn)生活帶來(lái)重大損失。
代理服務(wù)導(dǎo)致上述問(wèn)題的原因主要有兩方面:一是代理服務(wù)承載協(xié)議種類(lèi)的多樣性, 代理服務(wù)多種多樣, 如網(wǎng)頁(yè)代理、HTTP代理、Socks代理、VPN代理等等; 二是代理服務(wù)形態(tài)的豐富性, 代理服務(wù)的形態(tài)多表征, 數(shù)量及分布動(dòng)態(tài)變化, 具有隱匿、動(dòng)態(tài)、時(shí)變的特點(diǎn), 使得服務(wù)的真實(shí)情況難以刻畫(huà), 發(fā)現(xiàn)難。因此, 通過(guò)對(duì)網(wǎng)絡(luò)空間代理服務(wù)進(jìn)行測(cè)繪, 可以全面掌握代理服務(wù)的特性及其分布, 最大可能地形式化、精確化還原代理服務(wù)的使用狀況, 對(duì)企業(yè)和國(guó)家的風(fēng)險(xiǎn)控制、溯源取證有著重要意義。然而, 隨著互聯(lián)網(wǎng)的迅速發(fā)展, 傳統(tǒng)代理服務(wù)發(fā)現(xiàn)機(jī)制面臨著一些新的挑戰(zhàn): 代理規(guī)模不斷擴(kuò)大, 流量逐步呈現(xiàn)出復(fù)雜化、多樣化的趨勢(shì); 多元化的網(wǎng)絡(luò)傳播途徑對(duì)識(shí)別發(fā)現(xiàn)系統(tǒng)的實(shí)時(shí)性提出了更高的要求; 加密服務(wù)及相關(guān)隱匿手段(如代理服務(wù)的流量隱匿成非代理流量)的使用, 限制了傳統(tǒng)依賴(lài)內(nèi)容檢測(cè)技術(shù)的應(yīng)用范圍。Staniford 和 Heberlein[4]首次提出了代理服務(wù)發(fā)現(xiàn)的概念以及基于網(wǎng)絡(luò)包內(nèi)容的黑名單或正則表達(dá)式發(fā)現(xiàn)方法。但是, 基于黑名單的方法僅限于檢測(cè)已知的代理服務(wù), 缺少很好的擴(kuò)展性, 并且大多數(shù)構(gòu)造黑名單或正則表達(dá)式的方法是人工的方式;基于正則表達(dá)式的方法雖然可擴(kuò)展性好, 但是精確度相對(duì)不高, 而且生成正則表達(dá)式的過(guò)程也是低效率的。此外, 網(wǎng)頁(yè)代理不用安裝客戶(hù)端或進(jìn)行其他復(fù)雜的設(shè)置, 并且大多是免費(fèi)的。這意味著用戶(hù)可以免費(fèi)享受代理服務(wù)提供的所有優(yōu)惠, 而不必承擔(dān)任何費(fèi)用。正如圖1所示, 用戶(hù)只要輸入他們想要訪問(wèn)的URL, 就可以無(wú)限制地瀏覽任何網(wǎng)絡(luò)資源。因此, 如何快速有效地將它們與大量正常網(wǎng)頁(yè)區(qū)分開(kāi)來(lái)成為網(wǎng)絡(luò)空間安全面臨的一個(gè)重要挑戰(zhàn)。
圖1 網(wǎng)頁(yè)代理使用示例Figure 1 User Case of the Web Proxy
為此, 本文提出了一種多維特征分析的網(wǎng)頁(yè)代理服務(wù)發(fā)現(xiàn)方法——ProxyMiner。在主動(dòng)發(fā)現(xiàn)方面,首先通過(guò)編寫(xiě)爬蟲(chóng)主動(dòng)獲取代理及非代理的網(wǎng)頁(yè)數(shù)據(jù)集, 然后抽取網(wǎng)頁(yè)的URL特征、內(nèi)容特征、DOM特征(Document Object Model)作為網(wǎng)頁(yè)代理特征, 最后通過(guò)構(gòu)建機(jī)器學(xué)習(xí)模型進(jìn)行訓(xùn)練, 進(jìn)而識(shí)別網(wǎng)頁(yè)代理。在被動(dòng)發(fā)現(xiàn)方面, 通過(guò)識(shí)別和分析相似訪問(wèn)模式的用戶(hù)群體來(lái)檢測(cè)網(wǎng)頁(yè)代理服務(wù)。利用代理用戶(hù)群體抽象出網(wǎng)絡(luò)用戶(hù)的訪問(wèn)模式, 可以使流量分析的成本顯著降低。
本文的主要貢獻(xiàn)是提出了主被動(dòng)發(fā)現(xiàn)相結(jié)合的特征分析方法對(duì)網(wǎng)頁(yè)代理服務(wù)進(jìn)行發(fā)現(xiàn)。具體有兩點(diǎn), 一是主動(dòng)發(fā)現(xiàn)方面, 首次將網(wǎng)頁(yè)代理特有的局部特征引入模型中, 結(jié)合黑名單等方法來(lái)發(fā)現(xiàn)網(wǎng)頁(yè)代理。二是被動(dòng)發(fā)現(xiàn)方面, 基于對(duì)隱藏在網(wǎng)頁(yè)代理服務(wù)后面的用戶(hù)進(jìn)行聚類(lèi)分析, 探索網(wǎng)絡(luò)代理用戶(hù)的行為相似性, 并發(fā)現(xiàn)代理用戶(hù)群體固有的特征, 通過(guò)檢查代理用戶(hù)群體訪問(wèn)的URL進(jìn)行網(wǎng)頁(yè)代理服務(wù)發(fā)現(xiàn)。
本文的后續(xù)安排如下: 本文第二章主要介紹了網(wǎng)頁(yè)代理服務(wù)發(fā)現(xiàn)的相關(guān)工作; 第三章形式化定義了本文的研究問(wèn)題, 詳細(xì)闡述了 ProxyMiner方法的架構(gòu)和工作流程; 第四章進(jìn)行了詳細(xì)的實(shí)驗(yàn)結(jié)果分析; 第五章對(duì)本文的工作進(jìn)行了總結(jié)。
代理服務(wù)形式多種多樣, 承載的協(xié)議也是種類(lèi)繁多的, 我們首先按照網(wǎng)絡(luò)層次將不同的代理服務(wù)協(xié)議和相應(yīng)的網(wǎng)絡(luò)層次進(jìn)行了歸納整理, 如圖 2所示, 如 HTTP協(xié)議、VPN協(xié)議等等。代理服務(wù)的實(shí)現(xiàn)方式也是多種多樣的, 表1按時(shí)間順序列舉了圖2所示的常用方法的多個(gè)代理服務(wù)工具。
Staniford 和 Heberlein[5]二人首次提出了代理服務(wù)發(fā)現(xiàn)的概念, 并且提出了基于網(wǎng)絡(luò)包內(nèi)容的發(fā)現(xiàn)方法, 毫無(wú)疑問(wèn), 這種方法對(duì)加密流量的代理服務(wù)就無(wú)能為力了。
目前, 在學(xué)術(shù)領(lǐng)域, 代理服務(wù)發(fā)現(xiàn)的方法主要包括四類(lèi): 基于黑名單技術(shù)的識(shí)別方法, 基于啟發(fā)式規(guī)則(如正則表達(dá)式規(guī)則)的識(shí)別方法, 基于機(jī)器學(xué)習(xí)的識(shí)別方法, 以及基于交互式主機(jī)行為的識(shí)別方法。
圖2 代理相關(guān)協(xié)議和方法Figure 2 Protocols and Methods on Proxy
基于黑名單的方法僅限于檢測(cè)已知的代理服務(wù),缺少很好的擴(kuò)展性。另外, 雖然基于黑名單方法在運(yùn)行時(shí)效率非常高, 但是在構(gòu)造黑名單的過(guò)程中, 十分麻煩, 因?yàn)槿缃翊蠖鄶?shù)構(gòu)造黑名單的方法還是人工的方式。為了增強(qiáng)可擴(kuò)展性, 同時(shí)為了應(yīng)對(duì)代理域名周期性變化的問(wèn)題, 基于正則表達(dá)式的方法被提出了, 如產(chǎn)生 Snort規(guī)則[6]等等?;谡齽t表達(dá)式的方法雖然可擴(kuò)展性好, 但是精確度相對(duì)不高, 而且生成正則表達(dá)式的過(guò)程也是低效率的。因此, 基于簽名的啟發(fā)式方法被提出了, 該方法主要是基于內(nèi)容的, 如基于指紋[5]和基于水印[7]等等?;谥讣y的方法主要是基于流量的內(nèi)容, 如包的特征屬性, 內(nèi)容等提煉出簽名、正則表達(dá)式等方式進(jìn)行檢測(cè); 基于水印的方法主要是在流入主機(jī)的流量中注入水印特征,若在流出主機(jī)的流量中檢測(cè)出含有水印的包特征,則判定該主機(jī)為提供代理服務(wù)的主機(jī)。這兩種基于內(nèi)容的方法在加密流量中就很難應(yīng)用了。
基于機(jī)器學(xué)習(xí)的方法不對(duì)包內(nèi)容進(jìn)行檢測(cè), 只是對(duì)代理服務(wù)的特征進(jìn)行分析, 一方面摒棄了侵犯用戶(hù)隱私的擔(dān)憂, 另一方面也繞過(guò)了對(duì)加密內(nèi)容檢測(cè)內(nèi)容困難的難題。Vahid[8]等人基于存儲(chǔ)于服務(wù)器中的不同流量日志, 用機(jī)器學(xué)習(xí)的方法來(lái)識(shí)別代理服務(wù)。Rueimin[9]等人提出了一種基于 RTT(Round-Trip Time)時(shí)間的方法來(lái)檢測(cè)是否為代理主機(jī)。理論依據(jù)是若代理主機(jī)提供中繼服務(wù), 其必然響應(yīng)用戶(hù)的請(qǐng)求, 并重新建立 TCP鏈接, 這樣基于代理主機(jī)的RTT總時(shí)間必然大于未經(jīng)過(guò)代理主機(jī)的RTT。 此外, 還有基于其它特征, 如包大小、包時(shí)間戳、建立鏈接起止時(shí)間、包間延遲等等來(lái)發(fā)現(xiàn)代理服務(wù)[10-13]。這些基于時(shí)間戳的方法受網(wǎng)絡(luò)環(huán)境影響很大, 精度較低, 缺少很好的魯棒性。另外, Deng[14]等人通過(guò)流量分析Shadowsocks流量特征, 采用隨機(jī)森林方法來(lái)發(fā)現(xiàn)Shadowsocks代理服務(wù)。基于機(jī)器學(xué)習(xí)的方法,關(guān)鍵是確定相應(yīng)代理服務(wù)的特征, 尤其是相對(duì)穩(wěn)定的或者能夠動(dòng)態(tài)更新的, 否則會(huì)造成召回率較低。
當(dāng)訪問(wèn)網(wǎng)頁(yè)代理時(shí), 可能會(huì)出現(xiàn)安裝惡意軟件或者執(zhí)行惡意腳本的情況。這時(shí), 可以結(jié)合虛擬化技術(shù)和蜜罐技術(shù)對(duì)代理網(wǎng)頁(yè)進(jìn)行識(shí)別。此類(lèi)方法的工作原理是: 使用蜜罐技術(shù), 將虛擬主機(jī)作為誘餌, 訪問(wèn)待檢測(cè)網(wǎng)頁(yè), 通過(guò)監(jiān)測(cè)訪問(wèn)后的主機(jī)動(dòng)態(tài)行為(例如: 創(chuàng)建新進(jìn)程、改變注冊(cè)表、下載文件、成功訪問(wèn)受限站點(diǎn)等), 判斷該網(wǎng)頁(yè)是否是網(wǎng)頁(yè)代理。根據(jù)使用系統(tǒng)的不同, 蜜罐技術(shù)可以細(xì)分為基于模擬的低交互式蜜罐[15]和基于真實(shí)系統(tǒng)的高交互式蜜罐[16]。諸葛建偉[17]等人對(duì)此有詳細(xì)介紹, 這里不再贅述。
在工業(yè)領(lǐng)域, 也有許多商業(yè)上的產(chǎn)品提供代理服務(wù)發(fā)現(xiàn)的功能, 他們采用的技術(shù)方法主要有:DPI(Deep Packet Inspector, 深度包檢測(cè))、HTTP頭部字段檢測(cè)、IP黑名單檢測(cè)、URL黑名單檢測(cè)(通過(guò)同已構(gòu)建的代理庫(kù)進(jìn)行匹配, 判斷待測(cè)URL是否在代理庫(kù)中)、基于啟發(fā)式規(guī)則檢測(cè)和地理位置檢測(cè)等方法。其中, IP2Proxy[18]檢測(cè)流量中HTTP協(xié)議頭部字段是否包含REMOTE_ADDR、VIA 、XFF字段, 若含有, 則認(rèn)為是代理服務(wù)。但是, XFF字段在HTTP協(xié)議中是可選字段, 并且該字段也是可以仿造的,準(zhǔn)確率不高。CIPAFilter[19]通過(guò)URL黑名單進(jìn)行發(fā)現(xiàn),MaxMind[20]通過(guò) IP黑名單進(jìn)行發(fā)現(xiàn), 這兩種方法對(duì)于代理地址不斷變化更新的情況就無(wú)能為力了, 擴(kuò)展性比較差。此外, 還有通過(guò)端口掃描進(jìn)行代理服務(wù)發(fā)現(xiàn), 端口掃描是通過(guò)對(duì)于指定的 IP地址, 掃描代理常用的端口, 查看該端口的開(kāi)放狀況, 判斷其是否為代理服務(wù)。為了增強(qiáng)判別的精度, 有人還對(duì)待測(cè)IP所對(duì)應(yīng)的DNS服務(wù)器的IP地址進(jìn)行反向解析, 驗(yàn)證該 IP是否注冊(cè)域名, 從而計(jì)算其是否為代理服務(wù)的可疑性。當(dāng)然, 最樸素的方法就是模擬代理訪問(wèn)網(wǎng)站識(shí)別法, 通過(guò)設(shè)置指定的IP為代理, 以該IP來(lái)訪問(wèn)受限的網(wǎng)站, 根據(jù)其是否訪問(wèn)成功, 來(lái)判斷其是否為代理服務(wù)。
表1 常見(jiàn)代理服務(wù)工具Table 1 Common Proxy Tools
表2 代理服務(wù)發(fā)現(xiàn)機(jī)制常用方法Table 2 Proxy Service Detection Methods
綜合以上學(xué)術(shù)界和工業(yè)界對(duì)代理服務(wù)的發(fā)現(xiàn)方法研究, 表2總結(jié)了5種代理服務(wù)發(fā)現(xiàn)方法, 并從數(shù)據(jù)粒度、分類(lèi)粒度、復(fù)雜度、實(shí)時(shí)性、精度、可擴(kuò)展性等多方面進(jìn)行了對(duì)比分析。
網(wǎng)頁(yè)代理服務(wù)通常作為用戶(hù)(個(gè)人主機(jī))通過(guò)網(wǎng)絡(luò)服務(wù)提供商獲取網(wǎng)絡(luò)資源的信息中轉(zhuǎn)站。但是網(wǎng)頁(yè)代理服務(wù)協(xié)議多種多樣, 對(duì)此, 我們對(duì)網(wǎng)頁(yè)代理服務(wù)進(jìn)行了統(tǒng)一的形式化定義: 六元組(C,P,S,B,A,QoS), 其中C:用戶(hù)、P: 代理、S: 網(wǎng)絡(luò)資源、B: 行為、A: 特征屬性、QoS: 評(píng)價(jià)度。
第二類(lèi), 對(duì)于只是中繼包, 不更改包頭的網(wǎng)頁(yè)代理服務(wù)的轉(zhuǎn)換函數(shù)可以如公式(2)所示:
對(duì)于網(wǎng)頁(yè)代理服務(wù)質(zhì)量評(píng)估 QoS,可以通過(guò)一個(gè)向量來(lái)表示:其中, 向量的每一維度都表示網(wǎng)頁(yè)代理服務(wù)性能中的某一指標(biāo), 如代理的跳數(shù)、帶寬、延遲等等。對(duì)于經(jīng)過(guò)多跳的網(wǎng)頁(yè)代理服務(wù), 可以通過(guò)聯(lián)合操作(∪)進(jìn)行計(jì)算, 以含有兩個(gè)指標(biāo)為例, 如公式(3)所示。
不同的指標(biāo), 其聯(lián)合操作的規(guī)則是不一樣的。例如, 帶寬的聯(lián)合操作為而延遲的聯(lián)合操作為
綜上, 對(duì)于任何網(wǎng)頁(yè)代理服務(wù)是可用的, 也就是對(duì)于任何一個(gè)經(jīng)過(guò)網(wǎng)頁(yè)代理服務(wù)的流是可達(dá)的, 除了需要滿足一定的QoS外, 還需要滿足沒(méi)有訪問(wèn)環(huán)路和規(guī)則其中并且初始流沒(méi)有訪問(wèn)環(huán)路意味著任何流不能經(jīng)過(guò)相同的網(wǎng)頁(yè)代理服務(wù)兩次或多次, 即對(duì)于流f經(jīng)過(guò)網(wǎng)頁(yè)代理服務(wù)不存在而
主動(dòng)方面利用了 3.1節(jié)提到的六元組(C,P,S,B,A,QoS)中的C、P、S、A四種屬性, 主要是充分利用A屬性的特征, 通過(guò)特征發(fā)現(xiàn), 并沒(méi)有解析網(wǎng)頁(yè)里的所有內(nèi)容(解析全部網(wǎng)頁(yè)內(nèi)容會(huì)帶來(lái)很大開(kāi)銷(xiāo)), 而僅是專(zhuān)注于抽取網(wǎng)頁(yè)代理特有的特征: 在DOM結(jié)構(gòu)里有著特定值的Form表單。主要分為兩部分:
1) 特征抽?。?對(duì)于每一個(gè)數(shù)據(jù)集網(wǎng)頁(yè)(或 URL),構(gòu)建一個(gè)多維特征向量作為機(jī)器學(xué)習(xí)判別的一個(gè)輸入;
2) 機(jī)器學(xué)習(xí): 基于特征向量集, 通過(guò)學(xué)習(xí)訓(xùn)練得到一個(gè)預(yù)測(cè)判別模型。
被動(dòng)方面通過(guò)利用了 3.1節(jié)提到的六元組(C,P,S,B,A,QoS)中的C、P、S三種屬性, 通過(guò)用戶(hù)線索發(fā)現(xiàn)網(wǎng)頁(yè)代理服務(wù)使用訪問(wèn)關(guān)系, 并計(jì)算用戶(hù)相似度聚類(lèi)相似用戶(hù)群體, 重點(diǎn)檢測(cè)每組用戶(hù)群的公共TopN的URL, 這就限制了URL的檢查范圍, 避免了對(duì)訪問(wèn)流中所有未知 URL的詳細(xì)檢查。同時(shí),利用已有用戶(hù)的代理訪問(wèn)關(guān)系建立用戶(hù)訪問(wèn)反饋機(jī)制, 從而對(duì)潛在的網(wǎng)頁(yè)代理服務(wù)進(jìn)行服務(wù)發(fā)現(xiàn)。
簡(jiǎn)而言之, 我們?cè)诳蛻?hù)端和目的地之間建立了雙向圖, 如圖3所示, 通過(guò)觀察客戶(hù)端和代理之間的雙向圖來(lái)聚合網(wǎng)絡(luò)代理用戶(hù)的相似性并找出最新的潛在網(wǎng)絡(luò)代理。
定義一個(gè)函數(shù)更形式化的描述被動(dòng)發(fā)現(xiàn)方法,將輸入網(wǎng)絡(luò)流量日志作為輸入, 并在特定窗口時(shí)間內(nèi)輸出包含三元屬性的二部圖。一個(gè)函數(shù)Fin被定義為:其中 logs表示數(shù)據(jù)集的記錄, 集合srcIP表示客戶(hù)端IP集合, 集合dst是目標(biāo) URL,e是邊集具體來(lái)說(shuō),srcIP和dst是兩個(gè)不相交的頂點(diǎn)集, 邊的權(quán)重是在一定時(shí)間段內(nèi)生成的相同邊的數(shù)量。
為了研究網(wǎng)絡(luò)流量中用戶(hù)訪問(wèn)行為相似性, 我們利用二分圖的單模投影圖來(lái)提取行為模式中節(jié)點(diǎn)之間的關(guān)系。圖3(a)表示了通過(guò)兩個(gè)代理服務(wù)(P1,P2)的六個(gè)用戶(hù) IP地址(C1-C6)和四個(gè)目的 URL(d1-d4)之間的數(shù)據(jù)通信的簡(jiǎn)單圖的例子。圖3(b)表示相應(yīng)的二分圖, 而圖 3(c)是用戶(hù)主機(jī)(C1-C6)的頂點(diǎn)集上的二分圖的單模投影。兩個(gè)節(jié)點(diǎn)通過(guò)單模投影中的邊連接, 當(dāng)且僅當(dāng)兩個(gè)節(jié)點(diǎn)連接到二分圖中有至少一個(gè)相同節(jié)點(diǎn)。我們利用單模投影圖來(lái)探索用戶(hù)的社交行為相似度。然而, 我們的興趣并不是創(chuàng)建一個(gè)代理用戶(hù)集群, 而是找出新的潛在的代理服務(wù), 即使它們可能是動(dòng)態(tài)變化的。
圖3 用二分圖和單模映射對(duì)代理用戶(hù)訪問(wèn)模式建模Figure 3 Modeling the Proxy Pattern based on Bipartite and One-mode projection
ProxyMiner整個(gè)系統(tǒng)模塊圖如圖4所示, 其主要分為主動(dòng)發(fā)現(xiàn)模塊和被動(dòng)發(fā)現(xiàn)模塊兩部分。
圖4 系統(tǒng)模塊圖Figure 4 The Framework of ProxyMiner
主動(dòng)發(fā)現(xiàn)模塊主要是通過(guò)爬蟲(chóng)定期向相應(yīng)的公開(kāi)網(wǎng)頁(yè)代理服務(wù)網(wǎng)站、論壇等方面去爬取相應(yīng)的網(wǎng)頁(yè)代理服務(wù), 同時(shí), 對(duì)有效的網(wǎng)頁(yè)代理進(jìn)行特征抽取。分別抽取網(wǎng)頁(yè)的URL特征, 內(nèi)容特征, DOM特征。最后通過(guò)構(gòu)建機(jī)器學(xué)習(xí)模型進(jìn)行訓(xùn)練, 進(jìn)而進(jìn)行網(wǎng)頁(yè)代理識(shí)別。被動(dòng)發(fā)現(xiàn)模塊主要是通過(guò)協(xié)議解析, 日志分析來(lái)構(gòu)建二分圖來(lái)對(duì)網(wǎng)絡(luò)用戶(hù)與其實(shí)際訪問(wèn)目的地之間進(jìn)行抽象建模, 即客戶(hù)端與目的地之間的雙向節(jié)點(diǎn)。隨后構(gòu)建了二分圖的單模投影,從而可以進(jìn)一步構(gòu)建網(wǎng)絡(luò)用戶(hù)的相似性矩陣, 其相似性由兩個(gè)主機(jī)之間的共同的目的地?cái)?shù)量來(lái)表征。基于相似矩陣, 應(yīng)用簡(jiǎn)單而有效的譜聚類(lèi)算法來(lái)對(duì)用戶(hù)群體聚類(lèi)。這種行為模式聚類(lèi)不僅減少了分析流量的規(guī)模, 而且還揭示了潛在的代理用戶(hù)行為訪問(wèn)模式。最后, 我們不斷獲取代理用戶(hù)群體訪問(wèn)的頂級(jí)域名, 并將它們輸送到驗(yàn)證模塊(可以手動(dòng)驗(yàn)證, 也可以批量自動(dòng)驗(yàn)證), 手動(dòng)驗(yàn)證就是通過(guò)瀏覽器設(shè)置網(wǎng)頁(yè)代理服務(wù)后, 手動(dòng)訪問(wèn)網(wǎng)絡(luò)資源, 查看是否能夠成功訪問(wèn)。對(duì)于自動(dòng)驗(yàn)證, 本文基于WebDriver[21], 實(shí)現(xiàn)了模擬同時(shí)通過(guò)網(wǎng)頁(yè)代理服務(wù)訪問(wèn)的驗(yàn)證小工具。對(duì)于驗(yàn)證完成后的網(wǎng)頁(yè)代理服務(wù), 可以進(jìn)一步分析, 若發(fā)現(xiàn)新的且有效的網(wǎng)頁(yè)代理服務(wù)特征, 可以進(jìn)一步服務(wù)于主動(dòng)方法的網(wǎng)頁(yè)代理服務(wù)發(fā)現(xiàn)模塊。
A.主動(dòng)發(fā)現(xiàn)
圖 5展示了主動(dòng)發(fā)現(xiàn)模塊的架構(gòu)。從整體角度分析, 主動(dòng)發(fā)現(xiàn)模塊包含三個(gè)主要步驟。
圖5 主動(dòng)發(fā)現(xiàn)模塊的流程圖Figure 5 The Process of Active Module
在第一步中, 通過(guò)基于 Beautiful Soup[22](Beautiful Soup是一個(gè)工具箱, 提供web數(shù)據(jù)解析等功能)技術(shù), 編寫(xiě)爬蟲(chóng)主動(dòng)獲取代理及非代理的網(wǎng)頁(yè)數(shù)據(jù)集。
在第二步中, 進(jìn)行代理特征抽取。分別抽取網(wǎng)頁(yè)的URL特征, DOM特征。
1)URL 特征
a) 檢測(cè)URL是否含有數(shù)字, 或者域名是IP。
b) 檢測(cè) URL是否含有敏感詞匯: 如 proxy, hide,block等等。
c) 檢測(cè)URL是否含有特殊符號(hào): 如"-", "@"等等。
d) 檢測(cè) URL是否含有嵌入域名, 如 http://rhe.rxxrh.com/http://www.google.com。
e) 檢測(cè)頂級(jí)域名是否使用非常用域名, 如‘.xyz’‘.top’等。
f) 檢測(cè)URL有效生存期是否過(guò)短。
g) 檢測(cè)每個(gè)IP承載的域名數(shù)量。如果一個(gè)IP承載多個(gè)域名, 那么特征向量對(duì)應(yīng)的這一維度的值置為1; 否則置為0。
2)DOM特征
a) 表單(Form)
結(jié)構(gòu)特征: Form表單里含有一個(gè)輸入框, 輸入框下方含有多個(gè)復(fù)選框(可選)。
屬性特征: 復(fù)選框值含有敏感詞匯; action屬性:action屬性值含有敏感字符串, 如"Encrypt URL"、"Encrypt Page"、"Allow Cookies"、"Remove Scripts"和 "Remove Objects"等等。
b) Javascript內(nèi)容特征。 據(jù)分析, 我們發(fā)現(xiàn)網(wǎng)頁(yè)代理服務(wù)是提供中繼服務(wù)的, 網(wǎng)頁(yè)代理是通過(guò) on-submit函數(shù)來(lái)實(shí)現(xiàn)這一功能的, 相應(yīng)的, 通過(guò)檢測(cè)on-submit屬性值是否包含字符串"return update Location(this) "。若含有, 則特征向量對(duì)應(yīng)的這一維值置為1; 否則置為0。
具體構(gòu)建特征向量的方式有三種。URL特征中的前5個(gè)特征是基于搜集大量網(wǎng)頁(yè)代理URL數(shù)據(jù)集的基礎(chǔ)上構(gòu)建 URL正則表達(dá)式, 通過(guò)字符串檢測(cè)來(lái)獲得的, 第 6個(gè)特征是通過(guò)請(qǐng)求域名的whois信息計(jì)算相應(yīng)的生存期來(lái)獲得的。第7個(gè)特征是通過(guò)nslookup命令獲取的。而DOM中的Form表單、復(fù)選框以及Javascript特征的檢測(cè)都是通過(guò)Beautiful Soup 的python解析器——lxml解析器[23]進(jìn)行解析分析。lxml解析器基于C語(yǔ)言庫(kù)libxml2和 libxslt, 對(duì)于 XML文檔解析有很快的速度和很強(qiáng)的容錯(cuò)能力。
第三步, 對(duì)于每一個(gè)網(wǎng)頁(yè), 通過(guò)第二步構(gòu)建一個(gè)含有多維特征的向量, 作為訓(xùn)練集。
第四步, 為了驗(yàn)證特征抽取對(duì)代理識(shí)別的有效性, 本文分別在 URL特征、DOM 特征和全集特征(FULL, 包括URL和DOM的所有特征)三種不同規(guī)模特征集上分別通過(guò) Logistic Regression, Bayes,SVM-linear, SVM-RBF四種機(jī)器學(xué)習(xí)方法構(gòu)建訓(xùn)練模型。
Logistic Regression: 這是一個(gè)簡(jiǎn)單的二分類(lèi)模型: 基于距離分類(lèi)超平面的距離進(jìn)行分類(lèi)。決策規(guī)則是基于符號(hào)函數(shù), 具體公式如公式(4)所示, 其能將距離度量轉(zhuǎn)化成判斷代理與否的概率。
其中, 參數(shù)w和b可以通過(guò)訓(xùn)練數(shù)據(jù)不斷訓(xùn)練得到。
Bayes: Bayes 可以通過(guò)計(jì)算條件概率來(lái)獲得,如公式(5)所示。:
模型的判斷是基于最大化特征的聯(lián)合似然函數(shù)的值。
Support Vector Machine (SVM): SVM 分類(lèi)器以最大化正確分類(lèi)的邊際為基準(zhǔn), 這對(duì)于微小的擾動(dòng)是穩(wěn)健的。 SVM中的決策規(guī)則基于計(jì)算特征之間相似性的核函數(shù)。在我們的研究中, 我們使用線性和RBF內(nèi)核。
第五步, 測(cè)試集也是通過(guò)爬蟲(chóng)獲取, 具體方式同第一步。
第六步, 抽取測(cè)試集的特征向量, 具體方式同第二步。
第七步, 通過(guò)訓(xùn)練出的模型分別進(jìn)行代理識(shí)別并進(jìn)行對(duì)比分析。
第八步, 對(duì)于獲得的識(shí)別結(jié)果, 若存在誤差, 可以將錯(cuò)誤樣例加入訓(xùn)練集中重新進(jìn)行模型訓(xùn)練。
本文基于Python Scikit-learn庫(kù)[24]集成了四種分類(lèi)方法, 如 Logistic Regression、Bayes、SVM-linear、SVM-RBF。最后, 基于這四種機(jī)器學(xué)習(xí)方法訓(xùn)練模型的檢測(cè)效果, 進(jìn)行對(duì)比并對(duì)結(jié)果進(jìn)行輸出。對(duì)于每次最終輸出的結(jié)果, 可以回饋到數(shù)據(jù)集, 便于更新下一輪的訓(xùn)練。
B. 被動(dòng)發(fā)現(xiàn)
圖 7展示了被動(dòng)發(fā)現(xiàn)模塊的框架。該模塊的詳細(xì)過(guò)程會(huì)在如下論述。
1) 訪問(wèn)模式測(cè)量
本節(jié)從測(cè)量的角度對(duì)我們的假設(shè)進(jìn)行了有效驗(yàn)證和分析。
我們的假設(shè)是, 使用代理的用戶(hù)的行為是相似的, 他們有一些固有的訪問(wèn)模式。也就是說(shuō), 用戶(hù)傾向于尋求更高效的代理服務(wù)器, 他們通過(guò)代理服務(wù)更愿意訪問(wèn)那些僅能通過(guò)代理才能夠使用的服務(wù)。當(dāng)某個(gè)代理服務(wù)不起作用時(shí), 代理用戶(hù)會(huì)尋求其他的代理服務(wù)。
圖6 較流行的代理服務(wù)使用的累積分布圖Figure 6 Cumulative Distribution of Popular Proxy Service
為了驗(yàn)證我們的假設(shè), 我們對(duì)代理用戶(hù)的訪問(wèn)模式進(jìn)行了全面的測(cè)量研究。首先, 我們從一家大型機(jī)構(gòu)獲取真實(shí)網(wǎng)絡(luò)流量, 該機(jī)構(gòu)在2017年1月3日至7月28日的骨干路由器上部署了代理蜜罐(PList1)。然后, 我們分析并發(fā)現(xiàn), 排名前300的域名大約提供了 80%的代理服務(wù), 正如其累積分布圖 6中顯示的那樣, 意味著我們可以?xún)H關(guān)注那些經(jīng)常使用的代理服務(wù), 從而能夠節(jié)省許多資源。
表3 訪問(wèn)模式的穩(wěn)定性Table 3 The Stability of Access Patterns
另外, 我們還測(cè)量了代理用戶(hù)潛在的較穩(wěn)定訪問(wèn)模式。具體而言, 我們?cè)谑占瘮?shù)據(jù)集(2017年1月)時(shí)記錄了每個(gè)代理用戶(hù)經(jīng)常訪問(wèn)的網(wǎng)站類(lèi)別, 然后每?jī)蓚€(gè)月重新檢查其模式狀態(tài)。結(jié)果總結(jié)在表3中。我們可以看到代理用戶(hù)的訪問(wèn)模式是相對(duì)穩(wěn)定的。平均七個(gè)月僅有微小的變化。另外更重要的是, 我們從PList1中隨機(jī)選擇100個(gè)代理用戶(hù), 并測(cè)試使用了多少個(gè)代理。我們發(fā)現(xiàn) 78%的用戶(hù)經(jīng)常使用一種代理, 而其他用戶(hù)至少使用兩種代理。我們進(jìn)一步調(diào)查發(fā)現(xiàn), 用戶(hù)更換為其他新的代理服務(wù)主要是因?yàn)榕f的代理服務(wù)器不工作, 或者他們得到了更好的服務(wù)。因此, 受此發(fā)現(xiàn)的啟發(fā), 我們可以通過(guò)關(guān)注用戶(hù)的目的地主機(jī)來(lái)檢測(cè)未知的代理。
2) 基于譜劃分相似度矩陣的譜圖聚類(lèi)算法
圖7 被動(dòng)發(fā)現(xiàn)模塊的流程圖Figure 7 The Process of Passive Module
圖8 二分圖的單模映射圖Figure 8 The One-mode Projection of Bipartite Graph
一個(gè)關(guān)于主機(jī)通信的單模投影圖的有趣觀察是加權(quán)鄰接矩陣中的聚類(lèi)模式。圖 8中的散點(diǎn)圖顯示了兩個(gè)不同群體的單模投影圖, 即網(wǎng)頁(yè)代理用戶(hù)和非代理用戶(hù)的目的地。這一觀察促使我們進(jìn)一步探索聚類(lèi)技術(shù)和圖劃分算法, 以揭示網(wǎng)頁(yè)代理服務(wù)用戶(hù)特有的訪問(wèn)模式, 從而發(fā)現(xiàn)網(wǎng)頁(yè)代理服務(wù)。我們的研究采用了一個(gè)簡(jiǎn)單的譜聚類(lèi)算法[26], 其中k= 2(網(wǎng)頁(yè)代理服務(wù)用戶(hù)群體和非網(wǎng)頁(yè)代理服務(wù)用戶(hù)群體)。
算法3.1概述了該方法的主要步驟。算法的輸入是一個(gè)三元組, 包含客戶(hù)端 IP, 目標(biāo) URL和在給定時(shí)間窗口(我們?cè)O(shè)置t= 5分鐘, 可以在配置文件里設(shè)置)期間的權(quán)重(訪問(wèn)時(shí)間)。第一步是構(gòu)造加權(quán)的二部圖, 然后生成二部圖的單模投影并獲得相似度矩陣S。因此, 我們應(yīng)該找到一個(gè)圖劃分, 使得不同組之間的邊具有非常低的權(quán)重(這意味著不同群體中的節(jié)點(diǎn)是不相似的), 并且群組中的邊具有高權(quán)重。所以, 最簡(jiǎn)單直接的方法就是采用mincut策略。不幸的是, 由于mincut解的不平衡條件, 我們引入拉普拉斯矩陣其中A是對(duì)角矩陣,, 我 們 利 用Rayleigh-Ritz定理計(jì)算特征向量并找出L的第二小特征值。最簡(jiǎn)單的方法就是使用特征值的符號(hào)作為指標(biāo)函數(shù)[26]。該算法的輸出是客戶(hù)端IP, 并且每個(gè)IP地址都分配給一個(gè)具有相似的訪問(wèn)模式關(guān)系的群體。
C. 代理驗(yàn)證
在獲得網(wǎng)頁(yè)代理群體之后, 我們會(huì)保留這些客戶(hù)端IP的實(shí)時(shí)列表并提取其中所有經(jīng)常訪問(wèn)的域名。
當(dāng)我們使用網(wǎng)頁(yè)代理進(jìn)行瀏覽網(wǎng)站資源時(shí), 網(wǎng)頁(yè)代理的域名不會(huì)改變。從某種意義上說(shuō), 檢查一個(gè)URL是否為網(wǎng)頁(yè)代理的最有效和最簡(jiǎn)單的方法是檢查我們是否可以通過(guò)代理URL成功訪問(wèn)受防火墻限制的某些網(wǎng)站。因此, 我們基于WebDriver開(kāi)發(fā)了一個(gè)模擬訪問(wèn)工具。該工具可以遠(yuǎn)程模擬用戶(hù)訪問(wèn)瀏覽器的行為來(lái)檢查URL是否可以成功訪問(wèn)。如果成功, 該域名或IP可被視為一個(gè)網(wǎng)頁(yè)代理服務(wù)。
本實(shí)驗(yàn)的實(shí)驗(yàn)環(huán)境為一臺(tái)4核2.5GHz主頻CPU,4GB內(nèi)存的服務(wù)器(具體型號(hào)是 Intel(R) Xeon(R)CPU E5-2682 v4)。
主動(dòng)方面是利用Python Scikit-learn實(shí)現(xiàn)了網(wǎng)頁(yè)代理服務(wù)分類(lèi)方法, 其中包括 Logistic Regression、Bayes、SVM-linear、SVM-RBF。
被動(dòng)方面是利用Python里的復(fù)雜網(wǎng)絡(luò)分析庫(kù)networkx對(duì)代理用戶(hù)的訪問(wèn)模式進(jìn)行建模分析。
由于網(wǎng)頁(yè)代理生存期是短暫的, 許多URL的生存期不超過(guò)一周, 許多管理員不斷動(dòng)態(tài)更新網(wǎng)頁(yè)代理服務(wù)的域名。為了能在一個(gè)大規(guī)模的數(shù)據(jù)集里對(duì)發(fā)現(xiàn)方法進(jìn)行評(píng)價(jià)和測(cè)試, 并且保證實(shí)驗(yàn)數(shù)據(jù)可以重復(fù)利用, 本文首先將相關(guān)的網(wǎng)頁(yè)數(shù)據(jù)集(當(dāng)網(wǎng)頁(yè)代理服務(wù)可用時(shí))通過(guò)爬蟲(chóng)爬取下來(lái)并同時(shí)進(jìn)行保存,然后后續(xù)的所有離線分析過(guò)程, 可以通過(guò) python里的 urllib.request模塊加載相應(yīng)的網(wǎng)頁(yè)數(shù)據(jù)進(jìn)行離線分析。
主動(dòng)發(fā)現(xiàn)的訓(xùn)練數(shù)據(jù)集主要有兩類(lèi)數(shù)據(jù)集: 網(wǎng)頁(yè)代理數(shù)據(jù)集和非網(wǎng)頁(yè)代理數(shù)據(jù)集。
代理網(wǎng)頁(yè): 包括主要爬取來(lái)自公開(kāi)代理列表,如網(wǎng)站 anonymster[24], 網(wǎng)站 proxy4free[28], 網(wǎng)站PHPProxy, 網(wǎng)站CGIProxy和 網(wǎng)站Glype[29]以及一些組織或機(jī)構(gòu)公開(kāi)的網(wǎng)頁(yè)代理數(shù)據(jù)集(如 BlackLists[30]里的網(wǎng)頁(yè)代理URL)。
非代理網(wǎng)頁(yè): 非代理網(wǎng)頁(yè)數(shù)據(jù)集主要是爬取來(lái)自Alexa網(wǎng)站[31]的前26,066條記錄。
被動(dòng)方面的數(shù)據(jù)集主要包含來(lái)自代理蜜罐的數(shù)千個(gè)網(wǎng)頁(yè)以及從一個(gè)骨干路由器獲取的一些日志。
A. 主動(dòng)發(fā)現(xiàn)
本文采用了常見(jiàn)的評(píng)價(jià)指標(biāo)——準(zhǔn)確率和召回率作為評(píng)價(jià)主動(dòng)發(fā)現(xiàn)方法的評(píng)價(jià)指標(biāo)。同時(shí), 也使用集成了TP(True positive rate) 和FP(False positive rate)兩種指標(biāo)的F1指標(biāo)進(jìn)行評(píng)測(cè)。最終, 本章還借鑒了ROC(receiver operating characteristic curve) 曲線及其覆蓋的面積AUC(Area Under Curve)指標(biāo), 對(duì)比了模型間的性能差異。
特征對(duì)比
本章的第一個(gè)實(shí)驗(yàn)是為了驗(yàn)證不同的特征對(duì)代理識(shí)別的有效性, 分別在URL特征、DOM特征和全集特征(FULL, 包括URL和DOM特征)三種不同規(guī)模特征集上進(jìn)行訓(xùn)練分析。
圖9 不同特征集下的ROC曲線Figure 9 ROC of different Feature Sets
表4 不同特征集對(duì)分類(lèi)性能的影響Table 4 The Performance on different Feature Sets
圖 9展示了這三種不同特征向量的ROC曲線,可以發(fā)現(xiàn): 基于全集特征的方法具有較高的準(zhǔn)確率。與圖9相對(duì)應(yīng), 表4列出了在不同特征集下的時(shí)間消耗及相應(yīng)的準(zhǔn)確率, 召回率和F1-score??梢园l(fā)現(xiàn),與構(gòu)建基于URL特征的時(shí)間相比, 抽取并構(gòu)建基于DOM 特征的需要消耗更多的時(shí)間。相反地, 基于DOM特征的方法在召回率和F1-score方面均優(yōu)于僅基于URL特征的。而基于全集特征的(結(jié)合URL特征和DOM特征)方法具有最好的性能。
分類(lèi)方法對(duì)比
學(xué)習(xí)方法主要包括了四種分類(lèi)器, 因此本文評(píng)估了四種分類(lèi)器在三種不同特征集下的分類(lèi)效果。
表 5給出了具有四種機(jī)器學(xué)習(xí)方法的三個(gè)特征集的結(jié)果??梢钥闯? 產(chǎn)生最佳值的分類(lèi)器是基于URL的特征的 LR和 Bayes(幾乎相同), LR 基于DOM的功能和用“FULL”全集的LR。 其中, 訓(xùn)練時(shí)間不包括特征提取時(shí)間(我們可以在表4中看到結(jié)果)。因此, 通過(guò)廣泛的實(shí)驗(yàn)結(jié)果, Logistic回歸(LR)在四種算法中表現(xiàn)最好。特別是, LR的準(zhǔn)確率比貝葉斯提高了16%以上。更重要的是, 結(jié)合四種模型的所有特征, 大大提高了檢測(cè)召回率。 值得注意的是,我們的實(shí)驗(yàn)顯示的準(zhǔn)確度約為 95%, 平均召回率為96.5%。
表5 不同模型檢測(cè)結(jié)果Table 5 The Results on different Models
B. 被動(dòng)發(fā)現(xiàn)
在本節(jié)中, 我們?cè)u(píng)估被動(dòng)方法發(fā)現(xiàn)代理服務(wù)的有效性。具體而言, 我們要回答以下問(wèn)題: 第一, 對(duì)于網(wǎng)頁(yè)代理服務(wù)較短的使用期限特點(diǎn), 所提出的方法是否會(huì)能夠找到一些之前未發(fā)現(xiàn)的網(wǎng)頁(yè)代理(具有較好的可擴(kuò)展性)。第二, 對(duì)代理用戶(hù)群體進(jìn)行聚類(lèi)分析是否是一種更有效的網(wǎng)頁(yè)代理服務(wù)檢測(cè)。在接下來(lái)的具體實(shí)驗(yàn)中, 基于豐富的數(shù)據(jù)集, 我們?cè)u(píng)估了上文提出的被動(dòng)發(fā)現(xiàn)代理服務(wù)的方法。
表6列出了四個(gè)不同時(shí)期的統(tǒng)計(jì)結(jié)果。 用戶(hù)數(shù)量是指代理用戶(hù)群中的源IP數(shù)。 代理數(shù)目是指我們實(shí)驗(yàn)中真實(shí)代理的數(shù)量。發(fā)現(xiàn)數(shù)目是指被動(dòng)發(fā)現(xiàn)的疑似網(wǎng)頁(yè)代理服務(wù)的數(shù)量。驗(yàn)證代理數(shù)目代表經(jīng)過(guò)驗(yàn)證后的真實(shí)代理的數(shù)目。召回率是指被動(dòng)檢測(cè)出的網(wǎng)頁(yè)代理服務(wù)的比例。
通過(guò)分析表6的結(jié)果, 我們進(jìn)一步發(fā)現(xiàn): 最重要的時(shí)間開(kāi)銷(xiāo)是在用戶(hù)之間構(gòu)建二分圖的時(shí)候。但是召回率與用戶(hù)數(shù)量無(wú)關(guān)。我們使用兩個(gè)關(guān)鍵指標(biāo)進(jìn)行了實(shí)驗(yàn): 密度和擴(kuò)展度[32], 如圖 10所示。密度是驗(yàn)證時(shí)的代理檢測(cè)率。更高的密度值意味著更高效地使用資源。密度越高, 驗(yàn)證工作量越小。擴(kuò)展度表明了我們的方法為每個(gè)用戶(hù)IP找到的新代理的平均數(shù)量。例如, 當(dāng)網(wǎng)頁(yè)代理群體中有100個(gè)用戶(hù)IP時(shí),最終識(shí)別出了 130個(gè)網(wǎng)頁(yè)代理服務(wù), 可以得出擴(kuò)展度為 1.3。因此, 更高的擴(kuò)展度表明, 對(duì)于每個(gè)客戶(hù)端IP, 會(huì)找到更多的網(wǎng)頁(yè)代理。許多因素可能導(dǎo)致不同的擴(kuò)展度, 例如新的逃避方式, 代理用戶(hù)群體訪問(wèn)的URL等等。當(dāng)擴(kuò)展度變得越來(lái)越低時(shí), 或許是到了更新聚類(lèi)機(jī)制的時(shí)候。
表6 統(tǒng)計(jì)結(jié)果Table 6 The Statistics Result
圖10 密度vs.擴(kuò)展度Figure 10 Density vs. Expand
圖11 時(shí)間和準(zhǔn)確率方面的對(duì)比Figure 11 The Time and Accuraty vs. ProxyDetector
另外, 值得一提的是, 由于代理用戶(hù)訪問(wèn)模式的穩(wěn)定性, 我們不需要每天都構(gòu)建二分圖, 所以我們不需要過(guò)度關(guān)注構(gòu)建二分圖的開(kāi)銷(xiāo)。
最后, 我們?cè)跈z測(cè)的準(zhǔn)確率和時(shí)間消耗方面對(duì)比了被動(dòng)發(fā)現(xiàn)與ProxyDetector[13]的差異, 如圖11所示, 在準(zhǔn)確率相當(dāng)?shù)那闆r下, 被動(dòng)發(fā)現(xiàn)的預(yù)測(cè)時(shí)間大大減少, 更重要的是, 被動(dòng)發(fā)現(xiàn)可以發(fā)現(xiàn)新的未知網(wǎng)頁(yè)代理服務(wù)。
代理服務(wù)是信息安全領(lǐng)域的熱點(diǎn)問(wèn)題。隨著網(wǎng)絡(luò)攻擊技術(shù)和防御技術(shù)的不斷發(fā)展, 該問(wèn)題一直受到研究人員的廣泛關(guān)注。針對(duì)這一問(wèn)題, 首先梳理了代理服務(wù)的應(yīng)用背景, 介紹了其基本概念, 并且從多角度分析了代理服務(wù)的不同類(lèi)型劃分, 然后, 對(duì)網(wǎng)頁(yè)代理服務(wù)進(jìn)行統(tǒng)一的形式化描述(忽略其具體使用的代理協(xié)議)。接著, 本文提出了一種基于主被動(dòng)發(fā)現(xiàn)相結(jié)合的多維特征分析的網(wǎng)頁(yè)代理服務(wù)發(fā)現(xiàn)方法——ProxyMiner。
主動(dòng)發(fā)現(xiàn)方面, 本文提出了一種輕量級(jí)網(wǎng)頁(yè)代理發(fā)現(xiàn)機(jī)制。實(shí)驗(yàn)結(jié)果表明, 相比于傳統(tǒng)檢測(cè)方法,主動(dòng)方法可以顯著提高網(wǎng)頁(yè)代理檢測(cè)準(zhǔn)確度, 大幅降低平均檢測(cè)時(shí)間。在未來(lái)的工作中, 將重點(diǎn)圍繞以下幾個(gè)方面開(kāi)展研究。首先, 引入U(xiǎn)RL白名單機(jī)制以避免一些不必要的資源消耗; 其次, 逐步考慮其他代理類(lèi)型的檢測(cè)方法, 尤其是挖掘其它類(lèi)型代理服務(wù)的有效特征; 最后, 研究如何提高分類(lèi)算法在動(dòng)態(tài)環(huán)境下的魯棒性。
被動(dòng)發(fā)現(xiàn)方面, 提出了一種通過(guò)對(duì)代理用戶(hù)進(jìn)行聚類(lèi)來(lái)發(fā)現(xiàn)網(wǎng)頁(yè)代理服務(wù)的新方法。需要關(guān)注的一個(gè)挑戰(zhàn)是網(wǎng)頁(yè)代理服務(wù)在動(dòng)態(tài)的環(huán)境中不斷變化。為了應(yīng)對(duì)這個(gè)挑戰(zhàn), 我們發(fā)現(xiàn)用戶(hù)所使用的網(wǎng)頁(yè)代理服務(wù)在不工作時(shí)會(huì)尋求其他可用的網(wǎng)頁(yè)代理服務(wù)器。因此, 我們的方法的亮點(diǎn)是提取代理用戶(hù)訪問(wèn)模式中的固有特征, 而不是直接尋找網(wǎng)頁(yè)代理服務(wù)的短期使用(動(dòng)態(tài)更新)的特征, 即使用潛在的和穩(wěn)定的訪問(wèn)模式來(lái)發(fā)現(xiàn)頻繁變化的網(wǎng)頁(yè)代理服務(wù)。通過(guò)我們的實(shí)驗(yàn), 我們證明該方法可以有效發(fā)現(xiàn)網(wǎng)頁(yè)代理服務(wù), 并且優(yōu)于以前提出的基于特征的方法, 特別適合用于發(fā)現(xiàn)未知網(wǎng)頁(yè)代理。未來(lái)的工作包括如何挖掘更多網(wǎng)頁(yè)代理服務(wù)特點(diǎn), 并將其應(yīng)用于網(wǎng)頁(yè)代理服務(wù)發(fā)現(xiàn)。更重要的是, 應(yīng)該考慮一些錯(cuò)誤的負(fù)樣本情況(例如, 一個(gè)用戶(hù)可能首先在一個(gè)本地內(nèi)容分發(fā)網(wǎng)絡(luò)上登錄, 然后再連接到網(wǎng)頁(yè)代理服務(wù)器或者采用多個(gè)代理等方式)。
致謝本文得到國(guó)家重點(diǎn)研發(fā)計(jì)劃的資助和支持。同時(shí), 很多同行對(duì)本文的工作也給予了支持和建議,在此一并表示感謝。