CN106570394B - 一种检测恶意程序的方法 - Google Patents
一种检测恶意程序的方法 Download PDFInfo
- Publication number
- CN106570394B CN106570394B CN201610989174.4A CN201610989174A CN106570394B CN 106570394 B CN106570394 B CN 106570394B CN 201610989174 A CN201610989174 A CN 201610989174A CN 106570394 B CN106570394 B CN 106570394B
- Authority
- CN
- China
- Prior art keywords
- program
- tested
- installation package
- file
- programs
- 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.)
- Active
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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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
- 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/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种检测恶意程序的方法,包括步骤:使用静态方法提取待测主体安装包中未加密的可执行文件,并加入到第一集合;使用动态方法提取待测主体安装包运行之后释放的所有可执行文件,并加入到第一集合;对第一集合中的文件排重,获得第二集合;在安卓沙箱中安装执行待测主体安装包和第二集合的可执行文件,对待测主体安装包进行深度检测,并记录监控日志;分析监控日志,建立待测主体安装包中多个待测程序运行过程中的关联关系图、时序流程图和隐私数据流向图。本发明能快速准确检测出高级恶意程序运行后释放的所有程序,包括主体程序、插件化功能程序,进行多个程序并行深度检测,提高恶意程序检测的覆盖率和完整性,减小误判率。
Description
技术领域
本发明涉及软件检测领域,具体涉及一种检测恶意程序的方法。
背景技术
智能手机高速发展,Android平台恶意程序与日俱增。2016年***互联网发展情况及其安全报告显示中国境内活跃的智能手机达11.3亿部,其中运行Android***的智能手机高达78.9%。相关安全中心统计,2016年第一季度,Android平台新增恶意程序样本已达到339.6万个。随着检测技术的不断更新,恶意程序也越来越高级,表现为插件化、多程序协作、加壳加密、隐蔽性强、破坏力强、检测困难、无法卸载等特点。
目前,恶意程序的检测方法主要有两种:静态检测和动态检测。静态检测方法,原理是通过对APK安装包进行静态分析,包括配置文件的解析、反编译源码,解析出应用程序所使用权限对应的API函数作为恶意程序的特征,这种静态检测方法针对加密的恶意程序存在无法检测的问题。动态检测方法,原理是让程序在沙箱中安装运行,检测程序运行时是否调用了特定的API来评判是否包含恶意行为,这种动态检测方法检测到的程序运行代码覆盖率很低,主要取决于恶意行为触发的条件设定,这种触发恶意行为的条件往往是很困难的,针对插件化的程序特别是使用底层ELF代码实现的程序隐蔽性强更加难以发现。
综上所述,现有的恶意程序检测技术对检测高级恶意程序存在的普遍问题是程序覆盖率低、检测不完全、难以检测的问题,其中重要的原因是多程序协作才能触发恶意行为、触发条件难以模拟,恶意程序不仅是一个程序,它可能是多个程序,一个主体程序,还会释放其它程序来协作,怎么快速准确获取到一个主体恶意程序释放的其它程序以及多个程序并行深度检测是研究的空白区域。
发明内容
为此,本发明提供了一种检测恶意程序的方法以快速准确检测出高级恶意程序运行后释放的所有程序,包括主体程序、插件化功能程序,进行多个程序并行深度检测,提高恶意程序检测的覆盖率和完整性,减小误判率。
本发明的具体方案如下:
一种检测恶意程序的方法,包括步骤:
S1、使用静态方法提取待测主体安装包中未加密的可执行文件,并加入到第一集合中;
S2、使用动态方法提取待测主体安装包运行之后释放的所有可执行文件,并加入到第一集合中;
S3、对第一集合中的文件排重,获得第二集合;
S4、在安卓沙箱中安装执行待测主体安装包和第二集合的可执行文件,对待测主体安装包进行深度检测,并记录监控日志;
S5、分析监控日志,建立待测主体安装包中多个待测程序运行过程中的关联关系图、时序流程图和隐私数据流向图以分析待测主体安装包的恶意行为。
进一步的,所述的步骤S2具体包括:
S21、在安卓沙箱中对***目录文件生成第一哈希列表;
S22、安装并执行待测主体安装包;
S23、在安卓沙箱中再次对***目录文件生成第二哈希列表;
S24、比较并获取第一哈希列表和第二哈希列表的文件差异,并按规则标记差异文件的属性;
S25、将标记后的文件加入到第一集合中,该标记后的文件即安装包运行之后释放的所有可执行文件。
进一步的,所述的步骤S24并按规则标记差异文件的属性具体方法是:
若文件差异为新增安装包安装文件,则疑似释放新的插件程序;
若文件差异为新增***可执行文件,则疑似释放新的插件程序;
若文件差异为***可执行文件重命名,原文件替换为新文件,则疑似伪装***的程序;
若文件差异为待测主体安装包自动卸载,则疑似程序的载体。
进一步的,所述的步骤S4中对待测主体安装包进行深度检测包括:获取程序运行空间的进程信息、标记程序运行行为并记录对应的时间戳,所述的程序运行行为包括但不限于程序通信行为、隐私数据读取行为、隐私数据保存行为和隐私数据外发行为,所述的程序通信行为包括但不限于使用Http/Https协议、Socket协议、UDP协议、Smtp协议或Android内部的Intent通知协议,所述的隐私数据包括但不限于通讯录、短信、通话记录、邮件、浏览记录、App数据、图片、音频、视频的数据。
进一步的,所述的步骤S5中建立待测主体安装包中多个待测程序运行过程中的关联关系图的具体方法包括:
S51、获取待测程序的PID和对应的程序名称,并结合标记的属性构造第三哈希列表;
S52、将日志按PID和对应的行为构造第四哈希列表;
S53、过滤出步骤S51的第三哈希列表和步骤S52的第四哈希列表相同的PID,在所有运行的程序中筛选出可疑的程序集合,对程序进行标号,加上每个程序对应的行为构成程序之间的关联关系图。
进一步的,所述的步骤S5中建立待测主体安装包中多个待测程序运行过程中的程序时序流程图具体方法是:以时间为主轴,记录行为的时序。
本发明的有益效果是:
1、通过结合静态提取和动态提取的方法快速准确检测出一个程序扩散引申出的其它可疑程序。
2、在1的基础上对多程序并行深度检测,常见的检测方法仅支持对一个程序单独检测,容易存在漏判。
3、通过多程序之间的关联关系图、时序流图以及隐私数据的流向图更加直观的分析待测程序的恶意行为。
附图说明
图1为本发明的检测主体程序释放文件的流程图;
图2为本发明的深度检测的流程图;
图3为本发明的检测多程序之间的关联关系图;
图4为本发明检测出的多程序运行时的异常行为时序图;
图5 为本发明检测出的隐私数据短信数据流向图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。现结合附图和具体实施方式对本发明进一步说明。
高级恶意程序暴露在用户面前往往是一个APK的壳作为主体程序,运行后释放出其它附带程序,一般是功能插件,可伪装成***程序,或自动安装到***目录,获取更高的权限窃取用户的隐私数据,这些释放后的程序运行之后不会马上触发恶意行为,而是在特定条件下才会触发,如单个程序运行无法检测出,多程序协作才触发恶意行为,本发明能快速准确的动态检测到这些释放程序的集合,并进行多个程序并行深度检测,为定性恶意程序提供有效可靠的依据,可以大大减小误判率,具体包括如下步骤:
提取的程序集合为C。
一、使用静态分析方法提取主体APK中资源目录,如assets,raw目录的未加密的可执行程序,包括APK,DEX,ELF文件,放到集合C中;
二、使用沙箱动态提取方法提取主体APK运行之后释放的所有可执行程序,包括APK,DEX,ELF文件,放到集合C中;该流程如图1所示,具体步骤如下:
1、在Android沙箱***中,***可执行路径/system/bin、/system/xbin目录的所有可执行文件,***APK安装路径/system/framework、/system/app、/data/app目录的所有已安装的APK文件,针对每个文件做哈希,结果存放到一个列表A。
2、安装待测主体程序。
3、启动待测主体程序。
4、将***可执行路径/system/bin、/system/xbin目录的所有可执行文件,***APK安装路径/system/framework、/system/app、/data/app目录的所有已安装的APK文件,针对每个文件做哈希,结果存放到一个列表B。
5、比较哈希列表A和哈希列表B,提取出差异的文件,按照一定的规则对这些文件进行标记程序的属性:
a.新增APK安装文件:疑似释放新的插件程序P1
b.新增***可执行文件:疑似释放新的插件程序P2
c.***可执行文件重命名,原文件替换为新文件:疑似伪装***的程序P3
d.待测主体程序自动卸载:疑似程序的载体
6、针对步骤5标记的P1、P2、P3文件放入集合C。
三、对集合C排重,得到新的可执行程序集合D;
四、准备一个自编译的Android沙箱,模拟真实手机数据环境,安装运行主体APK和集合D中的程序,进行深度检测,记录监控日志;
五、分析监控日志,建立多个待测程序运行过程中的关联关系图、时序流程图和隐私数据流向图。
深度检测方法基于沙箱框架和底层HOOK监控技术获取程序运行空间的进程信息、程序通信行为、隐私数据读取、保存和外发行为分别进行标记,并记录对应的时间戳。其中程序通信行为包括使用Http/Https协议、Socket协议、UDP协议、Smtp协议或Android内部的Intent通知协议。隐私数据包括通讯录、短信、通话记录、邮件、浏览记录、App数据、图片、音频、视频等用户的数据,流程图如图2所示。
程序关联关系图的构建方法如下:
1、通过获取程序运行时的进程信息,得到待测程序的PID和对应的程序名称,与上面第二个步骤第5点标记的属性构造哈希表HA;
2、将所有日志按PID和对应的行为(包括程序通信行为或隐私数据读取和外发行为)构造哈希表HB;
3、过滤出步骤1的HA和步骤2的HB相同的PID,即可在所有运行的程序中筛选出可疑的程序集合,对程序进行标号,加上每个程序对应的行为构成程序之间的关联关系图,如图3所示;
程序时序流程图的构建方法为:以时间为主轴,记录行为的时序,每个行为对应程序标号,如图4所示。
隐私数据流向图的构建方法为:对隐私数据的读取、隐私数据的保存、隐私数据的外发分别进行标记,如图5所示。
通过深度检测构建关系图的方法更形象的说明恶意程序的各种异常行为,能有效的解决一些常见的检测***出现的误判、漏判问题。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (5)
1.一种检测恶意程序的方法,其特征在于,包括步骤:
S1、使用静态方法提取待测主体安装包中未加密的可执行文件,并加入到第一集合中,所述可执行文件包括APK,DEX,ELF文件;
S2、使用动态方法提取待测主体安装包运行之后释放的所有可执行文件,并加入到第一集合中;
S3、对第一集合中的文件排重,获得第二集合;
S4、在安卓沙箱中安装执行待测主体安装包和第二集合的可执行文件,对待测主体安装包进行深度检测,并记录监控日志;
S5、分析监控日志,建立待测主体安装包中多个待测程序运行过程中的关联关系图、时序流程图和隐私数据流向图以分析待测主体安装包的恶意行为;
建立关联关系图的具体方法包括:
S51、获取待测程序的PID和对应的程序名称,并结合标记的属性构造第三哈希列表;
S52、将日志按PID和对应的行为构造第四哈希列表;
S53、过滤出步骤S51的第三哈希列表和步骤S52的第四哈希列表相同的PID,在所有运行的程序中筛选出可疑的程序集合,对程序进行标号,加上每个程序对应的行为构成程序之间的关联关系图。
2.根据权利要求1所述的检测恶意程序的方法,其特征在于,所述的步骤S2具体包括:
S21、在安卓沙箱中对***目录文件生成第一哈希列表;
S22、安装并执行待测主体安装包;
S23、在安卓沙箱中再次对***目录文件生成第二哈希列表;
S24、比较并获取第一哈希列表和第二哈希列表的文件差异,并按规则标记差异文件的属性;
S25、将标记后的文件加入到第一集合中,该标记后的文件即安装包运行之后释放的所有可执行文件。
3.根据权利要求2所述的检测恶意程序的方法,其特征在于,所述的步骤S24并按规则标记差异文件的属性具体方法是:
若文件差异为新增安装包安装文件,则疑似释放新的插件程序;
若文件差异为新增***可执行文件,则疑似释放新的插件程序;
若文件差异为***可执行文件重命名,原文件替换为新文件,则疑似伪装***的程序;
若文件差异为待测主体安装包自动卸载,则疑似程序的载体。
4.根据权利要求1所述的检测恶意程序的方法,其特征在于,所述的步骤S4中对待测主体安装包进行深度检测包括:获取程序运行空间的进程信息、标记程序运行行为并记录对应的时间戳,所述的程序运行行为包括但不限于程序通信行为、隐私数据读取行为、隐私数据保存行为和隐私数据外发行为,所述的程序通信行为包括但不限于使用Http/Https协议、Socket协议、UDP协议、Smtp协议或Android内部的Intent通知协议,所述的隐私数据包括但不限于通讯录、短信、通话记录、邮件、浏览记录、App数据、图片、音频、视频的数据。
5.根据权利要求1所述的检测恶意程序的方法,其特征在于,所述的步骤S5中建立待测主体安装包中多个待测程序运行过程中的程序时序流程图具体方法是:以时间为主轴,记录行为的时序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610989174.4A CN106570394B (zh) | 2016-11-10 | 2016-11-10 | 一种检测恶意程序的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610989174.4A CN106570394B (zh) | 2016-11-10 | 2016-11-10 | 一种检测恶意程序的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106570394A CN106570394A (zh) | 2017-04-19 |
CN106570394B true CN106570394B (zh) | 2021-04-16 |
Family
ID=58541069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610989174.4A Active CN106570394B (zh) | 2016-11-10 | 2016-11-10 | 一种检测恶意程序的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106570394B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107395650B (zh) * | 2017-09-07 | 2020-06-09 | 杭州安恒信息技术股份有限公司 | 基于沙箱检测文件识别木马回连方法及装置 |
CN107967426B (zh) * | 2017-11-27 | 2020-07-03 | 华中科技大学 | 一种Linux内核数据攻击的检测方法、防御方法及*** |
CN108123937B (zh) * | 2017-12-13 | 2020-09-29 | 广州泰尔智信科技有限公司 | 监管移动终端应用的多线程监测方法及*** |
CN109101815B (zh) * | 2018-07-27 | 2023-04-07 | 平安科技(深圳)有限公司 | 一种恶意软件检测方法及相关设备 |
CN113064601B (zh) * | 2019-12-30 | 2024-06-25 | Oppo广东移动通信有限公司 | 动态加载文件的确定方法、装置、终端及存储介质 |
CN112860550A (zh) * | 2021-02-01 | 2021-05-28 | 北京小米移动软件有限公司 | 一种检测应用隐私项的方法、装置及存储介质 |
CN112948824B (zh) * | 2021-03-31 | 2022-04-26 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私保护的程序通信方法、装置及设备 |
CN113778877A (zh) * | 2021-09-10 | 2021-12-10 | 中金金融认证中心有限公司 | 检测应用程序安装包的方法和其相关产品 |
CN114173346B (zh) * | 2021-12-01 | 2024-04-12 | 恒安嘉新(北京)科技股份公司 | 恶意程序监测***的覆盖检测方法、装置、设备及介质 |
CN114928476A (zh) * | 2022-04-27 | 2022-08-19 | 北京天融信网络安全技术有限公司 | 目标文件的安全性检测方法及检测装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9245125B2 (en) * | 2014-02-27 | 2016-01-26 | Nec Laboratories America, Inc. | Duleak: a scalable app engine for high-impact privacy leaks |
CN104598824B (zh) * | 2015-01-28 | 2016-04-06 | 国家计算机网络与信息安全管理中心 | 一种恶意程序检测方法及其装置 |
CN105205397B (zh) * | 2015-10-13 | 2018-10-16 | 北京奇安信科技有限公司 | 恶意程序样本分类方法及装置 |
CN106055479B (zh) * | 2016-06-01 | 2019-03-01 | 中国科学院信息工程研究所 | 一种基于强制执行的Android应用软件测试方法 |
-
2016
- 2016-11-10 CN CN201610989174.4A patent/CN106570394B/zh active Active
Non-Patent Citations (2)
Title |
---|
Android Malware Detection Based on Static Analysis of Characteristic Tree;Qi Li etc.;《2015 International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery》;20151029;全文 * |
基于权限分析的Android 隐私数据泄露动态检测方法;高岳等;《信息网络安全》;20140228;第2014年卷(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106570394A (zh) | 2017-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106570394B (zh) | 一种检测恶意程序的方法 | |
JP6228966B2 (ja) | マルウェアを検出するコンピューティングデバイス | |
US9953162B2 (en) | Rapid malware inspection of mobile applications | |
Cahyani et al. | Forensic data acquisition from cloud‐of‐things devices: windows Smartphones as a case study | |
Sharma et al. | Malicious application detection in android—a systematic literature review | |
US10198574B1 (en) | System and method for analysis of a memory dump associated with a potentially malicious content suspect | |
Barmpatsalou et al. | A critical review of 7 years of Mobile Device Forensics | |
Sato et al. | Detecting android malware by analyzing manifest files | |
CN104715196B (zh) | 智能手机应用程序的静态分析方法及*** | |
JP6188956B2 (ja) | マルウェア検出検査方法及び装置 | |
US9158915B1 (en) | Systems and methods for analyzing zero-day attacks | |
WO2015120752A1 (zh) | 网络威胁处理方法及设备 | |
US20130122861A1 (en) | System and method for verifying apps for smart phone | |
US20150047034A1 (en) | Composite analysis of executable content across enterprise network | |
WO2017012241A1 (zh) | 文件的检测方法、装置、设备及非易失性计算机存储介质 | |
Luoshi et al. | A3: automatic analysis of android malware | |
KR20170096451A (ko) | 악성앱 동적 행위 분석 방법 및 장치 | |
CN109783316B (zh) | ***安全日志篡改行为的识别方法及装置、存储介质、计算机设备 | |
CN109815702B (zh) | 软件行为的安全检测方法、装置及设备 | |
KR101345740B1 (ko) | 활성 포렌식 기술을 이용한 연관성 분석 기반 악성코드 탐지 시스템 | |
CN107729748B (zh) | 一种描述文件在沙箱中运行轨迹图的方法 | |
Jang et al. | Function‐Oriented Mobile Malware Analysis as First Aid | |
KR101270497B1 (ko) | 모바일 악성코드 자동 수집 및 분석 시스템 | |
CN115552401A (zh) | 一种快应用检测方法、装置、设备及存储介质 | |
Verma et al. | Preserving dates and timestamps for incident handling in android smartphones |
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 |