CN114329468A - 一种基于映射关系的对抗性Android恶意软件检测方法 - Google Patents

一种基于映射关系的对抗性Android恶意软件检测方法 Download PDF

Info

Publication number
CN114329468A
CN114329468A CN202111600990.9A CN202111600990A CN114329468A CN 114329468 A CN114329468 A CN 114329468A CN 202111600990 A CN202111600990 A CN 202111600990A CN 114329468 A CN114329468 A CN 114329468A
Authority
CN
China
Prior art keywords
android
software
data
file
library
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202111600990.9A
Other languages
English (en)
Other versions
CN114329468B (zh
Inventor
洪榛
刘涛
傅金波
朱琦
金聪
张明德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN202111600990.9A priority Critical patent/CN114329468B/zh
Publication of CN114329468A publication Critical patent/CN114329468A/zh
Application granted granted Critical
Publication of CN114329468B publication Critical patent/CN114329468B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

目前,Android系统上恶意软件的种类和数量疯狂增长,对用户构成了极大的威胁,因此本发明提出了一种基于映射关系的对抗性Android恶意软件检测方法。首先,创立硬件库,同时根据权限控制API的机制,利用构建的敏感API库和敏感权限库建立映射关系库,然后,利用python调用Android软件的逆向工具,对软件进行脱壳重打包处理后,获取从Android软件中提取到的API、权限、硬件特征,与映射关系库、硬件库进行对比,生成one‑hot编码,最后,训练CNN模型,在测试集中使用最佳训练模型对软件进行检测。本发明能有效地检测Android系统上恶意软件,对智能手机生态圈的健康发展具有重要意义。

Description

一种基于映射关系的对抗性Android恶意软件检测方法
技术领域
本发明涉及一种基于映射关系的对抗性Android恶意软件检测方法,属于安全技术领域。
背景技术
为了提高用户的体验感,Android软件获取了更多的用户隐私信息,如果可以准确检测出恶意软件,则可以在很大程度上保护用户的隐私数据。
为了有效保障智能手机生态圈的健康发展,目前许多技术人员已经将深度学习的方法应用于自动高效的检测Android恶意软件问题上,但是很多软件设计者为了保护软件底层代码进行了加壳,同时,很少有人将Android软件中的API和权限建立映射关系库的同时融入硬件特征。因此本发明提出了一种基于映射关系的对抗性Android恶意软件检测方法。首先,创立硬件库,同时根据权限控制API的机制,利用构建的敏感API库和敏感权限库建立映射关系库,然后,利用python调用Android软件的逆向工具,对软件进行脱壳重打包处理后,获取从Android软件中提取到的API、权限、硬件特征,与映射关系库、硬件库进行对比,生成one-hot编码,最后,训练CNN模型,在测试集中使用最佳训练模型对软件进行检测。
发明内容
本发明要克服现有技术的上述缺点,提供基于映射关系的对抗性Android恶意软件检测方法。
本发明采用的技术方案为:
一种基于映射关系的对抗性Android恶意软件检测方法,首先,先对软件进行脱壳重打包,然后获取软件的API、权限、硬件信息,与构建的库进行对比生成one-hot编码,最后,训练CNN模型,在测试集中使用最佳训练模型对软件进行检测。具体包括以下步骤:
步骤1:编写python文件,对Android软件进行特征提取:
步骤1-1:判断Android软件的加固情况,如果文件被加固过,则利用脱壳和重打包工具对 Android软件进行脱壳重打包;
步骤1-2:利用解压工具对Android软件进行解压,保存解压后的文件;
步骤1-3:查找解压后的文件中后缀为.dex的文件,使用baksmali工具将.dex文件转换为.smali 文件,并保存;
步骤1-4:遍历保存的.smali文件,搜集Android软件的使用的API信息;
步骤1-5:查找解压后的文件中名为AndroidManifest.xml的文件,使用aapt工具将 AndroidManifest.xml文件转换为AndroidManifest.txt文件,并保存;
步骤1-6:根据AndroidManifest.txt文件,获取Android软件中申明的权限和硬件信息;
步骤2:编写python文件,对Android软件特征进行预处理:
步骤2-1:将从多个Android软件中获取到的API进行整理,根据API的危险级别和出现的频率建立敏感API库:D={d1,d2,...,dm};
步骤2-2:将从多个Android软件中获取到的权限进行整理,根据权限的危险级别和出现的频率建立敏感权限库:P={p1,p2,...,pn};
步骤2-3:根据权限控制相关API的机制,建立敏感权限和敏感API的映射关系库,权限控制相关API的机制为:A={(pi,dj)|pi∈P,dj∈D,pi控制dj};
步骤2-4:将从多个Android软件中获取到的硬件进行整理,将所有出现过的硬件申请均加入硬件库;
步骤2-5:将从Android软件中提取到的特征与映射关系库、硬件库进行对比,生成one-hot 编码,即将每个Android软件转换为二进制向量;
步骤2-6:将步骤2-5中的二进制向量每8位进行分割,转换为灰度图;
步骤3:对数据集进行选择与分割:
步骤3-1:将从步骤2-6中获得的灰度图按照标签类型分成normal_data,malware_data;
步骤3-2:从normal_data、malware_data中分别进行随机抽取,用于构建训练集(train_data)、验证集(validation_data)、测试集(test_data);
步骤4:搭建CNN模型进行训练:
步骤4-1:搭建CNN,使用relu函数作为激活函数,采用adam优化器进行优化,最后使用 softmax函数作为分类器;
步骤4-2:分类精度的评价指标使用Accuracy与Error_rate表示:
Figure BDA0003433093160000021
Figure BDA0003433093160000022
式中,P代表正例总数、N代表负例总数;TP表示真实类别为正例,预测类别为正例;TN表示真实类别为负例,预测类别为负例;FP表示真实类别为负例,预测类别为正例;FN 表示真实类别为正例,预测类别为负例;
步骤4-3:使用train_data对搭建的模型进行训练;
步骤4-4:在训练过程中,使用validation_data对模型进行验证,并保存最佳模型:
步骤5:加载最佳的训练模型,对test_data进行测试,对软件进行检测,并计算其精度。
优选地,步骤3-1中的标签类型分为正常软件:0和恶意软件:1。
优选地,步骤3-2中的训练集(train_data)、验证集(validation_data)、测试集(test_data 分别占normal_data、malware_data的70%、20%、10%。
本发明相比现有技术,具有以下有益效果:
1、针对现有软件的加壳技术,本发明提出基于映射关系的对抗性Android恶意软件检测方法,先对软件进行脱壳重打包再进行特征提取,在一定程度上提高了提取的特征的完整性;
2、本发明提出建立API和权限的映射关系库,同时融入硬件特征,在一定程度上提高了检测Android恶意软件的准确性;
3、针对Android恶意软件泛滥情况,本发明提出了有效的检测方法,具有一定的实用性。
附图说明
图1是本发明的基于映射关系的对抗性Android恶意软件检测方法的流程图;
图2是本发明的基于映射关系的对抗性Android恶意软件检测方法的框架示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面结合附图和具体实施例,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于映射关系的对抗性Android恶意软件检测方法,如图1所示,包括特征提取、特征预处理、数据集的选择与分割、模型训练与测试。具体步骤如下:
步骤1:编写python文件,对Android软件进行特征提取:
步骤1-1:判断Android软件的加固情况,如果文件被加固过,则利用脱壳和重打包工具对 Android软件进行脱壳重打包;
步骤1-2:利用解压工具对Android软件进行解压,保存解压后的文件;
步骤1-3:查找解压后的文件中后缀为.dex的文件,使用baksmali工具将.dex文件转换为.smali 文件,并保存;
步骤1-4:遍历保存的.smali文件,搜集Android软件的使用的API信息;
步骤1-5:查找解压后的文件中名为AndroidManifest.xml的文件,使用aapt工具将AndroidManifest.xml文件转换为AndroidManifest.txt文件,并保存;
步骤1-6:根据AndroidManifest.txt文件,获取Android软件中申明的权限和硬件信息;
步骤2:编写python文件,对Android软件特征进行预处理:
步骤2-1:将从多个Android软件中获取到的API进行整理,根据API的危险级别和出现的频率建立敏感API库:D={d1,d2,...,dm};
步骤2-2:将从多个Android软件中获取到的权限进行整理,根据权限的危险级别和出现的频率建立敏感权限库:P={p1,p2,...,pn};
步骤2-3:根据权限控制相关API的机制,建立敏感权限和敏感API的映射关系库,权限控制相关API的机制为:A={(pi,dj)|pi∈P,dj∈D,pi控制dj};
步骤2-4:将从多个Android软件中获取到的硬件进行整理,将所有出现过的硬件申请均加入硬件库;
步骤2-5:将从Android软件中提取到的特征与映射关系库、硬件库进行对比,生成one-hot 编码,即将每个Android软件转换为二进制向量;
步骤2-6:将步骤2-5中的二进制向量每8位进行分割,转换为灰度图;
步骤3:对数据集进行选择与分割:
步骤3-1:将从步骤2-6中获得的灰度图按照标签类型分成normal_data,malware_data;
步骤3-2:从normal_data、malware_data中分别进行随机抽取,用于构建训练集(train_data)、验证集(validation_data)、测试集(test_data);
步骤4:搭建CNN模型进行训练:
步骤4-1:搭建CNN,使用relu函数作为激活函数,采用adam优化器进行优化,最后使用 softmax函数作为分类器;
步骤4-2:分类精度的评价指标使用Accuracy与Error_rate表示:
Figure BDA0003433093160000041
Figure BDA0003433093160000042
式中,P代表正例总数、N代表负例总数;TP表示真实类别为正例,预测类别为正例;TN表示真实类别为负例,预测类别为负例;FP表示真实类别为负例,预测类别为正例;FN 表示真实类别为正例,预测类别为负例;
步骤4-3:使用train_data对搭建的模型进行训练;
步骤4-4:在训练过程中,使用validation_data对模型进行验证,并保存最佳模型:
步骤5:加载最佳的训练模型,对test_data进行测试,对软件进行检测,并计算其精度。
本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。

Claims (3)

1.一种基于映射关系的对抗性Android恶意软件检测方法,其特征在于,包括以下步骤:
步骤1:编写python文件,对Android软件进行特征提取:
步骤1-1:判断Android软件的加固情况,如果文件被加固过,则利用脱壳和重打包工具对Android软件进行脱壳重打包;
步骤1-2:利用解压工具对Android软件进行解压,保存解压后的文件;
步骤1-3:查找解压后的文件中后缀为.dex的文件,使用baksmali工具将.dex文件转换为.smali文件,并保存;
步骤1-4:遍历保存的.smali文件,搜集Android软件的使用的API信息;
步骤1-5:查找解压后的文件中名为AndroidManifest.xml的文件,使用aapt工具将AndroidManifest.xml文件转换为AndroidManifest.txt文件,并保存;
步骤1-6:根据AndroidManifest.txt文件,获取Android软件中申明的权限和硬件信息;
步骤2:编写python文件,对Android软件特征进行预处理:
步骤2-1:将从多个Android软件中获取到的API进行整理,根据API的危险级别和出现的频率建立敏感API库:D={d1,d2,...,dm};
步骤2-2:将从多个Android软件中获取到的权限进行整理,根据权限的危险级别和出现的频率建立敏感权限库:P={p1,p2,...,pn};
步骤2-3:根据权限控制相关API的机制,建立敏感权限和敏感API的映射关系库,权限控制相关API的机制为:A={(pi,dj)|pi∈P,dj∈D,pi控制dj};
步骤2-4:将从多个Android软件中获取到的硬件进行整理,将所有出现过的硬件申请均加入硬件库;
步骤2-5:将从Android软件中提取到的特征与映射关系库、硬件库进行对比,生成one-hot编码,即将每个Android软件转换为二进制向量;
步骤2-6:将步骤2-5中的二进制向量每8位进行分割,转换为灰度图;
步骤3:对数据集进行选择与分割:
步骤3-1:将从步骤2-6中获得的灰度图按照标签类型分成normal_data,malware_data;
步骤3-2:从normal_data、malware_data中分别进行随机抽取,用于构建训练集(train_data)、验证集(validation_data)、测试集(test_data);
步骤4:搭建CNN模型进行训练:
步骤4-1:搭建CNN,使用relu函数作为激活函数,采用adam优化器进行优化,最后使用softmax函数作为分类器;
步骤4-2:分类精度的评价指标使用Accuracy与Error_rate表示:
Figure FDA0003433093150000021
Figure FDA0003433093150000022
式中,P代表正例总数、N代表负例总数;TP表示真实类别为正例,预测类别为正例;TN表示真实类别为负例,预测类别为负例;FP表示真实类别为负例,预测类别为正例;FN表示真实类别为正例,预测类别为负例;
步骤4-3:使用train_data对搭建的模型进行训练;
步骤4-4:在训练过程中,使用validation_data对模型进行验证,并保存最佳模型:
步骤5:加载最佳的训练模型,对test_data进行测试,对软件进行检测,并计算其精度。
2.如权利要求1所述的基于多维特征映射关系的Android恶意软件检测方法,其特征在于:步骤3-1中的标签类型分为正常软件:0和恶意软件:1。
3.如权利要求1所述的基于多维特征映射关系的Android恶意软件检测方法,其特征在于:步骤3-2中的训练集(train_data)、验证集(validation_data)、测试集(test_data)分别占normal_data、malware_data的70%、20%、10%。
CN202111600990.9A 2021-12-24 2021-12-24 一种基于映射关系的对抗性Android恶意软件检测方法 Active CN114329468B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111600990.9A CN114329468B (zh) 2021-12-24 2021-12-24 一种基于映射关系的对抗性Android恶意软件检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111600990.9A CN114329468B (zh) 2021-12-24 2021-12-24 一种基于映射关系的对抗性Android恶意软件检测方法

Publications (2)

Publication Number Publication Date
CN114329468A true CN114329468A (zh) 2022-04-12
CN114329468B CN114329468B (zh) 2024-03-29

Family

ID=81013836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111600990.9A Active CN114329468B (zh) 2021-12-24 2021-12-24 一种基于映射关系的对抗性Android恶意软件检测方法

Country Status (1)

Country Link
CN (1) CN114329468B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104091121A (zh) * 2014-06-12 2014-10-08 上海交通大学 对Android重打包恶意软件的恶意代码的检测、切除和恢复的方法
CN109684840A (zh) * 2018-12-20 2019-04-26 西安电子科技大学 基于敏感调用路径的Android恶意软件检测方法
US20200344261A1 (en) * 2019-04-25 2020-10-29 Foundation Of Soongsil University-Industry Cooperation Method of application malware detection based on dynamic api extraction, and readable medium and apparatus for performing the method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104091121A (zh) * 2014-06-12 2014-10-08 上海交通大学 对Android重打包恶意软件的恶意代码的检测、切除和恢复的方法
CN109684840A (zh) * 2018-12-20 2019-04-26 西安电子科技大学 基于敏感调用路径的Android恶意软件检测方法
US20200344261A1 (en) * 2019-04-25 2020-10-29 Foundation Of Soongsil University-Industry Cooperation Method of application malware detection based on dynamic api extraction, and readable medium and apparatus for performing the method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
侯留洋;罗森林;潘丽敏;张笈;: "融合多特征的Android恶意软件检测方法", 信息网络安全, no. 01, 10 January 2020 (2020-01-10) *

Also Published As

Publication number Publication date
CN114329468B (zh) 2024-03-29

Similar Documents

Publication Publication Date Title
US11727705B2 (en) Platform for document classification
CN109302410B (zh) 一种内部用户异常行为检测方法、系统及计算机存储介质
US20200082083A1 (en) Apparatus and method for verifying malicious code machine learning classification model
EP2657884A2 (en) Identifying multimedia objects based on multimedia fingerprint
CN111753290B (zh) 软件类型的检测方法及相关设备
CN110175851B (zh) 一种作弊行为检测方法及装置
CN111858843B (zh) 一种文本分类方法及装置
CN112052451A (zh) 一种webshell检测方法和装置
CN115221516B (zh) 恶意应用程序识别方法及装置、存储介质、电子设备
CN112347223A (zh) 文档检索方法、设备及计算机可读存储介质
KR102334018B1 (ko) 자가 증식된 비윤리 텍스트의 유효성 검증 장치 및 방법
CN112733140A (zh) 一种针对模型倾斜攻击的检测方法及系统
CN112214984A (zh) 内容抄袭识别方法、装置、设备及存储介质
CN116186263A (zh) 文档检测方法、装置、计算机设备及计算机可读存储介质
CN114329468A (zh) 一种基于映射关系的对抗性Android恶意软件检测方法
CN115658976A (zh) 基于局部敏感哈希的设备指纹分析方法及系统
CN115455083A (zh) 查重方法、装置、电子设备及计算机存储介质
CN114090781A (zh) 基于文本数据的容斥事件检测方法和装置
CN115587358A (zh) 一种二进制代码相似性检测方法、装置及存储介质
CN113836297A (zh) 文本情感分析模型的训练方法及装置
CN116010948A (zh) 一种基于多维静态特征融合的Android诈骗软件检测方法
CN110674497B (zh) 一种恶意程序相似度计算的方法和装置
CN116611057B (zh) 数据安全检测方法及其系统
KR102491451B1 (ko) 심층 신경망 기반의 악성코드 탐지 분류체계의 유사도를 반영하는 시그니처 생성 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
CN113139187B (zh) 一种预训练语言模型的生成、检测方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant