彭子俊



摘要:為了在惡意代碼行為中對各種變異的病毒、惡意插件、僵尸網絡、攻擊性代碼進行識別和分析,提出了基于惡意代碼的網絡行為分析與識別方法。根據惡意代碼憑借自身的攻擊性強的優勢嚴重地制約著網絡的良性發展,直接威脅著互聯網用戶的信息安全的特點,設計惡意代碼流量采集實驗部署,給出了如何將Tor流量與正常加密數據流量區分開來,從而達到可疑數據的準確篩選。最后通過實例對這些惡意代碼和網絡攻擊行為分析透徹,討論了利用無監督機器學習算法對Tor流量進行分類。
關鍵詞:惡意代碼;tor網絡;流量分類
中圖分類號:TP393? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)22-0055-04
開放科學(資源服務)標識碼(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
網絡是一把雙刃劍,為人們的生活和工作帶來極大的便捷的同時,我們還要盡量地避免由于網絡安全防范不當帶來的一些損失和問題。網絡安全是各個單位部門、家庭企業、個人團體都必須面對的問題,不可避免地需要去正視、去面臨,如果這些網絡安全問題日益突出,則會在很大程度上導致計算機病毒的泛濫和網絡攻擊行為的大面積發生。目前造成網絡安全問題的原因和因素包括很多種,但是從產生的原因為主要已經可以大致分為兩個方面。一方面是技術問題,目前市面上使用的一些主流計算機操作系統大多數都存在一定的BUG和漏洞,包括一些應用軟件,這些系統或者軟件雖然已經具備了強大的功能,安全加密措施也比較完善,但是“金無足赤”,仍然在某些方面存在著一定的安全漏洞,而別有用心的攻擊者恰恰是發現和利用了這些客觀存在的漏洞,進行惡意代碼的入侵和數據破壞。由于在通常情況下,計算機的病毒預防和治理技術一般要落后于各種新病毒或者惡意代碼的攻擊,具有一定的滯后性。因此,就會在某種程度上造成計算機病毒或攻擊代碼在一定范圍內大量的存在和蔓延;另一方面是管理,由于不同單位或者部門的重視程度和網絡管理人員的計算機專業技術水平參差不齊,使網絡安全防范體系弱化或者根本就是紙上談兵。在現實生活中,由于網絡管理不善和管理人員專業水準低下所造成的網絡安全問題層出不窮,給各個企業和部門帶來了極大的無形損失。有時候系統漏洞沒有及時被發現,相關的修復措施相對比較滯后,這些由于管理疏忽所導致的安全防護措施的不到位,給惡意人員和攻擊者提供了極大的攻擊機會。
1 惡意代碼行為分析研究
任何事物的發展都具有兩面性,互聯網也不例外,它在方便和簡化人們的生活的同時,也具有一定的安全隱患性,如果無限地放大網絡優勢性,而疏于防范網絡的潛在安全隱患,將會給人們帶來無法彌補的遺憾和一系列的數據安全、個人隱私、惡意攻擊等網絡常見的問題。通過總結以往的網絡安全和惡意代碼攻擊案例,可以將目前比較猖獗的、破壞力比較大、影響比較惡劣的惡意代碼攻擊行為進行梳理如下:
(1)僵尸網絡(Botnet)進行惡意攻擊所采用的手段不是唯一的,有時候會綜合運用多種代碼惡意攻擊和病毒傳播手段,其主要目的和病毒感染機理是將大量的受害者主機被動地感染bot程序(僵尸程序)病毒,以便達到控制被感染主機的目的,使整個網絡受控于惡意攻擊者。僵尸網絡從某種方法上分析是惡意地利用了被攻擊計算機中的硬件設施服務漏洞和各種軟件配置的安全隱患端口,并且將具有攻擊性的惡意代碼進行一定的偽裝。隨著功能各異、形式不同的服務型應用軟件的層出不窮,很多表面看似綠色、友好、無毒的娛樂型軟件被不同群體的用戶大量安裝或者下載使用,特別是一些具有公共服務或者社交功能的網絡服務程序,不可避免地存在某些方面的“非技術”性安全漏洞,從而導致了安全隱患突出的、可供惡意攻擊者利用的、人為因素存在的安全漏洞的種類不斷增多,并且在數量上呈現突發增長的趨勢。雖然目前僵尸網絡的呈現形式趨向于多樣化,但是大多數的講師網絡控制端與被控制端之間的控制命令傳遞和交互主要是通過Tor進行數據信息通信,因此,在進行而已代碼行為分析時,對Tor網絡研究和Tor流量識別具有很強的實用性和顯著的效果。目前為止,對Tor流量識別主要側重于匿名通信關系研究,而用于匿名通信流量的識別和阻塞的分析探索則顯得相對匱乏。
(2)DDoS攻擊雖然并不是最新的、破壞力最強的攻擊手段,但是仍然不可小覷,基于DDoS攻擊的行為和案例更是不勝枚舉,讓廣大網絡用戶額外頭疼、屢防不止,這種惡意攻擊在很多情況下很難及時發現,往往是等到受害主機被攻擊或者數據被盜取之后,才被發現和知曉,因此,如何快速地、預先地檢測到或者預測到攻擊行為,成為目前網絡安全進一步完善和提升的瓶頸。通過定期地分析和統計被感染的僵尸主機的DDos攻擊行為流量特點,可以在一定程度上查找出攻擊來源,避免惡意代碼的進一步破壞行為的發生。
雖然惡意代碼攻擊性強,攻擊行為惡劣,對廣大互聯網用戶的數據安全破壞嚴重,但是這種惡意代碼的預防和抵御方法還是比較有效果的,對惡意代碼的分析方法研究,可以歸納為三個基本環節:
(1)惡意行為描述。根據攻擊案例中的惡意攻擊行為特點分析獲取的、已知的惡意代碼,將惡意攻擊行為按照攻擊目標和攻擊范圍進行劃分,例如針對文件訪問攻擊、網絡傳輸過程攻擊等,在這些不同攻擊對象功能構件中,動態地分析代碼惡意攻擊行為的關鍵步驟和彼此之間存在的必然因果聯系和時序關系,同時使用有窮狀態機的方式描述這些代碼的惡意攻擊行為。
(2)全局狀態模型建立。對于計算機中存在的或者外界訪問中出現的可疑程序,首先采用相關方法對其進行反匯編和反編譯操作,然后成功地將其轉換為對應的中間語言,最后根據轉換完畢的中間語言,相應地生成程序下推自動機,從而達到準確描述全局狀態空間的目的。
(3)惡意行為存在性驗證。使用惡意代碼行為分析模型檢驗方法,如果可疑的程序中確實存在相應的惡意攻擊行為,則動態地輸出疑似的惡意攻擊行為路徑,并且依據惡意行為分析模型,從關鍵環節對其進行詳細的惡意代碼網絡行為分析。
本文的惡意代碼網絡行為分析模型主要是在Christodorescu等人提出的惡意代碼分析模型的基礎上,進行適當引用和擴展分析。該模型應用的主要原理和過程是使用有窮狀態機(Finite States Automata, FSA)描述網絡惡意代碼的攻擊行為,下推自動機(Pushdown Automata, PDA)用于動態地描述可疑程序的全局狀態空間(這里主要是指可疑程序的執行路徑空間),最后,使用模型檢驗方法,全面地、動態地檢查可疑的程序中是否存在某些惡意代碼的網絡攻擊行為。
惡意代碼的網絡攻擊行為的FSA使用六元組的方式,即[A=(V,Σ,S,δ,S0,F)],其中對這些字母符號進行說明如下:
[V={v1,...,vk}]代表的是自由變量集合;
[∑={Γ1,...,Γn}]是以自由變量為參數的抽象語法樹(函數調用或控制結構等)集合;
[S]是狀態的有窮集合;
[δ?S×∑→2S]為轉換函數;
[S0?S]是初始狀態的非空集合;
[F?S]是結束狀態的非空集合,所有惡意行為序列使得[A]到達結束狀態。
對于[V={v1,...,vk}]的一個綁定[Β],使用[Β(vi)]替換[A]中所有的[vi]([1≤i≤k])得到有窮狀態機稱作[Β(A)]。每個自由變量在程序中的所有出現存在一致的取值。
為了表示程序的全局狀態空間,即包含函數調用的程序執行路徑集合,需要一個棧來記錄函數調用的返回地址,由棧產生的語言是上下文無關語言,則存在一個下推自動機[Ρ]接受[T]。令[Ρ=(P,Γ,Δ)],其中[P]為程序的控制點的有窮集合;[Γ]為程序的棧符號集合,即棧指針的值域;[Δ?(P×Γ)×(P×Γ*)]是一個有窮的轉換集合,表示[P]接收一個輸入符號,從一個配置到達另一個配置。
分析器以程序的PDA[P]和惡意行為FSA[A=(V,Σ,S,δ,S0,F)]作為輸入,并判定[L(P)?(B∈AllL(B(A))]語言是否為空。[L(P)]是[P]對應的語言,[ΒAll]是所有對[V]中變量綁定的集合。即檢測器決定是否存在一個綁定[Β]使得語言[P]和[B(A)]的交集非空。根據自動機理論,有算法能夠計算一個PDA和FSA交集生成的PDA接受的語言是否為空。若算法返回了一個非空集合,則在[P]中存在惡意行為,檢測器報告惡意行為對應的執行路徑。
2 惡意代碼流量采集實驗部署
在惡意代碼攻擊與防范的博弈中,很多設計精良的通信和網絡技術被惡意攻擊者所利用,例如比較突出的Tor匿名通信技術,該技術的初衷是通過匿名網絡進行通信傳輸,然而卻被別用用心的不法分子利用,反而成了惡意代碼攻擊行為的溫床,一定程度上阻礙了網絡正常通信的正常實施,威脅網絡用戶的數據信息安全。因此,加強防范匿名網絡造成的惡意代碼攻擊和僵尸網絡的形成刻不容緩。
針對以上情況,本文在進行惡意代碼流量分析的實驗部署中,主要通過基于報文長度分布的Tor匿名通信流量識別方法,進行匿名通信流量識別,為惡意代碼的攻擊行為分析檢測提供新的、可行性的研究方法。為了使分析結果更加清晰,在進行實驗部署的過程中盡量做到步驟簡潔,實驗環境的搭建主要是集中在一臺配置相對較高的物理計算機上實現,宿主主機的網卡配置為普通以太網卡,并且在網卡上虛擬綁定多個IP地址,網絡流量采集拓撲圖如圖3.1所示。實際配置中將IP地址192.168.0.2(攻擊機IP)和192.168.1.2(控制機IP)均綁定到宿主主機網卡上。宿主主機同時也作為監控服務器,通過VMware軟件安網關虛擬機(Roo)和虛擬操作系統(windows 7)。網關上有三個網絡接口。其中eth0 連接外網,eth1連接內網。網關的另一網絡接口eth2連接內部管理監控網絡,使之能夠遠程對網關進行控制,并能夠對網關捕獲的攻擊數據進行進一步分析。網關是與外部網絡的唯一連接,所有流入流出網絡流量都將通過它,所以在網關上能夠實現對網絡數據流的控制和捕獲。
為了可以捕獲攻擊者更詳細的信息,需要在Win7終端上安裝Sebek客戶端,將Sebek-Win32-3.0.4.zip通過網絡共享拷貝到虛擬機中,解壓后執行Setup.exe進行安裝。
在流量采集中,宿主主機、網關、虛擬終端的IP地址按照表1進行分配。
3 實驗數據及結果分析
在實驗過程中,由于Tor網絡的數據流量和通信規模隨著時間的推移不斷增長,大量的用戶訪問會直接導致網絡擁塞現象的發生,從而很難分清楚所使用的檢測模式。當考慮通過流量分析對互聯網通信數據進行分類時,需要用到3種技術:精確匹配技術,啟發式匹配技術和機器學習技術。因為Tor采用了強加密策略且支持任意端口通信,因此通過簡單的配置選項即可實現精確匹配。
為了確定能否將Tor流量與正常加密數據流量區分開來,我們通過仿真實驗生成一組數據用于比較。為了降低混雜變量的影響,所有階段在相同的隔離測試網絡環境下完成,在仿真實驗時還用到周期性回到潔凈且已知狀態的虛擬機快照。仿真實驗獲得3組結果,如表2所示。
采集來的數據以1MB大小的文件存儲,然后與mergecap相融合并經過NetAI處理,最終生成可由Weka使用的ARFF格式的文件。NetAI可識別出采集文件中的數據流,并生成可作為分類屬性使用的一組統計量。
選擇的所有算法均可成功分類Tor上的HTTPS和HTTP數據,分類精度在90%以上,但Adaboost無法對Tor上的HTTPS數據進行有效分類。性能最優的隨機森林算法對Tor上HTTPS數據的分類精度達到93.7%,虛警率只有3.7%。Tor上HTTPS的分類難度較低,分類精度達到97.7%,虛警率只有0.3%。這些機器學習算法的實驗結果如表3所示。
利用無監督機器學習算法對Tor流量分類也取得了一定成功后,然后我們利用啟發式分類算法進行實驗。生成報文尺寸直方圖后,不同樣本集間的顯著差異如圖3所示。
使用Tor作為通信代理會導致一些額外開銷,在受控條件下產生的額外開銷足以將其與正常加密流量區分開來。在實際網絡中利用產生的上述開銷及當前偵聽技術,便可將Tor結點檢測出來。
將Tor層通信封裝起來的加密層似乎并沒有實現Tor結點間通信規模的加密。這個現象在構成各個會話的報文結構中尤其明顯;Tor會話所占比例很大,足以匹配Tor協議中的512字節單元。
本文實驗中的仿真數據還很有限,無法覆蓋真實世界中的所有情況。真實Tor網絡的變化特點和噪聲可能使本文分類方法失效。
4 結束語
網絡安全雖然老生常談,但是目前仍然是各個單位部門、企業、團體都必須面對的問題,不可避免地需要去正視、去面臨,如果這些網絡安全問題日益突出,則會在很大程度上導致計算機病毒的泛濫和網絡攻擊行為的大面積發生。本文在基于惡意代碼的基礎上進行網絡行為分析研究,通過惡意代碼流量采集實驗部署,嘗試如何將Tor流量與正常加密數據流量區分開來,以期達到可疑數據的準確篩選。由于本文研究內容有限,在下一步的研究中應當開發相關的軟件來實現Tor用戶的自動檢測并將其與網絡隔離,并且利用Tor網絡真實用戶的實時報文數據展開研究。
參考文獻:
[1] 趙明濤.抗DDos攻擊的Tor匿名通信安全性增強研究[D].蘭州理工大學,2017.
[2] 陳美玲.基于流量分析的Tor內容分類研究[D].北京交通大學,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).
【通聯編輯:代影】