官术网_书友最值得收藏!

1.4 人工智能在安全領(lǐng)域的應(yīng)用

人工智能在安全領(lǐng)域的應(yīng)用還屬于起步階段,各大安全公司以及互聯(lián)網(wǎng)巨頭都投入大量的人力物力,試圖使用人工智能的技術(shù)來顛覆安全這個行業(yè),目前在黃反鑒定、惡意鏈接、業(yè)務(wù)風(fēng)控領(lǐng)域、病毒分析、APT檢測方面都取得了不錯的進展,典型案例的就是2015年的一次數(shù)據(jù)挖掘比賽。

2015年,微軟在Kaggle上發(fā)起了一個惡意代碼分類的比賽,并提供了超過500G的原始數(shù)據(jù)。有意思的是,取得第一名的隊伍三個人都不是搞安全出身的,所采用的方法與我們常見的方法存在很大不同,展現(xiàn)了機器學(xué)習(xí)在安全領(lǐng)域的巨大潛力。早期的反病毒軟件大都單一的采用特征匹配的方法,簡單的利用特征串完成檢測。隨著惡意代碼技術(shù)的發(fā)展,惡意代碼開始在傳播過程中進行變形以躲避查殺,此時同一個惡意代碼的變種數(shù)量急劇提升,形態(tài)較本體也發(fā)生了較大的變化,反病毒軟件已經(jīng)很難提取出一段代碼作為惡意代碼的特征碼。Kaggle比賽中最重要的環(huán)節(jié)就是特征工程,特征的好壞直接決定了比賽成績。在這次Kaggle的比賽中冠軍隊伍選取了三個“黃金”特征:惡意代碼圖像、OpCode n-gram和Headers個數(shù),其他一些特征包括ByteCode n-gram,指令頻數(shù)等。機器學(xué)習(xí)部分采用了隨機森林算法,并用到了xgboost和pypy加快訓(xùn)練速度,最終他們檢測的效果超過了常見傳統(tǒng)檢測方式,取得了冠軍。

1.惡意代碼圖像

這個概念最早是2011年由加利福尼亞大學(xué)的Nataraj和Karthikeyan在他們的論文Malware Images∶ Visualization and Automatic Classification中提出來的,思路非常新穎,把一個二進制文件以灰度圖的形式展現(xiàn)出來,利用圖像中的紋理特征對惡意代碼進行聚類。此后,有許多研究人員在這個思路基礎(chǔ)上進行了改進和探索。就目前發(fā)表的文章來看,惡意代碼圖像的形式并不固定,研究人員可根據(jù)實際情況進行調(diào)整和創(chuàng)新。

2.OpCode n-gram

n-gram是自然語言處理領(lǐng)域的概念,早期的語音識別技術(shù)和統(tǒng)計語言模型與它密不可分。n-gram基于一個簡單的假設(shè),即認為一個詞出現(xiàn)的概率僅與它之前的n-1個詞有關(guān),這個概率可從大量語料中統(tǒng)計得到。例如“吃”的后面出現(xiàn)“蘋果”或“披薩”的概率就會比“公路”的概率大(正常的語料中基本不會出現(xiàn)“吃公路”這種組合),可以看出n-gram在一定程度上包含了部分語言特征。

將n-gram應(yīng)用于惡意代碼識別的想法最早由Tony等人在2004年的論文N-gram-based Detection of New Malicious Code中提出,不過他們的方法是基于ByteCode的。2008年Moskovitch等人的論文Unknown Malcode Detection Using OPCODE Representation中提出利用OpCode代替ByteCode更加科學(xué),如圖1-6所示。

圖1-6 二進制文件的OpCode n-gram

在移動應(yīng)用領(lǐng)域,使用類似的思路也取得了不錯的成績,我的同事王磊使用深度學(xué)習(xí)識別惡意APK,準確率達到99.96%,召回率達到了80%,2016年,反映該研究成果的論文“AI Based Antivirus∶ Can Alphaav Win The Battle in Which Man Has Failed? ”被享譽國內(nèi)外的Blackhat會議收錄并做了相關(guān)演講。

惡意APK伴隨移動互聯(lián)網(wǎng)井噴式的發(fā)展,其數(shù)量在近幾年幾何級別增長,如圖1-7所示。傳統(tǒng)的基于規(guī)則的檢測技術(shù)已經(jīng)無法覆蓋如此大量的惡意程序。

圖1-7 惡意APK數(shù)量猛增

王磊團隊在大量的人工分析惡意APK的工作中發(fā)現(xiàn),人工分析的過程很類似圖像識別的過程。深度學(xué)習(xí)在圖像識別領(lǐng)域有著成熟的應(yīng)用,是否可以通過提取APK特征,通過深度學(xué)習(xí)的方法來自動化識別惡意APK呢?如圖1-8所示。

圖1-8 惡意APK分析與圖像識別

王磊團隊對APK的特征提取主要分為三大類特征:

● 結(jié)構(gòu)化特征,包括APK申請的權(quán)限的個數(shù),資源文件中包含的圖像文件個數(shù)和參數(shù)大于20的函數(shù)的個數(shù)等。

● 統(tǒng)計類特征,包括近千條統(tǒng)計特征。

● 長期惡意APK檢測的經(jīng)驗總結(jié)的特征,包括資源文件中是否包含可執(zhí)行文件,assets文件夾中是否包含APK文件等。

特征提取過程如圖1-9所示。

圖1-9 APK特征提取過程

歸一化處理一千多個特征,取值控制在-1和1之間,如圖1-10所示。

圖1-10 歸一化APK特征

使用深度學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練,訓(xùn)練過程如圖1-11所示。

圖1-11 APK深度學(xué)習(xí)訓(xùn)練過程

整個訓(xùn)練過程中使用超過了15萬個樣本,訓(xùn)練使用了百度開源的深度學(xué)習(xí)框架Paddle。本書的第二部中關(guān)于深度學(xué)習(xí)的案例也主要使用Paddle和TensorFlow框架編寫。

Paddle主頁為:http://www.paddlepaddle.org/

主站蜘蛛池模板: 孟州市| 寻乌县| 舟山市| 张家口市| 连江县| 肇庆市| 拉孜县| 兴国县| 通化县| 景德镇市| 延寿县| 塔河县| 海宁市| 土默特左旗| 蒙山县| 兖州市| 礼泉县| 云龙县| 民权县| 德清县| 思茅市| 仙桃市| 宜宾市| 巴彦县| 英山县| 德惠市| 宝坻区| 兴宁市| 读书| 临湘市| 兴义市| 农安县| 镇赉县| 彝良县| 城市| 平阴县| 怀化市| 杭州市| 兴义市| 瓮安县| 鄯善县|