徐 嬋,劉 新,吳 建,歐陽博宇
(湘潭大學a.信息工程學院;b.智能計算與信息處理教育部重點實驗室,湖南湘潭,411105)
基于BP神經網絡的軟件行為評估系統
徐 嬋a,b,劉 新a,b,吳 建a,歐陽博宇a
(湘潭大學a.信息工程學院;b.智能計算與信息處理教育部重點實驗室,湖南湘潭,411105)
針對當前國內信息安全領域對于惡意軟件的判斷智能化程度較低的現狀,分析不同類型的惡意軟件,提取典型的危險行為特征,對這些行為進行整合并建立一個行為映射庫,將軟件行為映射成數據,設計算法將其轉換成可用于實際神經網絡訓練的數據。通過反復實驗,給出一個適用于訓練該類型樣本的BP神經網絡,并確定其中各個算子和參數值。通過訓練該神經網絡,建立一個判斷可疑軟件是否為惡意軟件的行為評估系統。實驗結果證明了上述設計的正確性,系統的漏報率和誤報率僅為1%和3.7%。
信息安全;智能;危險行為;惡意軟件;BP神經網絡;行為評估
隨著互聯網技術的迅猛發展,各式各樣不同功能的軟件不斷涌現,推進了數字化時代的發展進程。但是在軟件發展同時,安全隱患也越來越大,越來越多的病毒、木馬、間諜軟件(以下簡稱惡意軟件)嚴重威脅國家、單位、個人的隱私和財產安全?!?012年中國互聯網網絡安全態勢綜述》[1]報告顯示,我國網站被植入后門等隱蔽性攻擊事件呈增長態勢,2012年,國家互聯網應急中心共監測發現中國境內52 324個網站被植入后門,其中政府網站3 016個,較2011年月均分別增長213.7%和93.1%。2012年,國家互聯網應急中心共監測發現針對中國境內網站的釣魚頁面22 308個。網絡釣魚日漸猖獗嚴重影響在線金融服務和電子商務的發展,危害公眾利益。利用病毒實施的可持續攻擊活動頻現, 2012年,我國境內至少有4.1萬余臺主機感染了此類特征的木馬程序,對國家和企業的數據安全造成嚴重威脅。
這些惡意軟件通常會偽裝成正常軟件,甚至會具備一定的正常功能,從而達到隱藏惡意行為的目的。因此,軟件安全專家必須通過各種方法來發現這些隱藏的惡意行為。由于惡意軟件數目增長太快,僅靠有限的人力難以承擔,研究一種快速而準確的自動分析技術成為了目前的熱點問題。因此,本文使用BP神經網絡對軟件行為進行自動分析,根據實際需要建設病毒行為庫,通過實驗結果選擇合適的算子并反復調整神經網絡中的各個因子,最終得到一個可用的軟件行為評估系統。
目前對于惡意軟件代碼分析的研究,在專家級別層面,主要采用的是動態分析法。動態分析法,是指讓軟件在真實或者虛擬環境中運行,觀察其行為動作,從而判斷其是否包含惡意代碼[2-3]。動態分析[4-5]有2類方法,一種白盒跟蹤法,即由分析人員逐條跟蹤程序運行情況,并予以記錄。這種跟蹤方法最準確,但卻完全依賴分析人員的專業水平,這種手工分析的方法,效率很低;另一類是黑盒分析法,即只記錄程序運行的結果,而不考慮這些結果是由何種代碼產生。在如何獲取程序運行結果的方式上,又有兩類方法,其一是在可疑程序運行前后對系統分別取快照,比較兩者的不同。但是當惡意代碼的行為是非持久性動作時,如讀取某些文件內容并將其發送出去,或是將本機設置為臨時服務器,這類行為不會對系統造成永久的改變,因此,這種方法具有失效的可能性。另一種是介入到可疑程序運行的過程中,監視其調用的系統API函數,將行為記錄結果與行為特征庫進行比對,當樣本行為的特征類似于病毒行為特征時,就判定該樣本存在惡意代碼。這種方法可以完全實時地檢測到惡意代碼運行過程中的全部行為,因此,被稱為基于行為的動態檢測方法。
這種基于行為的動態檢測法易于實現自動化分析,其難點主要集中于對捕獲的行為進行綜合分析上。目前主流的方法是利用行為規則庫來匹配一個軟件是否存在危險行為[6-7],從而進一步判斷是否為惡意軟件。然而不同的危險行為,對于系統的危害等級存在著較大的差別,如同為危險行為,在系統目錄下寫一個普通的文本文件與寫PE文件相比,對于系統的危害程度差別很大。并且某些危險行為僅由一個動作完成,而有些危險行為卻需要很多個動作的協同合作,才能達到破壞系統或者竊取隱私的目的。而且即便是某些正常的軟件也可能存在一些對系統有危險的行為,典型的例子就是各類安全軟件。這種差異導致單純通過分析一個軟件是否具有某一單一的危險行為來判斷整個軟件是否為惡意軟件存在較大的誤差。比較穩妥的辦法是對所有捕獲的危險行為進行綜合評定打分,最后給出評判結果,這一過程完全要模擬安全專家的人工分析過程,這需要較高的人工智能水平,目前仍處于研究階段。
本文通過查找已有的研究資料,使用現有的行為抓取工具,建立了一個較為完善的危險行為特征庫。然后結合BP神經網絡的相關知識,建立了一個軟件行為評估系統,通過對已知樣本的訓練達到對于未知軟件是否為惡意軟件的判斷。
人工神經網絡是由大量簡單的處理單元連接組成的非線性系統,由于其具有良好的非線性映射能力,自學習能力以及泛化性,在模式識別、智能控制等領域得到了成功的應用[8]。BP神經網絡是應用最廣泛的神經網絡之一,其學習過程分為前向傳播與反向傳播兩部分[9],采用梯度下降算法調整系統參數。前向傳播使輸入信息在相應權值、閾值與激活函數的作用下傳遞到輸出層,當輸出結果與期望值的誤差大于指定精度時,將敏感性進行反向傳播,逐級修正各層的權值與閾值;如此反復迭代。最后使誤差達到指定精度。BP神經網絡是多層結構,由網絡節點和節點之間的連接組成,整個神經網絡由一個輸入層,一個輸出層和至少一個隱層組成,每層包含若干個節點,其中隱層節點以及輸出層節點都有對應的閾值,網絡間各節點之間具有連接權值。整個BP算法的過程,就是通過誤差函數計算實際輸出與樣本期望輸出之間的誤差,以此進行反向傳播,通過反復調整權值和閾值,使誤差達到可接受范圍。
定義1 危險行為
針對病毒,蠕蟲,木馬的特點,將在系統關鍵位置進行添加或者刪除項操作,調用、注入系統特殊進程,打開特定端口,監控鍵盤鼠標消息,修改、替換或刪除系統文件,修改可執行文件路徑,向特殊地址發送系統文件等行為,劃分為危險行為。
定義2 惡意軟件
具有一個或多個危險行為,通過這些危險行為的組合或者疊加最終達到破壞系統,竊取系統用戶信息,監控用戶動作的目的的軟件。
根據危險行為的定義,將軟件可能對系統產生危害的動作分為8大類,包括注冊表操作、文件操作、進程創建或關閉、系統函數調用、服務操作、網絡操作、消息截取、鍵盤鼠標等設備監控。其中,注冊表的操作分為特殊注冊表項的刪除,更改,添加;文件操作分為特殊文件的創建,讀,寫,刪除操作;函數調用為系統API函數的特殊調用;服務操作分為服務的創建、關閉和刪除;網絡操作分為惡意網站的訪問、打開特殊端口、特殊鏈入、鏈出;特征屬性主要有添加自啟動、創建、修改、添加、刪除注冊表項、在系統文件夾創建文件、刪除系統文件、更改系統文件、注入系統進程、創建、替換、刪除、關閉系統進程、打開特定網絡端口、訪問特殊網站、向特定網站傳送文件、關閉或刪除服務、開啟鼠標鍵盤鉤子等。
3.1 行為歸納
本文利用WSyscheck,SReng,Regmon,Filemon等行為捕獲工具,跟蹤了數千個惡意軟件,采集到大量的危險行為。通過綜合分析與去重,最后歸納為602項典型的危險行為,其中注冊表行為93項,文件行為191項,函數調用行為56項,hook行為2項,消息行為5項,網絡行為25項,進程行為155項,服務行為75項。這602項行為中的某些行為項還代表具有相同特征的一類行為。
在將這些行為整合建立了一個危險行為特征庫后,為了方便將軟件的各行為表示成一個樣本,本文建立了一個映射表,映射表中的每一項代表一種行為動作,整個映射表包含得到的總共602項行為以及這8類行為的正常表示,總計有610項。這樣對于任意一個軟件,其任一行為都可以通過映射表中的某項來表示,由于篇幅的限制,本文只給出部分行為的特征映射,如表1所示。

表1 部分行為映射
以上行為特征均以XML語言描述,具體的描述方法將另文詳述。
3.2 映射算法
取具有代表性的惡意軟件和正常軟件,當一個軟件運行時,捕獲該軟件的所有行為,對應行為映射表,保存相應的行為所對應的值。為了能夠準確表示正常軟件的行為權值,在映射表中對于每類行為項設計了一個正常情況下的映射值。例如,若某一軟件沒有文件項的操作或無危險文件操作行為,則置樣本文件項值為映射表第95項的值。對于同樣類型的行為具有多項的軟件,將這幾項行為一起映射成訓練樣本,對于多次出現同一種行為的,只取一次。通過以上方法的使用,每一個軟件,都可以由一組數字表示成一個樣本。
對于任何一個軟件,將其行為轉換成樣本所用的映射算法如算法1所示。
算法1
(1)分析軟件的行為數目N。
(2)根據定義2,對于每一個行為Ti(1≤i≤N),分析Ti是否為惡意行為。若是惡意行為,保存其對應的映射表中的數字,i←i+1。
(3)重復步驟(2)直到i>N。
(4)分析保存的數字,若不存在映射表中某一類行為所對應區間的數字,保存該行為區間初始值。如:若不存在文件行為或無惡意文件行為,即保存的數字中不存在一個96~286之間的數字,則保存一個數字95,表示文件項的行為為正常行為。其他區間分別表示如下:注冊表(1~94),文件(95~286),網絡(287~312),hook (313~315),函數調用:(316~372),服務(373~448),進程(449~605),消息(606~610)。
(5)輸出保存的數字所對應的映射項的初始權值,將其作為樣本值保存。
(6)對于為正常軟件,置期望輸出為0,對于惡意軟件,置期望輸出值為1。
3.3 樣本訓練
通過樣本采集算法,運行具有代表性的各類軟件,得到的樣本的映射數據,由于篇幅限制,本文給出部分樣本映射數據,如表2所示。

表2 部分樣本映射數據
得到樣本數據后,再通過算法2將其轉化成樣本集合。
算法2
(1)讀取樣本個數N。
(2)定義一個N行610列的數組StudyData,將數組元素值初始化為0。(3)對于樣本S1到SN,執行步驟(4)~步驟(6)。(4)從樣本文件中讀取樣本Si(1≤i≤N)的映射數據個數m。
(5)對于數據a1~am,執行以下步驟:
1)對于Si中讀取的第j個數據aj,將其轉化成數字numj。
2)將樣本數組的第i行第numj列的數字賦值為1。
3)跳轉到步驟(5.1),直到j大于numj。
(6)跳轉到步驟(4),直到i大于N。
通過上述算法,N個樣本全部存在了數組StudyData中,每行就是一個樣本。
3.4 神經網絡的構建
根據參考文獻[10-12]的介紹,本文結合實際應用情況,建立一個如圖1所示的BP神經網絡。該神經網絡由一個輸入層、一個隱層、一個輸出層組成。其中,輸入層元素個數為610,隱層元素個數為610,輸出層元素數目為1,其中,Vkl(k=1,1≤l≤610)表示隱層各節點與輸出層的權值;Wij(1≤i≤610,1≤k≤610)表示輸入層各節點與隱層各節點的連接權值。

圖1 BP神經網絡結構
3.5 BP神經網絡中各參數的選擇
采用BP算法來訓練樣本時,BP神經網絡的正向傳播通過輸出轉換函數來調整,反向傳播通過權值閾值調整實現。權值調整由式(1)、式(2)來調整[10]。

其中,pl為學習過的樣本集次數;x″和x′分別為隱層至輸出層的輸出函數與輸入層與隱層的輸出函數的導數;η為調整因子。在本文中,輸出層至隱層的轉換因子由a表示,隱層至輸入層轉換因子用b表示。3.5.1 輸入層到隱層的輸出函數選擇
根據參考文獻[11-12],本文采用了Sigmoid函數:f(x)=1/(1+e-x)。
3.5.2 輸出函數的選擇
由于沒有可供借鑒的輸出函數選擇方式,對于輸出函數的選擇只能通過實驗獲得。對于同樣的樣本,訓練30 000次后,實驗得出數據如表3所示。其中,f(x)=1/(1+exp(-x))為Sigmoid函數,其余均為線性函數。

表3 輸出函數選擇實驗數據
綜合以上實驗數據,最終選擇了線性函數y= 1.0+x/5 000。
3.5.3 調整因子的選擇
輸出層至隱層的調整因子為a,隱層至輸入層調整因子為b,對于已經選擇好的輸出函數,在設置收斂到總誤差為0.75(選取該誤差能較快看到實驗效果)時,所用時間的單位選擇秒(s)時,收斂所用時間的實驗結果如圖2和圖3所示。

圖2 調整因子a對收斂時間的影響

圖3 調整因子b對收斂時間的影響
實驗結果顯示,在取a=1.6,b=1.2時,收斂速度最快。
對于所取的具有代表性的805個樣本,經過多次實驗,在取參數a=1.6,b=1.2時,能最好地滿足訓練不趨于最小化的同時誤差在預期范圍內。得出如輸入層與隱層之間對應的權值如表4所示,隱層到輸出層的權值如表5所示,隱層閾值如表6所示,輸出層閾值為-14.276 027。限于篇幅,均只列出部分有代表意義的數據。
對于所得到的神經網絡,從國內某著名安全網站的病毒樣本區[13]選取493個樣本作為測試樣本(不與實驗樣本中的樣本重復),樣本類型及數目如表7所示。
將163個正常軟件與上述樣本混合,利用本神經網絡進行測試,誤報6個,誤報率為0.037;僅漏報5個,漏報率為0.01。說明本BP神經網絡設計是成功的。另外,在大多數文獻中,反向調整因子b的取值應在0.1~0.9之間,但筆者通過反復實驗發現該值為1.2時效果反而最好,具體原因還有待進一步分析。

表4 輸入層與隱層權值(用二維數組存儲)

表5 隱層至輸出層權值(用一維數組存儲)

表6 輸出層閾值(用一維數組存儲)

表7 惡意軟件匯總
本文嘗試將BP神經網絡應用于信息安全領域。先將軟件行為映射成可以用于訓練的樣本,設計并實現了一個以軟件行為為輸入神經元的BP神經網絡,該神經網絡能較準確地通過軟件的行為自動評估該軟件是否為惡意軟件。同時編制了一個惡意軟件行為自動分析系統,分別實現了對軟件行為的抓取和對行為的分析部分。其中的行為分析部分即利用本文所述方法實現。目前該系統已用于某安全部門的實際工作中,用戶反映情況良好,具有較高的實際應用價值。但自動分析結果與技術人員人工分析結果相比,準確性上仍然有一定的差距,下一步將嘗試應用其他人工智能算法(如SVM,KNN,ELM等)來探索惡意行為的自動分析方法。
[1] 國家互聯網應急中心.2012年中國互聯網網絡安全態勢
綜述[EB/OL].(2013-03-19).http://VVV.cnnic.net. cn/gjymaqzx/aqzx-hydt/201303/t20130322_39118.htm.
[2] Moskovitch R,Feher C,Elovici Y.Source Unknown Malcode Detection——A Chronological Evaluation[C]// Proc.of IEEE International Conference on Intelligence and Security Informatics.[S.l.]:IEEE Press,2008:267-268.
[3] Yu Wei,Boyer C,Chellappan S,et al.Peer-to-Peer System Based Active Worm Attracks:Modeling and Analysis[C]//Proc.of ICC'05.[S.l.]:IEEE Press, 2005:295-300.
[4] 敬 銳.惡意代碼檢測系統的研究與實現[D].成都:電子科技大學,2010.
[5] 李 明.基于網絡行為分析的未知惡意代碼檢測系統的研究與實現[D].成都:電子科技大學,2009.
[6] 李舟軍.基于沙盒仿真的可執行程序惡意代碼檢測工具的研究與實現[D].長沙:國防科學技術大學,2008.
[7] 張小康.基于數據挖掘和機器學習的惡意代碼檢測技術研究[D].合肥:中國科學技術大學,2009.
[8] 譚 駿.基于自適應BP神經網絡的網絡流量識別算法[J].電子科技大學學報,2012,41(4):580-585.
[9] Sedki A,Ouazar D,Mazoudi E E I.Evolving Neural Network Using Real Coded Genetic Algorithm for Daily Rainfall-runoff Forecasting[J].Expert Systems with Applications,2009,36(3):4523-4527.
[10] 馮 定.神經網絡專家系統[M].北京:科學出版社,2006.
[11] 胥小波.基于并行BP神經網絡的路由查找算法[J].通信學報,2012,32(2):61-68.
[12] 賈立山.基于隨機參數調整的改進反向傳播學習算法[J].同濟大學報,2011,39(5):751-756.
[13] 卡飯論壇.病毒樣本[EB/OL].http://bbs.kafan.cn/ forum-31-1.html.
編輯 金胡考
Software Behavior Evaluation System Based on BP Neural Network
XU Chana,b,LIU Xina,b,WU Jiana,OUYANG Bo-yua
(a.College of Information Engineering;b.Key Laboratory of Intelligent Computing& Information Processing,Ministry of Education,Xiangtan University,Xiangtan 411105,China)
In current,since judging the malware in information security area in China has relatively low intelligence,this paper analyzes a large number of malicious softwares,and extracts the typical characteristics of dangerous behavior,then integrates these acts and builds a mapping library for these behaviors,which is used for transfering the behavior into data. It also designs an algorithm to make the data can directly be used for training.Through myriads of experiments,a BP neural network suitable for training type is designed,and each operator and parameter are determined.By training the neural network,this paper establishes a system to judge whether the suspicious one is a malware.Experimental result shows that this idea is right,and the false alarm rate and false negative rate are 1% and 3.7%.
information security;intelligence;risk behavior;malware;BP neural network;behavior evaluation
1000-3428(2014)09-0149-06
A
TP309
10.3969/j.issn.1000-3428.2014.09.030
湖南省自然科學基金資助項目(12JJ3066);教育部重點實驗室開放課題基金資助項目(2013IM02);湖南省“十二五”重點學科建設基金資助項目。
徐 嬋(1988-),女,碩士,主研方向:信息安全;劉 新(通訊作者),副教授、博士;吳 建、歐陽博宇,碩士。
2013-07-24
2013-10-28E-mail:liuxn_new@163.com