應用程序漏洞檢測方法、裝置及服務器的制造方法
【技術領域】
[0001]本發明涉及互聯網技術領域,具體涉及一種應用程序漏洞檢測方法、裝置及服務器。
【背景技術】
[0002]隨著Android系統在智能設備領域市場份額的增加,Android應用的需求越來越大,越來越多的開發者加入到Android應用開發陣營,這些開發者良莠不齊,有的開發方安全意識缺乏,導致Android應用中存在各種安全漏洞。
[0003]公知的是,漏洞帶來的最大問題即是木馬,木馬通常會利用計算機程序漏洞侵入后竊取文件和用戶信息。木馬是一種具有隱藏性的、自發性的可被用來進行惡意行為的程序。歷史上對計算機木馬的定義是,試圖以有用程序的假面具欺騙用戶允許其運行的一類滲透。請注意,過去的木馬確實是這樣,但現在它們已無需偽裝自己。它們唯一的目的就是盡可能輕松地滲透并完成其惡意目標。從而利用這些漏洞泄露用戶隱私甚至給用戶造成財產損失。
[0004]因此,目前需要本領域技術人員迫切解決的一個技術問題就是:提供一種在開發方發布應用前對其應用進行漏洞檢測的機制。
【發明內容】
[0005]鑒于上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的應用程序漏洞檢測方法、相應的應用程序漏洞檢測裝置和服務器。
[0006]根據本發明的一個方面,提供了一種應用程序漏洞檢測方法,其包括:
[0007]獲取待檢測的應用程序的安裝包文件,提取所述安裝包文件的靜態特征,通過將所述安裝包文件的靜態特征與預先存儲的漏洞靜態特征進行匹配,得到靜態檢測結果;
[0008]將所述安裝包文件傳遞給終端設備,以使所述終端設備安裝所述安裝包文件對應的應用程序;
[0009]將所述終端設備實際運行所述應用程序所產生的動態特征與預先存儲的漏洞動態特征進行匹配,得到動態檢測結果;
[0010]結合所述靜態檢測結果和所述動態檢測結果,檢測所述應用程序是否具有漏洞,進而確定對所述應用程序的安全審計結果。
[0011]根據本發明的另一方面,提供了一種應用程序漏洞檢測裝置,其包括:
[0012]提取模塊,適于獲取待檢測的應用程序的安裝包文件,提取所述安裝包文件的靜態特征;
[0013]靜態掃描模塊,適于通過將所述安裝包文件的靜態特征與預先存儲的漏洞靜態特征進行匹配,得到靜態檢測結果;
[0014]傳遞模塊,適于將所述安裝包文件傳遞給終端設備,以使所述終端設備安裝所述安裝包文件對應的應用程序;
[0015]動態掃描模塊,適于將所述終端設備實際運行所述應用程序所產生的動態特征與預先存儲的漏洞動態特征進行匹配,得到動態檢測結果;
[0016]檢測模塊,適于結合所述靜態檢測結果和所述動態檢測結果,檢測所述應用程序是否具有漏洞,進而確定對所述應用程序的安全審計結果。
[0017]根據本發明的另一方面,提供了服務器,包括應用程序漏洞檢測裝置,用于對應用程序開發方所上傳的應用程序進行安全審計。
[0018]根據本發明提供的方案,通過對安裝包文件進行靜態檢測,在終端設備側對運行的應用程序進行動態檢測,來檢測安裝包文件是否存在漏洞,進而確定對應用程序的安全審計結果,在完全真實的終端設備環境下對終端設備進行動態檢測,與終端設備模擬器相比,檢測過程更加穩定,審計結果更加準確;此外,可以幫助開發方查找安裝包文件中存在的安全漏洞等問題,從而保證應用程序的整體質量,防止泄露用戶隱私或給用戶造成財產損失。
[0019]上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發明的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本發明的【具體實施方式】。
【附圖說明】
[0020]通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優選實施方式的目的,而并不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0021]圖1示出了根據本發明一個實施例的應用程序安全審計功能的智能調度系統的結構示意圖;
[0022]圖2示出了根據本發明一個實施例的應用程序漏洞檢測方法的流程圖;
[0023]圖3示出了根據本發明另一個實施例的應用程序漏洞檢測方法的流程圖;
[0024]圖4示出了根據本發明一個實施例的應用程序漏洞檢測裝置的結構示意圖;
[0025]圖5示出了根據本發明另一個實施例的應用程序漏洞檢測裝置的結構示意圖;
[0026]圖6示出了根據本發明一個實施例的服務器的結構示意圖。
【具體實施方式】
[0027]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
[0028]由于開發方在應用程序開發過程中缺乏安全意識,或者由于應用程序代碼本身存在的問題,導致應用中存在各種安全漏洞,從而給應用的使用者造成不必要的困擾或者財產損失,本發明的發明人基于此,研宄在開發方開發完成某一應用程序后,該應用程序發布前,對開發方所開發的應用程序進行漏洞檢測,進行安全審計,以防止由于應用程序存在漏洞而給使用者造成困擾或財產損失。
[0029]圖1示出了本發明所適用的具有應用程序安全審計功能的智能調度系統架構圖,如圖1所示,該系統包括:任務調度服務器101、至少一臺安全審計服務器102以及多個終端設備103 ;每臺安全審計服務器包括至少一個審計節點104,每個審計節點唯一對應于一個終端設備。該智能調度系統的主要功能是將應用程序開發方所提交的應用程序進行安全審計,確定應用程序中是否具有漏洞,并可以根據漏洞情況得到安全審計分析結果反饋給應用程序開發方,以指導應用程序開發方修補相應的漏洞。
[0030]具體地,任務調度服務器101適于:接收應用程序開發方所提交的應用程序的安裝包文件,為每個應用程序創建對應的處理任務,將處理任務分配給對應的審計節點。其中,任務調度服務器101在接收到應用程序開發方所提交的應用程序的安裝包文件后,為每個應用程序創建對應的處理任務,并權衡安全審計服務器中各個審計節點的負載,根據審計節點的負載情況,將處理任務分配給對應的審計節點,保證在部分審計節點處于空閑時優先將處理任務分配給空閑的審計節點。審計節點104適于:接收任務調度服務器分配的處理任務,將處理任務對應的應用程序的安裝包文件傳遞給與審計節點對應的終端設備,以使終端設備安裝該安裝包文件;以及,對處理任務對應的應用程序的安裝包文件進行安全審計,得到對應用程序的安全審計結果。具體地,審計節點104對處理任務對應的應用程序的安裝包文件進行靜態檢測,以及對安裝有安裝包文件的終端設備進行動態檢測,結合靜態檢測結果,和/或,動態檢測結果得到對應程序的安全審計結果。終端設備103適于:安裝審計節點傳遞的應用程序的安裝包文件,實際運行應用程序。
[0031]在圖1所示的系統中,核心的審計功能是由審計節點來完成的,下面通過幾個具體的實施例對審計節點所采用的應用程序檢測方法進行詳細介紹。
[0032]圖2示出了根據本發明一個實施例的應用程序漏洞檢測方法的流程圖。如圖2所示,該方法包括以下步驟:
[0033]步驟S200,獲取待檢測的應用程序的安裝包文件,提取安裝包文件的靜態特征,通過將安裝包文件的靜態特征與預先存儲的漏洞靜態特征進行匹配,得到靜態檢測結果。
[0034]漏洞靜態特征是在不運行代碼的方式下,通過詞法檢測、語法檢測、控制流等技術對應用程序的安裝包文件的程序代碼進行靜態檢測,其中,詞法分析主要是從左到右一個字符一個字符地讀入源程序,即對構成源程序的字符流進行掃描然后根據構詞規則識別單詞,語法分析是在詞法分析的基礎上將單詞序列組合成各類語法短語,控制流用于控制Transact-SQL語句、語句塊和存儲過程的執行流,以驗證代碼是否滿足規范性、安全性、可靠性