The present application provides a method for detecting a program vulnerability, a terminal and a server. The method comprises the following steps: according to preset vulnerability detection program rules, to determine the initial conditions corresponding to the loopholes in rules and end conditions; according to the initial statement of initial conditions corresponding to the detection rules determine the vulnerability to test procedures; to determine the location of the initial detection of sentence, the initial statement including position detection the initial detection statement corresponding to the register name; to the initial detection statement as a starting point, the order tracking program to be detected; tracking stop condition is detected, the data flow path of recording the initial detection statement of the position and the statement to the end of the initial detection conditions, and end detection. According to the technical proposal of the invention, the detection efficiency of the program loophole is improved.
【技術實現步驟摘要】
一種程序漏洞的檢測方法、終端及服務器
本專利技術涉及信息安全領域,具體而言,涉及一種程序漏洞的檢測方法、終端及服務器。
技術介紹
隨著智能終端的迅猛發展,智能終端上各種APP程序不斷增多,信息安全的隱患也不斷增大,因此,在每一款APP程序正式發布之前,都需要對程序的漏洞進行檢測。現有的檢測方法通常為確定漏洞的起點函數和終點函數,在程序中尋找該起點函數,然后根據起點函數進行逆向查找,找到對應的終點函數,再進行分析是否為漏洞;若起點函數為通用函數,則會導致逆向查找的工作量大大增加,且需要技術人員對查找出的每一條路徑都進行分析,費時費力。因此,通過逆向查找的方法檢測程序中的漏洞時,若逆向查找的起點函數為通用函數時,容易造成檢測效率低的問題。
技術實現思路
本專利技術的主要目的在于提供一種程序漏洞的檢測方法、終端及服務器,以解決檢測智能終端APP程序中的漏洞檢測效率低的問題。為了實現上述目的,根據本專利技術的一個方面,提供了一種程序漏洞的檢測方法,該方法包括:根據待檢測程序預先設定的漏洞規則,確定所述漏洞規則對應的初始條件和結束條件;根據所述漏洞規則對應的初始條件確定所述待檢測程序的初始檢測語句;確定所述初始檢測語句的位置,其中初始檢測語句的位置包括所述初始檢測語句對應的寄存器名稱;以所述初始檢測語句為起點,順序追蹤檢測待檢測程序;追蹤檢測到結束條件,記錄所述初始檢測語句的位置以及所述初始檢測語句至所述結束條件的數據流動路徑,并結束檢測。進一步地,以所述初始檢測語句為起點,順序追蹤檢測待檢測程序,具體包括:以所述初始檢測語句為起點,順序追蹤檢測待檢測程序,若追蹤檢測過 ...
【技術保護點】
一種程序漏洞的檢測方法,其特征在于,包括:根據待檢測程序預先設定的漏洞規則,確定所述漏洞規則對應的初始條件和結束條件;根據所述漏洞規則對應的初始條件確定所述待檢測程序的初始檢測語句;確定所述初始檢測語句的位置,其中初始檢測語句的位置包括所述初始檢測語句對應的寄存器名稱;以所述初始檢測語句為起點,順序追蹤檢測待檢測程序;追蹤檢測到結束條件,記錄所述初始檢測語句的位置以及所述初始檢測語句至所述結束條件的數據流動路徑,并結束檢測。
【技術特征摘要】
1.一種程序漏洞的檢測方法,其特征在于,包括:根據待檢測程序預先設定的漏洞規則,確定所述漏洞規則對應的初始條件和結束條件;根據所述漏洞規則對應的初始條件確定所述待檢測程序的初始檢測語句;確定所述初始檢測語句的位置,其中初始檢測語句的位置包括所述初始檢測語句對應的寄存器名稱;以所述初始檢測語句為起點,順序追蹤檢測待檢測程序;追蹤檢測到結束條件,記錄所述初始檢測語句的位置以及所述初始檢測語句至所述結束條件的數據流動路徑,并結束檢測。2.如權利要求1所述的方法,其特征在于,以所述初始檢測語句為起點,順序追蹤檢測待檢測程序,具體包括:以所述初始檢測語句為起點,順序追蹤檢測待檢測程序,若追蹤檢測過程中檢測到跳轉語句,則根據跳轉語句的跳轉邏輯進行跳轉;跳轉后按照待檢測程序的執行順序繼續追蹤檢測。3.如權利要求2所述的方法,其特征在于,若追蹤檢測過程中檢測到按照第一檢測語句順序執行的語句為跳轉語句,且跳轉語句對應的跳轉邏輯為賦值邏輯,則根據跳轉語句的跳轉邏輯進行跳轉并在跳轉后按照待檢測程序的執行順序繼續追蹤檢測;且確定跳轉至所述第一檢測語句對應的跳轉語句為第一跳轉語句;將所述第一跳轉語句順序執行對應的檢測語句作為第二檢測語句,對第二檢測語句進行順序追蹤檢測。4.如權利要求3所述的方法,其特征在于,所述追蹤檢測到結束條件,具體包括:追蹤檢測第一檢測語句對應的跳轉語句,檢測到結束條件;且追蹤檢測所述第二檢測語句,檢測到結束條件;或,追蹤檢測第一檢測語句對應的跳轉語句,未檢測到結束條件;追蹤檢測所述第二檢測語句,檢測到結束條件;或,追蹤檢測第一檢測語句對應的跳轉語句,檢測到結束條件;追蹤檢測所述第二檢測語句,未檢測到結束條件。5.如權利要求4所述的方法,其特征在于,記錄所述初始檢測語句的位置以及所述初始檢測語句至所述結束條件的數據流動路徑,具體包括:追蹤檢測第一檢測語句對應的跳轉語句,檢測到結束條件,且追蹤檢測所述第二檢測語句,檢測到結束條件;則分別記錄所述初始檢測語句的位置,所述通過第一檢測語句檢測到結束條件對應的數據流動路徑;以及所述初始檢測語句的位置,所述通過第二檢測語句檢測到結束條件對應的數據流動路徑;或,追蹤檢測第一檢測語句對應的跳轉語句,檢測到結束條件,追蹤檢測所述第二檢測語句,未檢測到結束條件;則記錄所述初始檢測語句的位置,所述通過第一檢測語句檢測到結束條件對應的數據流動路徑;或,追蹤檢測第一檢測語句對應的跳轉語句,未檢測到結束條件,追蹤檢測所述第二檢測語句,檢測到結束條件;則記錄所述初始檢測語句的位置,所述通過第二檢測語句檢測到結束條件對應的數據流動路徑。6.如權利要求1~5任一所述的方法,其特征在于,以所述初始檢測語句為起點,順序追蹤檢測待檢測程序,還包括:以所述初始檢測語句為起點,順序追蹤檢測,若追蹤檢測到的跳轉語句的次數大于設定的次數閾值,則結束追蹤檢測;若不大于設定的次數閾值,則繼續追蹤檢測。7.如權利要求6所述的方法,其特征在于,確定所述初始檢測語句的位置之前,還包括:對待檢測程序的語句進行分析,確定所述待檢測程序中的跳轉語句;將所述待檢測程序中每兩個跳轉語句之間的順序執行語句集合作為一個跳轉語句塊;根據跳轉語句的邏輯關系確定各跳轉語句塊之間的跳轉邏輯關系。8.如權利要求7所述的方法,其特征在于,以所述初始檢測語句為起點,順序追蹤檢測待檢測程序,具體包括:以所述初始檢測語句為起點,根據跳轉語句塊的執行順序以及所述跳轉語句塊之間的跳轉邏輯關系對所述待檢測程序進行順序追蹤檢測。9.如權利要求8所述的方法,其特征在于,對待檢測程序的語句進行分析,確定所述待檢測程序中的跳轉語句,具體包括:將所述待檢測程序語句編譯為中間語言;對所述中間語言進行分析,確定所述中間語言的跳轉語句。10.如權利要求1~5任一所述的方法,其特征在于,根據預先設定的漏洞規則,確定所述漏洞規則對應的初始條件和結束條件,具體包括:將所述漏洞規則對應的初始條件和結束條件形成配置文件。11.如權利要求10所述的方法,其特征在于,所述配置文件中的初始條件包括至少一個漏洞觸發條件;所述配置文件中的結束條件包括至少一個漏洞形成條件。12.一種程序漏洞的檢測終端,其特征在于,該終端包括:規則識別模塊,用于根據待檢測程序預先設定的漏洞規則,確定所述漏洞規則對應的初始條件和結束條件;所述規則識別模塊,還用于根據所述漏洞規則對應的初始條件確定所述待檢測程序的初始檢測語句;語句分析模塊,用于確定所述初始檢測語句的位置,其中初始檢測語句的位置包括所述初始檢測語句對應的寄存器名稱;漏洞檢測模塊,用于以所述初始檢測語句為起點,順序追蹤檢測待檢測程序;檢測記錄模塊,用于追蹤檢測到結束條件,記錄所述初始檢測語句的位置以及所述初始檢測語句至所述結束條件的數據流動路徑,并結束檢測。13.如權利要求12所述的終端,其特征在于,所述漏洞檢測模塊,具體用于:以所述初始檢測語句為起點,順序追蹤檢測待檢測程序,若追蹤檢測過程中檢測到跳轉語句,則根據跳轉語句的跳轉邏輯進行跳轉;跳轉后按照待檢測程序的執行順序繼續追蹤檢測。14.如權利要求13所述的終端,其特征在于,所述漏洞檢測模塊,還用于:若追蹤檢測過程中檢測到按照第一檢測語句順序執行的語句為跳轉語句,且跳轉語句對應的跳轉邏輯為賦值邏輯,則根據跳轉語句的跳轉邏輯進行跳轉并在跳轉后按照待檢測程序的執行順序繼續追蹤檢測;且確定跳轉至所述第一檢測語句對應的跳轉語句為第一跳轉語句;將所述第一跳轉語句順序執行對應的檢測語句作為第二檢測語句,對第二檢測語句進行順序追蹤檢測。15.如權利要求14所述的終端,其特征在于,所述檢測記錄模塊,具體用于:追蹤檢測第一檢測語句對應的跳轉語句,檢測到結束條件;且追蹤檢測所述第二檢測語句,檢測到結束條件;或,追蹤檢測第一檢測語句對應的跳轉語句,未檢測到結束條件;追蹤檢測所述第二檢測語句,檢測到結束條件;或,追蹤檢測第一檢測語句對應的跳轉語句,檢測到結束條件;追蹤檢測所述第二檢測語句,未檢測到結束條件。16.如權利要求15所述的終端,其特征在于,所述檢測記錄模塊,具體用于:追蹤檢測第一檢測語句對應的跳轉語句,檢測到結束條件,且追蹤檢測所述第二檢測語句,檢測到結束條件;則分別記錄所述初始檢測語句的位置,所述通過...
【專利技術屬性】
技術研發人員:陳晉福,
申請(專利權)人:阿里巴巴集團控股有限公司,
類型:發明
國別省市:開曼群島,KY
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。