彭子俊
摘要:為了在惡意代碼行為中對各種變異的病毒、惡意插件、僵尸網(wǎng)絡(luò)、攻擊性代碼進(jìn)行識別和分析,提出了基于惡意代碼的網(wǎng)絡(luò)行為分析與識別方法。根據(jù)惡意代碼憑借自身的攻擊性強(qiáng)的優(yōu)勢嚴(yán)重地制約著網(wǎng)絡(luò)的良性發(fā)展,直接威脅著互聯(lián)網(wǎng)用戶的信息安全的特點,設(shè)計惡意代碼流量采集實驗部署,給出了如何將Tor流量與正常加密數(shù)據(jù)流量區(qū)分開來,從而達(dá)到可疑數(shù)據(jù)的準(zhǔn)確篩選。最后通過實例對這些惡意代碼和網(wǎng)絡(luò)攻擊行為分析透徹,討論了利用無監(jiān)督機(jī)器學(xué)習(xí)算法對Tor流量進(jìn)行分類。
關(guān)鍵詞:惡意代碼;tor網(wǎng)絡(luò);流量分類
中圖分類號:TP393? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2019)22-0055-04
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
Analysis and Recognition of Network Behavior Based on Malicious Code
PENG Zi-jun
(Guangdong University of Technology,Guangzhou 510006, China)
Abstract:In order to identify and analyze various variant viruses, malicious plug-ins, botnets and offensive codes in malicious code behavior, a malicious code-based network behavior analysis and identification method is proposed. According to the characteristics of malicious code, which seriously restricts the healthy development of the network and directly threatens the information security of Internet users, this paper designs an experimental deployment of malicious code traffic collection, and gives how to distinguish Tor traffic from normal encrypted data traffic, so as to achieve the accurate screening of suspicious data. Finally, the malicious code and network attacks are thoroughly analyzed by examples, and the classification of Tor traffic using unsupervised machine learning algorithm is discussed.
Key words:Malicious code; tor network; traffic classification
網(wǎng)絡(luò)是一把雙刃劍,為人們的生活和工作帶來極大的便捷的同時,我們還要盡量地避免由于網(wǎng)絡(luò)安全防范不當(dāng)帶來的一些損失和問題。網(wǎng)絡(luò)安全是各個單位部門、家庭企業(yè)、個人團(tuán)體都必須面對的問題,不可避免地需要去正視、去面臨,如果這些網(wǎng)絡(luò)安全問題日益突出,則會在很大程度上導(dǎo)致計算機(jī)病毒的泛濫和網(wǎng)絡(luò)攻擊行為的大面積發(fā)生。目前造成網(wǎng)絡(luò)安全問題的原因和因素包括很多種,但是從產(chǎn)生的原因為主要已經(jīng)可以大致分為兩個方面。一方面是技術(shù)問題,目前市面上使用的一些主流計算機(jī)操作系統(tǒng)大多數(shù)都存在一定的BUG和漏洞,包括一些應(yīng)用軟件,這些系統(tǒng)或者軟件雖然已經(jīng)具備了強(qiáng)大的功能,安全加密措施也比較完善,但是“金無足赤”,仍然在某些方面存在著一定的安全漏洞,而別有用心的攻擊者恰恰是發(fā)現(xiàn)和利用了這些客觀存在的漏洞,進(jìn)行惡意代碼的入侵和數(shù)據(jù)破壞。由于在通常情況下,計算機(jī)的病毒預(yù)防和治理技術(shù)一般要落后于各種新病毒或者惡意代碼的攻擊,具有一定的滯后性。因此,就會在某種程度上造成計算機(jī)病毒或攻擊代碼在一定范圍內(nèi)大量的存在和蔓延;另一方面是管理,由于不同單位或者部門的重視程度和網(wǎng)絡(luò)管理人員的計算機(jī)專業(yè)技術(shù)水平參差不齊,使網(wǎng)絡(luò)安全防范體系弱化或者根本就是紙上談兵。在現(xiàn)實生活中,由于網(wǎng)絡(luò)管理不善和管理人員專業(yè)水準(zhǔn)低下所造成的網(wǎng)絡(luò)安全問題層出不窮,給各個企業(yè)和部門帶來了極大的無形損失。有時候系統(tǒng)漏洞沒有及時被發(fā)現(xiàn),相關(guān)的修復(fù)措施相對比較滯后,這些由于管理疏忽所導(dǎo)致的安全防護(hù)措施的不到位,給惡意人員和攻擊者提供了極大的攻擊機(jī)會。
1 惡意代碼行為分析研究
任何事物的發(fā)展都具有兩面性,互聯(lián)網(wǎng)也不例外,它在方便和簡化人們的生活的同時,也具有一定的安全隱患性,如果無限地放大網(wǎng)絡(luò)優(yōu)勢性,而疏于防范網(wǎng)絡(luò)的潛在安全隱患,將會給人們帶來無法彌補(bǔ)的遺憾和一系列的數(shù)據(jù)安全、個人隱私、惡意攻擊等網(wǎng)絡(luò)常見的問題。通過總結(jié)以往的網(wǎng)絡(luò)安全和惡意代碼攻擊案例,可以將目前比較猖獗的、破壞力比較大、影響比較惡劣的惡意代碼攻擊行為進(jìn)行梳理如下:
(1)僵尸網(wǎng)絡(luò)(Botnet)進(jìn)行惡意攻擊所采用的手段不是唯一的,有時候會綜合運(yùn)用多種代碼惡意攻擊和病毒傳播手段,其主要目的和病毒感染機(jī)理是將大量的受害者主機(jī)被動地感染bot程序(僵尸程序)病毒,以便達(dá)到控制被感染主機(jī)的目的,使整個網(wǎng)絡(luò)受控于惡意攻擊者。僵尸網(wǎng)絡(luò)從某種方法上分析是惡意地利用了被攻擊計算機(jī)中的硬件設(shè)施服務(wù)漏洞和各種軟件配置的安全隱患端口,并且將具有攻擊性的惡意代碼進(jìn)行一定的偽裝。隨著功能各異、形式不同的服務(wù)型應(yīng)用軟件的層出不窮,很多表面看似綠色、友好、無毒的娛樂型軟件被不同群體的用戶大量安裝或者下載使用,特別是一些具有公共服務(wù)或者社交功能的網(wǎng)絡(luò)服務(wù)程序,不可避免地存在某些方面的“非技術(shù)”性安全漏洞,從而導(dǎo)致了安全隱患突出的、可供惡意攻擊者利用的、人為因素存在的安全漏洞的種類不斷增多,并且在數(shù)量上呈現(xiàn)突發(fā)增長的趨勢。雖然目前僵尸網(wǎng)絡(luò)的呈現(xiàn)形式趨向于多樣化,但是大多數(shù)的講師網(wǎng)絡(luò)控制端與被控制端之間的控制命令傳遞和交互主要是通過Tor進(jìn)行數(shù)據(jù)信息通信,因此,在進(jìn)行而已代碼行為分析時,對Tor網(wǎng)絡(luò)研究和Tor流量識別具有很強(qiáng)的實用性和顯著的效果。目前為止,對Tor流量識別主要側(cè)重于匿名通信關(guān)系研究,而用于匿名通信流量的識別和阻塞的分析探索則顯得相對匱乏。
(2)DDoS攻擊雖然并不是最新的、破壞力最強(qiáng)的攻擊手段,但是仍然不可小覷,基于DDoS攻擊的行為和案例更是不勝枚舉,讓廣大網(wǎng)絡(luò)用戶額外頭疼、屢防不止,這種惡意攻擊在很多情況下很難及時發(fā)現(xiàn),往往是等到受害主機(jī)被攻擊或者數(shù)據(jù)被盜取之后,才被發(fā)現(xiàn)和知曉,因此,如何快速地、預(yù)先地檢測到或者預(yù)測到攻擊行為,成為目前網(wǎng)絡(luò)安全進(jìn)一步完善和提升的瓶頸。通過定期地分析和統(tǒng)計被感染的僵尸主機(jī)的DDos攻擊行為流量特點,可以在一定程度上查找出攻擊來源,避免惡意代碼的進(jìn)一步破壞行為的發(fā)生。
雖然惡意代碼攻擊性強(qiáng),攻擊行為惡劣,對廣大互聯(lián)網(wǎng)用戶的數(shù)據(jù)安全破壞嚴(yán)重,但是這種惡意代碼的預(yù)防和抵御方法還是比較有效果的,對惡意代碼的分析方法研究,可以歸納為三個基本環(huán)節(jié):
(1)惡意行為描述。根據(jù)攻擊案例中的惡意攻擊行為特點分析獲取的、已知的惡意代碼,將惡意攻擊行為按照攻擊目標(biāo)和攻擊范圍進(jìn)行劃分,例如針對文件訪問攻擊、網(wǎng)絡(luò)傳輸過程攻擊等,在這些不同攻擊對象功能構(gòu)件中,動態(tài)地分析代碼惡意攻擊行為的關(guān)鍵步驟和彼此之間存在的必然因果聯(lián)系和時序關(guān)系,同時使用有窮狀態(tài)機(jī)的方式描述這些代碼的惡意攻擊行為。
(2)全局狀態(tài)模型建立。對于計算機(jī)中存在的或者外界訪問中出現(xiàn)的可疑程序,首先采用相關(guān)方法對其進(jìn)行反匯編和反編譯操作,然后成功地將其轉(zhuǎn)換為對應(yīng)的中間語言,最后根據(jù)轉(zhuǎn)換完畢的中間語言,相應(yīng)地生成程序下推自動機(jī),從而達(dá)到準(zhǔn)確描述全局狀態(tài)空間的目的。
(3)惡意行為存在性驗證。使用惡意代碼行為分析模型檢驗方法,如果可疑的程序中確實存在相應(yīng)的惡意攻擊行為,則動態(tài)地輸出疑似的惡意攻擊行為路徑,并且依據(jù)惡意行為分析模型,從關(guān)鍵環(huán)節(jié)對其進(jìn)行詳細(xì)的惡意代碼網(wǎng)絡(luò)行為分析。
本文的惡意代碼網(wǎng)絡(luò)行為分析模型主要是在Christodorescu等人提出的惡意代碼分析模型的基礎(chǔ)上,進(jìn)行適當(dāng)引用和擴(kuò)展分析。該模型應(yīng)用的主要原理和過程是使用有窮狀態(tài)機(jī)(Finite States Automata, FSA)描述網(wǎng)絡(luò)惡意代碼的攻擊行為,下推自動機(jī)(Pushdown Automata, PDA)用于動態(tài)地描述可疑程序的全局狀態(tài)空間(這里主要是指可疑程序的執(zhí)行路徑空間),最后,使用模型檢驗方法,全面地、動態(tài)地檢查可疑的程序中是否存在某些惡意代碼的網(wǎng)絡(luò)攻擊行為。
惡意代碼的網(wǎng)絡(luò)攻擊行為的FSA使用六元組的方式,即[A=(V,Σ,S,δ,S0,F(xiàn))],其中對這些字母符號進(jìn)行說明如下:
[V={v1,...,vk}]代表的是自由變量集合;
[∑={Γ1,...,Γn}]是以自由變量為參數(shù)的抽象語法樹(函數(shù)調(diào)用或控制結(jié)構(gòu)等)集合;
[S]是狀態(tài)的有窮集合;
[δ?S×∑→2S]為轉(zhuǎn)換函數(shù);
[S0?S]是初始狀態(tài)的非空集合;
[F?S]是結(jié)束狀態(tài)的非空集合,所有惡意行為序列使得[A]到達(dá)結(jié)束狀態(tài)。
對于[V={v1,...,vk}]的一個綁定[Β],使用[Β(vi)]替換[A]中所有的[vi]([1≤i≤k])得到有窮狀態(tài)機(jī)稱作[Β(A)]。每個自由變量在程序中的所有出現(xiàn)存在一致的取值。
為了表示程序的全局狀態(tài)空間,即包含函數(shù)調(diào)用的程序執(zhí)行路徑集合,需要一個棧來記錄函數(shù)調(diào)用的返回地址,由棧產(chǎn)生的語言是上下文無關(guān)語言,則存在一個下推自動機(jī)[Ρ]接受[T]。令[Ρ=(P,Γ,Δ)],其中[P]為程序的控制點的有窮集合;[Γ]為程序的棧符號集合,即棧指針的值域;[Δ?(P×Γ)×(P×Γ*)]是一個有窮的轉(zhuǎn)換集合,表示[P]接收一個輸入符號,從一個配置到達(dá)另一個配置。
分析器以程序的PDA[P]和惡意行為FSA[A=(V,Σ,S,δ,S0,F(xiàn))]作為輸入,并判定[L(P)?(B∈AllL(B(A))]語言是否為空。[L(P)]是[P]對應(yīng)的語言,[ΒAll]是所有對[V]中變量綁定的集合。即檢測器決定是否存在一個綁定[Β]使得語言[P]和[B(A)]的交集非空。根據(jù)自動機(jī)理論,有算法能夠計算一個PDA和FSA交集生成的PDA接受的語言是否為空。若算法返回了一個非空集合,則在[P]中存在惡意行為,檢測器報告惡意行為對應(yīng)的執(zhí)行路徑。
2 惡意代碼流量采集實驗部署
在惡意代碼攻擊與防范的博弈中,很多設(shè)計精良的通信和網(wǎng)絡(luò)技術(shù)被惡意攻擊者所利用,例如比較突出的Tor匿名通信技術(shù),該技術(shù)的初衷是通過匿名網(wǎng)絡(luò)進(jìn)行通信傳輸,然而卻被別用用心的不法分子利用,反而成了惡意代碼攻擊行為的溫床,一定程度上阻礙了網(wǎng)絡(luò)正常通信的正常實施,威脅網(wǎng)絡(luò)用戶的數(shù)據(jù)信息安全。因此,加強(qiáng)防范匿名網(wǎng)絡(luò)造成的惡意代碼攻擊和僵尸網(wǎng)絡(luò)的形成刻不容緩。
針對以上情況,本文在進(jìn)行惡意代碼流量分析的實驗部署中,主要通過基于報文長度分布的Tor匿名通信流量識別方法,進(jìn)行匿名通信流量識別,為惡意代碼的攻擊行為分析檢測提供新的、可行性的研究方法。為了使分析結(jié)果更加清晰,在進(jìn)行實驗部署的過程中盡量做到步驟簡潔,實驗環(huán)境的搭建主要是集中在一臺配置相對較高的物理計算機(jī)上實現(xiàn),宿主主機(jī)的網(wǎng)卡配置為普通以太網(wǎng)卡,并且在網(wǎng)卡上虛擬綁定多個IP地址,網(wǎng)絡(luò)流量采集拓?fù)鋱D如圖3.1所示。實際配置中將IP地址192.168.0.2(攻擊機(jī)IP)和192.168.1.2(控制機(jī)IP)均綁定到宿主主機(jī)網(wǎng)卡上。宿主主機(jī)同時也作為監(jiān)控服務(wù)器,通過VMware軟件安網(wǎng)關(guān)虛擬機(jī)(Roo)和虛擬操作系統(tǒng)(windows 7)。網(wǎng)關(guān)上有三個網(wǎng)絡(luò)接口。其中eth0 連接外網(wǎng),eth1連接內(nèi)網(wǎng)。網(wǎng)關(guān)的另一網(wǎng)絡(luò)接口eth2連接內(nèi)部管理監(jiān)控網(wǎng)絡(luò),使之能夠遠(yuǎn)程對網(wǎng)關(guān)進(jìn)行控制,并能夠?qū)W(wǎng)關(guān)捕獲的攻擊數(shù)據(jù)進(jìn)行進(jìn)一步分析。網(wǎng)關(guān)是與外部網(wǎng)絡(luò)的唯一連接,所有流入流出網(wǎng)絡(luò)流量都將通過它,所以在網(wǎng)關(guān)上能夠?qū)崿F(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)流的控制和捕獲。
為了可以捕獲攻擊者更詳細(xì)的信息,需要在Win7終端上安裝Sebek客戶端,將Sebek-Win32-3.0.4.zip通過網(wǎng)絡(luò)共享拷貝到虛擬機(jī)中,解壓后執(zhí)行Setup.exe進(jìn)行安裝。
在流量采集中,宿主主機(jī)、網(wǎng)關(guān)、虛擬終端的IP地址按照表1進(jìn)行分配。
3 實驗數(shù)據(jù)及結(jié)果分析
在實驗過程中,由于Tor網(wǎng)絡(luò)的數(shù)據(jù)流量和通信規(guī)模隨著時間的推移不斷增長,大量的用戶訪問會直接導(dǎo)致網(wǎng)絡(luò)擁塞現(xiàn)象的發(fā)生,從而很難分清楚所使用的檢測模式。當(dāng)考慮通過流量分析對互聯(lián)網(wǎng)通信數(shù)據(jù)進(jìn)行分類時,需要用到3種技術(shù):精確匹配技術(shù),啟發(fā)式匹配技術(shù)和機(jī)器學(xué)習(xí)技術(shù)。因為Tor采用了強(qiáng)加密策略且支持任意端口通信,因此通過簡單的配置選項即可實現(xiàn)精確匹配。
為了確定能否將Tor流量與正常加密數(shù)據(jù)流量區(qū)分開來,我們通過仿真實驗生成一組數(shù)據(jù)用于比較。為了降低混雜變量的影響,所有階段在相同的隔離測試網(wǎng)絡(luò)環(huán)境下完成,在仿真實驗時還用到周期性回到潔凈且已知狀態(tài)的虛擬機(jī)快照。仿真實驗獲得3組結(jié)果,如表2所示。
采集來的數(shù)據(jù)以1MB大小的文件存儲,然后與mergecap相融合并經(jīng)過NetAI處理,最終生成可由Weka使用的ARFF格式的文件。NetAI可識別出采集文件中的數(shù)據(jù)流,并生成可作為分類屬性使用的一組統(tǒng)計量。
選擇的所有算法均可成功分類Tor上的HTTPS和HTTP數(shù)據(jù),分類精度在90%以上,但Adaboost無法對Tor上的HTTPS數(shù)據(jù)進(jìn)行有效分類。性能最優(yōu)的隨機(jī)森林算法對Tor上HTTPS數(shù)據(jù)的分類精度達(dá)到93.7%,虛警率只有3.7%。Tor上HTTPS的分類難度較低,分類精度達(dá)到97.7%,虛警率只有0.3%。這些機(jī)器學(xué)習(xí)算法的實驗結(jié)果如表3所示。
利用無監(jiān)督機(jī)器學(xué)習(xí)算法對Tor流量分類也取得了一定成功后,然后我們利用啟發(fā)式分類算法進(jìn)行實驗。生成報文尺寸直方圖后,不同樣本集間的顯著差異如圖3所示。
使用Tor作為通信代理會導(dǎo)致一些額外開銷,在受控條件下產(chǎn)生的額外開銷足以將其與正常加密流量區(qū)分開來。在實際網(wǎng)絡(luò)中利用產(chǎn)生的上述開銷及當(dāng)前偵聽技術(shù),便可將Tor結(jié)點檢測出來。
將Tor層通信封裝起來的加密層似乎并沒有實現(xiàn)Tor結(jié)點間通信規(guī)模的加密。這個現(xiàn)象在構(gòu)成各個會話的報文結(jié)構(gòu)中尤其明顯;Tor會話所占比例很大,足以匹配Tor協(xié)議中的512字節(jié)單元。
本文實驗中的仿真數(shù)據(jù)還很有限,無法覆蓋真實世界中的所有情況。真實Tor網(wǎng)絡(luò)的變化特點和噪聲可能使本文分類方法失效。
4 結(jié)束語
網(wǎng)絡(luò)安全雖然老生常談,但是目前仍然是各個單位部門、企業(yè)、團(tuán)體都必須面對的問題,不可避免地需要去正視、去面臨,如果這些網(wǎng)絡(luò)安全問題日益突出,則會在很大程度上導(dǎo)致計算機(jī)病毒的泛濫和網(wǎng)絡(luò)攻擊行為的大面積發(fā)生。本文在基于惡意代碼的基礎(chǔ)上進(jìn)行網(wǎng)絡(luò)行為分析研究,通過惡意代碼流量采集實驗部署,嘗試如何將Tor流量與正常加密數(shù)據(jù)流量區(qū)分開來,以期達(dá)到可疑數(shù)據(jù)的準(zhǔn)確篩選。由于本文研究內(nèi)容有限,在下一步的研究中應(yīng)當(dāng)開發(fā)相關(guān)的軟件來實現(xiàn)Tor用戶的自動檢測并將其與網(wǎng)絡(luò)隔離,并且利用Tor網(wǎng)絡(luò)真實用戶的實時報文數(shù)據(jù)展開研究。
參考文獻(xiàn):
[1] 趙明濤.抗DDos攻擊的Tor匿名通信安全性增強(qiáng)研究[D].蘭州理工大學(xué),2017.
[2] 陳美玲.基于流量分析的Tor內(nèi)容分類研究[D].北京交通大學(xué),2017.
[3] BalykA,IatsykovskaU,KarpinskiM,et al. A survey of modern IP traceback methodologies[C]. IEEE,International Conference on Intelligent Data Acquisition and Advanced Computing Systems:Technology and Applications,2015.
[4] Aghaei-ForoushaniV,Zincir-Heywood A N.Autonomous system based flow marking scheme for IP-Traceback[C] . Network Operations and Management Symposium ,2016.
[5] HakemBeitollahi,GeertDeconinck. Analyzing well-known countermeasures against distributed denial of service attacks[J] . Computer Communications ,2012 (11).
【通聯(lián)編輯:代影】