周顯春,龔家浩,李蕓倩,陳雪姣
(三亞學院信息與智能工程學院,海南 572022)
隨著互聯網的發展,惡意代碼攻擊呈幾何級增長,惡意代碼變體是互聯網安全的一個主要威脅。其中,木馬、病毒、蠕蟲等惡意代碼造成的影響最為廣泛,社會很多方面都造成損失,不僅是經濟上而且還是精神層面的。通過分析騰訊安全《2017年度互聯網安全報告》,可以發現:PC端病毒攔截近30億次,近60%的惡意程序為木馬,已成網絡黑客首選攻擊方式。其中新型勒索類病毒呈噴發狀態,僅在2017年統計發現勒索類病毒樣本數量達到660萬,僅在我們國家的2017年5月、6月分別就發生了wannacry病毒、Petya的變種兩次較大規模的傳播,并且大部分受害者都不知道何時、何地、何種方式感染。與PC端相對比,無線移動端的情況也差不多,僅2017年就查殺Android病毒12.4億次,新増病毒1545萬,并且感染病毒用戶超過1.88億[1]。
五花八門變種惡意代碼的數量噴發增長,爆發行為詭秘、隱形手段高明等特點,使得基于抽樣技術和已有惡意代碼特征的檢測技術在檢測準確性、時效性面臨前有未有的挑戰[2]。無論是政府機構,還是企業、社會團體都對此特別重視,重視、鼓勵組織和個人研究惡意代碼檢測技術。但是,在大數據環境下,因為大多數的惡意代碼檢測方法都不是智能型的,尤其對海量數據下實時性的迫切需求,導致現有技術實在無法滿足現實生活的需求。針對日益惡化的網絡安全形勢,改善或提高現有惡意代碼檢測的精度、實時性,增強檢測技術的智能能力,無論是對凈化網絡安全環境,還是減少網絡受害者,避免社會動蕩都有非常重要的意義。
經國內外學者的長期研究,目前惡意代碼檢測方法研究可以劃分為:基于靜態分析的方法[4]、基于動態分析的方法[5]、基于機器學習算法分析的方法[6]。
不管是動態還是靜態惡意代碼分析方法,面對規模龐大且增長迅速的惡意代碼庫,需要消耗大量的時間和資源,己經不能滿足實時分析的需求,而且都很難對所有的未知惡意程序進行甄別。而機器學習分析方法,如隨機森林、支持向量等算法可以區分良性代碼和惡意代碼[7],也可以用來檢測已知的、未知的惡意代碼及其變體[8]。但是要想讓其保持高精度,必須讓訓練數據大多帶有標簽。在大數據的環境下,造成訓練數據的人工標注標簽的工作量非常大且檢測效果依賴分析人員的經驗和檢測惡意代碼的實時性差[9]。
深度學習應用于惡意代碼檢測方面的研究是近3年來的研究熱點[2]。深度學習是機器學習中一種基于對數據進行表征學習的算法[10]。隨著CPU、GPU、TPU圖像處理專用處理器、分布式架構技術的發展,深度學習算法在計算機視覺、語音識別、NLP、生物醫學等領域取得的最大成功,促使國內外研究人員開始嘗試使用深度學習解決惡意代碼識別問題[11]。尤其對其應用于惡意代碼檢測中存在的有效特征的提取與融合方法、惡意代碼的特征與分類標簽的相關性、惡意代碼分布式處理等3個問題展開了重點研究。
深度學習與傳統模式識別方法的最大不同在于它是從大數據中自動學習特征,而非采用手工標注特征,因為特征工程的工作量占整個數據處理80%左右。現有的研究工作基本上都是使用現有數據集默認的N-grams[12-13]或者圖像紋理熵值圖[14-15]等特征來進行學習,但非融合特征不能體現數據的關鍵特征,影響惡意代碼檢測效果。
惡意代碼特征的深度分析處理是惡意代碼分類的重要過程之一,現有的研究面臨著多維特征融合和深度分析處理的問題[16]。因為惡意代碼數據具有多維特征的特點,僅僅提取單一高維度,不能完全表現其有效特征[17],需要從文件實體、文件反匯編等不同的角度來提取惡意代碼樣本的特征并融合,從而形成健壯性更好的特征向量[18-20]。如:國內清華大學Liu等人[18]提出融合灰度圖像的紋理特征、Opcode特征和API特征等三種特征作為特征向量,采用共享近鄰聚類算法來發現新的惡意代碼,可以針對Windows程序文件有效地分類未知惡意代碼。崔弘等人[19]提出了一種基于Sim-Hash的靜態二進制文件、反匯編的高維特征融合惡意代碼分析方法。該方法能夠有效提高分析精度,但是該方法只適合較少的惡意代碼分類場景。隨著移動端的大量使用,惡意APK也成倍增長,采用上述類似方法也取得效果。王磊團隊通過提取結構化、統計類、長期經驗總結的特征并歸一化處理,用15萬個樣本數據訓練深度學習框架,準確率達到99.96%。他們的研究成果主要集中于靜態特征的提取,仍然沒有從根本上解決問題。
日本名古屋大學Tobiyama等人[20]把日志文件存在軟件進程行為圖像化,包括API調用序列數據,并使用RNN提取有效圖像特征,然后用CNN對特征圖像進行分類方法,AUC值達到了96%。可是數據量太小,把該方法應用于大規模數據集時的實時性還有待驗證。
深度學習模型輸出分類結果時,其依據對用戶往往是不可見的。不可解釋同樣也意味著危險。例如開發一款基于深度學習模型某種疾病診斷系統,它能夠幫助醫生判定病人風險的應用,開發者可能還需要知道模型產生診斷結果是基于那些特征,否則影響各行各業普遍接受和應用。在分類模型準確率不降低的前提下,如何解釋類型的意義和通過分類類型追朔輸入數據的有效特征,破解深度學習的“黑匣子”,是近幾年深度學習領域的重點解決問題[21-25]。
谷歌公司Sundararajan等人[21]雖然從經濟學的角度在理解深層網絡中輸入特征的相對重要性方面取得了一些進展,但沒有解決輸入特征或網絡所使用的邏輯之間的相互作用。瑞士蘇黎世聯邦理工大學Ancona等人[22]提出了一個稱為敏感度-n的度量,它有助于發現現有屬性方法的性質,同時也為更一般的屬性方法追蹤提供了研究方向。
在2016年KDD會議上華盛頓大學Ribeiro等人[23]提出局部解釋性(LIME)模型,分析細微修改樣本的局部特征值和其輸出類型之間的關系。2017年在ICML會議上,美國斯坦福大學Koh等人[24]實現了分類類別和樣本之間的可追溯性,利用穩健統計學中的影響函數分析訓練樣本數據集中對測試樣本的預測類別影響最大的樣本。該方案在圖像處理領域已經初有成效,但是現有研究均處于起步階段,具有運算量大、復雜性高的特點。影響函數的定義:

弄清楚神經網絡做出預測分類的原因是人工智能領域最大的擔憂之一。UC Berkeley、阿姆斯特丹大學、Facebook AI Research[25]團隊的研究人員創建出一個AI自我解釋模型,既可以對預測分類類型做出文本及配套的圖像解釋,還可以找到預測分類類型與訓練圖像樣本上重要的證據。麻省理工學院林肯實驗室David Mascharka等人[26]提出可解釋視覺推理人工神經網絡TbD網絡應用于視覺問答模型,讓其保持高精度同時易于解釋,并且具有較強的泛化能力。但是利用深度學習在惡意代碼檢測中應用的可解釋性和可追朔性研究,研究還不夠深入,遠遠沒有達到實際應用要求。
除了檢測的精度外,惡意代碼檢測的實時性是另一個衡量檢測效果的評估指標。在大數據環境下,樣本數量越大,訓練神經網絡模型花費時間過長;取樣數量少,時間變短,但是模型分類效率不強了,準確率往往會出現明顯下降。而把分布式計算框架,如Spark與深度學習相結合,能夠改善數據分析的性能[27-31]。
巴基斯坦比爾澤特大學Alsheikh等人[27]、印度德里大學Gupta、新加坡南洋理工大學Gupta等人[28]已經提出了結合Apache Spark和深度學習技術的框架,實證該框架能夠在短時間內執行大規模數據分析任務、具有較低的計算復雜度和顯著較高的準確度。國內謝鐵等人[29]、張翔等人[30]把基于Spark平臺的深度學習技術應用于情感分類研究,時間效率和準確率都得到了提高。莊福振等人[31]實現的并行自動編碼機,在大數據環境下可以高效地進行特征表示學習。
但是,目前國內外還沒有涉及到Spark分布式計算框架和深度學習結合架構在惡意代碼檢測中的應用。
綜述所述,有效特征提取與融合方法、惡意代碼的特征與分類標簽之間的相關性、惡意代碼分布式處理問題等無疑是深度學習在惡意代碼檢測技術中倍受國內外關注的焦點問題,但現有大部分惡意代碼檢測技術的精度、魯棒性、可解釋性和可追朔性與實時性之間的矛盾依然比較突出。缺乏原創性理論和方法,缺乏具有針對性的研究背景,缺乏系統性的研究思路。
(1)改進有效特征提取與融合方法。為了克服基于深度學習的在惡意代碼的單一特征智能提取的片面性和靜態特征的不足,本課題采用動、靜態多種特征來融合更加全面地表達惡意代碼樣本的有效特征,從而形成具有更好的抗混淆特性和抗干擾特性的特征向量。
(2)研究惡意代碼的特征與分類標簽的相關性。找到惡意代碼預測分類與訓練樣本之間的關聯證據。破解深度學習的“黑匣子”是當前的研究熱點,有很重要的應用價值。只有破解了“黑匣子”,AI才能讓人放心使用。
(3)利用深度學習的分布式部署改善惡意代碼檢測的效果。如,采用二次開發TensorFlowOnSpark分布式框架改善惡意代碼檢測的實時性。TensorFlowOn-Spark分布式框架該庫支持把現有的TensorFlow程序切換到新的API,同時實現了模型訓練的性能提升,能實現更好的分布式訓練和數據傳輸。
本文針對基于深度學習的惡意代碼檢測技術中的理論和應用研究的需要,從國內外前期預研結果出發,以研究惡意代碼的特征與分類標簽之間的相關性為基本突破口,系統性地研究深度學習應用于惡意代碼檢測技術中的幾個核心的關鍵問題——有效特征提取與融合方法、惡意代碼的特征與分類標簽之間的相關性、惡意代碼分布式處理問題,最終形成一個集數據的輸入、預處理、分析、輸出為一體的初具精度、魯棒性、可解釋性和可追朔性與實時性的惡意代碼檢測系統。