CN114741698A - 一种基于混合分析检测安卓恶意软件方法 - Google Patents
一种基于混合分析检测安卓恶意软件方法 Download PDFInfo
- Publication number
- CN114741698A CN114741698A CN202210658786.0A CN202210658786A CN114741698A CN 114741698 A CN114741698 A CN 114741698A CN 202210658786 A CN202210658786 A CN 202210658786A CN 114741698 A CN114741698 A CN 114741698A
- Authority
- CN
- China
- Prior art keywords
- android
- analysis
- detecting
- transmission
- sensitive
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明属于检测安卓恶意软件系统技术领域,公开了一种基于混合分析检测安卓恶意软件方法,包括以下步骤,利用轻量级静态分析来获取入口点,利用关键词过滤掉非必要的踪迹,并将得到的结果传入动态分析;利用动态分析组件来跟踪隐私泄露的痕迹,静态分析输入的踪迹进入动态分析组件之后,安卓包文件会被执行系统模块解析变成字节码指令,输入的踪迹用来定位敏感源所在的安卓组件作为动态分析的起点,利用污点分析功能模拟应用程序的运行,直到应用程序将敏感源的数据泄露出去为止,系统将敏感传输信息记录下来;对应用程序进行分类。其优点在于,准确定位恶意软件中非正常传输,减少误报。
Description
技术领域
本发明涉及检测安卓恶意软件系统技术领域,尤其针对安卓中的非正常传输。
背景技术
随着安卓操作系统的普及,98%的移动恶意软件以安卓设备为目标,这已成为隐私泄露的主要来源之一。检测这些应用程序中的恶意网络传输是一项挑战,因为恶意软件隐藏其行为,并伪装成良性软件来逃避检测。现有技术大多只关注敏感流量传输的检测,无法区分正常和异常的敏感流量传输,于是会产生更多的误报。
发明内容
基于上述问题,本申请提供一种准确定位恶意软件中非正常传输的方法,其技术方案为,
一种基于混合分析检测安卓恶意软件方法,包括以下步骤,
S1.利用轻量级静态分析来获取入口点,利用关键词过滤掉非必要的踪迹,并将得到的结果传入动态分析;
S2.利用动态分析组件来跟踪隐私泄露的痕迹,动态分析组件包括一个带有污点分析功能的执行系统模块和一个仿真安卓运行时的模块,静态分析输入的踪迹进入动态分析组件之后,安卓包文件会被执行系统模块解析变成字节码指令,输入的踪迹用来定位敏感源所在的安卓组件作为动态分析的起点,利用污点分析功能模拟应用程序的运行,直到应用程序将敏感源的数据泄露出去为止,系统将敏感传输信息记录下来,用于下一步的分类;
S3.对应用程序进行分类。
优选的,步骤S1中,静态分析底层框架使用soot,给安卓中的每个组件创建调用图,遍历调用图得到敏感源被调用的位置,即调用敏感源的API,加入到过滤器中,利用关键词过滤掉非必要的踪迹,踪迹是一个特定的API调用序列,从生命周期回调开始,以与敏感信息相关的API调用结束。
优选的,步骤S2中,带有污点分析功能的执行系统模块是利用PATDroid修改后的Dalvik虚拟机版本直接解析安卓包文件并执行字节码指令;仿真安卓运行时的模块是利用DroidSafe中模拟安卓运行时的库进行修改,并增加了支持安卓的androidx包的函数。
优选的,步骤S2中,污点分析模块中设定污染策略,来指定传播过程,具体为:设定指令“x=y binop z”中的一个操作数被污染,一个规则集x会被污染。
优选的,步骤S2中,步骤S2中,对安卓应用程序中的未知量进行模拟,以便覆盖更多的情况,解决路径覆盖率不高的问题。
优选的,步骤S2中,引入快照功能,来处理未知量的不同情况,具体步骤为,
如果遇到未知的分支,将创建一个快照,以存储当前执行系统的状态,并将快照推到堆栈上,在本分支遍历完之后准确的返回当初的分叉点;
设定规则库来约束未知变量引起的路径爆炸问题,具体步骤为,
执行器会选择在循环下只执行一次未知量所在代码块的方式,并标记代码块中接受新值的所有变量;在运行代码块之后,标记的变量被象征性地建模,用于执行的其余部分。
优选的,步骤S2中,对于应用程序使用Android和谷歌关键字来创建包名来逃避安全检测的行为,通过创建白名单,并将其导入Android和谷歌官方包,与当前的应用程序包的名称相比较。
优选的,步骤S3中,对应用程序进行分类,包括机器学习模块,具体步骤为,
S31.接收由动态分析组件产生的流量,然后通过检测异常敏感流量作为分类问题来构建分类器,并使用监督学习方法决策树来训练分类器,将垃圾邮件检测的词袋模型对检测流量中URL进行操作,并使用某些字符作为分隔符将url划分为标记,每个不同的标记都被视为一个独立的特性;
S32.每个收集到的数据流被转换成一个二进制值向量,并使用流量分类,目标应用中不同代码路径产生的流量会指向同一个URL,将相同的URL连接合并为一个传输;
S33.对于收集到的传输,检查目标主机名,看其属于广告服务器还是恶意服务器,并将传输标记为非法,然后检查通过流量传递的纯文本内容,以防止服务器发送的消息是为了触发隐私数据的泄露。
优选的,步骤S3中,
为了测试流量的传输是否合法,采用逆向工程方式拦截这些流量,并重新打包这些应用程序,如果这些应用程序的功能受到影响,那么将流量的传输标记为合法,如果应用程序没有受到影响,那么将流量的传输标记为非法传输。
有益效果
1.自动跟踪异常敏感的网络传输来检测恶意软件的框架。通过轻量级的静态分析和针对性的动态分析,从调用图中推断出敏感信息,利用机器学习分类器分析传输的网络流量和敏感信息来检测敏感传输,减少误报。
2.本发明对安卓应用程序中的未知量(指需要用户输入,根据周围环境变化等的变量)进行模拟,以便覆盖更多的情况。
3.本发明还引入了快照的功能,为处理未知量的不同情况提供了可能性。
4.本发明提出了一个规则库来约束未知变量引起的路径爆炸问题。
附图说明
图1为本申请流程图。
具体实施方式
以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。
本发明是一种基于混合分析检测安卓恶意软件方法的设计,它依赖于应用程序中异常的网络敏感传输进行检测。采用信息流分析技术确定敏感数据的来源,跟踪信息流确定敏感数据的最终目的地。
S1.本发明应用轻量级静态分析来获取入口点,静态分析底层框架使用soot,给安卓中的每个组件创建调用图,遍历调用图得到敏感源被调用的位置(即调用敏感源的API),加入到过滤器中,利用关键词过滤掉非必要的踪迹(例如带有安卓内核函数特征的调用),然后将得到的结果传入动态分析。这里的踪迹实际上都是一个特定的API调用序列,从生命周期回调开始,以与敏感信息相关的API调用结束。
S1.执行动态分析来跟踪隐私泄露的痕迹。动态分析组件由一个带有污点分析模块的执行系统和一个仿真安卓运行时的模块组成。带有污点分析模块的执行系统是利用PATDroid修改后适合本发明的Dalvik虚拟机版本,它能够直接解析安卓包文件并执行字节码指令。污点分析模块中设定污染策略,污染策略来指定传播过程,例如,只要指令“x=ybinop z”(y和z进行一元操作赋值给x)中的一个操作数被污染,一个规则集x就会被污染。仿真安卓运行时的模块是利用DroidSafe中模拟安卓运行时的库进行修改,在它的基础上增加了更多支持的安卓函数(如androidx)以及模拟函数的功能(比如模拟从数据库中调取数据并返回值)得到合理返回值来支持动态分析。静态分析输入的踪迹进入动态分析组件之后,安卓包文件会被解析变成字节码指令,输入的踪迹用来定位敏感源所在的安卓组件(比如:Activity,Service)作为动态分析的起点,利用污点分析技术模拟应用程序的运行,直到应用程序将敏感源的数据泄露出去(指利用网络传输等API将信息发送出去等操作)为止,系统会将敏感传输信息记录下来,用于下一步的分类。为了解决信息流分析技术中路径覆盖率不高的问题,本发明对安卓应用程序中的未知量(指需要用户输入,根据周围环境变化等的变量)进行模拟,以便覆盖更多的情况。
本发明还引入了快照的功能,为处理未知量的不同情况提供了可能性。具体地说,如果遇到未知的分支,本发明将创建一个快照,以存储当前执行器的状态,并将快照推到堆栈上,在本分支遍历完之后即可返回当初的分叉点。另一方面提出了一个规则库来约束未知变量引起的路径爆炸问题,比如应用程序中包含循环或递归的代码的终止条件是未知的情况就可能导致产生无数条路径。遇到这种情况时本申请的执行器会选择在循环下只执行一次未知量所在代码块的方式,并标记块中接受新值的所有变量。在运行代码块之后,标记的变量被象征性地建模,用于执行的其余部分。
S3.对应用程序进行分类,包括机器学习模块。机器学习模块接收由动态分析组件产生的流量,然后通过检测异常敏感流量作为分类问题来构建分类器。本发明使用监督学习方法来训练分类器,使用垃圾邮件检测的词袋模型对检测流量中URL进行操作。在本发明中可以使用某些字符作为分隔符将url划分为标记。然后,每个不同的标记都被视为一个独立的特性。每个收集到的数据流被转换成一个二进制值向量。由于本发明使用的是流量分类,所以将决策树作为分类器。根据本申请的混合分析组件(静态分析模块与动态分析模块的总称),目标应用中不同代码路径产生的流量很会指向同一个URL,因此,将相同的URL连接合并为一个传输。对于收集到的传输,检查目标主机名,看看它属于广告服务器还是恶意服务器,并将传输标记为非法。然后,需要检查通过流传递的纯文本内容,以防止服务器发送的消息是为了触发隐私数据的泄露。为了测试流的传输是否合法,本申请采用逆向工程方式拦截这些流,并重新包装这些应用程序。如果这些应用程序的功能受到影响,那么将流量的传输标记为合法,如果应用程序没有受到影响,那么将流量的传输标记为非法传输。
利用DroidBench数据集进行测试(DroidBench是一个开源的基准测试套件,它包含118个手工制作的应用程序),传统的静态分析工具FlowDroid和混合分析工具AppAudit相比的结果如下:(准确率=正例和负例中预测正确数量占总数量的比例,精确率=预测为正例的样本中预测正确的比例)
本申请与传统分析工具的实验对比
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种基于混合分析检测安卓恶意软件方法,其特征在于,包括以下步骤,
S1.利用轻量级静态分析来获取入口点,利用关键词过滤掉非必要的踪迹,并将得到的结果传入动态分析;
S2.利用动态分析组件来跟踪隐私泄露的痕迹,动态分析组件包括一个带有污点分析功能的执行系统模块和一个仿真安卓运行时的模块,静态分析输入的踪迹进入动态分析组件之后,安卓包文件会被执行系统模块解析变成字节码指令,输入的踪迹用来定位敏感源所在的安卓组件作为动态分析的起点,利用污点分析功能模拟应用程序的运行,直到应用程序将敏感源的数据泄露出去为止,系统将敏感传输信息记录下来,用于下一步的分类;
S3.对应用程序进行分类。
2.根据权利要求1所述的一种基于混合分析检测安卓恶意软件方法,其特征在于,步骤S1中,静态分析底层框架使用soot,给安卓中的每个组件创建调用图,遍历调用图得到敏感源被调用的位置,即调用敏感源的API,加入到过滤器中,利用关键词过滤掉非必要的踪迹,踪迹是一个特定的API调用序列,从生命周期回调开始,以与敏感信息相关的API调用结束。
3.根据权利要求1所述的一种基于混合分析检测安卓恶意软件方法,其特征在于,步骤S2中,带有污点分析功能的执行系统模块是利用PATDroid修改后的Dalvik虚拟机版本直接解析安卓包文件并执行字节码指令;仿真安卓运行时的模块是利用DroidSafe中模拟安卓运行时的库进行修改,并增加了支持安卓的androidx包的函数。
4.根据权利要求1所述的一种基于混合分析检测安卓恶意软件方法,其特征在于,步骤S2中,污点分析模块中设定污染策略,来指定传播过程,具体为:设定指令“x=y binop z”中的一个操作数被污染,一个规则集x会被污染。
5.根据权利要求1所述的一种基于混合分析检测安卓恶意软件方法,其特征在于,步骤S2中,对安卓应用程序中的未知量进行模拟,以便覆盖更多的情况,解决路径覆盖率不高的问题。
6.根据权利要求5所述的一种基于混合分析检测安卓恶意软件方法,其特征在于,步骤S2中,引入快照功能,来处理未知量的不同情况,具体步骤为,
如果遇到未知的分支,将创建一个快照,以存储当前执行系统的状态,并将快照推到堆栈上,在本分支遍历完之后准确的返回当初的分叉点;
设定规则库来约束未知变量引起的路径爆炸问题,具体步骤为,
执行器会选择在循环下只执行一次未知量所在代码块的方式,并标记代码块中接受新值的所有变量;在运行代码块之后,标记的变量被象征性地建模,用于执行的其余部分。
7.根据权利要求5所述的一种基于混合分析检测安卓恶意软件方法,其特征在于,步骤S2中,对于应用程序使用Android和谷歌关键字来创建包名来逃避安全检测的行为,通过创建白名单,并将其导入Android和谷歌官方包,与当前的应用程序包的名称相比较。
8.根据权利要求1所述的一种基于混合分析检测安卓恶意软件方法,其特征在于,步骤S3中,对应用程序进行分类,包括机器学习模块,具体步骤为,
S31.机器学习模块接收由动态分析组件产生的流量,然后通过检测异常敏感流量作为分类问题来构建分类器,并使用监督学习方法决策树来训练分类器,将垃圾邮件检测的词袋模型对检测流量中URL进行操作,并使用某些字符作为分隔符将url划分为标记,每个不同的标记都被视为一个独立的特性;
S32.每个收集到的数据流被转换成一个二进制值向量,并使用流量分类,目标应用中不同代码路径产生的流量会指向同一个URL,将相同的URL连接合并为一个传输;
S33.对于收集到的传输,检查目标主机名,看其属于广告服务器还是恶意服务器,并将传输标记为非法,然后检查通过流量传递的纯文本内容,以防止服务器发送的消息是为了触发隐私数据的泄露。
9.根据权利要求8所述的一种基于混合分析检测安卓恶意软件方法,其特征在于,步骤S3中,
为了测试流量的传输是否合法,采用逆向工程方式拦截这些流量,并重新打包这些应用程序,如果这些应用程序的功能受到影响,那么将流量的传输标记为合法,如果应用程序没有受到影响,那么将流量的传输标记为非法传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210658786.0A CN114741698A (zh) | 2022-06-13 | 2022-06-13 | 一种基于混合分析检测安卓恶意软件方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210658786.0A CN114741698A (zh) | 2022-06-13 | 2022-06-13 | 一种基于混合分析检测安卓恶意软件方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114741698A true CN114741698A (zh) | 2022-07-12 |
Family
ID=82287952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210658786.0A Pending CN114741698A (zh) | 2022-06-13 | 2022-06-13 | 一种基于混合分析检测安卓恶意软件方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114741698A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104766012A (zh) * | 2015-04-09 | 2015-07-08 | 广东电网有限责任公司信息中心 | 基于动态污点追踪的数据安全动态检测方法及系统 |
US9811665B1 (en) * | 2013-07-30 | 2017-11-07 | Palo Alto Networks, Inc. | Static and dynamic security analysis of apps for mobile devices |
-
2022
- 2022-06-13 CN CN202210658786.0A patent/CN114741698A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9811665B1 (en) * | 2013-07-30 | 2017-11-07 | Palo Alto Networks, Inc. | Static and dynamic security analysis of apps for mobile devices |
CN104766012A (zh) * | 2015-04-09 | 2015-07-08 | 广东电网有限责任公司信息中心 | 基于动态污点追踪的数据安全动态检测方法及系统 |
Non-Patent Citations (2)
Title |
---|
HAO FU等: "LeakSemantic: Identifying abnormal sensitive network transmissions in mobile applications", 《IEEE INFOCOM 2017 - IEEE CONFERENCE ON COMPUTER COMMUNICATIONS》 * |
韩心慧等: "Android恶意广告威胁分析与检测技术", 《清华大学学报(自然科学版)》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yu et al. | Can we trust the privacy policies of android apps? | |
Snyder et al. | Most websites don't need to vibrate: A cost-benefit approach to improving browser security | |
US20130117855A1 (en) | Apparatus for automatically inspecting security of applications and method thereof | |
CN106203113A (zh) | 安卓应用文件的隐私泄露监控方法 | |
CN103473506A (zh) | 用于识别恶意apk文件的方法和装置 | |
CN111859380B (zh) | Android App漏洞的零误报检测方法 | |
CN105653946A (zh) | 基于组合事件行为触发的Android恶意行为检测系统及其检测方法 | |
Kang et al. | A secure-coding and vulnerability check system based on smart-fuzzing and exploit | |
De Groef et al. | Secure multi-execution of web scripts: Theory and practice | |
Li et al. | Large-scale third-party library detection in android markets | |
CN115552401A (zh) | 一种快应用检测方法、装置、设备及存储介质 | |
CN105760761A (zh) | 软件行为分析方法和装置 | |
Tang et al. | Detecting permission over-claim of android applications with static and semantic analysis approach | |
CN111177720B (zh) | 基于大数据生成威胁情报的方法、装置及可读存储介质 | |
Agarwal et al. | Vulnerability and transaction behavior based detection of malicious smart contracts | |
CN116932381A (zh) | 小程序安全风险自动化评估方法及相关设备 | |
CN107018152A (zh) | 消息拦截方法、装置和电子设备 | |
Yang et al. | {TRIDENT}: Towards Detecting and Mitigating Web-based Social Engineering Attacks | |
CN117272308A (zh) | 软件安全测试方法、装置、设备、存储介质及程序产品 | |
Awang et al. | Automated security testing framework for detecting SQL injection vulnerability in web application | |
CN114741700B (zh) | 基于符号化污点分析的公共组件库漏洞可利用性分析方法及装置 | |
CN114741698A (zh) | 一种基于混合分析检测安卓恶意软件方法 | |
Mostafa et al. | Netdroid: Summarizing network behavior of android apps for network code maintenance | |
Park et al. | Android adware detection using soot and CFG | |
CN110297854B (zh) | 一种app域名核验方法与系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220712 |
|
RJ01 | Rejection of invention patent application after publication |