調(diào)用程序不存在劫持漏洞。
[0204]可選的,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:獲取與調(diào)用風險列表中每個調(diào)用程序中的組件名稱和組件特征;使用組件名稱和組件特征構(gòu)造調(diào)用程序?qū)?yīng)的廣播,生成測試廣播。
[0205]可選的,存儲介質(zhì)還被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:讀取應(yīng)用程序的安裝文件;解壓縮應(yīng)用程序的安裝文件,得到類文件集;使用逆向技術(shù)對類文件集進行反編譯,生成應(yīng)用程序的源代碼文件。
[0206]可選地,在本實施例中,上述存儲介質(zhì)可以包括但不限于:U盤、只讀存儲器(R0M,Read-Only Memory)、隨機存取存儲器(RAM, Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0207]可選地,本實施例中的具體示例可以參考上述實施例1和實施例2中所描述的示例,本實施例在此不再贅述。
[0208]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0209]上述實施例中的集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在上述計算機可讀取的存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在存儲介質(zhì)中,包括若干指令用以使得一臺或多臺計算機設(shè)備(可為個人計算機、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。
[0210]在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
[0211]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的客戶端,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
[0212]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0213]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
[0214]以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
【主權(quán)項】
1.一種組件調(diào)用漏洞的檢測方法,其特征在于,包括: 獲取應(yīng)用程序的源代碼文件和組件調(diào)用漏洞規(guī)則文件; 按照所述組件調(diào)用漏洞規(guī)則文件從所述應(yīng)用程序的源代碼文件中提取具有劫持風險的調(diào)用程序,構(gòu)成調(diào)用風險列表,其中,所述組件調(diào)用漏洞規(guī)則文件用于保存確定所述調(diào)用程序具有劫持風險的特征數(shù)據(jù); 基于所述調(diào)用風險列表自動構(gòu)造調(diào)用檢測模塊; 基于所述調(diào)用檢測模塊檢測所述調(diào)用風險列表中的調(diào)用程序,獲取所述調(diào)用程序的安全檢測結(jié)果。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述特征數(shù)據(jù)包括任意一個或多個特征:所述調(diào)用程序的隱式調(diào)用特征、廣播類、發(fā)送廣播標志、以及所述調(diào)用程序的顯式調(diào)用特征,其中,按照所述組件調(diào)用漏洞規(guī)則文件從所述應(yīng)用程序的源代碼文件中提取具有劫持風險的調(diào)用程序,構(gòu)成調(diào)用風險列表的步驟包括如下任意一種或多種實現(xiàn)方式: 方式一:從所述應(yīng)用程序的源代碼文件中提取包含有所述隱式調(diào)用特征的源代碼,得到所述具有劫持風險的調(diào)用程序; 方式二:從所述應(yīng)用程序的源代碼文件中提取包含有廣播類、發(fā)送廣播標志和所述調(diào)用程序的隱式調(diào)用特征的源代碼,,得到所述具有劫持風險的調(diào)用程序; 方式三:從所述應(yīng)用程序的源代碼文件中提取不包含有所述顯式調(diào)用特征的源代碼,得到所述具有劫持風險的調(diào)用程序。3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,基于所述調(diào)用風險列表自動構(gòu)造調(diào)用檢測模塊,并基于所述調(diào)用檢測模塊檢測所述調(diào)用風險列表中的調(diào)用程序,獲取所述調(diào)用程序的安全檢測結(jié)果的步驟包括: 通過所述調(diào)用檢測模塊模擬所述調(diào)用風險列表中的調(diào)用程序,得到所述調(diào)用程序?qū)?yīng)的調(diào)用測試程序; 將所述調(diào)用測試程序傳入所述應(yīng)用程序; 根據(jù)所述調(diào)用測試程序發(fā)送調(diào)用請求至所述應(yīng)用程序, 其中,如果所述應(yīng)用程序成功返回調(diào)用結(jié)果或者返回的所述調(diào)用結(jié)果不為空,則所述安全檢測結(jié)果為所述調(diào)用程序存在劫持漏洞;如果所述應(yīng)用程序未返回所述調(diào)用結(jié)果或者返回的所述調(diào)用結(jié)果為空,則所述安全檢測結(jié)果為所述調(diào)用程序不存在劫持漏洞。4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,基于所述調(diào)用風險列表自動構(gòu)造調(diào)用檢測模塊,并基于所述調(diào)用檢測模塊檢測所述調(diào)用風險列表中的調(diào)用程序,獲取所述調(diào)用程序的安全檢測結(jié)果的步驟包括: 通過所述調(diào)用檢測模塊提取所述調(diào)用風險列表中的調(diào)用程序的廣播名稱; 根據(jù)所述廣播名稱在所述應(yīng)用程序中注冊對應(yīng)的廣播接收器; 模擬所述調(diào)用風險列表中的調(diào)用程序,得到所述調(diào)用程序?qū)?yīng)的測試廣播; 發(fā)送包含了調(diào)用測試程序的所述測試廣播至所述應(yīng)用程序中對應(yīng)的所述廣播接收器; 提取所述測試廣播中包含的所述調(diào)用測試程序返回的調(diào)用結(jié)果; 其中,如果所述廣播接收器成功返回所述調(diào)用結(jié)果或者返回的所述調(diào)用結(jié)果不為空,則所述安全檢測結(jié)果為所述調(diào)用程序存在劫持漏洞;如果所述廣播接收器未返回所述調(diào)用結(jié)果或者返回的所述調(diào)用結(jié)果為空,則所述安全檢測結(jié)果為所述調(diào)用程序不存在劫持漏洞。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,模擬所述調(diào)用風險列表中的調(diào)用程序,得到所述調(diào)用程序?qū)?yīng)的測試廣播的步驟包括: 獲取與所述調(diào)用風險列表中每個調(diào)用程序中的組件名稱和組件特征; 使用所述組件名稱和所述組件特征構(gòu)造所述調(diào)用程序?qū)?yīng)的廣播,生成所述測試廣播。6.根據(jù)權(quán)利要求1所述的方法,其特征在于,獲取所述應(yīng)用程序的源代碼文件的步驟包括: 讀取所述應(yīng)用程序的安裝文件; 解壓縮所述應(yīng)用程序的安裝文件,得到類文件集; 使用逆向技術(shù)對所述類文件集進行反編譯,生成所述應(yīng)用程序的源代碼文件。7.—種組件調(diào)用漏洞的檢測裝置,其特征在于,包括: 獲取模塊,用于獲取應(yīng)用程序的源代碼文件和組件調(diào)用漏洞規(guī)則文件; 構(gòu)建模塊,用于按照所述組件調(diào)用漏洞規(guī)則文件從所述應(yīng)用程序的源代碼文件中提取具有劫持風險的調(diào)用程序,構(gòu)成調(diào)用風險列表,其中,所述組件調(diào)用漏洞規(guī)則文件用于保存確定所述調(diào)用程序具有劫持風險的特征數(shù)據(jù); 檢測模塊,用于基于所述調(diào)用風險列表自動構(gòu)造調(diào)用檢測模塊,并基于所述調(diào)用檢測模塊檢測所述調(diào)用風險列表中的調(diào)用程序,獲取所述調(diào)用程序的安全檢測結(jié)果。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述特征數(shù)據(jù)包括任意一個或多個特征:所述調(diào)用程序的隱式調(diào)用特征、廣播類、發(fā)送廣播標志、以及所述調(diào)用程序的顯式調(diào)用特征,其中,所述構(gòu)建模塊包括如下任意一種或多種提取模塊: 第一提取模塊,用于從所述應(yīng)用程序的源代碼文件中提取包含有所述隱式調(diào)用特征的源代碼,得到所述具有劫持風險的調(diào)用程序; 第二提取模塊,用于從所述應(yīng)用程序的源代碼文件中提取包含有廣播類、發(fā)送廣播標志和所述調(diào)用程序的隱式調(diào)用特征的源代碼,,得到所述具有劫持風險的調(diào)用程序; 第三提取模塊,用于從所述應(yīng)用程序的源代碼文件中提取不包含有所述顯式調(diào)用特征的源代碼,得到所述具有劫持風險的調(diào)用程序。9.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述檢測模塊包括: 第一模擬模塊,用于通過所述調(diào)用檢測模塊模擬所述調(diào)用風險列表中的調(diào)用程序,得到所述調(diào)用程序?qū)?yīng)的調(diào)用測試程序; 注入模塊,用于將所述調(diào)用測試程序傳入所述應(yīng)用程序; 第一發(fā)送模塊,用于根據(jù)所述調(diào)用測試程序發(fā)送調(diào)用請求至所述應(yīng)用程序; 第一確定模塊,用于如果所述應(yīng)用程序成功返回調(diào)用結(jié)果或者返回的所述調(diào)用結(jié)果不為空,則所述安全檢測結(jié)果為所述調(diào)用程序存在劫持漏洞; 第二確定模塊,用于如果所述應(yīng)用程序未返回所述調(diào)用結(jié)果或者返回的所述調(diào)用結(jié)果為空,則所述安全檢測結(jié)果為所述調(diào)用程序不存在劫持漏洞。10.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述檢測模塊包括: 子提取模塊,用于通過所述調(diào)用檢測模塊提取所述調(diào)用風險列表中的調(diào)用程序的廣播名稱; 注冊模塊,用于根據(jù)所述廣播名稱在所述應(yīng)用程序中注冊對應(yīng)的廣播接收器; 第二模擬模塊,用于模擬所述調(diào)用風險列表中的調(diào)用程序,得到所述調(diào)用程序?qū)?yīng)的測試廣播; 第二發(fā)送模塊,用于發(fā)送包含了調(diào)用測試程序的所述測試廣播至所述應(yīng)用程序中對應(yīng)的所述廣播接收器; 第一子獲取模塊,用于獲取所述測試廣播中包含的所述調(diào)用測試程序返回的調(diào)用結(jié)果; 第三確定模塊,用于如果所述廣播接收器成功返回所述調(diào)用結(jié)果或者返回的所述調(diào)用結(jié)果不為空,則所述安全檢測結(jié)果為所述調(diào)用程序存在劫持漏洞; 第四確定模塊,用于如果所述廣播接收器未返回所述調(diào)用結(jié)果或者返回的所述調(diào)用結(jié)果為空,則所述安全檢測結(jié)果為所述調(diào)用程序不存在劫持漏洞。11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述第二模擬模塊包括: 第二子獲取模塊,用于獲取與所述調(diào)用風險列表中每個調(diào)用程序中的組件名稱和組件特征; 生成模塊,用于使用所述組件名稱和所述組件特征構(gòu)造所述調(diào)用程序?qū)?yīng)的廣播,生成所述測試廣播。12.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述獲取模塊包括: 讀取模塊,用于讀取所述應(yīng)用程序的安裝文件; 解壓縮模塊,用于解壓縮所述應(yīng)用程序的安裝文件,得到類文件集; 反編譯模塊,用于使用逆向技術(shù)對所述類文件集進行反編譯,生成所述應(yīng)用程序的源代碼文件。
【專利摘要】本發(fā)明公開了一種組件調(diào)用漏洞的檢測方法及裝置。其中,該方法包括:獲取應(yīng)用程序的源代碼文件和組件調(diào)用漏洞規(guī)則文件;按照組件調(diào)用漏洞規(guī)則文件從應(yīng)用程序的源代碼文件中提取具有劫持風險的調(diào)用程序,構(gòu)成調(diào)用風險列表,其中,組件調(diào)用漏洞規(guī)則文件用于保存確定調(diào)用程序具有劫持風險的特征數(shù)據(jù);基于調(diào)用風險列表自動構(gòu)造調(diào)用檢測模塊;基于調(diào)用檢測模塊檢測調(diào)用風險列表中的調(diào)用程序,獲取調(diào)用程序的安全檢測結(jié)果。本發(fā)明解決了現(xiàn)有技術(shù)無法確定系統(tǒng)的組件調(diào)用程序存在劫持風險的技術(shù)問題。
【IPC分類】G06F21/57
【公開號】CN105303112
【申請?zhí)枴緾N201410290260
【發(fā)明人】李 杰
【申請人】騰訊科技(深圳)有限公司
【公開日】2016年2月3日
【申請日】2014年6月24日