[發(fā)明專利]基于AST和跨層分析的安卓惡意軟件檢測方法及系統(tǒng)有效
| 申請?zhí)枺?/td> | 202210544603.2 | 申請日: | 2022-05-19 |
| 公開(公告)號: | CN114817924B | 公開(公告)日: | 2023-04-07 |
| 發(fā)明(設(shè)計)人: | 牛偉納;鞏嘉誠;張小松;段治秦;劉星宇;朱宇坤 | 申請(專利權(quán))人: | 電子科技大學 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56;G06F8/53;G06F8/75;G06F16/35;G06F40/30;G06F40/253;G06F18/241;G06F18/25;G06N3/042;G06N3/0464;G06N3/08 |
| 代理公司: | 成都正煜知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 51312 | 代理人: | 袁宇霞 |
| 地址: | 611731 四川省成*** | 國省代碼: | 四川;51 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 基于 ast 分析 惡意 軟件 檢測 方法 系統(tǒng) | ||
1.一種基于AST和跨層分析的安卓惡意軟件檢測方法,其特征在于,包括如下步驟:
步驟1:對AndroidAPK文件進行靜態(tài)反編譯,獲取其Java層代碼Smali文件和Native層代碼SO文件;
步驟2:對步驟1中獲得的Smali文件和SO文件使用靜態(tài)分析工具進行處理,分別生成Java層和Native層的函數(shù)調(diào)用圖;
步驟3:對步驟2中生成的Java層和Native層函數(shù)調(diào)用圖,基于Java層代碼中對Native函數(shù)的聲明,將Java層的函數(shù)調(diào)用圖與Native層的函數(shù)調(diào)用圖連接起來,生成完整的函數(shù)調(diào)用圖;
步驟4:對步驟3中生成的完整函數(shù)調(diào)用圖,基于敏感API對函數(shù)調(diào)用圖進行簡化,只保留敏感API節(jié)點,以及敏感API節(jié)點的父節(jié)點和其他祖先節(jié)點,得到簡化函數(shù)調(diào)用圖;
步驟5:對步驟4中生成的簡化函數(shù)調(diào)用圖,針對其中的Java層非敏感API節(jié)點對應的Smali文件進行代碼解析,生成其對應的Java層非敏感節(jié)點抽象語法樹AST;
步驟6:對于步驟5中生成的Java層非敏感節(jié)點抽象語法樹,使用圖嵌入方法生成抽象語法樹的節(jié)點的代碼特征向量;
步驟7:將步驟4中生成的簡化函數(shù)調(diào)用圖與步驟6中生成的代碼特征向量相融合,生成融合了代碼語義的簡化函數(shù)調(diào)用圖;
步驟8:對于步驟7中生成的融合了代碼語義的簡化函數(shù)調(diào)用圖,以圖拓撲結(jié)構(gòu)和節(jié)點代碼語義特征作為圖特征,使用圖神經(jīng)網(wǎng)絡(luò)對其進行學習,得到訓練好的智能分類器;
步驟9:使用訓練好的智能分類器對待測Android?APK文件進行分類,得到該APK的分類結(jié)果。
2.根據(jù)權(quán)利要求1所述的一種基于AST和跨層分析的安卓惡意軟件檢測方法,其特征在于,所述步驟2的具體步驟為:
對Android?APK使用靜態(tài)分析工具Androguard中的cg命令,生成Java層函數(shù)調(diào)用圖;
對步驟1中獲得的SO文件,使用二進制分析工具Angr,生成Native層函數(shù)調(diào)用圖。
3.根據(jù)權(quán)利要求1所述的一種基于AST和跨層分析的安卓惡意軟件檢測方法,其特征在于,所述步驟3的具體步驟為:
對步驟1中獲得的Smali文件,檢索Smali文件所有的方法信息,提取從Java層代碼調(diào)用Native層代碼的進入方法;并從進入方法開始跟蹤Native函數(shù)調(diào)用提取退出方法;根據(jù)上述過程中提取到的進入方法和退出方法,將步驟2中生成的Java層函數(shù)調(diào)用圖和Native層函數(shù)調(diào)用圖連接起來,生成完整的函數(shù)調(diào)用圖。
4.根據(jù)權(quán)利要求1所述的一種基于AST和跨層分析的安卓惡意軟件檢測方法,其特征在于,所述步驟4的具體步驟為:
對步驟3中生成的完整函數(shù)調(diào)用圖,基于敏感API進行簡化,具體來說,首先找到所有的敏感API節(jié)點;再以敏感API節(jié)點為終點,根據(jù)調(diào)用關(guān)系追溯其始點,即敏感API節(jié)點的父節(jié)點;再以父節(jié)點作為終點,根據(jù)調(diào)用關(guān)系追溯其始點,即敏感API節(jié)點的祖先節(jié)點;依次遞歸,直至追溯到函數(shù)調(diào)用圖的起始調(diào)用節(jié)點;保留上述所有節(jié)點,刪除其他節(jié)點,生成簡化函數(shù)調(diào)用圖。
5.根據(jù)權(quán)利要求1所述的一種基于AST和跨層分析的安卓惡意軟件檢測方法,其特征在于,所述步驟5的具體步驟為:
對于步驟4中生成的簡化函數(shù)調(diào)用圖,首先找到所有的Java層非敏感API節(jié)點;根據(jù)Java層非敏感API節(jié)點對應的方法名,檢索到該節(jié)點對應的Smali文件;使用代碼解析工具Antlr對該Smali文件進行解析,生成對應的Java層非敏感節(jié)點抽象語法樹AST。
6.根據(jù)權(quán)利要求1所述的一種基于AST和跨層分析的安卓惡意軟件檢測方法,其特征在于,所述步驟6的具體步驟為:
對于步驟5中生成的Java層非敏感節(jié)點抽象語法樹,以其拓撲結(jié)構(gòu)和節(jié)點特征作為圖特征,使用圖嵌入中node2vec算法生成其對應的代碼特征向量。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于電子科技大學,未經(jīng)電子科技大學許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210544603.2/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種穩(wěn)定桿襯套總成的加工方法
- 下一篇:一種消防用檢測箱
- 惡意特征數(shù)據(jù)庫的建立方法、惡意對象檢測方法及其裝置
- 用于檢測惡意鏈接的方法及系統(tǒng)
- 惡意信息識別方法、惡意信息識別裝置及系統(tǒng)
- 主動式移動終端惡意軟件網(wǎng)絡(luò)流量數(shù)據(jù)集獲取方法及系統(tǒng)
- 一種大數(shù)據(jù)告警平臺系統(tǒng)及其方法
- 一種追溯惡意進程的方法、裝置及存儲介質(zhì)
- 一種相似惡意軟件推薦方法、裝置、介質(zhì)和設(shè)備
- 軟件惡意行為檢測方法及系統(tǒng)
- 惡意樣本增強方法、惡意程序檢測方法及對應裝置
- 惡意語音樣本的確定方法、裝置、計算機設(shè)備和存儲介質(zhì)





