[發明專利]一種基于smali中間語言的靜態檢測系統及方法在審
| 申請號: | 201611198355.1 | 申請日: | 2016-12-22 |
| 公開(公告)號: | CN106598866A | 公開(公告)日: | 2017-04-26 |
| 發明(設計)人: | 王鑫 | 申請(專利權)人: | 合肥國信車聯網研究院有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京和信華成知識產權代理事務所(普通合伙)11390 | 代理人: | 胡劍輝 |
| 地址: | 230000 安徽省合肥市蜀山*** | 國省代碼: | 安徽;34 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 smali 中間 語言 靜態 檢測 系統 方法 | ||
1.一種基于smali中間語言的靜態檢測系統,其特征在于,包括預處理模塊、規則庫模塊、敏感行為檢測模塊、結果生成模塊,所述預處理模塊用于對移動應用軟件做簡單快速的初步篩選分析,判斷當前移動應用軟件是否存在可能的敏感行為,并判斷是否需要進行后續靜態行為分析程序;
所述規則庫模塊為所述預處理模塊在進行敏感行為分析時依賴的規則;
所述敏感行為檢測模塊是對所述預處理模塊判斷出的存在敏感行為的移動應用軟件進行詳細的行為檢測;所述結果生成模塊用于將移動應用軟件的基本信息和敏感信息生成報告并輸出。
2.如權利要求1所述的基于smali中間語言的靜態檢測系統,其特征在于,所述規則庫模塊包括一類規則:敏感行為API、二類規則:參數規則以及三類規則:用戶行為規則,所述參數規則為確定所述敏感行為API的參數是否為符合條件的類型,所述用戶行為規則用于確定命中的符合條件的敏感行為API是后臺行為還是用戶行為。
3.如權利要求2所述的基于smali中間語言的靜態檢測系統,其特征在于,所述預處理模塊用于實現快速從資源文件和dex文件中獲取當前應用軟件中所有使用的字符串,即獲取常量池中的數據;
對于從資源文件的分解,可以使用SAXBuilder對xml文件進行解析,按照格式獲取AndroidManifest.xml中的信息;從dex文件中獲取常量表則通過文件格式,進行編碼對dex文件中的字符串列表進行提取,在通過dex文件格式獲取字符串偏移地址后,第一個字節即為當前字符串的大小,當前字符串長度大于預設閾值時,表明該字符串為無意義字符,將該字符串從常量池中剔除;
在獲取了整個應用軟件的常量池后,需要進行常量對比,對比的對象為一類規則和常量池中的數據,如果兩者有重合的則表明當前應用軟件中可能存在敏感行為需要進行進一步的行為檢測,若沒有則表明當前軟件中不含有敏感行為。
4.如權利要求3所述的基于smali中間語言的靜態檢測系統,其特征在于,所述敏感行為檢測模塊通過三類規則在控制流和數據流中進行回溯比對確定敏感行為:首先是一類規則的觸發行為,其次在數據流中對二類規則中的參數進行比對觸發,最后進行三類規則的行為定性,若連續觸發一類、二類規則同時三類規則定性為非用戶行為即為后臺行為則是敏感行為;
具體執行行為檢測的步驟為:首先利用apktool將待檢測移動應用軟件反編譯為smali文件,apktool的中間模塊中baksmali部分會將smali文件生成為smali語法樹,依據此語法樹相關結構,進行信息抽取,獲取控制流和數據流變化數據,與維護的規則庫進行匹配檢測,進行控制流與數據流分析,獲取敏感行為出現的位置與參數信息;
所述smali語法樹是通過分析smali文件的語法、詞法,將smali文件按照語法結構生成為樹狀結構,根據smali本身的語法樹結構體系,可以將語句之間的跳轉關系,寄存器間的數據變化信息抽取出來形成新的控制流圖、數據流圖,以及根據smali中invoke指令的相關信息獲取函數依賴圖,根據上述三種圖,進行流追蹤。
5.如權利要求1所述的基于smali中間語言的靜態檢測系統,其特征在于,所述結果生成模塊最終得到的結果報告包括基本信息、權限聲明、明文字符串以及存在的敏感行為;
若信息中含有明文存儲的網址、電話號碼信息表明該移動應用軟件沒有隱藏程序資源使用信息,則這些信息容易泄露,被攻擊者盜用、篡改,生成盜版或釣魚應用軟件。
6.一種基于smali中間語言的靜態檢測方法,其特征在于,包括以下步驟:
S1:首先使用apktool將Android應用軟件反編譯為smali文件,然后使用baksmali將smali文件生成為smali語法樹,smali語法樹作為流分析的輸入;
S2:以smali語法樹為基礎,進行控制流和數據流分析;控制流通過語句間的跳轉分支和執行順序構成控制依賴圖,同時根據invoke指令來生成函數依賴圖;
S3:在smali語言中,數據流的變化為語句間的寄存器數值變化,對語句間寄存器的變化進行記錄,對每個敏感語句節點寄存器中的數據進行定值計算,最后形成當前語句節點的定值集合;
S4:對規則庫中的安全規則進行解析。1類規則定義了敏感行為API、命名空間和類名等關鍵信息,2類規則定義了參數滿足的信息和格式,3類規則定義了用戶行為;
S5:進行敏感行為檢測,根據規則庫中的規則進行敏感行為分析,確定移動應用軟件中存在的敏感行為;
S6:生成報告:將應用軟件的基本信息和存在的敏感行為生成報告,方便閱讀和后續分析。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于合肥國信車聯網研究院有限公司,未經合肥國信車聯網研究院有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611198355.1/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種軟件測試方法及裝置
- 下一篇:用戶界面的測試方法及測試裝置





