版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 目 錄摘要3第一章作品概述51.1背景分析51.2課題研究意義61.2.1安卓市場(chǎng)惡意軟件現(xiàn)狀61.2.2安卓惡意軟件檢測(cè)評(píng)估的必要性71.3 相關(guān)工作81.3.1安卓惡意軟件檢測(cè)的現(xiàn)狀 主流檢測(cè)方案 相關(guān)安全公司檢測(cè)情況91.3.2安卓惡意軟件評(píng)估相關(guān)內(nèi)容 簽名機(jī)制 應(yīng)用程序權(quán)限控制機(jī)制111.4 特色描述111.5 應(yīng)用前景分析11第二章作品設(shè)計(jì)與實(shí)現(xiàn)122.1 系統(tǒng)方案122.1.1 方案一122.1.2 方案二122.1.3 方案三132.2 實(shí)現(xiàn)原理132.2.1檢測(cè)原理基于特征代碼的檢測(cè)132.
2、2.1.2基于權(quán)限統(tǒng)計(jì)分析的檢測(cè)132.2.2 android系統(tǒng)原理 android系統(tǒng)結(jié)構(gòu) apk文件及其結(jié)構(gòu) android病毒原理 機(jī)器學(xué)習(xí)、svm介紹和libsvm的使用182.3 軟件流程272.3.1 方案一流程272.3.2 方案二流程282.4.3 方案三流程292.4 功能312.5 指標(biāo)31第三章作品測(cè)試與分析323.1 測(cè)試環(huán)境搭建323.1.1 windows 8.1323.1.2 python3.4.3323.1.3 java se 8u45323.1.4 matlab 2014a323.2 測(cè)
3、試目的323.3 測(cè)試方案333.3.1系統(tǒng)方案一測(cè)試3測(cè)試方案13測(cè)試方案2333.3.2 系統(tǒng)方案二測(cè)試3測(cè)試方案33 測(cè)試方案4333.3.3系統(tǒng)方案三測(cè)試3 測(cè)試方案5333.3.4 實(shí)用性測(cè)試3 測(cè)試方案6343.4 測(cè)試過(guò)程及數(shù)據(jù)343.4.1測(cè)試方案1343.4.2測(cè)試方案2353.4.3測(cè)試方案3363.4.4測(cè)試方案4373.4.5測(cè)試方案5383.4.6測(cè)試方案6393.5 結(jié)果分析393.5.1測(cè)試方案1393.5.2測(cè)試方案2393.5.3測(cè)試方案3393.5.4測(cè)試方案43
4、93.5.5測(cè)試方案5403.5.6測(cè)試方案640第四章創(chuàng)新性說(shuō)明414.1對(duì)apk權(quán)限特征采取加權(quán)處理414.2對(duì)apk權(quán)限特征進(jìn)行基于統(tǒng)計(jì)的拓展414.3輕量而加強(qiáng)的機(jī)器學(xué)習(xí)方案41第五章總結(jié)42摘要android移動(dòng)開(kāi)發(fā)平臺(tái)是google與30多家全球移動(dòng)通訊領(lǐng)域內(nèi)的領(lǐng)軍企業(yè)聯(lián)合開(kāi)發(fā)。android是為移動(dòng)終端打造的包括操作系統(tǒng)、中間件、開(kāi)發(fā)組件及應(yīng)用軟件的真正開(kāi)源平臺(tái)并于2008年發(fā)布了第一款智能手機(jī)。如今移動(dòng)平臺(tái)逐漸成為人們上網(wǎng)的主要方式,并且基于android平臺(tái)的應(yīng)用越來(lái)越普及, android在人們?nèi)粘I钪邪缪葜絹?lái)越重要的角色,導(dǎo)致其逐漸成為大量惡意攻擊者的首選目標(biāo)之一。a
5、ndroid應(yīng)用軟件智能終端受到攻擊主要原因是用戶(hù)從android第三方市場(chǎng)下載的軟件可以不經(jīng)檢測(cè)就放到android軟件市場(chǎng)供用戶(hù)下載,其代碼中存在的安全漏洞是受到攻擊的根源。安全漏洞可以使攻擊者以非法手段獲取用戶(hù)重要信息及系統(tǒng)的控制權(quán),并且android智能終端存儲(chǔ)著用戶(hù)大量隱私信息,一旦這些信息泄露或破壞,對(duì)用戶(hù)造成的損失難以想象。隨著手機(jī)惡意軟件愈演愈烈的增長(zhǎng)之勢(shì),越來(lái)越多的手機(jī)惡意軟件以獲取用戶(hù)的錢(qián)財(cái)為目的,其使用的手段也日趨復(fù)雜。所以,對(duì)android平臺(tái)上惡意軟件的檢測(cè)評(píng)估迫在眉睫。本作品主要針對(duì)android平臺(tái)下的惡意軟件,對(duì)未知軟件(即apk文件)進(jìn)行分析、檢測(cè)與評(píng)估,大致
6、判斷出該軟件是否為未知軟件。例如,對(duì)某一軟件,我們會(huì)對(duì)這個(gè)apk包里面的權(quán)限、簽名等信息進(jìn)行提取,再進(jìn)行判斷。本作品的主要特性如下:(1)與用戶(hù)的交互能力強(qiáng),方便操作。用戶(hù)選擇了需要檢測(cè)的安卓軟件之后,系統(tǒng)會(huì)自動(dòng)調(diào)用我們預(yù)設(shè)的相關(guān)的模型對(duì)軟件進(jìn)行處理分析,最終給出一個(gè)參考的結(jié)果;(2)符合時(shí)代需求?,F(xiàn)如今智能手機(jī)應(yīng)用廣泛,android系統(tǒng)更是用戶(hù)群體龐大,對(duì)惡意軟件的可靠檢測(cè)迫在眉睫;(3)預(yù)測(cè)結(jié)果可靠性強(qiáng)。該作品采用了多個(gè)因素作為評(píng)估檢測(cè)的評(píng)估標(biāo)準(zhǔn),包括簽名、使用權(quán)限、特征碼等,相對(duì)于一些單一的標(biāo)準(zhǔn)來(lái)說(shuō),綜合性更強(qiáng),從而可信度更高;(4)實(shí)用性強(qiáng)。該作品的應(yīng)用場(chǎng)景廣泛,可以說(shuō)是智能手機(jī)用戶(hù)
7、的日常所需。目前,安卓手機(jī)上惡意軟件引起的安全事件層出不窮,如監(jiān)控手機(jī)的語(yǔ)音通話(huà),并將這些信息發(fā)送到指定主機(jī),還有一些一鍵root軟件實(shí)則會(huì)更改系統(tǒng)權(quán)限盜取信息等。本作品與用戶(hù)的交互能力很強(qiáng),預(yù)測(cè)結(jié)果可靠,且用戶(hù)群體眾多,可以應(yīng)用到很多的領(lǐng)域,在軟件應(yīng)用市場(chǎng)、普通手機(jī)用戶(hù)群體和手機(jī)軟件開(kāi)發(fā)測(cè)試人員群體中都有較大的應(yīng)用時(shí)間。作品概述 1.1背景分析安卓應(yīng)用軟件隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)日新月異地高速發(fā)展,智能終端的的功能快速增多使之逐步取代傳統(tǒng)桌面成為下一代的計(jì)算平臺(tái)。android作為最受歡迎的智能終端系統(tǒng),已經(jīng)從最初的智能手機(jī)領(lǐng)域進(jìn)入教育、醫(yī)療、軍事、汽車(chē)、家居等重要行業(yè)。由于android允許用戶(hù)
8、自行安裝各種豐富的應(yīng)用程序,包括學(xué)習(xí)、辦公、移動(dòng)支付、手機(jī)購(gòu)物、以及生活中的各種軟件,使得android的功能在不斷的升級(jí)和擴(kuò)充。另外android智能終端用戶(hù)可以通過(guò)移動(dòng)通訊網(wǎng)絡(luò)隨時(shí)隨地進(jìn)行網(wǎng)上辦公,收發(fā)郵件,瀏覽網(wǎng)頁(yè),網(wǎng)上信息注冊(cè),網(wǎng)上購(gòu)物及網(wǎng)上銀行轉(zhuǎn)賬等,android終端進(jìn)行著各種信息的構(gòu)建。同時(shí)存儲(chǔ)著sms、聯(lián)系人等重要信息,android智能終端成為用戶(hù)大量隱私辦公等信息存儲(chǔ)的設(shè)備。在安卓軟件中,惡意代碼數(shù)量呈指數(shù)增長(zhǎng),并且出現(xiàn)了多種對(duì)抗分析、檢測(cè)、查殺的技術(shù);應(yīng)用軟件和數(shù)字內(nèi)容的版權(quán)不斷遭到侵害,軟件破解、軟件篡改、廣告庫(kù)修改和植入、惡意代碼植入、應(yīng)用內(nèi)付費(fèi)破解等普遍存在;應(yīng)用軟
9、件本身的安全漏洞頻繁出現(xiàn)在國(guó)內(nèi)外互聯(lián)網(wǎng)企業(yè)的產(chǎn)品中,數(shù)據(jù)泄露和賬戶(hù)被盜等潛在風(fēng)險(xiǎn)讓人擔(dān)憂(yōu);官方系統(tǒng)、第三方定制系統(tǒng)和預(yù)裝軟件的漏洞不斷被發(fā)現(xiàn),對(duì)系統(tǒng)安全與穩(wěn)定產(chǎn)生極大的威脅;android應(yīng)用軟件移動(dòng)支付從概念逐步轉(zhuǎn)為實(shí)踐,而對(duì)通信技術(shù)的攻擊、對(duì)算法和協(xié)議的攻擊時(shí)常發(fā)生;移動(dòng)設(shè)備正融入辦公環(huán)境,但移動(dòng)平臺(tái)的攻擊與apt攻擊結(jié)合的趨勢(shì)日益明顯。更糟的是,隨著地下產(chǎn)業(yè)鏈的不斷成熟和擴(kuò)大,以及攻擊技術(shù)的不斷發(fā)展和改進(jìn),這些威脅和相關(guān)攻擊只會(huì)來(lái)勢(shì)更兇。安卓平臺(tái)上惡意app泛濫已經(jīng)不是什么大新聞,但關(guān)于安卓惡意app到底泛濫到何種程度,恐怕很多人還沒(méi)有一個(gè)清晰的概念?,F(xiàn)在,著名安全廠商賽門(mén)鐵克發(fā)表了一份
10、報(bào)告,稱(chēng)安卓app中有17%是惡意app每不到6個(gè)安卓app中就存在一個(gè)惡意軟件,安卓惡意app的泛濫程度可見(jiàn)一斑。 國(guó)內(nèi)安全公司的數(shù)據(jù)也顯示:流氓推廣、惡意扣費(fèi)、竊取用戶(hù)數(shù)據(jù)等惡意軟件增長(zhǎng)迅速,危害日益嚴(yán)重。在黑色產(chǎn)業(yè)鏈中,駭客通過(guò)技術(shù)手段將非法sp提供的扣費(fèi)號(hào)段植入到應(yīng)用中,實(shí)現(xiàn)惡意吸費(fèi)。手機(jī)駭客的攻擊目標(biāo)正在瞄準(zhǔn)用戶(hù)的手機(jī)支付與消費(fèi)行為。為了更好地防范惡意軟件和駭客帶來(lái)的威脅,最好的辦法是了解他們的攻擊方法和工具,建立技術(shù)壁壘。android應(yīng)用軟件依靠google媒體資源和強(qiáng)大開(kāi)發(fā),成為最流行的智能終端平臺(tái),也是各智能終端廠商追逐對(duì)象,在帶給用戶(hù)豐富多彩的用戶(hù)體驗(yàn)外,隨之而來(lái)的安全問(wèn)題
11、給社會(huì)穩(wěn)定、國(guó)家安全、用戶(hù)隱私帶來(lái)巨大的挑戰(zhàn),移動(dòng)應(yīng)用軟件安全現(xiàn)在是一個(gè)重要的研究課題,安全漏洞挖掘是降低網(wǎng)絡(luò)攻擊以及保障用戶(hù)系統(tǒng)及隱私安全的有效的的途徑保證軟件免受攻擊的重要途徑,解決android軟件惡意軟件泛濫是今后安全信息領(lǐng)域重要的研究方向。1.2課題研究意義 1.2.1安卓市場(chǎng)惡意軟件現(xiàn)狀android移動(dòng)開(kāi)發(fā)平臺(tái)是google與30多家全球移動(dòng)通訊領(lǐng)域內(nèi)的領(lǐng)軍企業(yè)聯(lián)合開(kāi)發(fā)。android是為移動(dòng)終端打造的包括操作系統(tǒng)、中間件、開(kāi)發(fā)組件及應(yīng)用軟件的真正開(kāi)源平臺(tái)并于2008年發(fā)布了第一款智能手機(jī)。android應(yīng)用軟件具有豐富的硬件選擇并且完全擺脫了運(yùn)營(yíng)商和開(kāi)發(fā)商的限制。由于其開(kāi)源性和
12、與應(yīng)用的完美結(jié)合,吸引了大量開(kāi)發(fā)商和應(yīng)用開(kāi)發(fā)者轉(zhuǎn)向android。android強(qiáng)大的功能和豐富的應(yīng)用以及優(yōu)良的性能使其發(fā)展迅猛,短短幾年,android已經(jīng)成為全球第一大智能手機(jī)操作系統(tǒng)。如今移動(dòng)平臺(tái)逐漸成為人們上網(wǎng)的主要方式,并且基于android平臺(tái)的應(yīng)用越來(lái)越普及, android在人們?nèi)粘I钪邪缪葜絹?lái)越重要的角色,導(dǎo)致其逐漸成為大量惡意攻擊者的首選目標(biāo)之一。國(guó)外用戶(hù)一般是從谷歌應(yīng)用商店下載應(yīng)用,由于谷歌自身安全檢測(cè)機(jī)制的保障,其安全性不太可能出現(xiàn)大的問(wèn)題。但是,中國(guó)用戶(hù)可能無(wú)法直接訪問(wèn)谷歌應(yīng)用商店,大都是通過(guò)國(guó)內(nèi)第三方android市場(chǎng)下載應(yīng)用,而谷歌無(wú)法控制第三方的應(yīng)用商店。因
13、此,國(guó)內(nèi)的android應(yīng)用安全問(wèn)題更加突出,安全威脅更高。然而,即使在安卓官方商店google play,也有大量假冒app被發(fā)現(xiàn),play商店排名前50的免費(fèi)app,大部分在play商店中有對(duì)應(yīng)的假冒產(chǎn)品存在。在今年年初,俄羅斯殺毒公司dr. web發(fā)布了關(guān)于2014年手持設(shè)備惡意軟件的回顧報(bào)告。就信息安全事件來(lái)講,在2014年各種狀況頻出又豐富多彩。新型安卓惡意應(yīng)用程序不斷涌現(xiàn)。具體來(lái)講,銀行木馬無(wú)數(shù)的修改版本攻擊了許多位于不同國(guó)家的設(shè)備且它的數(shù)量仍在不斷增長(zhǎng)。此外,互聯(lián)網(wǎng)安全技術(shù)全球領(lǐng)導(dǎo)廠商賽門(mén)鐵克在最新公布的互聯(lián)網(wǎng)安全威脅報(bào)告中發(fā)出警告,所有android應(yīng)用中,有17%(約100萬(wàn)
14、個(gè))實(shí)際上是惡意軟件偽裝的。而在2013年報(bào)告中,這種內(nèi)含病毒的應(yīng)用約為70萬(wàn)個(gè)。三分之一android應(yīng)用被賽門(mén)鐵克稱(chēng)為“灰色軟件”(greyware或grayware),這些移動(dòng)軟件主要是利用大量廣告“轟炸”你。賽門(mén)鐵克還發(fā)現(xiàn)首款移動(dòng)加密勒索惡意軟件,這種軟件可加密你的數(shù)據(jù),以其為“人質(zhì)”向你勒索贖金。1.2.2安卓惡意軟件檢測(cè)評(píng)估的必要性android應(yīng)用軟件智能終端受到攻擊主要原因是用戶(hù)從android第三方市場(chǎng)下載的軟件可以不經(jīng)檢測(cè)就放到android軟件市場(chǎng)供用戶(hù)下載,其代碼中存在的安全漏洞是受到攻擊的根源。安全漏洞可以使攻擊者以非法手段獲取用戶(hù)重要信息及系統(tǒng)的控制權(quán),并且andr
15、oid智能終端存儲(chǔ)著用戶(hù)大量隱私信息,一旦這些信息泄露或破壞,對(duì)用戶(hù)造成的損失難以想象。隨著手機(jī)惡意軟件愈演愈烈的增長(zhǎng)之勢(shì),越來(lái)越多的手機(jī)惡意軟件以獲取用戶(hù)的錢(qián)財(cái)為目的,其使用的手段也日趨復(fù)雜。為了實(shí)現(xiàn)釣魚(yú)攻擊、竊取銀行卡信息和銀行賬戶(hù)錢(qián)財(cái),手機(jī)惡意軟件變種數(shù)量增長(zhǎng)了近20倍。在眾多手機(jī)惡意軟件類(lèi)型之中,銀行木馬對(duì)用戶(hù)造成的危害最為巨大。在檢測(cè)到的銀行木馬中,某些銀行木馬甚至能夠直接從銀行賬號(hào)實(shí)施錢(qián)財(cái)竊取。這種惡意軟件已經(jīng)從以往直接扣除受害者手機(jī)賬戶(hù)話(huà)費(fèi)的老套騙術(shù)中得到“升級(jí)”。因此,其所造成的潛在損失也在顯著增加。而網(wǎng)絡(luò)罪犯似乎也認(rèn)準(zhǔn)了這種獲利手段。相較之猛增的“量”變,更讓人感到憂(yōu)心的是,
16、手機(jī)惡意程序同時(shí)也出現(xiàn)了“質(zhì)”的飛躍。網(wǎng)絡(luò)罪犯開(kāi)始越來(lái)越多地使用代碼混淆技術(shù),即故意制造復(fù)雜的代碼,這為惡意軟件的分析工作增加了很大的難度。惡意軟件使用的代碼混淆越復(fù)雜,反病毒解決方案檢測(cè)和清除其所花費(fèi)的時(shí)間也越長(zhǎng),從而讓網(wǎng)絡(luò)罪犯有時(shí)間竊取到更多的錢(qián)財(cái)。網(wǎng)絡(luò)罪犯會(huì)使用安卓漏洞增強(qiáng)惡意程序的權(quán)限,大幅增加惡意程序的功能,并且使清除惡意程序變得更為困難。1.3 相關(guān)工作1.3.1安卓惡意軟件檢測(cè)的現(xiàn)狀 主流檢測(cè)方案當(dāng)前主流惡意軟件檢測(cè)方案主要包括, 以特征代碼(signature-based)為基準(zhǔn)的檢測(cè)方案和以行為(behavior-based)為基準(zhǔn)的檢測(cè)方案。 以特征代碼(si
17、gnature-based)為基準(zhǔn)的檢測(cè)方案在不同的文獻(xiàn)中的定義不同,特征方案分為字節(jié)碼特征(byte-code signature)還是行為特征(behavioral signature), 但本質(zhì)上都是通過(guò)分析待檢測(cè)文件是否包含已知惡意軟件的特征代碼( 通常是從一段病毒代碼中提取的代碼和字符常量)來(lái)判斷其是否具備惡意行為。而基于行為的檢測(cè)方案則依靠監(jiān)視程序的行為(如, 修改內(nèi)存控制塊和總量、 盜用截流系統(tǒng)中斷、病毒程序與宿主程序切換、 對(duì)可執(zhí)行文件做寫(xiě)入操作、搜索 api 函數(shù)地址) 來(lái)作為判斷的基準(zhǔn),由此判斷文件是否是惡意文件。(1)以特征碼為基準(zhǔn)的惡意軟件檢測(cè)方案本論文中以特征代碼為基
18、準(zhǔn)的檢測(cè)(signature-based) 采用基于字節(jié)碼特征的檢測(cè)(byte-code-based)方案。并對(duì)其定義如下:從惡意軟件的惡意代碼中提取出連續(xù)不含空格的字符串作為該惡意軟件的特征, 保存在病毒庫(kù)中, 并依靠由此構(gòu)建的病毒庫(kù)來(lái)檢測(cè)惡意軟件。因此,病毒庫(kù)須頻繁升級(jí)以應(yīng)對(duì)病毒的反檢測(cè)和新變種。同時(shí),基于特征代碼的檢測(cè)方案具有滯后性,無(wú)法識(shí)別未知的惡意軟件。(2)以行為為基準(zhǔn)的惡意軟件檢測(cè)方案以行為(behavior-based)為基準(zhǔn)的檢測(cè)方法又可以實(shí)現(xiàn)方式分為白名單模型和黑名單模型,黑名單模型對(duì)惡意行為進(jìn)行建模,但和基于特征代碼的檢測(cè)(signature-based)一樣,無(wú)法檢測(cè)未
19、知惡意程序?;诎酌麊蔚牡哪P秃秃诿麊文P拖喾?,主要對(duì)合法行為進(jìn)行建模,可以有效的檢測(cè)未知惡意軟件,但在實(shí)際應(yīng)用中,由于合法行為占據(jù)了較大比例,要對(duì)其進(jìn)行充分的抽象具有極大的挑戰(zhàn),從而引起誤報(bào)。 相關(guān)安全公司檢測(cè)情況(1)所選取的安全軟件供應(yīng)商產(chǎn)品包名版本avg小紅傘com.antivirus3.1symantec諾頓手機(jī)安全軟件com.symantec.mobilesecurity92lookout手機(jī)保護(hù)com.lookout8.7.1-edc6dfseseteset移動(dòng)安全com.eset.ems1.1.995.1221dr.web大蜘蛛反病毒軟件com.dr
20、web7.00.3kaspersky卡巴斯基手機(jī)安全軟件com.kms9.36.28trend micro移動(dòng)安全個(gè)人版。com.trendmicro.tmmspersonal2.6.2estsoftalyac androidcom.estsoft.alyaczonerzoner安全防護(hù)com.zoner.android.antivirus1.7.2webrootwebroot 安全和防病毒com.webroot.security547(2)惡意軟件采取技術(shù)代碼技術(shù)p改裝一分解及組裝rp包重命名ee加密本地利用或有效載荷ri重命名標(biāo)識(shí)符rf重命名文件ed編碼字符串和
21、數(shù)組數(shù)據(jù)cr代碼重排序ci間接調(diào)用jn插入垃圾代碼avgsymanteclookoutesetdr. webkasperskytrend mestsoftzonerwebrootp一xrpxxxeexxrixxxedxcrxcixjnxri + eexxxxxee + edxxxee + rfxxxee + cixxxrp + ri + ee + ed + rf + cixxxxxxxxxx(3)部分檢測(cè)結(jié)果注:上表中的“”表示未檢測(cè)出1.3.2安卓惡意軟件評(píng)估相關(guān)內(nèi)容 簽名機(jī)制與其他一些智能手機(jī)平臺(tái)一樣, android 也設(shè)計(jì)了自己的簽名機(jī)制。不過(guò)和其他平臺(tái)又有所不同的是,
22、android 應(yīng)用程序簽名標(biāo)明了 apk 的發(fā)布者,同時(shí)可以對(duì)程序的完整性和可靠性作為保證。只要黑客試圖對(duì) apk 的內(nèi)部進(jìn)行了變動(dòng), 就必須對(duì) apk 文件進(jìn)行重新簽名。而簽名信息,除非原作者的私鑰泄露, 被黑客獲取, 一般情況下不可能和原簽名信息一致。同時(shí), 簽名機(jī)制在 android 應(yīng)用程序更新時(shí)也能起到保護(hù)作用。如果用戶(hù)在更新應(yīng)用程序時(shí),兩者的簽名信息不一致, 系統(tǒng)將會(huì)禁止此次更新。如果一個(gè)應(yīng)用程序需要使用system權(quán)限,應(yīng)用程序的簽名更需要和framework的簽名保持一致。由此可見(jiàn),在android 的應(yīng)用程序和應(yīng)用程序框架層中,簽名機(jī)制起到了十分重要作用,進(jìn)一步保護(hù)了系統(tǒng)的
23、安全。簽名機(jī)制主要是在 android 安裝或更新應(yīng)用程序時(shí)生效, 是一種檢測(cè) apk 包完整性和發(fā)布機(jī)構(gòu)唯一性的機(jī)制。 它基于每個(gè) apk 包中簽名文件具有的唯一性,使得單純的對(duì) apk 文件解壓后替換文件的篡改行為無(wú)法奏效,因此一定程度上實(shí)現(xiàn)對(duì)保護(hù)了系統(tǒng)的安全。 應(yīng)用程序權(quán)限控制機(jī)制權(quán)限控制機(jī)制是android 系統(tǒng)在應(yīng)用程序框架層最核心的機(jī)制。它用于限制應(yīng)用程序的訪問(wèn)系統(tǒng)的api 和資源。應(yīng)用程序必須在權(quán)限以?xún)?nèi)運(yùn)行,而不能訪問(wèn)權(quán)限外的任何資源。android的package manager在程序安裝時(shí)經(jīng)用戶(hù)同意給應(yīng)用程序安裝包賦予權(quán)限,而在執(zhí)行時(shí)由應(yīng)用程序框架層驗(yàn)證權(quán)限,如
24、果應(yīng)用程序未經(jīng)申請(qǐng)使用了受限的資源,應(yīng)用程序會(huì)自動(dòng)關(guān)閉。 android 定義了上百種系統(tǒng)權(quán)限,所涉及的功能包括:拍照,訪問(wèn)網(wǎng)絡(luò),地理位置定位等。這些權(quán)限可以被分為普通級(jí)、危險(xiǎn)級(jí)、簽名級(jí)和系統(tǒng)級(jí)。1.4 特色描述本作品著眼于安卓惡意軟件的檢測(cè)。對(duì)軟件的檢測(cè),它不局限于單一標(biāo)準(zhǔn),而是綜合評(píng)估與計(jì)算。另外,本作品利用機(jī)器學(xué)習(xí)和權(quán)限加權(quán),大大提高了檢測(cè)結(jié)果的準(zhǔn)確度。同時(shí)利用svm工具,根據(jù)機(jī)器學(xué)習(xí)來(lái)構(gòu)造檢測(cè)系統(tǒng)。1.5 應(yīng)用前景分析目前,安卓手機(jī)上惡意軟件引起的安全事件層出不窮,如監(jiān)控手機(jī)的語(yǔ)音通話(huà),并將這些信息發(fā)送到指定主機(jī),還有一些一鍵root軟件實(shí)則會(huì)更改系統(tǒng)權(quán)限盜取信息等。本作品應(yīng)用市場(chǎng)有:
25、(1)軟件應(yīng)用市場(chǎng):可以通過(guò)本產(chǎn)品對(duì)于市場(chǎng)上要上架的軟件進(jìn)行檢測(cè),作為審核上架的一道工序,以便更好地為用戶(hù)提供一個(gè)下載安全好用的軟件的地方。同時(shí)在用戶(hù)下載的時(shí)候,也可以根據(jù)本作品的檢測(cè)結(jié)果向用戶(hù)提供一些建議。(2)普通安卓手機(jī)用戶(hù):對(duì)于不可信來(lái)源下載來(lái)的apk利用本軟件進(jìn)行檢測(cè),參考一下是否可以放心使用該軟件。(3)軟件測(cè)試及開(kāi)發(fā)人員:利用本作品對(duì)于自身的開(kāi)發(fā)測(cè)試工作進(jìn)行參考。作品設(shè)計(jì)與實(shí)現(xiàn) 2.1 系統(tǒng)方案在本系統(tǒng)中,對(duì)于android惡意軟件檢測(cè)與評(píng)估的方案并不是一蹴而就的。為此,我們一開(kāi)始采用了較為直觀簡(jiǎn)潔的檢測(cè)方案,隨后不斷嘗試對(duì)方案進(jìn)行改進(jìn)、豐富、提效。在系統(tǒng)設(shè)計(jì)的過(guò)程中,改變方案的
26、方向不一定是正確的,因此,在制定不同方案的同時(shí),將不同階段的方案隨時(shí)進(jìn)行效果對(duì)比,分析不同方案的優(yōu)劣,以尋找出一個(gè)或者幾個(gè)相對(duì)最優(yōu)的方案。下面介紹了本系統(tǒng)設(shè)計(jì)中android惡意軟件檢測(cè)與評(píng)估的不同方案。2.1.1 方案一對(duì)軟件的android所有95個(gè)不同權(quán)限的使用情況進(jìn)行機(jī)器學(xué)習(xí)分析,得到基于大量權(quán)限特征的model進(jìn)行預(yù)測(cè)。使用google提供的apktool對(duì)android軟件權(quán)限進(jìn)行提取,分析manifest.xml中的所有權(quán)限信息(“users-permissions”),對(duì)大量樣本的所有權(quán)限使用情況進(jìn)行機(jī)器學(xué)習(xí)運(yùn)算,利用libsvm工具箱得出預(yù)測(cè)model,進(jìn)而用model對(duì)an
27、droid軟件是否為惡意軟件進(jìn)行檢測(cè)。2.1.2 方案二在android所有95個(gè)不同權(quán)限中進(jìn)行基于安全相關(guān)性的篩選與加權(quán),試圖提高svm model的準(zhǔn)確率。由于apktool的反編譯過(guò)程較慢,方案二采用了更為高效的axmlprinter作為xml分析手段。為了進(jìn)一步提高系統(tǒng)的分析效率,并不將所有的android權(quán)限標(biāo)簽作為svm測(cè)試集的特征項(xiàng),而是從中選擇了一部分,并且根據(jù)人為判斷的重要性給予一定的權(quán)值。而為了提高預(yù)測(cè)準(zhǔn)確率,加入了特征碼檢測(cè)過(guò)程,該過(guò)程可以以很高的準(zhǔn)確率識(shí)別出惡意軟件。方案二實(shí)現(xiàn)的過(guò)程中,我們不斷對(duì)android權(quán)限的篩選和加權(quán)情況進(jìn)行優(yōu)化和修改,直到使model的準(zhǔn)確率
28、達(dá)到難以繼續(xù)提高的數(shù)值。2.1.3 方案三結(jié)合方案一和方案二。在對(duì)權(quán)限進(jìn)行篩選、加權(quán)的同時(shí),依然對(duì)所有權(quán)限進(jìn)行分類(lèi)統(tǒng)計(jì)、分級(jí)統(tǒng)計(jì)的操作,統(tǒng)計(jì)出各類(lèi)、各級(jí)權(quán)限的個(gè)數(shù),并且根據(jù)設(shè)定的閾值將邏輯判斷結(jié)果作為測(cè)試集特征的一部分。方案二采用更少的特征和具有高準(zhǔn)確性的特征碼檢測(cè),而方案一的大量特征則為svm提供了更大的樣本空間。方案三在執(zhí)行類(lèi)似方案二的過(guò)程同時(shí),對(duì)95個(gè)權(quán)限標(biāo)簽進(jìn)行統(tǒng)計(jì)上的分類(lèi)和分級(jí)。其中對(duì)權(quán)限的分類(lèi)基于權(quán)限的不同功能,而權(quán)限的分級(jí)則是根據(jù)影響手機(jī)系統(tǒng)安全、用戶(hù)利益的威脅大小進(jìn)行。對(duì)于不同級(jí)別、組別的軟件,將根據(jù)其特征設(shè)定合適的權(quán)限個(gè)數(shù)閾值,判斷此項(xiàng)是否超過(guò)閾值的邏輯結(jié)果作為特征附加到測(cè)試
29、集的特征中。2.2 實(shí)現(xiàn)原理2.2.1檢測(cè)原理本系統(tǒng)對(duì)android惡意軟件的檢測(cè)主要分為基于特征代碼的檢測(cè)和基于權(quán)限統(tǒng)計(jì)分析的檢測(cè)。基于特征代碼的檢測(cè)特征代碼檢測(cè)是一種使用特征庫(kù)的檢測(cè)方法,本系統(tǒng)中的特征代碼檢測(cè)定義如下:從惡意軟件張?zhí)崛〕鋈舾啥尉哂形ㄒ恍?、固定性的字?jié)碼(如,一段特殊代碼或字符串作為該惡意軟件的特征,由上述方法構(gòu)建特征庫(kù),通過(guò)對(duì)未知是否惡意的軟件進(jìn)行字節(jié)碼的特征庫(kù)匹配,檢測(cè)其是否為惡意軟件。基于特征代碼的檢測(cè)方案是現(xiàn)代病毒檢測(cè)的核心技術(shù)之一。但其存在以下缺點(diǎn):1)具有滯后性,無(wú)法識(shí)別未知的惡意軟件2)字節(jié)碼特征容易通過(guò)加密和混淆的方式被改變,導(dǎo)致特征庫(kù)需要頻繁
30、更新。由于基于特征代碼檢測(cè)的上述特性,本系統(tǒng)輔以基于權(quán)限統(tǒng)計(jì)分析的檢測(cè)方案。基于權(quán)限統(tǒng)計(jì)分析的檢測(cè)權(quán)限控制機(jī)制是android 系統(tǒng)在應(yīng)用程序框架層最核心的機(jī)制。它用于限制應(yīng)用程序的訪問(wèn)系統(tǒng)的api 和資源。應(yīng)用程序必須在權(quán)限以?xún)?nèi)運(yùn)行,而不能訪問(wèn)權(quán)限外的任何資源。android的package manager在程序安裝時(shí)經(jīng)用戶(hù)同意給應(yīng)用程序安裝包賦予權(quán)限,而在執(zhí)行時(shí)由應(yīng)用程序框架層驗(yàn)證權(quán)限,如果應(yīng)用程序未經(jīng)申請(qǐng)使用了受限的資源,應(yīng)用程序會(huì)自動(dòng)關(guān)閉。 android 定義了上百種系統(tǒng)權(quán)限,所涉及的功能包括:拍照,訪問(wèn)網(wǎng)絡(luò),地理位置定位等。這些權(quán)限可以被分為普通級(jí)、危險(xiǎn)級(jí)、簽名級(jí)和系
31、統(tǒng)級(jí)。由與android軟件所申請(qǐng)的權(quán)限與其軟件的功能有著極大的相關(guān)性,使得對(duì)權(quán)限進(jìn)行分析判斷android軟件是否惡意軟件成為可能。而android軟件數(shù)以百萬(wàn)、千萬(wàn)級(jí)的龐大數(shù)量,則為使用機(jī)器學(xué)習(xí)算法對(duì)進(jìn)行權(quán)限分析、建立模型提供了有利的條件。通過(guò)對(duì)權(quán)限特征的量化,即可以使用svm(支持向量機(jī))分類(lèi)器對(duì)大量的android惡意軟件、非惡意軟件的樣本的權(quán)限信息進(jìn)行統(tǒng)計(jì)和建模,生成一個(gè)用于預(yù)測(cè)android軟件是否為惡意軟件的model。2.2.2 android系統(tǒng)原理 android系統(tǒng)結(jié)構(gòu)android系統(tǒng)架構(gòu)為四層結(jié)構(gòu),從上層到下層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)
32、層以及l(fā)inux內(nèi)核層。下圖為android系統(tǒng)架構(gòu)圖:(1)應(yīng)用程序?qū)觓ndroid平臺(tái)不僅僅是操作系統(tǒng),也包含了許多應(yīng)用程序,諸如sms短信客戶(hù)端程序、電話(huà)撥號(hào)程序、圖片瀏覽器、web瀏覽器等應(yīng)用程序。這些應(yīng)用程序都是用java語(yǔ)言編寫(xiě)的,并且這些應(yīng)用程序都是可以被開(kāi)發(fā)人員開(kāi)發(fā)的其他應(yīng)用程序所替換,這點(diǎn)不同于其他手機(jī)操作系統(tǒng)固化在系統(tǒng)內(nèi)部的系統(tǒng)軟件,更加靈活和個(gè)性化。(2)應(yīng)用程序框架層該層是android應(yīng)用開(kāi)發(fā)的基礎(chǔ),開(kāi)發(fā)人員大部分情況是在和她打交道。應(yīng)用程序框架層包括活動(dòng)管理器、窗口管理器、內(nèi)容提供者、視圖系統(tǒng)、包管理器、 電話(huà)管理器、資源管理器、位置管理器、通知管理器和xmpp服務(wù)
33、十個(gè)部分。在android平臺(tái)上,開(kāi)發(fā)人員可以完全訪問(wèn)核心應(yīng)用程序所使用的api框 架。并且,任何一個(gè)應(yīng)用程序都可以發(fā)布自身的功能模塊,而其他應(yīng)用程序則可以使用這些已發(fā)布的功能模塊?;谶@樣的重用機(jī)制,用戶(hù)就可以方便地替換平臺(tái)本 身的各種應(yīng)用程序組件。(3)系統(tǒng)庫(kù)和android運(yùn)行庫(kù)系統(tǒng)庫(kù)包括九個(gè)子系統(tǒng),分別是圖層管理、媒體庫(kù)、sqlite、openglestate、freetype、webkit、sgl、ssl和libc。 android運(yùn)行庫(kù)包括核心庫(kù)和dalvik虛擬機(jī),前者既兼容了大多數(shù)java語(yǔ)言所需要調(diào)用的功能函數(shù),又包括了android的核心庫(kù),比如 android.os、an
34、、android.media等等。后者是一種基于寄存器的java虛擬機(jī),dalvik虛擬機(jī)主要是完成對(duì)生命周期的管理、堆棧的管理、線程的管理、安全和異常的管理以及垃圾回收等重要功能。(4)linux內(nèi)核android核心系統(tǒng)服務(wù)依賴(lài)于linux2.6內(nèi)核,如安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。linux內(nèi)核也是作為硬件與軟件棧的抽象層。驅(qū)動(dòng):顯示驅(qū)動(dòng)、攝像頭驅(qū)動(dòng)、鍵盤(pán)驅(qū)動(dòng)、wifi驅(qū)動(dòng)、audio驅(qū)動(dòng)、flash內(nèi)存驅(qū)動(dòng)、binder(ipc)驅(qū)動(dòng)、電源管理等。 apk文件及其結(jié)構(gòu)apk文件,即android application package
35、文件。每個(gè)要安裝到ophone平臺(tái)的應(yīng)用都要被編譯打包為一個(gè)單獨(dú)的文件,后綴名為.apk,其中包含了應(yīng)用的二進(jìn)制代碼、資源、配置文件等。apk文件實(shí)際是一個(gè)zip壓縮包,可以通過(guò)解壓縮工具解開(kāi)。以下是我們用zip解開(kāi)helloworld.apk文件后看到的內(nèi)容??梢钥吹狡浣Y(jié)構(gòu)跟新建立的工程結(jié)構(gòu)有些類(lèi)似。(1)androidmanifest.xmlandroidmanifest.xml是android應(yīng)用程序中最重要的文件之一。它是android程序的全局配置文件,是每個(gè)android程序中必須的文件。它位于我們開(kāi)發(fā)的應(yīng)用程序的根目錄下,描述了package中的全局?jǐn)?shù)據(jù),包括package中暴露
36、的組件(activities, services, 等等),以及他們各自的實(shí)現(xiàn)類(lèi),各種能被處理的數(shù)據(jù)和啟動(dòng)位置等重要信息。 因此,該文件提供了android系統(tǒng)所需要的關(guān)于該應(yīng)用程序的必要信息,即在該應(yīng)用程序的任何代碼運(yùn)行之前系統(tǒng)所必須擁有的信息。在本系統(tǒng)中,主要通過(guò)對(duì)androidmanifest.xml文件的信息提取和分析實(shí)現(xiàn)了惡意軟件的檢測(cè)。(2)meta-infmeta-inf目錄下存放的是簽名信息,用來(lái)保證apk包的完整性和系統(tǒng)的安全。在eclipse編譯生成一個(gè)api包時(shí),會(huì)對(duì)所有要打包的文件做一個(gè)校驗(yàn)計(jì)算,并把計(jì)算結(jié)果放在meta-inf目錄下。而在安裝apk包時(shí),應(yīng)用管理器會(huì)按
37、照同樣的算法對(duì)包里的文件做校驗(yàn),如果校驗(yàn)結(jié)果與meta-inf下的內(nèi)容不一致,系統(tǒng)就不會(huì)安裝這個(gè)apk。這就保證了apk包里的文件不能被隨意替換。比如拿到一個(gè)apk 包后,如果想要替換里面的一幅圖片,一段代碼, 或一段版權(quán)信息,想直接解壓縮、替換再重新打包,基本是不可能的。如此一來(lái)就給病毒感染和惡意修改增加了難度,有助于保護(hù)系統(tǒng)的安全。(3)res目錄存放的大部分是一些圖片資源和界面的布局文件。drawable和drawable-*目錄存放的是各種不同分辨率的圖片資源。layout、menu、xml目錄存放的是軟件界面的布局文件,包括菜單、窗口、主界面和設(shè)置界面等。(4)classes.dex
38、classes.dex是java源碼編譯后生成的java字節(jié)碼文件。但由于android使用的dalvik虛擬機(jī)與標(biāo)準(zhǔn)的java虛擬機(jī)是不兼容的,dex文件與class文件相比,不論是文件結(jié)構(gòu)還是opcode都不一樣。目前常見(jiàn)的java反編譯工具都不能處理dex文件。(5)resources.arsc二進(jìn)制格式的文件,aapt對(duì)資源進(jìn)行編譯時(shí),會(huì)為每一個(gè)資源分配唯一的id值,程序在執(zhí)行時(shí)會(huì)根據(jù)這些id值讀取特定的資源,而resouces.arsc文件正式包含了所有的id值的數(shù)據(jù)集合。在該文件中,如果某個(gè)id對(duì)應(yīng)的是string,那么該文件會(huì)直接包含該值,如果id對(duì)應(yīng)的資源是某個(gè)layout或者
39、drawable資源,那么該文件會(huì)存入對(duì)應(yīng)資源的路徑。 android病毒原理android平臺(tái)的惡意軟件主要由如下幾種攻擊方式:(1)惡意扣費(fèi):這類(lèi)病毒在用戶(hù)不知情的情況下,向sp訂購(gòu)付費(fèi)業(yè)務(wù),扣除用戶(hù)的話(huà)費(fèi),(2)竊取隱私:這類(lèi)惡意軟件主要是竊聽(tīng)用戶(hù)通話(huà),竊取用戶(hù)位置信息、通訊錄等資料,并在后臺(tái)上傳到服務(wù)器,從中獲取有利信息或者轉(zhuǎn)賣(mài)出去,進(jìn)而獲利、)(3)消耗資費(fèi):這類(lèi)病毒主要在后臺(tái)自動(dòng)聯(lián)網(wǎng),不斷下載廣告主推廣的應(yīng)用或其他惡意軟件,從而獲取非法利益,這樣直接導(dǎo)致用戶(hù)的網(wǎng)絡(luò)流量和設(shè)備電量消耗過(guò)大。通過(guò)分析病毒源代碼,可以發(fā)現(xiàn)病毒主要是利用短信、電話(huà)、網(wǎng)絡(luò)等功能加上一些其他的輔助
40、功能達(dá)到非法目的。1)盜發(fā)短信在后臺(tái)偷偷向sp發(fā)送訂購(gòu)付費(fèi)業(yè)務(wù)短信,這是病毒最常用的手段,病毒獲得發(fā)送短信的權(quán)限后,利用smsmanagey類(lèi),在用戶(hù)不知道的情況下,向sp發(fā)送訂購(gòu)付費(fèi)業(yè)務(wù)短信:smsmanager.getdefault()sendtextmessage (tel,null,message,null, null);其中tel為短信發(fā)送地址,message為短信訂購(gòu)內(nèi)容、通常在向sp發(fā)送訂購(gòu)業(yè)務(wù)后,sp會(huì)回復(fù)一個(gè)確認(rèn)短信給用戶(hù),讓用戶(hù)再次確認(rèn)是否訂購(gòu)該業(yè)務(wù)。這時(shí),病毒屏蔽sf發(fā)來(lái)的確認(rèn)短信,不讓用戶(hù)看到,再次偷偷發(fā)送確認(rèn)短信給sp,然后刪除相關(guān)短信。這樣,就成功訂購(gòu)了業(yè)務(wù),扣除了
41、用戶(hù)的話(huà)費(fèi),而這一過(guò)程,用戶(hù)毫不知情。病毒屏蔽短信是利用了android的四大組件之一broadcastreceiver, android收到短信時(shí),會(huì)發(fā)出一個(gè)有序廣播,病毒獲得接收短信的權(quán)限后,聲明一個(gè)broadcastreceivey并把優(yōu)先級(jí)設(shè)的很高,病毒優(yōu)先收到sp發(fā)來(lái)的短信后,判斷是否是特定sp的號(hào)碼,如果是,首先終止廣播的傳播,其他程序就不會(huì)收到短信了。然后再次偷偷向sp發(fā)送確認(rèn)短信,最后刪除sp發(fā)來(lái)的消息和發(fā)件箱中偷偷發(fā)出的短信。2)盜打電話(huà)對(duì)于android手機(jī),通過(guò)撥打電話(huà)扣費(fèi)的病毒較少,因?yàn)閾芴?hào)無(wú)法做到像偷發(fā)短信一樣那么好的隱蔽性,不過(guò)最近也出現(xiàn)了一些病毒,入侵用戶(hù)的手機(jī)后
42、,自動(dòng)撥打指定的號(hào)碼,這種號(hào)碼通常會(huì)收取很高的sp費(fèi)用。病毒獲得撥打電話(huà)的權(quán)限后,只需要調(diào)用一次intent,即可實(shí)現(xiàn)撥打指定電話(huà)的功能。3)網(wǎng)絡(luò)傳輸病毒一般從兩個(gè)方面利用網(wǎng)絡(luò):第一,在后臺(tái)聯(lián)網(wǎng),上傳用戶(hù)的隱私信息;第二,在后臺(tái)下載其他應(yīng)用程序或者病毒程序。這兩者都將消耗用戶(hù)大量的網(wǎng)絡(luò)流量,同時(shí)也消耗了很多電量。無(wú)論是上傳還是下載,都是使用http,借助于java的輸入輸出流實(shí)現(xiàn)上傳代碼類(lèi)似于: uploadfile(file file,string up_url); 其中file是上傳的文件,up_url是上傳服務(wù)器地址、 下載代碼類(lèi)似于: downfile ( string url,str
43、ing path,int thread_ num);其中,url為所下載文件的源地址,path是文件下載后的保存路徑,thread num是下載的線程數(shù)。 機(jī)器學(xué)習(xí)、svm介紹和libsvm的使用 基于數(shù)據(jù)的機(jī)器學(xué)習(xí)是現(xiàn)代智能技術(shù)中的重要方面,研究從觀測(cè)數(shù)據(jù)(樣本)出發(fā)尋找規(guī)律,利用這些規(guī)律對(duì)未來(lái)數(shù)據(jù)或無(wú)法觀測(cè)的數(shù)據(jù)進(jìn)行預(yù)測(cè)。機(jī)器學(xué)習(xí)方法有很多,例如決策樹(shù)、神經(jīng)網(wǎng)絡(luò)、隱馬爾可夫模型(hmm)、支持向量機(jī)等,現(xiàn)有機(jī)器學(xué)習(xí)方法共同的重要理論基礎(chǔ)之一是統(tǒng)計(jì)學(xué)。在傳統(tǒng)統(tǒng)計(jì)學(xué)的理論上發(fā)展出來(lái)的支持向量機(jī)(svm)理論表現(xiàn)出其獨(dú)特的性能。本節(jié)包括機(jī)器學(xué)習(xí)、支持向量機(jī)(svm)和libsvm的
44、使用。(1) 機(jī)器學(xué)習(xí)1)機(jī)器學(xué)習(xí)模型與定義機(jī)器學(xué)習(xí)35的目的是根據(jù)給定的訓(xùn)練樣本求得系統(tǒng)輸入、輸出之間的關(guān)系的,使系統(tǒng)能夠?qū)ζ渌袨樽鞒鲎羁赡苷_的預(yù)測(cè)。其基本模型如圖3-10所示。圖 3-10 機(jī)器學(xué)習(xí)模型圖其中系統(tǒng)是我們所要進(jìn)行研究的對(duì)象,學(xué)習(xí)機(jī)是我們所要得到的模型。系統(tǒng)在一定的輸入x下能夠得到一定的輸出y值,而學(xué)習(xí)機(jī)輸出的為y。假設(shè)輸出y與輸入x之間存在一定的未知聯(lián)系,機(jī)器學(xué)習(xí)的問(wèn)題就是根據(jù)若干個(gè)獨(dú)立同分布的訓(xùn)練樣本(x1,y1), (x2,y2), (xn,yn)(假設(shè)樣本個(gè)數(shù)為n)在一組函數(shù)中,選擇一個(gè)最優(yōu)的函數(shù)對(duì)x,y之間的關(guān)系進(jìn)行評(píng)估,而就是一個(gè)學(xué)習(xí)機(jī)。若給定的輸入x與定量的參
45、數(shù)時(shí),其輸出值y=是相等的,則稱(chēng)此學(xué)習(xí)機(jī)是確定性的學(xué)習(xí)機(jī),若對(duì)相同的x與,輸出值y=有出現(xiàn)不相等的情況,則稱(chēng)此學(xué)習(xí)機(jī)是不確定性的。2)損失函數(shù)對(duì)于一個(gè)學(xué)習(xí)機(jī),可以定義一個(gè)損失函數(shù),用來(lái)表示預(yù)測(cè)函數(shù)對(duì)y進(jìn)行預(yù)測(cè)時(shí)造成的損失。對(duì)于模式識(shí)別、回歸模型和概率密度估計(jì)問(wèn)題這三個(gè)機(jī)器學(xué)習(xí)的基本問(wèn)題,有著不同形式的損失函數(shù)。下面作簡(jiǎn)單的介紹。模式識(shí)別問(wèn)題模式識(shí)別,簡(jiǎn)單來(lái)說(shuō),即是對(duì)數(shù)據(jù)進(jìn)行模式分類(lèi)的過(guò)程,通過(guò)訓(xùn)練學(xué)習(xí)機(jī)“學(xué)習(xí)”知識(shí),然后對(duì)待預(yù)測(cè)數(shù)據(jù)進(jìn)行預(yù)測(cè)類(lèi)別。其輸出值y是類(lèi)別號(hào),一個(gè)號(hào)碼對(duì)應(yīng)唯一一個(gè)類(lèi)別。在兩元分類(lèi)的情況下,y值可以定義為y=0,1,是二值函數(shù)。一般定義模式識(shí)別問(wèn)題的損失函數(shù)為: (3-33
46、)回歸問(wèn)題回歸問(wèn)題中的輸出值y是個(gè)連續(xù)變量,其損失函數(shù)一般采用最小平方的誤差,即定義為: (3-34)概率密度估計(jì)問(wèn)題在概率密度估計(jì)問(wèn)題中,學(xué)習(xí)的目擊是根據(jù)訓(xùn)練樣本確定輸入值x的概率密度。假設(shè)其密度函數(shù)為,則損失函數(shù)一般定義為: (3-35)3)經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化在機(jī)器學(xué)習(xí)中,對(duì)以一個(gè)既定的學(xué)習(xí)機(jī),其損失函數(shù)可以定義一個(gè)期望,成為期望風(fēng)險(xiǎn),定義如下: (3-36)而經(jīng)驗(yàn)誤差是指訓(xùn)練樣本的平均誤差,這是每個(gè)系統(tǒng)都有的誤差,我們只有最大可能的去縮減誤差,而不能完全的避免之,經(jīng)驗(yàn)誤差定義為: (3-37)在實(shí)際問(wèn)題中,我們總是想讓期望風(fēng)險(xiǎn)最優(yōu),其愈小,則結(jié)果愈好。但在應(yīng)用中,是無(wú)法通過(guò)直接計(jì)算來(lái)得到。因
47、此,機(jī)器學(xué)習(xí)方法中一般采用經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化的原則來(lái)對(duì)期望風(fēng)險(xiǎn)進(jìn)行估計(jì)。即用的結(jié)果來(lái)估計(jì),即我們只需要通過(guò)得到經(jīng)驗(yàn)風(fēng)險(xiǎn)的最小化來(lái)進(jìn)行使期望風(fēng)險(xiǎn)最小化。例如,在模式識(shí)別問(wèn)題中,經(jīng)驗(yàn)風(fēng)險(xiǎn)就是指訓(xùn)練樣本的錯(cuò)誤率,在本文的實(shí)驗(yàn)中,即指圖像預(yù)測(cè)分類(lèi)的錯(cuò)誤率。前人的研究發(fā)現(xiàn),期望風(fēng)險(xiǎn)和經(jīng)驗(yàn)風(fēng)險(xiǎn)并不是嚴(yán)格的對(duì)應(yīng)關(guān)系,當(dāng)經(jīng)驗(yàn)風(fēng)險(xiǎn)最小時(shí),期望風(fēng)險(xiǎn)并不一定是最小。其關(guān)系如圖3-11所示。圖 3-11望風(fēng)險(xiǎn)與經(jīng)驗(yàn)風(fēng)險(xiǎn)關(guān)系圖所以在實(shí)際應(yīng)用中,尋找一個(gè)合適的學(xué)習(xí)函數(shù)對(duì)預(yù)測(cè)成功率是非常重要的,要尋找期望風(fēng)險(xiǎn)和經(jīng)驗(yàn)風(fēng)險(xiǎn)的最佳匹配函數(shù)。4)函數(shù)集的vc維模式識(shí)別方法中vc維的直觀定義是:對(duì)于一個(gè)指標(biāo)函數(shù)集,如果存在n個(gè)樣本能夠被
48、函數(shù)集中的函數(shù)按所有可能的2h種形式分開(kāi),則稱(chēng)函數(shù)集能夠把n個(gè)樣本打散;函數(shù)集的vc維就是它能打散的最大樣本數(shù)目h。有界實(shí)函數(shù)的vc維可以通過(guò)用一定的閾值將其轉(zhuǎn)化為指示函數(shù)來(lái)定義。vc維反映了函數(shù)集的學(xué)習(xí)能力,vc維越大則學(xué)習(xí)機(jī)器越復(fù)雜(學(xué)習(xí)能力越強(qiáng))。統(tǒng)計(jì)學(xué)習(xí)理論系統(tǒng)地研究了各種類(lèi)型函數(shù)集的經(jīng)驗(yàn)風(fēng)險(xiǎn)(即訓(xùn)練誤差)和實(shí)際風(fēng)險(xiǎn)(即期望風(fēng)險(xiǎn))之間的關(guān)系,即推廣性的界。關(guān)于兩類(lèi)分類(lèi)問(wèn)題有如下結(jié)論:對(duì)指示函數(shù)集中的所有函數(shù),經(jīng)驗(yàn)風(fēng)險(xiǎn)和實(shí)際風(fēng)險(xiǎn)之間至少以概率滿(mǎn)足如下關(guān)系: (3-38)其中h是函數(shù)集的vc維,n是樣本數(shù)。5)結(jié)構(gòu)風(fēng)險(xiǎn)最小化經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化原則在樣本有限(即h/n較大)時(shí)是不合理的,此時(shí)一個(gè)
49、小的經(jīng)驗(yàn)風(fēng)險(xiǎn)值并不能保證小的實(shí)際風(fēng)險(xiǎn)值。為解決此問(wèn)題,就需要在保證分類(lèi)精度(即減小經(jīng)驗(yàn)風(fēng)險(xiǎn))的同時(shí),降低學(xué)習(xí)機(jī)器的vc維,從而使得學(xué)習(xí)機(jī)器在整個(gè)樣本集上的期望風(fēng)險(xiǎn)得到控制,這就是結(jié)構(gòu)風(fēng)險(xiǎn)最小化(srm)原則的基本思想。結(jié)構(gòu)風(fēng)險(xiǎn)最小化為我們提供了一種不同于經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化的更科學(xué)的學(xué)習(xí)機(jī)器設(shè)計(jì)原則,顯然,利用結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則的思想,就可以解決神經(jīng)網(wǎng)絡(luò)中的過(guò)學(xué)習(xí)問(wèn)題。結(jié)構(gòu)風(fēng)險(xiǎn)最小化示意圖如圖3-12所示。圖 3-12結(jié)構(gòu)風(fēng)險(xiǎn)最小化示意圖實(shí)際風(fēng)險(xiǎn)由兩部分組成:經(jīng)驗(yàn)風(fēng)險(xiǎn),以及置信范圍??珊?jiǎn)單的表示為: (3-39)它表明在有限樣本訓(xùn)練下,學(xué)習(xí)機(jī)vc維越高(機(jī)器的復(fù)雜性越高),則置信范圍越大,導(dǎo)致真實(shí)風(fēng)
50、險(xiǎn)與經(jīng)驗(yàn)風(fēng)險(xiǎn)之間可能的差別越大。這就是為什么出現(xiàn)過(guò)學(xué)習(xí)現(xiàn)象的原因。(2)支持向量機(jī)1)支持向量機(jī)的思想支持向量機(jī)的理論最初來(lái)自于對(duì)數(shù)據(jù)分類(lèi)問(wèn)題的處理。對(duì)于線性可分?jǐn)?shù)據(jù)的二值分類(lèi),如果采用多層前向網(wǎng)絡(luò)來(lái)實(shí)現(xiàn),其機(jī)理可以簡(jiǎn)單描述為:系統(tǒng)隨機(jī)的產(chǎn)生一個(gè)超平面并移動(dòng)它,直到訓(xùn)練集合中屬于不同類(lèi)別的點(diǎn)正好位于該超平面的不同側(cè)面,就完成了對(duì)網(wǎng)絡(luò)的設(shè)計(jì)要求。但是這種機(jī)理決定了不能保證最終所獲得的分割平面位于兩個(gè)類(lèi)別的中心,這對(duì)于分類(lèi)問(wèn)題的容錯(cuò)性是不利的。保證最終所獲得的分割平面位于兩個(gè)類(lèi)別的中心對(duì)于分類(lèi)問(wèn)題的實(shí)際應(yīng)用是很重要的。支持向量機(jī)很巧妙地解決了這一問(wèn)題。該方法的機(jī)理可以簡(jiǎn)單描述為:尋找一個(gè)滿(mǎn)足分類(lèi)要
51、求的最優(yōu)分類(lèi)超平面,使得該超平面在保證分類(lèi)精度的同時(shí),能夠使超平面兩側(cè)的空白區(qū)域最大化;從理論上來(lái)說(shuō),支持向量機(jī)能夠?qū)崿F(xiàn)對(duì)線性可分?jǐn)?shù)據(jù)的最優(yōu)分類(lèi)。為了進(jìn)一步解決非線性問(wèn)題,vapnik等人通過(guò)引入核映射方法轉(zhuǎn)化為高維空間的線性可分問(wèn)題來(lái)解決。支持向量機(jī)的主要思想概括起來(lái)就是兩點(diǎn):a.支持向量機(jī)主要針對(duì)線性可分的情況進(jìn)行處理。對(duì)于不可分的情形,支持向量機(jī)主要使用非線性映射算法,通過(guò)將低維空間線性不可分的樣本轉(zhuǎn)化為高維特征空間使其線性可分,從而使得高維特征空間采用線性算法對(duì)樣本的非線性特征進(jìn)行線性分析成為可能;b.基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化理論之上在特征空間中建構(gòu)最優(yōu)分割超平面,使得學(xué)習(xí)器得到全局最優(yōu)化,
52、并且在整個(gè)樣本空間的期望風(fēng)險(xiǎn)以某個(gè)概率滿(mǎn)足一定上界。2)支持向量機(jī)的分類(lèi)原理具體介紹。a.線性可分支持向量機(jī)線性可分主要是指,在二元分類(lèi)中,存在一個(gè)超平面,使得訓(xùn)練樣本中的兩類(lèi)不同的輸入分別劃到該超平面的兩側(cè)。我們?cè)O(shè)訓(xùn)練樣本集為s=(,y1), (,y2), (,yn),其中rn, yi=0,1(或者yi=-1,1),i=1,n。設(shè)超平面為。超平面劃分二元分類(lèi)示意圖如圖3-13所示。圖 3-13 超平面劃分二元分類(lèi)示意圖從圖3-13中我們可以看出劃分二元分類(lèi)的超平面不止一種,有很多種超平面都能夠把樣本分開(kāi)。那么我們應(yīng)該選擇那一種超平面作為應(yīng)用呢?我們首先規(guī)定超平面集中的一個(gè)超平面(即圖中的直線
53、)法線方向,如圖3-14所示,直線h代表是以為法向量的超平面,而且h能夠正確劃分二元分類(lèi)樣本。我們可以把h進(jìn)行平移,這樣我們可以得到若干條直線,例如直線h1、h2,而且這若干條直線也是能夠正確劃分樣本。但是平移是有一定的度的,如果平移到h3的位置,h3不能正確的劃分樣本。圖 3-14最優(yōu)分類(lèi)超平面示意圖從圖3-14中我們可以看出,h直線明顯是最優(yōu)的超平面。這樣我們只需要求得法向量的值之后,我們就可以構(gòu)造出該分類(lèi)超平面。b.線性不可分支持向量機(jī)對(duì)于線性不可分的情況,可以把樣本x映射到一個(gè)高維特征空間h,并在此空間中運(yùn)用原空間的函數(shù)來(lái)實(shí)現(xiàn)內(nèi)積運(yùn)算,這樣將非線性問(wèn)題轉(zhuǎn)換成另一空間的線性問(wèn)題來(lái)獲得一個(gè)
54、樣本的歸屬。根據(jù)泛函的有關(guān)理論,只要一種核函數(shù)滿(mǎn)足mercer條件,它就對(duì)應(yīng)某一空間中的內(nèi)積,因此只要在最優(yōu)分類(lèi)面上采用適當(dāng)?shù)膬?nèi)積核函數(shù)就可以實(shí)現(xiàn)這種線性不可分的分類(lèi)問(wèn)題。此時(shí)目標(biāo)函數(shù)為: (3-40)其中。其對(duì)應(yīng)的分類(lèi)超平面函數(shù)為: (3-41)目前用到的最多的svm工具是臺(tái)灣大學(xué)林智仁博士的libsvmerror! reference source not found.,libsvm中實(shí)現(xiàn)的核函數(shù)有:線性核函數(shù)、多項(xiàng)式核函數(shù)、徑向基核函數(shù)(rbf核)與sigmoid核函數(shù)。1)多項(xiàng)式核函數(shù) (3-42)2)rbf核函數(shù) (3-43)3)sigmod函數(shù) (3-44)(3)libsvm工具包
55、1)libsvm工具包的簡(jiǎn)單介紹libsvm是臺(tái)灣大學(xué)林智仁博士開(kāi)發(fā)的一個(gè)簡(jiǎn)單易用的svm軟件工具。該工具完全開(kāi)源,提供了c+、java、matlab、python等語(yǔ)言的函數(shù)接口,以供不同的環(huán)境下使用。當(dāng)然,這樣也方便了后人根據(jù)自己的需求進(jìn)行改進(jìn)程序。libsvm工具包包含了分類(lèi)問(wèn)題、回歸問(wèn)題和分布估計(jì)的解決方法,并提供了線性、多項(xiàng)式、rbf和sigmod四種常用的核函數(shù)。在訓(xùn)練時(shí),svm的參數(shù)選擇并沒(méi)有一個(gè)很好的模式進(jìn)行選擇,通常是采用實(shí)驗(yàn)搜索的方法進(jìn)行查找最優(yōu)的參數(shù)。在libsvm中,參數(shù)的選擇是在訓(xùn)練樣本時(shí)進(jìn)行交叉檢驗(yàn)時(shí)進(jìn)行查找最優(yōu)的。2)libsvm的使用該工具包提供了源代碼以及在win32平臺(tái)下的可執(zhí)行文件,主要包括一下文件:對(duì)數(shù)據(jù)集進(jìn)行縮放的svm-scale.exe,對(duì)訓(xùn)練樣本進(jìn)行訓(xùn)練的svm-train.exe,以及使用訓(xùn)練得到的模型對(duì)測(cè)試數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《Dreamweaver CS5網(wǎng)頁(yè)設(shè)計(jì)與制作實(shí)例教程》課件-第1章 概述
- 2025年全球及中國(guó)應(yīng)急響應(yīng)無(wú)人機(jī)行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)用于光學(xué)應(yīng)用的超透鏡行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)單相柵極驅(qū)動(dòng)器IC行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025年全球及中國(guó)臺(tái)式激光二極管驅(qū)動(dòng)儀行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球高山輸送機(jī)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)柵網(wǎng)型離子源行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球大麻含量分析儀行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球藥品和食品防偽技術(shù)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球立式高溫反應(yīng)釜行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 壁壘加筑未來(lái)可期:2024年短保面包行業(yè)白皮書(shū)
- 2024年四川省廣元市中考物理試題(含解析)
- 環(huán)保局社會(huì)管理創(chuàng)新方案市環(huán)保局督察環(huán)保工作方案
- 2024至2030年中國(guó)水質(zhì)監(jiān)測(cè)系統(tǒng)行業(yè)市場(chǎng)調(diào)查分析及產(chǎn)業(yè)前景規(guī)劃報(bào)告
- 運(yùn)動(dòng)技能學(xué)習(xí)
- 單側(cè)雙通道內(nèi)鏡下腰椎間盤(pán)摘除術(shù)手術(shù)護(hù)理配合1
- 2024年中考英語(yǔ)專(zhuān)項(xiàng)復(fù)習(xí):傳統(tǒng)文化的魅力(閱讀理解+完型填空+書(shū)面表達(dá))(含答案)
- 音樂(lè)培訓(xùn)合同與培訓(xùn)機(jī)構(gòu)的合作
- 初中物理杠桿、滑輪組、壓強(qiáng)、浮力綜合計(jì)算題(含答案)
- 2024年湖南生物機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案解析
- 2024年水利部長(zhǎng)江水利委員會(huì)事業(yè)單位招考聘用筆試參考題庫(kù)附帶答案詳解
評(píng)論
0/150
提交評(píng)論