亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種應(yīng)用安全性分析方法及裝置與流程

文檔序號:12064138閱讀:191來源:國知局
一種應(yīng)用安全性分析方法及裝置與流程

本發(fā)明涉及軟件安全領(lǐng)域,具體涉及一種應(yīng)用安全性分析及裝置。



背景技術(shù):

隨著智能手機(jī)的普及,移動應(yīng)用也呈現(xiàn)出爆炸式地發(fā)展,隨之而來的便是移動應(yīng)用的安全問題越來越受到大眾的關(guān)注,尤其是涉及到用戶個人信息以及私人財產(chǎn)的安全問題。

因為安卓平臺的開放性和安卓應(yīng)用獲取渠道的廣泛性,使得安卓平臺的智能手機(jī)所受到的安全威脅尤為嚴(yán)重,于是針對應(yīng)用的安全性分析就變得尤為重要。

發(fā)明人在實現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),現(xiàn)有技術(shù)中的方式至少存在下述問題:現(xiàn)有技術(shù)一般是對應(yīng)用的全部代碼進(jìn)行安全性分析,分析方法一般有靜態(tài)分析、動態(tài)分析和人工分析等,這樣的分析方法工作量巨大、針對性不強、效率較低。



技術(shù)實現(xiàn)要素:

鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的應(yīng)用安全性分析方法和相應(yīng)的裝置。

根據(jù)本發(fā)明的一個方面,提供了一種應(yīng)用安全性分析方法,包括:對應(yīng)用的安裝包文件進(jìn)行反編譯;當(dāng)根據(jù)反編譯結(jié)果確定安裝包文件中包含與預(yù)設(shè)功能相匹配的功能模塊時,提取與預(yù)設(shè)功能相匹配的功能模塊;對提取的功能模塊進(jìn)行靜態(tài)分析,得到提取的功能模塊對應(yīng)的靜態(tài)分析結(jié)果;以及,對提取的功能模塊進(jìn)行動態(tài)分析,得到提取的功能模塊對應(yīng)的動態(tài)分析結(jié)果;根據(jù)靜態(tài)分析結(jié)果以及動態(tài)分析結(jié)果確定應(yīng)用是否安全。

根據(jù)本發(fā)明的另一方面,提供了一種應(yīng)用安全性分析裝置,包括:反編譯模塊,用于對應(yīng)用的安裝包文件進(jìn)行反編譯;提取模塊,用于當(dāng)根據(jù)反編譯結(jié)果確定安裝包文件中包含與預(yù)設(shè)功能相匹配的功能模塊時,提取與預(yù)設(shè)功能相匹配的功能模塊;分析模塊,用于對提取的功能模塊進(jìn)行靜態(tài)分析,得到提取的功能模塊對應(yīng)的靜態(tài)分析結(jié)果;以及,對提取的功能模塊進(jìn)行動態(tài)分析,得到提取的功能模塊對應(yīng)的動態(tài)分析結(jié)果;確定模塊,用于根據(jù)靜態(tài)分析結(jié)果以及動態(tài)分析結(jié)果確定應(yīng)用是否安全。

根據(jù)本發(fā)明的應(yīng)用安全性分析方法及裝置通過提取應(yīng)用中特定的功能模塊,并對提取出的功能模塊進(jìn)行針對性的分析,由此解決了現(xiàn)有技術(shù)中工作量巨大、針對性不強、效率較低的問題,取得了對應(yīng)用進(jìn)行有針對性的高效的安全性分析的有益效果。并且,通過針對性地分析用戶登錄、支付等密切關(guān)系到用戶隱私和財產(chǎn)的功能模塊,從而確保這些功能模塊的安全性,更好地保護(hù)用戶的隱私和財產(chǎn)。與此同時,通過該方法對應(yīng)用進(jìn)行篩選,可以有效防止惡意應(yīng)用流入市場,避免用戶遭受損失。

上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。

附圖說明

通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:

圖1是本發(fā)明實施例一提供的一種應(yīng)用安全性分析方法的流程圖;

圖2是本發(fā)明實施例二提供的一種應(yīng)用安全性分析方法的流程圖;

圖3是本發(fā)明實施例三提供的一種應(yīng)用安全性分析裝置的結(jié)構(gòu)示意圖;

圖4是本發(fā)明實施例四提供的一種應(yīng)用安全性分析裝置的結(jié)構(gòu)示意圖;

圖5是本發(fā)明提供的應(yīng)用安全性分析方法中采用機(jī)器學(xué)習(xí)算法提取功能模塊的工作流程圖;

圖6是本發(fā)明提供的應(yīng)用安全性分析方法中API序列表的一個樣例;

圖7是本發(fā)明提供的應(yīng)用安全性分析方法中靜態(tài)分析方法的工作流程圖;

圖8是本發(fā)明提供的應(yīng)用安全性分析方法中動態(tài)分析方法的工作流程圖;

圖9是本發(fā)明提供的采用機(jī)器學(xué)習(xí)算法提取功能模塊時應(yīng)用安全性分析方法的總體流程圖;

圖10是本發(fā)明提供的不采用機(jī)器學(xué)習(xí)算法提取功能模塊時應(yīng)用安全性分析方法的總體流程圖。

具體實施方式

下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。

實施例一

圖1示出了本發(fā)明實施例一提供的一種應(yīng)用安全性分析方法,該方法包括:

步驟S110:對應(yīng)用的安裝包文件進(jìn)行反編譯。

因為本發(fā)明實施例需要對應(yīng)用的功能模塊進(jìn)行安全性分析,而應(yīng)用的安裝包文件是通過代碼編譯生成的,無法通過安裝包文件直接獲取功能模塊的代碼,所以,在進(jìn)行安全性分析之前需要先將安裝包文件進(jìn)行反編譯,以便獲得該應(yīng)用的安裝包文件在編譯前的代碼,從而從該代碼中提取出需要進(jìn)行安全性分析的功能模塊代碼。

步驟S120:當(dāng)根據(jù)反編譯結(jié)果確定安裝包文件中包含與預(yù)設(shè)功能相匹配的功能模塊時,提取與預(yù)設(shè)功能相匹配的功能模塊。

為了提高分析效率并且使得分析過程和結(jié)果更具有針對性,本發(fā)明實施例僅針對應(yīng)用的特定功能模塊進(jìn)行分析,而該特定功能模塊由本領(lǐng)域技術(shù)人員預(yù)先設(shè)定,該預(yù)設(shè)功能包括但不限于:支付功能、登錄功能、以及密碼輸入功能。上述功能都是與用戶的隱私和財產(chǎn)密切相關(guān)的功能,有極大的必要進(jìn)行安全性分析。

步驟S130:對提取的功能模塊進(jìn)行安全性分析。

在本發(fā)明實施例中,為了保證安全性分析的全面性和可靠性,本方法主要通過靜態(tài)分析方法與動態(tài)分析方法相結(jié)合的方式對提取到的功能模塊進(jìn)行安全性分析。在對提取的功能模塊進(jìn)行靜態(tài)分析后,得到該功能模塊對應(yīng)的靜態(tài)分析結(jié)果;同時,對提取的功能模塊進(jìn)行動態(tài)分析,并得到該功能模塊對應(yīng)的動態(tài)分析結(jié)果。其中,靜態(tài)分析方法是指在不運行代碼的方式下,通過詞法分析、語法分析、控制流分析等技術(shù)對程序代碼進(jìn)行掃描,驗證代碼是否滿足規(guī)范性、安全性、可靠性、可維護(hù)性等指標(biāo)的一種代碼分析技術(shù);動態(tài)分析方法則是指在真實或者虛擬處理器中運行程序的條件下,進(jìn)行計算機(jī)軟件分析的方法,該方法是在程序運行時找到程序的安全錯誤,而不是反復(fù)地離線審查代碼。

步驟S140:根據(jù)步驟S130的分析結(jié)果確定應(yīng)用是否安全。

在本發(fā)明實施例中,最后綜合考慮靜態(tài)分析結(jié)果和動態(tài)分析結(jié)果,從而確定該應(yīng)用是否安全。

綜上所述,本發(fā)明實施例提供的應(yīng)用安全性分析方法通過提取應(yīng)用中特定的功能模塊,并對提取出的功能模塊進(jìn)行針對性的分析,由此解決了現(xiàn)有技術(shù)中工作量巨大、針對性不強、效率較低的問題,取得了對應(yīng)用進(jìn)行有針對性的高效的安全性分析的有益效果。并且,通過針對性地分析用戶登錄、支付等密切關(guān)系到用戶隱私和財產(chǎn)的功能模塊,從而確保這些功能模塊的安全性,更好地保護(hù)用戶的隱私和財產(chǎn)。與此同時,通過該方法對應(yīng)用進(jìn)行篩選,可以有效防止惡意應(yīng)用流入市場,避免用戶遭受損失。

實施例二

圖2示出了本發(fā)明實施例二提供的一種應(yīng)用安全性分析方法,該方法可以適用于移動應(yīng)用(例如安卓應(yīng)用或IOS應(yīng)用等)或非移動應(yīng)用(例如windows桌面應(yīng)用等)等各種類型的應(yīng)用,本發(fā)明對具體的應(yīng)用類型不做限定。該方法包括:

步驟S210:對應(yīng)用的安裝包文件進(jìn)行反編譯。

因為本發(fā)明實施例需要對應(yīng)用的功能模塊進(jìn)行安全性分析,而應(yīng)用的安裝包文件是通過代碼編譯生成的,無法通過安裝包文件直接獲取功能模塊的代碼,所以,在進(jìn)行安全性分析之前需要先將安裝包文件進(jìn)行反編譯,以便獲得該應(yīng)用的安裝包文件在編譯前的代碼,從而從該代碼中提取出需要進(jìn)行安全性分析的功能模塊代碼。

但是,市面上的應(yīng)用安裝包一般有兩種,一種是被安全廠商加固過的,另一種是沒有被加固的。未被加固的應(yīng)用安裝包可以直接進(jìn)行反編譯操作,被加固過的應(yīng)用安裝包則不能直接進(jìn)行反編譯。所以,需要先判斷應(yīng)用的安裝包文件是否加固過,當(dāng)判斷結(jié)果為是時,先采用自動脫殼機(jī)對該安裝包文件進(jìn)行脫殼處理,然后再對脫殼處理后的安裝包文件進(jìn)行反編譯;當(dāng)判斷結(jié)果為否時,則采用反編譯工具直接將安裝包文件進(jìn)行反編譯,從而保證了絕大部分應(yīng)用的安裝包文件都能被進(jìn)行功能提取與安全性分析。

步驟S220:當(dāng)根據(jù)反編譯結(jié)果確定安裝包文件中包含與預(yù)設(shè)功能相匹配的功能模塊時,提取與預(yù)設(shè)功能相匹配的功能模塊。

為了提高分析效率并且使得分析過程和結(jié)果更具有針對性,本發(fā)明實施例僅針對應(yīng)用的特定功能模塊進(jìn)行分析,而該特定功能模塊由本領(lǐng)域技術(shù)人員預(yù)先設(shè)定,該預(yù)設(shè)功能包括但不限于:支付功能、登錄功能、以及密碼輸入功能。上述功能都是與用戶的隱私和財產(chǎn)密切相關(guān)的功能,有極大的必要進(jìn)行安全性分析。

在本發(fā)明實施例中,通過機(jī)器學(xué)習(xí)算法確定并提取與預(yù)設(shè)功能相匹配的功能模塊,這樣可以比較準(zhǔn)確且快速地找出包含預(yù)設(shè)功能的應(yīng)用安裝包文件并從中提取出相匹配的功能模塊。為了方便理解,圖5示出了以應(yīng)用安裝包為安卓應(yīng)用APK為例,通過機(jī)器學(xué)習(xí)算法確定并提取與預(yù)設(shè)功能相匹配的功能模塊的工作流程圖。機(jī)器學(xué)習(xí)的流程是首先通過對訓(xùn)練樣本的學(xué)習(xí)和分析,提取出各個樣本的特征值,進(jìn)而通過提取到的特征值進(jìn)行模型訓(xùn)練,最后建立分類模塊。在完成機(jī)器學(xué)習(xí)后,當(dāng)對一個APK進(jìn)行功能模塊提取時,首先需要提取該APK的特征值,進(jìn)而將提取到的特征值提供給上述分類模塊,從而確定APK中所包含的與預(yù)設(shè)功能相匹配的功能模塊,最后生成預(yù)測結(jié)果并輸出指定功能的相關(guān)代碼。

在其他實施例中,也可以不通過機(jī)器學(xué)習(xí)算法,而是根據(jù)預(yù)設(shè)的關(guān)鍵字匹配規(guī)則和/或模式匹配規(guī)則確定并提取與預(yù)設(shè)功能相匹配的功能模塊;還可以采用其他能夠達(dá)到確定并提取特定功能模塊這一目的的方法。本發(fā)明對此不作具體限定,本領(lǐng)域技術(shù)人員可以根據(jù)實際情況靈活設(shè)定。

步驟S230:根據(jù)功能模塊包含的系統(tǒng)API序列確定需要進(jìn)行安全性分析的功能模塊。

步驟S230是一個可選步驟,因為在步驟S220中采用機(jī)器學(xué)習(xí)算法或根據(jù)預(yù)設(shè)的關(guān)鍵字匹配規(guī)則和/或模式匹配規(guī)則提取功能模塊的過程中,會出現(xiàn)不是指定的功能模塊卻被提取出來的情況。為了避免對這些功能模塊進(jìn)行毫無意義的安全性分析,本發(fā)明實施例通過對提取出的功能模塊的系統(tǒng)API進(jìn)行分析,從而過濾掉不符合預(yù)設(shè)功能的功能模塊。

具體地,首先通過靜態(tài)分析技術(shù)確定提取出的功能模塊中包含的系統(tǒng)API序列,具體地,通過分析方法之間的調(diào)用關(guān)系,來獲取功能模塊中所有可能的運行路徑,在從這些路徑中提取系統(tǒng)API序列;然后查詢預(yù)設(shè)的API序列表,如果該功能模塊中包含的系統(tǒng)API序列未包含在API序列表中,說明該功能模塊并非預(yù)設(shè)功能對應(yīng)的模塊,則丟棄該功能模塊。其中,預(yù)設(shè)的API序列表是一個映射表,用于存儲API序列與功能模塊的對應(yīng)關(guān)系。在表格中,API序列與功能模塊是一對多的關(guān)系,即存在一個API序列對應(yīng)多個功能模塊的情況。圖6就是該API序列表的一個樣例。

在步驟S230的分析過程中,首先查詢提取到的API序列是否在該映射表中,若該API序列存在于該映射表中,則查詢在表格中該API序列對應(yīng)的功能模塊,并將查詢結(jié)果與提取到的包含該API序列的功能模塊進(jìn)行比較,若該功能模塊在查詢結(jié)果范圍內(nèi),則說明提取到的功能模塊無誤,繼續(xù)用于后續(xù)的安全性分析步驟;反之,則過濾該功能模塊,避免不必要的多余分析工作量。

步驟S240:對步驟S230確定的功能模塊進(jìn)行安全性分析。

本發(fā)明實施例為了保證安全性分析的全面性和可靠性,本方法主要通過靜態(tài)分析方法與動態(tài)分析方法相結(jié)合的方式對提取到的功能模塊進(jìn)行安全性分析。

靜態(tài)分析主要是在不運行代碼的方式下,驗證代碼是否滿足規(guī)范性、安全性、可靠性、可維護(hù)性等指標(biāo)。圖7是靜態(tài)分析方法的工作流程圖,在靜態(tài)分析過程中,首先對提取出的功能模塊進(jìn)行AST(即抽象語法樹)的構(gòu)建,然后采用污點分析的技術(shù)對該功能模塊的安全性進(jìn)行分析,最后生成靜態(tài)分析報告。

動態(tài)分析則是指在真實或者虛擬處理器中運行程序的條件下,找到程序的安全錯誤,而不是反復(fù)地離線審查代碼。動態(tài)分析常用的方法有插樁分析方式、插入掛鉤方式以及動態(tài)污點分析方式。圖8是以安卓應(yīng)用APK為例的動態(tài)分析方法的工作流程圖,在動態(tài)分析過程中,首先對相應(yīng)的APK進(jìn)行插樁操作,用于識別指定的功能模塊,然后使用預(yù)先制定的沙箱對指定的功能模塊進(jìn)行安全性分析,沙箱中會采用動態(tài)污點分析技術(shù)和Hook(即插入掛鉤)技術(shù)等進(jìn)行多方面的檢測,最后生成動態(tài)分析報告。

步驟S250:根據(jù)步驟S240的分析結(jié)果確定應(yīng)用是否安全。

在本發(fā)明實施例中,最后綜合考慮靜態(tài)分析結(jié)果和動態(tài)分析結(jié)果,從而確定該應(yīng)用是否安全。

為了方便進(jìn)一步理解本發(fā)明實施例提供的安全性分析方法,圖9示出了采用機(jī)器學(xué)習(xí)算法提取功能模塊時本安全性分析方法的總體工作流程,圖10示出了不采用機(jī)器學(xué)習(xí)算法提取功能模塊時本安全性分析方法的總體工作流程。在上述兩幅流程圖中,各個步驟的工作流程與上述方法實施例的描述一致,在此不再贅述。

綜上所述,本發(fā)明實施例提供的應(yīng)用安全性分析方法通過提取應(yīng)用中特定的功能模塊,并對提取出的功能模塊進(jìn)行針對性的分析,由此解決了現(xiàn)有技術(shù)中工作量巨大、針對性不強、效率較低的問題,取得了對應(yīng)用進(jìn)行有針對性的高效的安全性分析的有益效果。并且,通過針對性地分析用戶登錄、支付等密切關(guān)系到用戶隱私和財產(chǎn)的功能模塊,從而確保這些功能模塊的安全性,更好地保護(hù)用戶的隱私和財產(chǎn)。與此同時,通過該方法對應(yīng)用進(jìn)行篩選,可以有效防止惡意應(yīng)用流入市場,避免用戶遭受損失。

實施例三

圖3示出了本發(fā)明實施例三提供的一種應(yīng)用安全性分析裝置,該裝置包括:反編譯模塊310、提取模塊320、分析模塊330和確定模塊340。

反編譯模塊310,用于對應(yīng)用的安裝包文件進(jìn)行反編譯。

因為本發(fā)明實施例需要對應(yīng)用的功能模塊進(jìn)行安全性分析,而應(yīng)用的安裝包文件是通過代碼編譯生成的,無法通過安裝包文件直接獲取功能模塊的代碼,所以,在進(jìn)行安全性分析之前,反編譯模塊310需要先將安裝包文件進(jìn)行反編譯,以便獲得該應(yīng)用的安裝包文件在編譯前的代碼,從而從該代碼中提取出需要進(jìn)行安全性分析的功能模塊代碼。

提取模塊320,用于當(dāng)根據(jù)反編譯結(jié)果確定安裝包文件中包含與預(yù)設(shè)功能相匹配的功能模塊時,提取與預(yù)設(shè)功能相匹配的功能模塊。

為了提高分析效率并且使得分析過程和結(jié)果更具有針對性,本發(fā)明實施例僅針對應(yīng)用的特定功能模塊進(jìn)行分析,因此,提取模塊320需要從反編譯結(jié)果中提取出特定功能模塊,而這些特定功能由本領(lǐng)域技術(shù)人員預(yù)先設(shè)定,該預(yù)設(shè)功能包括但不限于:支付功能、登錄功能、以及密碼輸入功能。上述功能都是與用戶的隱私和財產(chǎn)密切相關(guān)的功能,有極大的必要進(jìn)行安全性分析。

分析模塊330,用于對提取的功能模塊進(jìn)行安全性分析。

在本發(fā)明實施例中,為了保證安全性分析的全面性和可靠性,分析模塊330主要通過靜態(tài)分析方法與動態(tài)分析方法相結(jié)合的方式對提取到的功能模塊進(jìn)行安全性分析。具體地,對提取的功能模塊進(jìn)行靜態(tài)分析,得到該功能模塊對應(yīng)的靜態(tài)分析結(jié)果;同時,對提取的功能模塊進(jìn)行動態(tài)分析,并得到該功能模塊對應(yīng)的動態(tài)分析結(jié)果。其中,靜態(tài)分析方法是指是指在不運行代碼的方式下,通過詞法分析、語法分析、控制流分析等技術(shù)對程序代碼進(jìn)行掃描,驗證代碼是否滿足規(guī)范性、安全性、可靠性、可維護(hù)性等指標(biāo)的一種代碼分析技術(shù);動態(tài)分析方法則是指在真實或者虛擬處理器中運行程序的條件下,進(jìn)行計算機(jī)軟件分析的方法,該方法是在程序運行時找到程序的安全錯誤,而不是反復(fù)地離線審查代碼。

確定模塊340,用于根據(jù)分析結(jié)果確定應(yīng)用是否安全。

在本發(fā)明實施例中,確定模塊340需要綜合考慮靜態(tài)分析結(jié)果和動態(tài)分析結(jié)果,從而確定該應(yīng)用是否安全。

上述各個模塊的具體工作原理可參照方法實施例中相應(yīng)步驟的描述,此處不再贅述。

綜上所述,本發(fā)明實施例提供的應(yīng)用安全性分析裝置通過提取應(yīng)用中特定的功能模塊,并對提取出的功能模塊進(jìn)行針對性的分析,由此解決了現(xiàn)有技術(shù)中工作量巨大、針對性不強、效率較低的問題,取得了對應(yīng)用進(jìn)行有針對性的高效的安全性分析的有益效果。并且,通過針對性地分析用戶登錄、支付等密切關(guān)系到用戶隱私和財產(chǎn)的功能模塊,從而確保這些功能模塊的安全性,更好地保護(hù)用戶的隱私和財產(chǎn)。與此同時,通過該方法對應(yīng)用進(jìn)行篩選,可以有效防止惡意應(yīng)用流入市場,避免用戶遭受損失。

實施例四

圖4示出了本發(fā)明實施例四提供的一種應(yīng)用安全性分析裝置,該裝置可以適用于移動應(yīng)用(例如安卓應(yīng)用或IOS應(yīng)用等)或非移動應(yīng)用(例如windows桌面應(yīng)用等),該裝置包括:反編譯模塊410、提取模塊420、API序列模塊430、分析模塊440和確定模塊450,其中,分析模塊440進(jìn)一步包括:靜態(tài)分析子模塊441和動態(tài)分析子模塊442。

反編譯模塊410,用于對應(yīng)用的安裝包文件進(jìn)行反編譯。

因為市面上的應(yīng)用安裝包一般有兩種,一種是被安全廠商加固過的,另一種是沒有被加固的。未被加固的應(yīng)用安裝包可以直接進(jìn)行反編譯操作,被加固過的應(yīng)用安裝包則不能直接進(jìn)行反編譯。所以,反編譯模塊410需要先判斷應(yīng)用的安裝包文件是否加固過,當(dāng)判斷結(jié)果為是時,先采用自動脫殼機(jī)對該安裝包文件進(jìn)行脫殼處理,然后再對脫殼處理后的安裝包文件進(jìn)行反編譯;當(dāng)判斷結(jié)果為否時,則采用反編譯工具直接將安裝包文件進(jìn)行反編譯,從而保證了絕大部分應(yīng)用的安裝包文件都能被進(jìn)行功能提取與安全性分析。

提取模塊420,用于當(dāng)根據(jù)反編譯結(jié)果確定安裝包文件中包含與預(yù)設(shè)功能相匹配的功能模塊時,提取與預(yù)設(shè)功能相匹配的功能模塊。

為了提高分析效率并且使得分析過程和結(jié)果更具有針對性,本發(fā)明實施例僅針對應(yīng)用的特定功能模塊進(jìn)行分析,因此,提取模塊420需要從反編譯模塊410生成的結(jié)果中提取特定功能對應(yīng)的功能模塊,而這些特定功能由本領(lǐng)域技術(shù)人員預(yù)先設(shè)定,該預(yù)設(shè)功能包括但不限于:支付功能、登錄功能、以及密碼輸入功能。上述功能都是與用戶的隱私和財產(chǎn)密切相關(guān)的功能,有極大的必要進(jìn)行安全性分析。

在本發(fā)明實施例中,提取模塊420通過機(jī)器學(xué)習(xí)算法確定并提取與預(yù)設(shè)功能相匹配的功能模塊,這樣可以比較準(zhǔn)確且快速地找出包含預(yù)設(shè)功能的應(yīng)用安裝包文件并從中提取出相匹配的功能模塊。

在其他實施例中,提取模塊420也可以不通過機(jī)器學(xué)習(xí)算法,而是根據(jù)預(yù)設(shè)的關(guān)鍵字匹配規(guī)則和/或模式匹配規(guī)則確定并提取與預(yù)設(shè)功能相匹配的功能模塊;還可以采用其他能夠達(dá)到確定并提取特定功能模塊這一目的的方法。本發(fā)明對此不作具體限定,本領(lǐng)域技術(shù)人員可以根據(jù)實際情況靈活設(shè)定。

可選的,該裝置進(jìn)一步包括API序列模塊430,用于根據(jù)功能模塊包含的系統(tǒng)API序列確定需要進(jìn)行安全性分析的功能模塊。

因為當(dāng)提取模塊420通過機(jī)器學(xué)習(xí)算法或根據(jù)預(yù)設(shè)的關(guān)鍵字匹配規(guī)則和/或模式匹配規(guī)則提取功能模塊時,會出現(xiàn)不是指定的功能模塊卻被提取出來的情況。為了避免對這些功能模塊進(jìn)行毫無意義的安全性分析,API序列模塊430通過對提取出的功能模塊的系統(tǒng)API進(jìn)行分析,從而過濾掉不符合預(yù)設(shè)功能的功能模塊。具體地,API序列模塊430首先確定提取出的功能模塊中包含的系統(tǒng)API序列,具體地,通過分析方法之間的調(diào)用關(guān)系,來獲取功能模塊中所有可能的運行路徑,在從這些路徑中提取系統(tǒng)API序列;然后查詢預(yù)設(shè)的API序列表,如果該功能模塊中包含的系統(tǒng)API序列未包含在API序列表中,說明該功能模塊并非預(yù)設(shè)功能對應(yīng)的模塊,則丟棄該功能模塊。其中,預(yù)設(shè)的API序列表是一個映射表,用于存儲API序列與功能模塊的對應(yīng)關(guān)系。在表格中,API序列與功能模塊是一對多的關(guān)系,即存在一個API序列對應(yīng)多個功能模塊的情況。圖6就是該API序列表的一個樣例。

分析模塊440,用于對API序列模塊430確定的功能模塊進(jìn)行安全性分析。

本發(fā)明實施例為了保證安全性分析的全面性和可靠性,本裝置通過靜態(tài)分析方法與動態(tài)分析方法相結(jié)合的方式對提取到的功能模塊進(jìn)行安全性分析,因此,分析模塊440進(jìn)一步包括:靜態(tài)分析子模塊441和動態(tài)分析子模塊442。

其中,靜態(tài)分析子模塊441,主要是在不運行代碼的方式下,驗證代碼是否滿足規(guī)范性、安全性、可靠性、可維護(hù)性等指標(biāo)。該模塊對提取的功能模塊進(jìn)行靜態(tài)分析,進(jìn)而生成與提取的功能模塊對應(yīng)的靜態(tài)分析結(jié)果。動態(tài)分析子模塊442,則是指在真實或者虛擬處理器中運行程序的條件下,找到程序的安全錯誤,而不是反復(fù)地離線審查代碼。動態(tài)分析常用的方法有插樁分析方式、插入掛鉤方式以及動態(tài)污點分析方式。該模塊對提取的功能模塊進(jìn)行動態(tài)分析,從而生成與提取的功能模塊對應(yīng)的動態(tài)分析結(jié)果。靜態(tài)分析子模塊441和動態(tài)分析子模塊442的具體工作流程與上述方法示例中的相應(yīng)步驟的描述一致,在此不再贅述。

確定模塊450,用于根據(jù)分析模塊440的分析結(jié)果確定應(yīng)用是否安全。

在本發(fā)明實施例中,確定模塊450最后將綜合考慮分析模塊440生成的靜態(tài)分析結(jié)果和動態(tài)分析結(jié)果,從而確定該應(yīng)用是否安全。

上述各個模塊的具體工作原理可參照方法實施例中相應(yīng)步驟的描述,此處不再贅述。

綜上所述,本發(fā)明實施例提供的安全性分析裝置通過提取應(yīng)用中特定的功能模塊,并對提取出的功能模塊進(jìn)行針對性的分析,由此解決了現(xiàn)有技術(shù)中工作量巨大、針對性不強、效率較低的問題,取得了對應(yīng)用進(jìn)行有針對性的高效的安全性分析的有益效果。并且,通過針對性地分析用戶登錄、支付等密切關(guān)系到用戶隱私和財產(chǎn)的功能模塊,從而確保這些功能模塊的安全性,更好地保護(hù)用戶的隱私和財產(chǎn)。與此同時,通過該方法對應(yīng)用進(jìn)行篩選,可以有效防止惡意應(yīng)用流入市場,避免用戶遭受損失。

至此,本領(lǐng)域技術(shù)人員應(yīng)認(rèn)識到,雖然本文已詳盡示出和描述了本發(fā)明的多個示例性實施例,但是,在不脫離本發(fā)明精神和范圍的情況下,仍可根據(jù)發(fā)明公開的內(nèi)容直接確定或推導(dǎo)出符合本發(fā)明原理的許多其他變型或修改。因此,本發(fā)明的范圍應(yīng)該被理解和認(rèn)定為覆蓋了所有這些其他變型或修改。

本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明的實施方式可以實現(xiàn)為一種系統(tǒng)、裝置、設(shè)備、方法或計算機(jī)程序產(chǎn)品。此外,本發(fā)明也不針對任何特定編程語言,應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)本發(fā)明描述的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。

需要注意的是,盡管在上面的說明中詳細(xì)描述了應(yīng)用安全性分析裝置的若干模塊,但是這種劃分僅僅是示例性的,并非是強制性的。本領(lǐng)域的技術(shù)人員可以理解,實際上,可以對實施例中的模塊進(jìn)行自適應(yīng)性地改變,將實施例中的多個模塊組合成一個模塊,也可將一個模塊劃分成多個模塊。

此外,盡管在附圖中以特定順序描述了本發(fā)明實施操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結(jié)果??梢允÷阅承┎襟E,將多個步驟合并為一個步驟執(zhí)行,或者將一個步驟分成多個步驟執(zhí)行。

綜上所述,應(yīng)用本發(fā)明所述的應(yīng)用安全性分析方法及裝置,通過提取應(yīng)用中特定的功能模塊,并對提取出的功能模塊進(jìn)行針對性的分析,由此解決了現(xiàn)有技術(shù)中工作量巨大、針對性不強、效率較低的問題,取得了對應(yīng)用進(jìn)行有針對性的高效的安全性分析的有益效果。并且,通過針對性地分析用戶登錄、支付等密切關(guān)系到用戶隱私和財產(chǎn)的功能模塊,從而確保這些功能模塊的安全性,更好地保護(hù)用戶的隱私和財產(chǎn)。與此同時,通過該方法對應(yīng)用進(jìn)行篩選,可以有效防止惡意應(yīng)用流入市場,避免用戶遭受損失。

以上對本發(fā)明的方法和具體實施方法進(jìn)行了詳細(xì)的介紹,并給出了相應(yīng)的實施例。當(dāng)然,除上述實施例外,本發(fā)明還可以有其它實施方式,凡采用等同替換或等效變換形成的技術(shù)方案,均落在本發(fā)明所要保護(hù)的范圍之內(nèi)。

本發(fā)明公開了:A1、一種應(yīng)用安全性分析方法,其中,包括:

對應(yīng)用的安裝包文件進(jìn)行反編譯;

當(dāng)根據(jù)反編譯結(jié)果確定所述安裝包文件中包含與預(yù)設(shè)功能相匹配的功能模塊時,提取所述與預(yù)設(shè)功能相匹配的功能模塊;

對提取的功能模塊進(jìn)行靜態(tài)分析,得到所述提取的功能模塊對應(yīng)的靜態(tài)分析結(jié)果;以及,對所述提取的功能模塊進(jìn)行動態(tài)分析,得到所述提取的功能模塊對應(yīng)的動態(tài)分析結(jié)果;

根據(jù)所述靜態(tài)分析結(jié)果以及所述動態(tài)分析結(jié)果確定所述應(yīng)用是否安全。

A2、根據(jù)A1所述的方法,其中,所述當(dāng)根據(jù)反編譯結(jié)果確定所述安裝包文件中包含與預(yù)設(shè)功能相匹配的功能模塊時,提取所述與預(yù)設(shè)功能相匹配的功能模塊的步驟具體包括:通過機(jī)器學(xué)習(xí)算法確定并提取所述與預(yù)設(shè)功能相匹配的功能模塊。

A3、根據(jù)A1所述的方法,其中,所述當(dāng)根據(jù)反編譯結(jié)果確定所述安裝包文件中包含與預(yù)設(shè)功能相匹配的功能模塊時,提取所述與預(yù)設(shè)功能相匹配的功能模塊的步驟具體包括:根據(jù)預(yù)設(shè)的關(guān)鍵字匹配規(guī)則和/或模式匹配規(guī)則確定并提取所述與預(yù)設(shè)功能相匹配的功能模塊。

A4、根據(jù)A2或A3所述的方法,其中,所述確定并提取所述與預(yù)設(shè)功能相匹配的功能模塊的步驟之后,進(jìn)一步包括:

確定提取出的功能模塊中包含的系統(tǒng)API序列;

查詢預(yù)設(shè)的API序列表,若所述功能模塊中包含的系統(tǒng)API序列未包含在所述API序列表中,則丟棄該功能模塊;

其中,所述API序列表中存儲了與所述預(yù)設(shè)功能相對應(yīng)的系統(tǒng)API序列。

A5、根據(jù)A1-A4任一所述的方法,其中,所述對提取的功能模塊進(jìn)行靜態(tài)分析的步驟具體包括:

構(gòu)建與提取的功能模塊對應(yīng)的抽象語法樹,根據(jù)所述抽象語法樹執(zhí)行靜態(tài)污點分析。

A6、根據(jù)A1-A5任一所述的方法,其中,所述對提取的功能模塊進(jìn)行動態(tài)分析具體包括以下方式中的至少一種:插樁分析方式、插入掛鉤方式以及動態(tài)污點分析方式。

A7、根據(jù)A1-A6任一所述的方法,其中,所述對應(yīng)用的安裝包文件進(jìn)行反編譯的步驟具體包括:

判斷所述應(yīng)用的安裝包文件是否加固,當(dāng)判斷結(jié)果為是時,對所述安裝包文件進(jìn)行脫殼處理,并對脫殼處理后的安裝包文件進(jìn)行反編譯。

A8、根據(jù)A1-A7任一所述的方法,其中,所述預(yù)設(shè)功能包括以下中的至少一個:支付功能、登錄功能、以及密碼輸入功能。

A9、根據(jù)A1-A8任一所述的方法,其中,所述應(yīng)用包括:移動應(yīng)用,或非移動應(yīng)用。

本發(fā)明還公開了:B10、一種應(yīng)用安全性分析裝置,其中,包括:

反編譯模塊,用于對應(yīng)用的安裝包文件進(jìn)行反編譯;

提取模塊,用于當(dāng)根據(jù)反編譯結(jié)果確定所述安裝包文件中包含與預(yù)設(shè)功能相匹配的功能模塊時,提取所述與預(yù)設(shè)功能相匹配的功能模塊;

分析模塊,用于對提取的功能模塊進(jìn)行靜態(tài)分析,得到所述提取的功能模塊對應(yīng)的靜態(tài)分析結(jié)果;以及,對所述提取的功能模塊進(jìn)行動態(tài)分析,得到所述提取的功能模塊對應(yīng)的動態(tài)分析結(jié)果;

確定模塊,用于根據(jù)所述靜態(tài)分析結(jié)果以及所述動態(tài)分析結(jié)果確定所述應(yīng)用是否安全。

B11、根據(jù)B10所述的裝置,其中,所述提取模塊具體用于:通過機(jī)器學(xué)習(xí)算法確定并提取所述與預(yù)設(shè)功能相匹配的功能模塊。

B12、根據(jù)B10所述的裝置,其中,所述提取模塊具體用于:根據(jù)預(yù)設(shè)的關(guān)鍵字匹配規(guī)則和/或模式匹配規(guī)則確定并提取所述與預(yù)設(shè)功能相匹配的功能模塊。

B13、根據(jù)B11或B12所述的裝置,其中,所述裝置進(jìn)一步包括:

API序列模塊,用于確定提取出的功能模塊中包含的系統(tǒng)API序列;查詢預(yù)設(shè)的API序列表,若所述功能模塊中包含的系統(tǒng)API序列未包含在所述API序列表中,則丟棄該功能模塊;

其中,所述API序列表中存儲了與所述預(yù)設(shè)功能相對應(yīng)的系統(tǒng)API序列。

B14、根據(jù)B10-B13任一所述的裝置,其中,所述分析模塊進(jìn)一步包括:靜態(tài)分析子模塊,具體用于構(gòu)建與提取的功能模塊對應(yīng)的抽象語法樹,根據(jù)所述抽象語法樹執(zhí)行靜態(tài)污點分析。

B15、根據(jù)B10-B14任一所述的裝置,其中,所述分析模塊進(jìn)一步包括:動態(tài)分析子模塊,具體采用以下方式中的至少一種方式進(jìn)行動態(tài)分析:插樁分析方式、插入掛鉤方式以及動態(tài)污點分析方式。

B16、根據(jù)B10-B15任一所述的裝置,其中,所述反編譯模塊具體用于判斷所述應(yīng)用的安裝包文件是否加固,當(dāng)判斷結(jié)果為是時,對所述安裝包文件進(jìn)行脫殼處理,并對脫殼處理后的安裝包文件進(jìn)行反編譯。

B17、根據(jù)B10-B16任一所述的裝置,其中,所述預(yù)設(shè)功能包括以下中的至少一個:支付功能、登錄功能、以及密碼輸入功能。

B18、根據(jù)B10-B17任一所述的裝置,其中,所述應(yīng)用包括:移動應(yīng)用,或非移動應(yīng)用。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1