CN107944270B - 一种可验证的安卓恶意软件检测系统及方法 - Google Patents

一种可验证的安卓恶意软件检测系统及方法 Download PDF

Info

Publication number
CN107944270B
CN107944270B CN201711263967.9A CN201711263967A CN107944270B CN 107944270 B CN107944270 B CN 107944270B CN 201711263967 A CN201711263967 A CN 201711263967A CN 107944270 B CN107944270 B CN 107944270B
Authority
CN
China
Prior art keywords
verification
submitted
android
suspicious
analyzer
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
Application number
CN201711263967.9A
Other languages
English (en)
Other versions
CN107944270A (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.)
Jinan University
Original Assignee
Jinan University
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 Jinan University filed Critical Jinan University
Priority to CN201711263967.9A priority Critical patent/CN107944270B/zh
Publication of CN107944270A publication Critical patent/CN107944270A/zh
Application granted granted Critical
Publication of CN107944270B publication Critical patent/CN107944270B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种可验证的安卓恶意软件检测系统及方法,该系统包括安卓应用源数据初始化过滤模块、可疑代码报警器模块和恶意代码验证模块,安卓应用源数据初始化过滤模块首先对安卓应用源数据初始化过滤和特征生成;可疑代码报警器模块发现可疑的恶意代码通过警报器标记;恶意代码验证模块用验证器验证安卓恶意软件及其恶意代码。本发明实现自动地检测由病毒检测服务平台的门户网站提交的数据流是否含有恶意代码,以及由系统提供的API接口提交的文件里是否含有恶意代码,并实现识别技术给予验证,该发明可发现安卓恶意应用开发者提交的安卓恶意代码,并通过有效的验证技术提高恶意代码检测的准确率。

Description

一种可验证的安卓恶意软件检测系统及方法
技术领域
本发明涉及安卓恶意代码检测技术领域,具体涉及一种可验证的安卓恶意软件检测系统及方法。
背景技术
Android恶意代码随着Android应用市场的日益壮大呈井喷式发展的势头。由于Android系统底层技术平台的开放性,允许第三方应用便捷开发,容易被不法分子通过对原生移动应用的文件名、UI界面等高度模仿后,植入恶意代码,篡改安卓应用程序App,并再次重新打包发布到移动应用市场。一旦用户安装了这些应用App,很有可能造成隐私泄露、恶意扣费、远程控制、购物欺诈等危害。
恶意软件的病毒检测服务平台是一个用户随时随地提交Android程序数据流,并且得到扫描检测结果的平台。随着越来越多的用户使用病毒检测服务平台提交程序数据进行全方位的扫描检测,在提交的海量样本中,既有非恶意软件开发者的正常提交,也有专业的恶意代码开发者为了测试恶意软件规避能力的提交,极有可能利用病毒检测服务平台作为恶意软件传播之前的测试通道。恶意软件开发者提交的恶意软件,并非法修改平台返回的报告,或者故意屏蔽恶意代码的检测结果。若能在恶意软件得到传播之前,识别可疑的恶意应用提交者并发现新的恶意代码开发模型,作为新型恶意代码的变种被报警,将能大大减少恶意代码传播的危害。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种可验证的安卓恶意软件检测系统及方法。
根据公开的实施例,本发明的第一方面公开了一种可验证的安卓恶意软件检测系统,所述的检测系统包括源数据初始化过滤器模块、可疑代码警报模块和恶意代码验证模块;
其中,所述的源数据初始化过滤器模块以提交者通过网站或者系统API提交的安卓应用源数据为输入,以分布式计算框架作数据清洗和重新封装,初步筛选出可疑的安卓应用,包括样本提交相关的结构信息及特征向量;
所述的可疑代码警报模块以筛选出的安卓应用数据及相关信息为输入,将所有的可疑安卓应用数据下载到分布式计算框架的训练分类器,执行深层次分析从可疑的的安卓应用数据中发现并定位出恶意代码,输出可疑代码的结果报告;
所述的恶意代码验证模块对可疑代码作详细分析,在分布式计算框架中为APP安装包分析组件、APP功能函数分析组件和视图相似性分析组件建立多个并行样本分析任务,对每个提交的数据流作安装包分析、静态相似性分析和动态相似性分析,根据验证规则计算结果。
进一步地,所述的恶意代码验证模块包括安装包分析器、静态分析器、动态分析器、验证器,其中,所述的安装包分析器、所述的静态分析器、所述的动态分析器分别同步提取每个样本的安装包信息、功能函数静态代码和动态行为信息,然后生成验证文件,将所有验证文件和中间分析结果收集并解析后提交到验证器中,以根据多个验证文件进行对可疑提交者的决策。
根据公开的实施例,本发明的第二发明公开了一种可验证的安卓恶意软件检测方法,所述的检测方法包括下列步骤:
S1、源数据初始化过滤器模块对源数据进行预过滤和特征生成,以提交者通过病毒检测服务平台的网站或者检测系统API接口提交的数据为输入预过滤处理后,进行数据重新封装,筛选后得到关于每个样本提交的相关结构信息,其中结构信息包括样本SampleID、时间戳、国家,生成用户UserID,来自同一提交者的多次提交形成一系列的安卓应用数据流,并按提交的时间戳给予排序;
S2、可疑代码警报模块以源数据初始化过滤模块输入的数据流为输入,经过训练分类器输出可疑代码报告,将提交流实时分为可疑或正常,发现有新的数据流提交时,首先检查用户UserID是否存在于用户及恶意特征数据库中,如果存在,则从该用户UserID加载所有先前提交的数据流记录,然后计算它们的特征向量,训练分类器将来自每个用户UserID提交数据的所有字段计算出数据的特征向量,并从提交数据的字段中提取一组派生特征;
S3、在可疑代码警报模块将提交数据流标记为可疑后,恶意代码验证模块分析来自可疑用户UserID的所有样本文件,部署安装包分析器、静态分析器、动态分析器提取每个样本的安装包信息、功能函数静态代码和动态行为信息进行恶意代码行为分析;
S4、解析多个验证属性,对可疑代码验证属性进行计算,生成各种验证文件,收集验证文件和中间分析结果,最终提交到验证器中,以根据多个验证文件进行决策,依据样本相似性对可疑代码分组,并形成最终验证的结果。
进一步地,所述的步骤S4包括:
S401、设安装包分析结果集合P={P1,P2,P3,P4},且V(Pm)∈{0,1},为所述的安装包分析器及其验证属性设定规则:
安卓应用安装包分析器包括4个验收属性,
验证属性P1:安卓应用安装包APK中的所有文件的时间戳与提交的时间戳之间的方差,当安卓应用不被病毒检测平台测试通过,开发人员需要时间去修改和分发新的应用,即属性P1值V(P1)=0,如果所有文件的时间戳与提交的时间戳小于一阈值,那么属性P1的值V(P1)=1;
验证属性P2:提交的样本应用时间戳之间的方差,当用户ID提交的样本应用具有许多相同的时间戳时,即恶意应用开发者很有可能同时生产不同版本的安卓应用,则验证属性V(P2)=1,否则属性V(P2)=0;
验证属性P3:安装包APK中的所有文件的时间戳方差,当安卓安装包APK中的所有文件时间戳完全相同时,则验证属性V(P3)=1,否则属性V(P3)=0;
验证属性P4:安卓应用使用的签名证书分析比较,如果提交的数据流中一组安卓应用使用相同的签名证书,则验证属性V(P4)=1,如果不同的签名证书,则属性V(P4)=0;
四个验证属性中,只要存在一个验证属性值为1,那么该安装包分析器就判断提交的数据流存在可疑的恶意代码;
S402、设静态分析结果集合Q={Q1,Q2},
Figure BDA0001494210880000041
且V(Qn)∈{0,1},为所述的静态分析器及其验证属性设定规则:静态分析器应用两个验证办法并生成验证属性,首先用视图图形同构方法来计算安卓应用UI结构的相似性,生成验证属性Q1,如果提交的应用样本数据流之间的图形相似度系数大于或等于设定的阈值ξ,即可判断提交数据流的一组应用具有类似的UI结构,则验证属性V(Q1)=1,否则属性V(Q1)=0,然后使用静态分析工具分析控制流图生成验证属性Q2,如果提交流中的一组安卓应用拥有类似的控制流,相似度系数大于或等于阈值ξ,则验证属性V(Q2)=1,反之,若安卓应用的程序控制流比较结果低于阈值ξ,则验证属性V(Q2)=0;
S403、设动态分析结果集合R={R0},V(Ro)∈{0,1},为所述的动态分析器及其验证属性设定规则:基于动态分析工具分析各种可疑的安卓API,借助系统调用和代码加载行为等动态特征,以此计算安卓应用样本之间的动态行为相似性,生成验证属性Ro,如果提交的数据流的一对安卓应用样本具有动态行为相似性,相似性大于或等于阈值ξ,则验证属性V(Ro)=1,应用样本之间的动态行为相似度低于阈值ξ,则验证属性V(Ro)=0,若动态分析器的两个验证属性中,只要存在一个验证属性值为1,那么该动态分析器就判断提交的数据流存在可疑的恶意代码;
S404、在提交的数据流生成所有验证属性后,基于它们做出验证结果,验证结果M由以下公式计算:
M::=P×Q×R={(Pm,Qn,Ro)|Pm∈P∧Qn∈Q∧Ro∈R}
每个提交的数据流都经过三种不同分析器给予验证,在验证属性之间的计算关系使用或,即:V(P)=V(P1)∨V(P2)∨V(P3)∨V(P4),V(Q)=V(Q1)∨V(Q2),V(R)=V(Ro),因此只要分析器内的任何一个规则被验证,提交的样本数据流将被暂定为可疑的恶意代码,而安装包分析器,静态分析器,动态分析器三种不同分析器之间是与关系,也就是说三种分析器同时确认样本应用存在恶意代码后,用户UserID被确认为安卓恶意应用开发者,其提交的数据流完整确认存在恶意代码。
进一步地,所述的样本SampleID由检测根据样本的配置文件自动生成。
进一步地,所述的用户UserID首先由检测系统为提交者生成唯一身份用户UserID,如果检测系统无法生成用户UserID,利用病毒检测服务平台导出的IP地址用来生成用户ID,否则,将根据用户帐户配置文件生成用户UserID。
进一步地,用户提交的安卓应用数据流中,每次提交样本由用户UserID、样本SampleID和提交时间戳进行唯一标识。
进一步地,所述的步骤S2中根据每个用户UserID提交的数据流计算其特征向量,然后训练分类器基于整个数据流的特征向量来判断用户UserID的可疑性。
本发明相对于现有技术具有如下的优点及效果:
1、本发明不再像传统的检测方法和工具一样通过分析代码的序列特征或者行为特征作检测,而是基于多种检测分析器,通过安装包分析、图形相似度匹配及动态检测等多种方法进行异常检测和分类检测,提高了安卓恶意代码检测和分类的准确性。
2、本发明从恶意软件制造者角度出发,自动检测恶意应用及其代码,综合验证,能对新型恶意代码作出快速检测报告和分类,可追查恶意软件制造者,有效应对恶意软件及其代码的演变、传播。
附图说明
图1是本发明公开的一种可验证的安卓恶意软件检测系统结构图;
图2是本发明公开的一种可验证的安卓恶意软件检测方法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图1所示,本实施例公开了一种可验证的安卓恶意软件检测系统,包括安卓应用源数据初始化过滤器模块、可疑代码警报模块和恶意代码验证模块。
源数据初始化过滤器模块:以提交者通过网站或者系统API提交的数据为输入,作数据清洗和重新封装,初步筛选出可疑的安卓应用,包含样本提交相关的结构信息及特征向量,但不包括详细的程序代码分析。
可疑代码警报模块:以筛选出的安卓应用数据及相关信息为输入,将所有的可疑安卓应用数据下载到训练分类器,执行更深层次分析从这些可疑的数据中发现并定位出恶意代码,输出可疑代码的结果报告。
恶意代码验证模块:对可疑代码作详细分析,并行对每个提交的数据流作安装包分析、静态相似性分析和动态相似性分析,根据验证规则计算结果。
实施例二
如图2所示,本实施例公开了一种可验证的安卓恶意软件检测方法,包括以下步骤:
S1、对源数据进行预过滤和特征生成,以提交者通过病毒检测服务平台的网站或者检测系统API接口提交的数据为输入预过滤处理后,进行数据重新封装,筛选后得到关于每个样本提交的相关结构信息(如样本SampleID、时间戳、国家等),但不包括代码分析细节,样本SampleID由检测根据样本的配置文件自动生成。检测系统为提交者生成唯一身份用户UserID,如果检测系统无法生成用户UserID,利用病毒检测服务平台导出的IP地址用来生成用户ID。否则,将根据更详细的用户帐户配置文件生成用户UserID。来自同一提交者的多次提交形成一系列的安卓应用数据流,并按提交的时间给予排序。用户提交的安卓应用数据流中,有可能是同一样本的多次提交,每次提交样本由(UserID,SampleID,提交时间戳)唯一地标识。
S2、以源数据初始化过滤器输入的数据流为输入,经过训练分类器输出可疑代码报告,将提交流实时分为可疑或正常。发现有新的数据流提交时,首先检查用户UserID是否存在于用户及恶意特征数据库中,如果存在,则从该用户UserID加载所有先前提交的数据流记录,然后计算它们的特征向量(FV)。分类器将来自每个用户UserID提交数据的所有字段计算出数据的特征向量,并从提交数据的字段中提取一组派生特征。每个用户UserID提交的数据流计算其特征向量。分类器将基于整个数据流的特征向量而不是任何单个数据的特征来判断用户UserID的可疑性。
S3、在可疑代码警报模块将提交数据流标记为可疑后,分析来自可疑用户UserID的所有样本文件。部署三类分析器(安装包分析器、静态分析器、动态分析器)提取每个样本的安装包信息、功能函数静态代码和动态行为信息进行恶意代码行为分析。
S4、解析多个验证属性,对可疑代码验证属性进行计算,生成各种验证文件。收集验证文件和中间分析结果,最终提交到检测系统的验证器中,以根据多个验证文件进行决策。对样本相似性对可疑代码分组,并形成最终验证的结果。
实施例三
本实施例公开的一种可验证的安卓恶意软件检测系统根据提交的安卓应用配置信息和动态生成的随机值来生成唯一的哈希值,作为提交者的用户UserID。为从病毒检测服务平台上海量的数据流式提交中发现恶意代码,用分布式计算框架解析每个提交者的元数据和特征生成,并在用户及恶意特征数据库中生成新的特征以便更新数据库中旧特征集。在分布式计算框架中训练分类器,当使用新的特征集处理新提交的样本时,在特征集上运行新训练的模型并触发可疑代码警报模块,可疑代码警报模块发出警报后,在分布式计算框架中为安装包分析、方法分析和视图相似性分析等多个分析组件建立多个并行样本分析任务。筛选出的可疑安卓应用数据流,在对每个可疑数据流进行所有组件的静态相似性分析和动态相似性分析后,将所有分布节点的结果聚合到单个节点以根据验证规则计算验证结果。
实施例四
本实施例公开了一种可验证的安卓恶意软件检测方法,具体包括以下步骤:
S1、对源数据进行预过滤和特征生成,提交的源数据进行过滤得到关于每个样本提交的相关信息(如样本SampleID、时间戳、国家等),但不包括代码分析细节,样本SampleID由检测根据样本的配置文件自动生成。检测系统为提交者生成唯一身份用户UserID,如果检测系统无法生成用户UserID,利用病毒检测服务平台导出的IP地址用来生成用户ID。否则,将根据更详细的用户帐户配置文件生成用户UserID。来自同一提交者的多次提交形成一系列的安卓应用数据流,并按提交的时间给予排序。用户提交的安卓应用数据流中,有可能是同一样本的多次提交,每次提交样本由(UserID,SampleID,提交时间戳)唯一地标识。
S2、经过检测系统的轻量级分类器输出数据流的可疑代码报告,将提交的数据流文件实时分为可疑或正常,可疑则报警。发现有新的数据提交时,首先检查用户UserID是否存在于用户及恶意特征数据库中,如果存在,则从该用户UserID加载所有先前提交的数据流记录,然后计算它们的特征向量(FV)。分类器将来自每个用户UserID提交数据的所有字段计算出数据的特征向量,并从提交数据的字段中提取一组派生特征。每个用户UserID提交的数据流计算其特征向量。分类器将基于整个数据流的特征向量而不是任何单个数据的特征来判断用户UserID的可疑性。
S3、分析来自步骤S2的所有可疑样本。当用户提交的数据流中大多数样本的提交时间晚于病毒检测服务平台上首次出现的时间戳时,即此用户提交的大多数样本在此之前已经被其他用户提交到病毒检测服务平台上,记录为重复提交,已被检测完毕并标记这个数据流不是可疑的恶意代码。此外,某些安卓应用构建工具在编译期间使用自动命名方案,如果提交的数据流中,某样本的文件名包含编译器生成的可疑关键字(例如,text,debug,signed,aligned等),则该样本被认为是可疑的。如果提交的数据流中包含可疑标签,比如网络标记via-tor,那么检测系统标记它是可疑的。由于恶意软件编写者通常专注于一小组文件类型(例如,Android apk,dex或elf),如果提交的数据流包含许多不同类型的可执行文件样本或不同的文件类型样本,所以检测系统标记它们为正常。可疑代码警报模块最后标记出可疑的用户及可疑的恶意样本。
S4、在可疑代码警报模块将提交数据流标记为可疑后,分析来自可疑用户UserID的所有样本文件。检测系统部署三种分析器提取每个样本的安装包信息、功能函数静态代码和动态行为信息,然后生成各种验证文件。然后,所有这些验证文件和中间分析结果被收集,解析并最终提交到可疑提交者验证器中,以根据多个验证文件进行决策。
S401、设安装包分析结果集合P={P1,P2,P3,P4},
Figure BDA0001494210880000101
且V(Pm)∈{0,1},为所述的恶意代码验证模块中的安装包分析器及其验证属性设定规则:安卓应用安装包分析器包括4个验收属性,验证属性P1:安卓应用安装包APK中的所有文件的时间戳与提交的时间戳之间的方差。正常情况下,安卓应用不被病毒检测平台测试通过,一般的开发人员需要时间去修改和分发新的应用,即属性P1值为0。如果所有文件的时间戳与提交的时间戳非常接近,那么属性P1的值V(P1)=1,也就是说这是非常有利的证据说明专业的恶意应用开发者才会如此迅速地改变文件并提交到检测平台多次测试。验证属性P2:提交的样本应用时间戳之间的方差。正常情况下,用户开发不同版本的安卓应用需要时间,向检测平台提交测试时间截然不同。当用户ID提交的样本应用具有许多相同的时间戳时,即恶意应用开发者很有可能同时生产不同版本的安卓应用,则验证属性V(P2)=1,否则属性V(P2)=0。验证属性P3:安装包APK中的所有文件的时间戳方差。当安卓安装包APK中的所有文件时间戳完全相同时,则验证属性V(P3)=1,否则属性V(P3)=0。验证属性P4:安卓应用使用的签名证书分析比较,如果提交的数据流中一组安卓应用使用相同的签名证书,则验证属性V(P4)=1,如果不同的签名证书,则属性V(P4)=0。四个验证属性中,只要存在一个验证属性值为1,那么该安装分析器就判断提交的数据流存在可疑的恶意代码。
S402、设静态分析结果集合Q={Q1,Q2},
Figure BDA0001494210880000111
且V(Qn)∈{0,1},为所述的恶意代码验证模块中的静态分析器及其验证属性设定规则:静态分析器应用两个验证办法并生成验证属性,首先用视图图形同构方法来计算安卓应用UI结构的相似性,生成验证属性Q1。如果提交的应用样本数据流之间的图形相似度系数大于或等于设定的阈值ξ,即可判断提交数据流的一组应用具有类似的UI结构,则验证属性V(Q1)=1,否则属性V(Q1)=0。然后并使用静态分析工具分析控制流图生成验证属性Q2,如果提交流中的一组安卓应用拥有类似的控制流,相似度系数大于或等于阈值ξ,则验证属性V(Q2)=1;反之,若安卓应用的程序控制流比较结果低于阈值ξ,则则验证属性V(Q2)=0。
S403、所述的恶意代码验证模块还设置了动态分析器,设动态分析结果集合R={R0},V(Ro)∈{0,1},为所述的恶意代码验证模块中的动态分析器及其验证属性设定规则:基于动态分析工具分析各种可疑的安卓API,借助系统调用和代码加载行为等动态特征,以此计算安卓应用样本之间的动态行为相似性,生成验证属性Ro。如果提交的数据流的一对安卓应用样本具有动态行为相似性,相似性大于或等于阈值ξ,则验证属性V(Ro)=1;应用样本之间的动态行为相似度低于阈值ξ,则验证属性V(Ro)=0。若动态分析器的两个验证属性中,只要存在一个验证属性值为1,那么该动态分析器就判断提交的数据流存在可疑的恶意代码。
S404、在为提交流生成所有验证属性后,可以基于它们做出验证结果。验证结果M由以下公式计算。
M::=P×Q×R={(Pm,Qn,Ro)|Pm∈P∧Qn∈Q∧Ro∈R}
每个提交的数据流都经过三种不同分析器给予验证,在验证属性之间的计算关系使用或(而不是与),即:V(P)=V(P1)∨V(P2)∨V(P3)∨V(P4),V(Q)=V(Q1)∨V(Q2),V(R)=V(Ro)。因此只要分析器内的任何一个规则被验证,提交的样本数据流将被暂定为可疑的恶意代码。而安装包分析器,静态分析器,动态分析器三种不同分析器之间是与关系,也就是说三种分析器同时确认样本应用存在恶意代码后,用户UserID可被确认为安卓恶意应用开发者,其提交的数据流完整确认存在恶意代码。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (5)

1.一种可验证的安卓恶意软件检测系统,其特征在于,所述的检测系统包括源数据初始化过滤器模块、可疑代码警报模块和恶意代码验证模块;
其中,所述的源数据初始化过滤器模块以提交者通过网站或者系统API提交的安卓应用源数据为输入,以分布式计算框架作数据清洗和重新封装,初步筛选出可疑的安卓应用,包括样本提交相关的结构信息及特征向量;
所述的可疑代码警报模块以筛选出的安卓应用数据及相关信息为输入,将所有的可疑安卓应用数据下载到分布式计算框架的训练分类器,执行深层次分析从可疑的安卓应用数据中发现并定位出恶意代码,输出可疑代码的结果报告;
所述的恶意代码验证模块对可疑代码作详细分析,在分布式计算框架中为APP安装包分析组件、APP函数功能分析组件和视图相似性分析组件建立多个并行样本分析任务,对每个提交的数据流作安装包分析、静态相似性分析和动态相似性分析,根据验证规则计算结果;
所述的恶意代码验证模块包括安装包分析器、静态分析器、动态分析器、验证器,其中,所述的安装包分析器、所述的静态分析器、所述的动态分析器分别同步提取每个样本的安装包信息、功能函数静态代码和动态行为信息,然后生成验证文件,将所有验证文件和中间分析结果收集并解析后提交到验证器中,以根据多个验证文件进行对可疑提交者的决策;
所述系统进行安卓恶意软件检测方法包括:
S1、源数据初始化过滤器模块对源数据进行预过滤和特征生成,以提交者通过病毒检测服务平台的网站或者检测系统API接口提交的数据为输入预过滤处理后,进行数据重新封装,筛选后得到关于每个样本提交的相关结构信息,其中结构信息包括样本SampleID、时间戳、国家,生成用户UserID,来自同一提交者的多次提交形成一系列的安卓应用数据流,并按提交的时间戳给予排序;
S2、可疑代码警报模块以源数据初始化过滤器模块输出的数据流为输入,经过训练分类器输出可疑代码报告,将提交流实时分为可疑或正常,发现有新的数据流提交时,首先检查用户UserID是否存在于用户及恶意特征数据库中,如果存在,则从该用户UserID加载所有先前提交的数据流记录,然后计算它们的特征向量,训练分类器将来自每个用户UserID提交数据的所有字段计算出数据的特征向量,并从提交数据的字段中提取一组派生特征;
S3、在可疑代码警报模块将提交数据流标记为可疑后,恶意代码验证模块分析来自可疑用户UserID的所有样本文件,部署安装包分析器、静态分析器、动态分析器提取每个样本的安装包信息、功能函数静态代码和动态行为信息进行恶意代码行为分析;
S4、解析多个验证属性,对可疑代码验证属性进行计算,生成各种验证文件,收集验证文件和中间分析结果,最终提交到验证器中,以根据多个验证文件进行决策,依据样本相似性对可疑代码分组,并形成最终验证的结果;
S401、设安装包分析结果集合P={P1,P2,P3,P4},
Figure FDA0002272770200000021
且V(Pm)∈{0,1},为所述的安装包分析器及其验证属性设定规则:
安卓应用安装包分析器包括4个验证属性:
验证属性P1:安卓应用安装包APK中的所有文件的时间戳与提交的时间戳之间的方差,当安卓应用不被病毒检测平台测试通过,开发人员需要时间去修改和分发新的应用,即属性P1值V(P1)=0,如果所有文件的时间戳与提交的时间戳小于一阈值,那么属性P1的值V(P1)=1;
验证属性P2:提交的样本应用时间戳之间的方差,当用户ID提交的样本应用具有许多相同的时间戳时,即恶意应用开发者很有可能同时生产不同版本的安卓应用,则验证属性V(P2)=1,否则属性V(P2)=0;
验证属性P3:安装包APK中的所有文件的时间戳方差,当安卓安装包APK中的所有文件时间戳完全相同时,则验证属性V(P3)=1,否则属性V(P3)=0;
验证属性P4:安卓应用使用的签名证书分析比较,如果提交的数据流中一组安卓应用使用相同的签名证书,则验证属性V(P4)=1,如果不同的签名证书,则属性V(P4)=0;
四个验证属性中,只要存在一个验证属性值为1,那么该安装包分析器就判断提交的数据流存在可疑的恶意代码;
S402、设静态分析结果集合Q={Q1,Q2},
Figure FDA0002272770200000031
且V(Qn)∈{0,1},为所述的静态分析器及其验证属性设定规则:静态分析器应用两个验证办法并生成验证属性,首先用视图图形同构方法来计算安卓应用UI结构的相似性,生成验证属性Q1,如果提交的应用样本数据流之间的图形相似度系数大于或等于设定的阈值ξ,即可判断提交数据流的一组应用具有类似的UI结构,则验证属性V(Q1)=1,否则属性V(Q1)=0,然后使用静态分析工具分析控制流图生成验证属性Q2,如果提交流中的一组安卓应用拥有类似的控制流,相似度系数大于或等于阈值ξ,则验证属性V(Q2)=1,反之,若安卓应用的程序控制流比较结果低于阈值ξ,则验证属性V(Q2)=0;
S403、设动态分析结果集合R={R0},V(Ro)∈{0,1},为所述的动态分析器及其验证属性设定规则:基于动态分析工具分析各种可疑的安卓API,借助系统调用和代码加载行为等动态特征,以此计算安卓应用样本之间的动态行为相似性,生成验证属性Ro,如果提交的数据流的一对安卓应用样本具有动态行为相似性,相似性大于或等于阈值ξ,则验证属性V(Ro)=1,应用样本之间的动态行为相似度低于阈值ξ,则验证属性V(Ro)=0,若动态分析器的两个验证属性中,只要存在一个验证属性值为1,那么该动态分析器就判断提交的数据流存在可疑的恶意代码;
S404、在提交的数据流生成所有验证属性后,基于它们做出验证结果,验证结果M由以下公式计算:
M::=P×Q×R={(Pm,Qn,Ro)|Pm∈P∧Qn∈Q∧Ro∈R}
每个提交的数据流都经过三种不同分析器给予验证,在验证属性之间的计算关系使用或,即:V(P)=V(P1)∨V(P2)∨V(P3)∨V(P4),V(Q)=V(Q1)∨V(Q2),V(R)=V(Ro),因此只要分析器内的任何一个规则被验证,提交的样本数据流将被暂定为可疑的恶意代码,而安装包分析器,静态分析器,动态分析器三种不同分析器之间是与关系,也就是说三种分析器同时确认样本应用存在恶意代码后,用户UserID被确认为安卓恶意应用开发者,其提交的数据流完整确认存在恶意代码。
2.根据权利要求1所述的可验证的安卓恶意软件检测系统,其特征在于,所述的样本SampleID由检测根据样本的配置文件自动生成。
3.根据权利要求1所述的可验证的安卓恶意软件检测系统,其特征在于,所述的用户UserID首先由检测系统为提交者生成唯一身份用户UserID,如果检测系统无法生成用户UserID,利用病毒检测服务平台导出的IP地址用来生成用户ID,否则,将根据用户帐户配置文件生成用户UserID。
4.根据权利要求1所述的可验证的安卓恶意软件检测系统,其特征在于,用户提交的安卓应用数据流中,每次提交样本由用户UserID、样本SampleID和提交时间戳进行唯一标识。
5.根据权利要求1所述的可验证的安卓恶意软件检测系统,其特征在于,所述的步骤S2中根据每个用户UserID提交的数据流计算其特征向量,然后训练分类器基于整个数据流的特征向量来判断用户UserID的可疑性。
CN201711263967.9A 2017-12-05 2017-12-05 一种可验证的安卓恶意软件检测系统及方法 Active CN107944270B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711263967.9A CN107944270B (zh) 2017-12-05 2017-12-05 一种可验证的安卓恶意软件检测系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711263967.9A CN107944270B (zh) 2017-12-05 2017-12-05 一种可验证的安卓恶意软件检测系统及方法

Publications (2)

Publication Number Publication Date
CN107944270A CN107944270A (zh) 2018-04-20
CN107944270B true CN107944270B (zh) 2020-02-07

Family

ID=61944767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711263967.9A Active CN107944270B (zh) 2017-12-05 2017-12-05 一种可验证的安卓恶意软件检测系统及方法

Country Status (1)

Country Link
CN (1) CN107944270B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109376534B (zh) * 2018-09-26 2022-08-12 百度在线网络技术(北京)有限公司 用于检测应用的方法和装置
CN109858249B (zh) * 2019-02-18 2020-08-07 暨南大学 移动恶意软件大数据的快速智能比对和安全检测方法
CN109871681B (zh) * 2019-02-28 2023-04-18 天津大学 基于混合分析面向动态代码加载安卓恶意软件检测方法
CN111865910A (zh) * 2020-06-09 2020-10-30 北京邮电大学 一种针对应用恶意代码检测与定位的方法
CN112784270A (zh) * 2021-01-18 2021-05-11 仙境文化传媒(武汉)有限公司 一种使用注解方式加载代码文件的系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593613A (zh) * 2013-11-26 2014-02-19 北京网秦天下科技有限公司 用于计算机病毒检测的方法、终端、服务器和系统
CN104933366A (zh) * 2015-07-17 2015-09-23 成都布林特信息技术有限公司 一种移动终端应用程序处理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367685B2 (en) * 2014-09-30 2016-06-14 Juniper Networks, Inc. Dynamically optimizing performance of a security appliance

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593613A (zh) * 2013-11-26 2014-02-19 北京网秦天下科技有限公司 用于计算机病毒检测的方法、终端、服务器和系统
CN104933366A (zh) * 2015-07-17 2015-09-23 成都布林特信息技术有限公司 一种移动终端应用程序处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Android Malware Development on Public Malware Scanning Platforms: A Large-scale Data-driven Study;Heqing Huang et al;《IEEE International Conference on Big Data》;20161231;第2节第1-5段、第3节第2-6、13-23段、第4节第1、5段,图2-3 *

Also Published As

Publication number Publication date
CN107944270A (zh) 2018-04-20

Similar Documents

Publication Publication Date Title
CN107944270B (zh) 一种可验证的安卓恶意软件检测系统及方法
US11295341B2 (en) Systems and methods for monitoring malicious software engaging in online advertising fraud or other form of deceit
CN108595955B (zh) 一种安卓手机恶意应用检测系统及方法
CN105653956B (zh) 基于动态行为依赖图的Android恶意软件分类方法
US8935794B2 (en) Verifying application security vulnerabilities
CN104751056A (zh) 一种基于攻击库的漏洞验证系统与方法
CN103927483A (zh) 用于检测恶意程序的判定模型及恶意程序的检测方法
CN111447224A (zh) web漏洞扫描方法及漏洞扫描器
Nguyen et al. Detecting repackaged android applications using perceptual hashing
CN112115326B (zh) 一种以太坊智能合约的多标签分类和漏洞检测方法
Li et al. Large-scale third-party library detection in android markets
Pirch et al. Tagvet: Vetting malware tags using explainable machine learning
CN116186716A (zh) 一种面向持续集成部署的安全分析方法及装置
CN108959922B (zh) 一种基于贝叶斯网的恶意文档检测方法及装置
CN114372519A (zh) 模型训练方法、api请求过滤方法、装置和存储介质
CN115730320A (zh) 一种安全级别确定方法、装置、设备及存储介质
CN117272308A (zh) 软件安全测试方法、装置、设备、存储介质及程序产品
Zaber et al. A framework for automated evaluation of security metrics
Ban et al. A Survey on IoT Vulnerability Discovery
CN106506526B (zh) 一种应用识别结果的验证方法及系统
CN110297854B (zh) 一种app域名核验方法与系统
CN113239353B (zh) 基于内容差分的容器软件安全性检测系统及方法
Periyasamy et al. Prediction of future vulnerability discovery in software applications using vulnerability syntax tree (PFVD-VST).
Adebiyi et al. Security Assessment of Software Design using Neural Network
Peruma et al. Understanding the relationship between quality and security: a large-scale analysis of Android applications

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