陳朗 王春玲


摘要:由于近年來(lái),隨著無(wú)線網(wǎng)絡(luò)的普及和 4G 向5G網(wǎng)絡(luò)過(guò)渡時(shí)代的到來(lái),移動(dòng)手機(jī)憑借其簡(jiǎn)單易用、便于攜帶等特點(diǎn)迅速取代筆記本電腦、臺(tái)式電腦等其他移動(dòng)設(shè)備成為使用率最高的個(gè)人上網(wǎng)設(shè)備。同時(shí),線下生活與移動(dòng)互聯(lián)網(wǎng)大部分重疊,比如購(gòu)物、支付、物流、銀行、外賣等業(yè)務(wù)都可以通過(guò)手機(jī)設(shè)備來(lái)實(shí)現(xiàn)。研究公司Gartner最近發(fā)布了一份數(shù)據(jù),數(shù)據(jù)顯示去年在全世界銷售的智能手機(jī)中,有大約99.9%的設(shè)備都是基于Android或iOS平臺(tái)的,可以看出其他系統(tǒng)的移動(dòng)設(shè)備在市場(chǎng)上已經(jīng)沒(méi)有太多的份額。作為在移動(dòng)設(shè)備市場(chǎng)領(lǐng)域占有率高達(dá) 87.5%的 Android 手機(jī),針對(duì)其漏洞掃描處理的研究對(duì)于保護(hù)個(gè)人隱私信息和財(cái)產(chǎn)安全具有重要意義。研究在 Android 平臺(tái)的第三方app漏洞挖掘方法有利于及時(shí)發(fā)現(xiàn)并修補(bǔ) Android 平臺(tái)漏洞,同時(shí)便于提高 Android 平臺(tái)的安全性。第三方app漏洞有可能是應(yīng)用開(kāi)發(fā)者無(wú)意或是有意留下一些漏洞,這些漏洞利用現(xiàn)在的木馬程序通常不是一個(gè)獨(dú)立的程序,而是把惡意代碼注入用戶使用頻率高、并不會(huì)引起人警覺(jué)的app中蒙蔽用戶,讓用戶認(rèn)為與其他應(yīng)用沒(méi)有區(qū)別,比如上文中提到的實(shí)現(xiàn)購(gòu)物、支付、物流、銀行、外賣等功能的第三方app中,竊取用戶信息和資源。惡意軟件能給用戶隱私帶來(lái)的威脅非常普遍,但是一些看似普通的軟件也達(dá)不到?jīng)]有惡意行為的要求。因此,為了保障手機(jī)用戶的信息和資源開(kāi)發(fā)手機(jī)漏洞掃描軟件保護(hù)用戶安全十分必要。
關(guān)鍵詞:5G網(wǎng)絡(luò);移動(dòng)手機(jī);app漏洞;惡意代碼;用戶信息安全
中圖分類號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)25-0020-03
對(duì)第三方app傳統(tǒng)的漏洞掃描方法的重要目的就是最大限度地找出app中存在的漏洞威脅。以便于后續(xù)分析存在的漏洞,常用的漏洞挖掘方法是動(dòng)、靜態(tài)分析為主。
傳統(tǒng)的漏洞挖掘方法包括靜態(tài)分析和動(dòng)態(tài)分析,靜態(tài)分析是指不用運(yùn)行被檢測(cè)的軟件,而只是靜態(tài)地檢查程序代碼、界面或文檔中可能存在的不正確內(nèi)容的過(guò)程。動(dòng)態(tài)分析指的是讓被測(cè)程序運(yùn)行起來(lái),輸入合適的測(cè)試數(shù)據(jù),檢查實(shí)際輸出結(jié)果和預(yù)期輸出結(jié)果相不相符的過(guò)程,所以判斷一個(gè)測(cè)試屬于動(dòng)態(tài)測(cè)試還是靜態(tài)的,唯一的標(biāo)準(zhǔn)就是看是否運(yùn)行程序。
在很多的漏洞挖掘技術(shù)中,軟件滲透測(cè)試,模糊測(cè)試,靜態(tài)數(shù)據(jù)流分析應(yīng)用相對(duì)比較廣泛,其次是利用數(shù)據(jù)科學(xué)以及人工智能領(lǐng)域技術(shù)的方法來(lái)對(duì)app漏洞進(jìn)行分析和挖掘漏洞,在2011年以后人們對(duì)機(jī)器學(xué)習(xí)和數(shù)據(jù)的挖掘技術(shù)有了很大的關(guān)注。由于機(jī)器學(xué)習(xí)方法已經(jīng)在不同的應(yīng)用場(chǎng)景都有著顯著且卓越的效果,且能發(fā)現(xiàn)手機(jī)中存在的未知和潛在漏洞,所以本文重點(diǎn)研究基于機(jī)器學(xué)習(xí)的手機(jī)漏洞掃描處理系統(tǒng)的設(shè)計(jì)。
1 基于機(jī)器學(xué)習(xí)漏洞掃描處理系統(tǒng)設(shè)計(jì)
機(jī)器學(xué)習(xí)所關(guān)聯(lián)范圍都是基于有大量的數(shù)據(jù)基礎(chǔ)支撐而實(shí)現(xiàn)的。機(jī)器學(xué)習(xí)中所涉及的監(jiān)督學(xué)習(xí)會(huì)有兩套不同類型的樣本集,訓(xùn)練和測(cè)試數(shù)據(jù),通常我們把手上總數(shù)據(jù)的90%作為訓(xùn)練樣本來(lái)訓(xùn)練分類器,另外10%的數(shù)據(jù)用作測(cè)試已經(jīng)訓(xùn)練的分類器,用于得到分類器在分類結(jié)果的正確率。數(shù)據(jù)量越大,測(cè)試結(jié)果的準(zhǔn)確率越高。基于機(jī)器學(xué)習(xí)的app漏洞掃描處理系統(tǒng)的設(shè)計(jì)需要面對(duì)的問(wèn)題就是如何將移動(dòng)設(shè)備上的app以數(shù)據(jù)的形式呈現(xiàn)出來(lái),并且選擇適當(dāng)?shù)乃惴▽?duì)各個(gè)app進(jìn)行分類。
1.1 信息采集
對(duì)于Android系統(tǒng)中第三方app的漏洞來(lái)說(shuō),找到app的相關(guān)重要屬性標(biāo)簽,是判斷其是否存在漏洞的重要依據(jù)。用機(jī)器學(xué)習(xí)的方法來(lái)實(shí)現(xiàn)漏洞掃描就必須又有大量的漏洞數(shù)據(jù)來(lái)支撐前期的監(jiān)督學(xué)習(xí),而建立數(shù)據(jù)集可以通過(guò)CVE來(lái)輔助實(shí)現(xiàn)。CVE被認(rèn)為是一個(gè)字典表,即每個(gè)CVE漏洞都有它唯一的編號(hào)Name。圖1是CVE漏洞信息列表的詳細(xì)信息。
圖中顯示CVE漏洞編號(hào)以及涉及的app應(yīng)用名稱,版本信息,手機(jī)型號(hào)和具體漏洞信息的描述。截至目前,CVE中有119095條漏洞條目信息。在CVE中搜索列表中輸入Android條目,顯示有5160條信息。如果能把有關(guān)Android的漏洞信息作為機(jī)器學(xué)習(xí)的數(shù)據(jù)集基礎(chǔ),運(yùn)用python爬蟲技術(shù)爬取cve中關(guān)于android漏洞信息,那么在采集信息方面的問(wèn)題已經(jīng)得到解決,下一步就是處理數(shù)據(jù)信息。
1.2 漏洞信息處理
當(dāng)?shù)玫綐永畔⒅笫褂胟鄰近算法對(duì)我們得到的信息進(jìn)行分類,對(duì)模型進(jìn)行訓(xùn)練。一旦另外輸入樣例的時(shí)候,在訓(xùn)練數(shù)據(jù)集中匹配與該實(shí)例最鄰近的K個(gè)實(shí)例,這K個(gè)實(shí)例的多數(shù)屬于某類,就把該輸入實(shí)例分類到這個(gè)類中,差異越小,相似度越高。屬性向量,為將訓(xùn)練樣例發(fā)送給機(jī)器,我們要用合適的方法描述這些樣例。最常見(jiàn)的方法就是使用所謂的屬性,在“漏洞”問(wèn)題域中,可以有種屬性,比如App名稱,App版本信息,手機(jī)型號(hào),存在漏洞等,見(jiàn)圖2。在后期的研究過(guò)程中進(jìn)一步深入了解如何添加每一個(gè)樣例的相關(guān)屬性,減少不相關(guān)屬性的影響,不相關(guān)屬性會(huì)增加計(jì)算開(kāi)銷且存在一定的誤導(dǎo)性。
將得到的特征數(shù)據(jù)導(dǎo)入分類器中,把待處理的數(shù)據(jù)格式改編為分類器可以接受的格式。如何確定一個(gè)app是否存在漏洞,通過(guò)屬性向量的相似性可以了解,機(jī)器學(xué)習(xí)的任務(wù)是把這些異議減到最小。每一個(gè)樣例都能表示為n維空間中的一個(gè)點(diǎn),這個(gè)事實(shí)使得計(jì)算每對(duì)樣例之間的集合距離成為可能,例如計(jì)算其歐氏距離。尋找對(duì)象x的最近鄰的一個(gè)常用方法就是比較從x到每個(gè)訓(xùn)練樣例之間的集合距離。通過(guò)屬性值來(lái)計(jì)算相似性的表達(dá)式為:[d=i=1N(x1i-x2i)2]
1.3 訓(xùn)練結(jié)果
建立訓(xùn)練模型之后,這組數(shù)據(jù)就線性可分(linearly separable)了。為了測(cè)試分類器的效果,我們可以用已經(jīng)知道結(jié)果的數(shù)據(jù)來(lái)檢測(cè)結(jié)果,判斷分類器給出的結(jié)果是否符合預(yù)期目標(biāo)。通過(guò)大量基礎(chǔ)的測(cè)試與數(shù)據(jù)分析,我們就可以分析出分類器的錯(cuò)誤率。再次給分類器一個(gè)新的數(shù)據(jù)的時(shí)候,就可以分類成功從而得到結(jié)果。
由于所有的數(shù)據(jù)點(diǎn)都在一個(gè)平面直角坐標(biāo)系中,所以此時(shí)一條線可以將此平面分割開(kāi)來(lái)。支持向量(support vector)就是與分隔線距離最小的點(diǎn)集。接下來(lái)要試著最大化支持向量到分隔面的距離,需要找到此問(wèn)題的優(yōu)化求解方法。
以用戶數(shù)量作為圖像的y軸,隱私類型出現(xiàn)次數(shù)為x軸。用戶數(shù)量數(shù)值越高出現(xiàn)的app漏洞可能性越小,用戶數(shù)量和漏洞數(shù)量之間存在一定的線性關(guān)系。分析數(shù)據(jù)的過(guò)程中我們需要將差值最大的數(shù)據(jù),也就是對(duì)實(shí)驗(yàn)結(jié)果影響最大的特征值數(shù)據(jù)進(jìn)行調(diào)整,在處理一些有差異的取值范圍的特征值時(shí),通常采用的方法是將數(shù)值歸一化。可以將取值范圍調(diào)整為0到1之間。存在公式能把各種取值范圍的特征值換算為0到1區(qū)間里面的數(shù)值:newValue = (oldValue-min)/(max-min) 。
輸入數(shù)據(jù)給分類器會(huì)輸出一個(gè)類別標(biāo)簽,如果輸入app數(shù)據(jù)是存在漏洞的那么就會(huì)出現(xiàn)在圖中+號(hào)集中位置,如果在-號(hào)集中位置那么則不存在漏洞。輸入一個(gè)未知app數(shù)據(jù),分析樣本集中所有app與未知app的距離,按照距離的遠(yuǎn)近進(jìn)行遞增排序,計(jì)算出k個(gè)距離最近的app。假定k=10,則兩個(gè)最靠近的電影依次是Bosch Smart Camera和Tootdon for Mastodon 。k-近鄰算法按照距離最近的兩個(gè)app的類型,決定未知app的類型,而這兩個(gè)app都存在漏洞,因此我們判定未知app存在漏洞。
2 結(jié)語(yǔ)
在互聯(lián)網(wǎng)飛速發(fā)展的時(shí)代,人們的生活逐漸向智能化邁進(jìn)。相對(duì)于傳統(tǒng)的漏洞掃描方法而言,運(yùn)用機(jī)器學(xué)習(xí)方法的優(yōu)勢(shì)在于可以處理更大的數(shù)據(jù)量,且數(shù)據(jù)量越大準(zhǔn)確度越高,可處理數(shù)據(jù)量遠(yuǎn)高于人工分析,體積更大且有利于對(duì)未來(lái)數(shù)據(jù)更新分類,將新輸入樣例與以往樣例數(shù)據(jù)匹配對(duì)比得出結(jié)論。通過(guò)常用預(yù)測(cè)模型,進(jìn)行實(shí)驗(yàn),科學(xué)對(duì)比結(jié)果,最后通過(guò)圖形,表格方式形象地表達(dá)出來(lái),同時(shí)減少實(shí)驗(yàn)成本和負(fù)擔(dān)。本文研究與分析了在傳統(tǒng)Android 的系統(tǒng)漏洞,機(jī)器學(xué)習(xí)方法對(duì)漏洞掃描的原理和設(shè)計(jì),使漏洞掃描系統(tǒng)更加智能化且效率更高。
參考文獻(xiàn):
[1] 于浩佳.Android應(yīng)用漏洞分析及安全性評(píng)估技術(shù)研究[D].江蘇:南京師范大學(xué),2018.
[2] 劉昊晨.基于Lua引擎的Android漏洞檢測(cè)工具研究[D].四川:西安電子科技大學(xué),2015.
[3] 許杰.基于機(jī)器學(xué)習(xí)的醫(yī)療健康分類方法研究[D].河南:鄭州大學(xué),2018.
[4] 成厚富.智能手機(jī)漏洞挖掘技術(shù)研究[D].四川:西安電子科技大學(xué),2008. DOI:10.7666/d.y1246905.
[5] [美]Peter Harrington 著,李銳、李鵬、曲亞?wèn)| 譯.機(jī)器學(xué)習(xí)實(shí)戰(zhàn)[M].人民郵電出版社,2013.
[6] [美]米羅斯拉夫·庫(kù)巴 著.機(jī)器學(xué)習(xí)導(dǎo)論[M].特機(jī)械工業(yè)出版社,2016-11-01.
[7]戴春春.漏洞利用自動(dòng)生成算法的設(shè)計(jì)與實(shí)現(xiàn)[D].四川:西安電子科技大學(xué),2017.
[8] 劉柳.Android手機(jī)用戶隱私保護(hù)系統(tǒng)及其關(guān)鍵技術(shù)的研究[D].四川:電子科技大學(xué),2017.
[9] 張翼飛.中國(guó)智能手機(jī)現(xiàn)狀研究及建議[J].社會(huì)科學(xué)前沿,2018,7(10):1670-1674.
[10] 劉蓉,于浩佳,陳思遠(yuǎn), 等.基于APP分層結(jié)構(gòu)的Android應(yīng)用漏洞分類法[J].信息安全研究,2018,4(9):792-798.
[11] 郝蕾.Android系統(tǒng)開(kāi)發(fā)APP端常見(jiàn)安全漏洞解讀[J].計(jì)算機(jī)與網(wǎng)絡(luò),2016,42(21):59.
【通聯(lián)編輯:李雅琪】