[發明專利]應用軟件安全漏洞檢測方法和系統有效
| 申請號: | 201611036441.2 | 申請日: | 2016-11-14 |
| 公開(公告)號: | CN107038115B | 公開(公告)日: | 2018-05-04 |
| 發明(設計)人: | 王金錠 | 申請(專利權)人: | 平安科技(深圳)有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 深圳市世紀恒程知識產權代理事務所44287 | 代理人: | 胡海國 |
| 地址: | 518000 廣東省深*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 應用軟件 安全漏洞 檢測 方法 系統 | ||
技術領域
本發明涉及信息安全技術領域,尤其涉及一種應用軟件安全漏洞檢測方法和系統。
背景技術
現有應用軟件漏洞靜態檢測方案通常是基于Android smali(安卓編譯器)或者java(計算機編程語言)源碼的規則掃描,通過采用預定義的正則或字符串特征的匹配檢查方式,判斷應用軟件的代碼模式是否存在問題。
由于這種靜態掃描未關聯程序上下文數據,僅根據既定的規則檢測,容易存在大量安全隱患的誤報;并且,Android smali代碼的語言粒度較細,一個語義需要多條語句表示,在進行應用軟件的安全漏洞檢測時,工作量大,浪費資源;而java高級語言代碼的粒度偏粗,單一語句可能包含隱藏的語義,在進行應用軟件的安全漏洞檢測時,檢測的粒度也相應較粗,存在安全隱患漏報。
可見,現有的應用軟件安全漏洞檢測方式受代碼語言影響,檢測效率較低。
發明內容
本發明的主要目的在于提供一種應用軟件安全漏洞檢測方法和系統,旨在解決應用軟件代碼語言影響安全漏洞檢測效率的技術問題。
為實現上述目的,本發明提供一種應用軟件安全漏洞檢測方法,所述應用軟件安全漏洞檢測方法包括以下步驟:
將應用軟件編譯為預設的中間語言代碼文本;
根據所述代碼文本,獲取所述應用軟件的數據關聯結構;
根據所述應用軟件中敏感調用點的變量參數及所述數據關聯結構,回溯查找所述敏感調用點對應的外部輸入點;
若成功查找到所述敏感調用點對應的外部輸入點,則確定所述外部輸入點為所述應用軟件的安全漏洞。
優選地,所述根據所述應用軟件中敏感調用點的變量參數及所述數據關聯結構,回溯查找所述敏感調用點對應的外部輸入點的步驟包括:
根據所述變量參數及所述數據關聯結構,回溯查找輸出所述變量參數的前驅調用點;
若所述前驅調用點是基于函數調用輸出的返回值,則再次回溯查找返回所述前驅調用點實參的前驅調用點,確定源節點;
若所述源節點為外部輸入點,則確定所述外部輸入點為所述敏感調用點對應的外部輸入點;
若所述源節點為常量賦值,則停止回溯,確定未找到所述敏感調用點對應的外部輸入點。
優選地,所述根據所述應用軟件中敏感調用點的變量參數及所述數據關聯結構,回溯查找所述敏感調用點對應的外部輸入點的步驟,還包括:
若找到多個輸出所述變量參數且執行順序先于所述敏感調用點的調用點,則確定所述多個調用點中執行順序最接所述近敏感調用點的為所述前驅調用點。
優選地,所述根據所述應用軟件中敏感調用點的變量參數及所述數據關聯結構,回溯查找所述敏感調用點對應的外部輸入點的步驟,還包括:
若所述前驅調用點將所述變量參數作為賦值輸出,則根據所述數據關聯結構獲取所述變量參數對應的右值;
若所述右值為外部輸入點輸入的變量,則確定所述外部輸入點為所述敏感調用點對應的外部輸入點;
若所述右值為常量賦值,則停止回溯,確定未找到所述敏感調用點對應的外部輸入點。
優選地,所述確定所述外部輸入點為所述應用軟件的安全漏洞的步驟之后,還包括:
確定回溯找到所述外部輸入點的路徑為危險路徑。
此外,為實現上述目的,本發明還提供一種應用軟件安全漏洞檢測系統,所述應用軟件安全漏洞檢測系統包括:
編譯模塊,用于將應用軟件編譯為預設的中間語言代碼文本;
關聯模塊,用于根據所述代碼文本,獲取所述應用軟件的數據關聯結構;
回溯模塊,用于根據所述應用軟件中敏感調用點的變量參數及所述數據關聯結構,回溯查找所述敏感調用點對應的外部輸入點;
確定模塊,用于若成功查找到所述敏感調用點對應的外部輸入點,則確定所述外部輸入點為所述應用軟件的安全漏洞。
優選地,所述回溯模塊還用于,
根據所述變量參數及所述數據關聯結構,回溯查找輸出所述變量參數的前驅調用點;若所述前驅調用點是基于函數調用輸出的返回值,則再次回溯查找返回所述前驅調用點實參的前驅調用點,確定源節點;若所述源節點為外部輸入點,則確定所述外部輸入點為所述敏感調用點對應的外部輸入點;若所述源節點為常量賦值,則停止回溯,確定未找到所述敏感調用點對應的外部輸入點。
優選地,所述回溯模塊還用于,
若找到多個輸出所述變量參數且執行順序先于所述敏感調用點的調用點,則確定所述多個調用點中執行順序最接所述近敏感調用點的為所述前驅調用點。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于平安科技(深圳)有限公司,未經平安科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611036441.2/2.html,轉載請聲明來源鉆瓜專利網。





