一种基于文件访问动态监控的Android恶意应用检测方法及系统的制作方法

文档序号:10594481阅读:403来源:国知局
一种基于文件访问动态监控的Android恶意应用检测方法及系统的制作方法【专利摘要】本发明涉及一种基于文件访问动态监控的Android恶意应用检测方法及系统,利用动态加载内核模块技术修改Android内核;点击应用的不同组件,收集运行过程中的所有文件访问操作,形成原始文件访问记录INI及其属性值;以文件访问周期为单位做整理,形成整理后的文件PRE及其属性值;定制文件访问策略集S,Q,U,S表示无时序策略集,Q表示单文件时序策略集,U表示多文件时序策略集,判别是否触发敏感行为,最终判断是否为恶意应用。【专利说明】-种基于文件访问动态监控的Android恶意应用检测方法及系统
技术领域
[0001]本发明设及一种An化Oid恶意应用动态检测方法,确切的说,设及一种基于Linux内核文件访问规则的恶意行为检测方法,属于信息安全
技术领域
。【
背景技术
】[0002]随着现有的Android智能终端的普及,人们对An化Oid智能终端的依赖性快速增强,基于终端的应用日益多样化同时也更加难W掌控。大量的终端软件和应用也意味着大量的安全风险,针对终端设备的各类攻击从2004年之后就开始出现。目前Amlroid智能终端面临的安全威胁和安全风险主要包括=个方面:一是自身系统和软件的漏桐;二是恶意软件(病毒,木马等);=是出现违反国家法律的内容和服务。具体可能存在的安全隐患包括:个人隐私泄露,个人身份盗用,应用程序安全,位置定位,手机病毒,信息窃取,存在安全漏桐的业务等。[0003]国内外针对Android系统恶意程序的检测跟防护主要有两种,即静态代码分析和动态行为分析。其中静态代码分析主要是通过Google等提供的开源工具,从恶意程序中提取若干具有特征性的代码作为描述恶意行为的表现形式,并依靠该方法构建起病毒库来防范恶意程序。静态代码分析虽然简单高效,但是具有较大滞后性,并且要鉴别隐藏或者尚未发作的恶意程序无能为力。动态行为分析方面,国内的联想的乐安全W及LBE团队研发的LBE手机安全大师通过研究An化Oid系统的组织架构和应用程序行为特征,实现API拦截的主动防御功能,是目前动态行为分析方面的侵侵者,但监控和防御的方位也仅限于对应用的进程外部行为监控,并且对于更改SO库的文件与更改执行时更改.dex文件的恶意应用无可奈何。[0004]综上所述,An化Oid应用在人们的生活中发挥着重要的作用,而An化Oid恶意应用软件检测的方法还不够成熟,为此,如何全面有效的对Amlroid恶意应用软件进行检测就成为业内科研人员所关注的新课题。【
发明内容】[0005]鉴于此,本发明的一个目的是提供一种基于文件访问动态监控的Amlroid恶意应用检测方法,通过修改Amlroid内核源码使得应用在Amlroid手机上运行时可W输出相应的文件访问信息列表,将该列表与策略集相比对最终判断是否触发敏感行为,进而判断是否为恶意应用。从而达到监控敏感文件的修改,删除,W及各种敏感行为所设及到的文件操作。[0006]本发明的另一个目的在于提供一种细粒度的Amlroid恶意应用检测系统。该系统主要对目前Android应用动态检测方法做功能W及能力上的补充增强,弥补其不能检测.dex文件修改W及SO库文件恶意代码注入的不足。将监控点部署在内核层的文件操作相关的系统调用上,使得恶意代码利用代码混淆,重打包W及恶意代码注入等方式都无法逃过内核层的检测,从而提高检出率。[0007]为了达到上述目的,本发明采用如下技术方案一一基于文件访问动态监控的An化Oid恶意应用检测方法,包括如下步骤:[000引步骤SOl:基于An化Oid内核结构,利用动态加载内核模块技术化oadableKernelModule,LKM)加载修改过的文件系统,更换原系统调用列表,使待测应用在运行过程受到监控,得到修改过的An化0id内核;[0009]步骤S02:定制文件访问策略集S,Q,U,S表示无时序策略集,Q表示单文件访问时序策略集,U表示多文件访问时序策略集;[0010]步骤S03:在步骤SOl修改过的Android内核上运行待测应用,点击应用的不同组件,收集运行过程中的所有文件访问操作,形成原始文件访问记录INI及其属性值;[0011]步骤S04:对形成的原始文件访问记录INI,进行初步的数据清洗,将无用的文件操作去除,得到去噪后的INI'文件,W保证文件系统的运行效率;[0012]步骤S05:将去噪后的INI'按照文件访问周期整理,形成新的记录文件PRE及其属性值;[0013]步骤S06:将步骤S05整理后的记录文件PRE与步骤S02制定的文件访问策略集S,Q,U匹配,判别是否触发敏感行为,最终判断是否为恶意应用,若判定文件PRE匹配文件访问策略集S,Q,U中的任意一条,则认为该应用触发了敏感行为,为恶意应用,否则认为该应用为安全应用。[0014]所述步骤SOl中动态加载内核模块技术的步骤如下:[00巧](1.1)找到[0016]sys_open(),sys_close(),sys_read(),sys_write(),sys_unlink()运五个系统调用在原系统调用列表中的入口地址;sys_open(),sys_close(),sys_read(),sys_w;rite(),sys_unlink()分别表示打开文件,关闭文件,读文件,写文件,删除文件;[0017](1.2)将步骤(1.1)所找到的入口地址保存,即为运五个系统调用的旧入口地址;[0018](1.3)将自定义新的函数所对应的入口地址写入原系统调用列表中步骤(1.2)所保存的位置处。至此原系统调用列表就被替换。[0019]所述步骤S02中定制的文件访问策略集S,Q,姆日下:[0020](2.1)无时序策略集S[0021]S={si,S2,...Sm...}[0022]其中任意策略Sm表示为如下二元组形式:[0023]Sm=<MalBehaviorName,Rules)[0024]MalBehaviorName为策略匹配成功后,待测应用携带的恶意行为的名称,Rules为原子级匹配规则r的无序集合,其中r可表示为如下=元组形式:[00巧]r=<SubjectP;rocess,ObjectFile,OpTypes〉[00%]其中Subjec巧rocess为进程主体,代表某一进程名,ObjectFiIe为文件客体,代表文件名称的正则表达式,可与an化Oid文件系统中的各文件绝对路径匹配,代表一个文件集,OpType为文件访问操作集合,其形式为{^create,touch,modify,delete}四种操作集合的一个非空子集,其中create表示新建一个文件目录,touch表示打开已有文件但未更改,modify表示打开已有文件并更改,delete表示删除文件。[0027]每一条规则r表示的意思为,待测应用执行期间,根据底层监控,如果发现存在某个进程主体Subjec1:P;rocess采用OpTypes中的任意一种操作方式,操作了ObjectFiIes对应的文件集合中的任意一个文件,则认为该应用触发了规则r。[00%]策略Sm表示的意思为,待测应用执行期间,触发了其规则集合Rules中的每一条规则r,贝认为该应用携带了恶意行为MalBehaviorName.[0029](2.2)单文件时序策略集Q[0030]Q={qi,q2,...qm,...}[0031]其中任意策略qm表示为一个二元组,形式化如下:[0032]qm=<MalBehaviorName,Qrules>[0033]MalBehavio如ame为策略匹配成功后,认为待测应用携带的恶意行为的名称,化Ules为原子级时序规则qr的集合,其中qr由四元组形式化表示:[0034]qr=<SubjectProcess,ObjectFile,OpTypes,Pset>[00巧]其中Subjec巧rocess为进程主体,ObjectFiIe为文件客体,OpType为文件访问操作集合,定义同S中的原子级匹配规则r"Pset为一个谓词集合,其中的每一个谓词P(opduration,t)为关于操作持续时间opduration和某个时间常量t的谓词,表示操作持续时间的一个时间约束。如Pset={opdurations巧US,opduration。Ous}中的两个谓词公式opdurations〉加Sopduration<10us都为真时表示操作持续时间opduration大于5微秒,且小于10微秒。[0036]每一条规则qr表示的意思为,待测应用执行期间,根据底层监控,如果发现存在某个进程主体Subjec1:P;rocess采用opTypes中的任意一种操作方式,操作了ObjectFiIes对应的文件集合中的任意一个文件,且操作持续时间满足Pset中的所有谓词公式约束,则认为该应用触发了规则qr。[0037]单文件时序策略qm表示的意思为,待测应用执行期间,触发了其规则集合qrules中的每一条规则qr,贝认为该应用携带了恶意行为Ma1BehaViorName.[003引(2.3)多文件时序策略集U[0039]U={ui,U2,...Um...}[0040]其中任意策略Um表示为二元组形式:[0041]Um=<MalBehaviorName,Urules>[0042]MalBehavio如ame为策略匹配成功后,认为待测应用携带的恶意行为的名称,化Ules为一条原子级多文件时序匹配规则的集合{u;ri,ur2,...uri,...},化Ules中的任意一条原子级多文件时序匹配规则形式化表示为一个=元组:[0043]uri=<ri,r2,DPset>[0044]其中ri,n为两条原子级匹配规则,其定义同S中原子级匹配规则r"DPset为一个谓词集合,其中的每一个谓词P为关于操作持续时间〇pdurationl,opduration2,操作开始时间opstartl,ops^d2,操作结束时间opstopl,opstop2中的一个或多个变量与某个时间常量t的谓词,表示ri,n相关操作持续时间之间的一个时间约束。[0045]如:DPset={opstartKopstarts,opcIosel〉opclose2,opsta;rt2-〇pstartKIOus,[0046]opclose2-〇pclosel<10us,opdurationl〉20us,opduration〉20us}中含有6个谓词公式其都为真时表示存在某一ri类型操作,和一个n类型操作,满足W下约束:[0047]opsta;rtl<opsta;rt2:;ri文件操作开始的时间opstartl早于r2文件操作开始时间opstart2[004引opclosel〉opclose2Ji文件操作结束的时间opstartl早于r2文件操作结束时间opstart2[0049]ops1:a;rt2-〇psta;rtl<l0us:;ri文件操作开始后IOus内T2文件操作才开始[00加]opclose2-〇pclosel<10us:;ri文件操作结束后IOus内T2文件操作便结束[0051]〇pdurationD5sJi文件操作持续时间长于5s[0052]opduration2巧S:r2文件操作持续时间长于5s[0053]每一条规则uri表示的意思为,待测应用执行期间,根据底层监控,如果发现存在某个ri类型操作,和一个K类型操作,他们各自的操作持续时间满足DPset中的所有谓词公式约束,则认为该应用触发了规则uri。[0054]策略Um表示的意思为,待测应用执行期间,触发了其规则集合化Ules中的每一条规则uri,则认为该应用携带了恶意行为MalBehaviorName。[0055]所述步骤S03中原始文件访问记录INI的过程如下:[0056](3.1)原始文件访问记录INI的基本形式如下:[0057]INI=ITi,T2...Ti..[005引其中Tl为任意一条文件操作记录;[0059](3.2)为步骤(1.1)中形成的原始文件访问记录INI基本形式配置属性,Tl是一个八元组形式,表示如下:[0060]Ti=<Type,FileName,Time,Pid,PidName,Mode,Fd,Md5>[0061]其中Type为文件操作类型,其语法可表示为如下形式:[0062]Type={0pen|CloseiReadlWrite!DeleteICreate}[0063]选择五种操作中的任意一个,Open表示打开文件,Close表示关闭文件,Read表示读取文件,Write表示写文件,Delete表示删除文件,化eate表示创建新文件。[0064]FileName表示被访问的文件名称,形式为/一级目录/二级目录/...[0065]Time表示访问时间,精确到秒[0066]Pid表示操作文件的进程号[0067]PidName表示进程名称,指某一进程号对应的进程名称[006引Mode表示文件打开方式,语法形式如下:Mode={0I!0}其中mode=0表示该文件为已有文件,mode=!0时表示该文件为新建文件[0069]Fd表示文件描述符,是文件操作过程中的唯一标识[0070]Md5表示当前文件对应的一个哈希值。[0071]所述步骤S05中周期文件PRE,形式化如下:其中Pi表示任意一条周期记录:[0072]PRE=IPi,P2...Pi..[0073]对周期文件PRE配置属性:[0074]其中Pi表示任意一条周期记录,其具体内容可W表示为一个六元组,如下:[0075]Pi=kPidName,cFiIeName,cType,cSl:a;rt,cStop,cDuration}[0076]cPidName表示进程名称[0077]cFiIeName表示被访问的文件名称[0078]cType={deleteIcreateImodifyItouch}表示在运个文件访问周期中设及的文件操作。create表示在文件访问周期内某进程新建了一个文件,touch表示在文件访问周期内,某进程打开一个已有的文件但未做修改,modify表示在文件访问周期内,某进程打开一个已有文件并做了修改,可通过判断该周期中open与close操作时文件的MD5值是否相同来判定是否修改,若不同认为进程更改了该文件.delete表示在文件访问周期内,某进程删除了文件。[0079]〇5*曰的表示文访问件周期开始的时间,即该周期中open操作的时间[0080]CStop表示文件访问周期结束的时间,即该周期中close操作的时间[0081]cDuration表示该进程对某一文件操作的持续时间,即cStop-cStart[0082]本发明还提出了基于文件访问动态监控的Android恶意应用检测系统,如图1所示,包括:[0083]内核加载模块,用于将修改过的文件模块加载到内核,为运行待测应用准备测试环境,即基于Android内核结构,利用动态加载内核模块技术化oadableKernelModule,LKM)加载修改过的文件系统,更换原系统调用列表,使待测应用在运行过程受到监控,得到修改过的Amlroid内核;[0084]策略定制模块,用于定制文件操作策略集S,Q,U,S表示无时序策略集,Q表示单文件时序策略集,U表示多文件时序策略集。[0085]数据分析模块,在内核加载模块修改过的手机上运行待测应用,记录待测应用运行过程中的所有文件操作记录,整理,形成INI文件与PRE文件,包括数据收集,数据清洗,数据规整S个步骤;将在内核加载模块修改过的Amlroid内核上运行待测应用,点击应用的不同组件,收集运行过程中的所有文件访问操作,形成原始文件访问记录INI及其属性值;对形成的原始文件访问记录INI,进行初步的数据清洗,将无用的文件操作去除,得到去噪后的原始文件访问记录INI,W保证文件系统的运行效率;将去噪后的原始文件访问记录INI记录W文件访问周期为单位做整理,形成整理后的文件PRE及其属性值;[0086]策略判定模块,将数据分析模块形成整理后的文件PRE与策略定制模块所制定的文件访问策略集S,Q,U匹配,判别是否触发敏感行为,最终判断是否为恶意应用,若判定文件PRE匹配文件访问策略集S,Q,U中的任意一条,则认为该应用触发了敏感行为,为恶意应用,否则认为该应用为安全应用。[0087]所述INI与PRE是Amlroid系统维护在内存的数据结构,会随着组件的运行动态变化,除了记录文件操作自身结构之外,还记录文件操作的访问时间、打开方式各项属性值。[0088]本发明与现有技术相比的优点在于:[0089](1)本发明中修改了内核文件操作相关的系统调用,使得任何形式恶意代码注入(如SO库注入等)都无法绕过该方法的监控。与传统技术相比,运种方法可W更加全面,准确的检测是否有恶意行为触发。从而提高检出率[0090](2)在数据分析模块中,本发明W文件访问周期作为单位对文件记录进行整理,可W快速有效的将凌乱的文件记录做整合,从而提高检测效率,来保证测试的完整性。【附图说明】[0091]图I为本发明实施例基于文件访问动态监控的Amlroid恶意应用检测系统示意图;[0092]图2为本发明实施例中基于文件访问动态监控的Amlroid恶意应用检测方法流程示意图。【具体实施方式】[0093]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,可W理解的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0094]如图2所示,是本发明实施例基于文件访问动态监控的Amlroid恶意应用检测方法流程示意图。现将例举实施例,对本发明的方法进行详细的说明,本发明的基于文件访问动态监控的Amlroid恶意应用检测方法主要设及W下六个环节:[0095]步骤SOl:基于Android内核结构,利用动态加载内核模块化oadableKernelModule,LKM)技术加载修改过的文件系统,更换系统调用列表,使待测在应用运行过程受到监控。因为An化Oid内核是基于Linux设计的所W可W借用已经成熟的Linux动态加载模块的方法为Android内核加载所需的内核模块.而sys_open(),sys_close(),sys_read(),sys_write〇,sys_unlink〇运五个系统调用作为访问文件资源的唯一入口,如果被截获将对判断待测应用的文件访问行为其着重要的作用。1.在111(3111(16/373/3730311.11文件中找到W上五个函数对应的入口地址。2.保存sys_call_table[X]的旧入口指针(X代表所想要截获的系统调用号)。3.将自定义的新的函数指针存入sys_call_table[x]。至此原系统调用就被目标系统调用替代。4.利用make命令编译新模块,产生编译完会产生若干新的文件:module.komodule.mod.cmodule.mod.omodule_helIo.omodules。其中module-hello.ko即为所需。5.用命令sudoinsmodmodule.ko插入模块,用命令dmesg可W查看内核环缓冲.[0096]步骤S02:定制文件访问策略集S,Q,U[0097]下面对目前收集到的策略集S做简单介绍,同时策略集不仅限于此。[0098]表1原子级匹配规则r[00991[01001[0101]其中数据窃取类还包括窃取手机版本号,apk列表信息,银行卡账号等信息,恶意传输类还包括连接网络,更改网络配置等此处不一一列举。[0102]表2策略集S[01031[0104]对于单文件时序策略集Q,W获取蓝牙信息与GI^信息举例。[0105]表3原子级时序规则qr[0106][0[0[0[0[0[0[0[0[0115]此策略中还包含获取各种隐私信息,如通话记录,联系人号码等信息后,通过短信,邮件等方式发送出去。此处不一一列举。[0116]步骤S03:在步骤SOl修改过的An化Oid内核上运行待测应用,点击应用不同组件,收集运行过程中的所有文件访问操作,形成原始文件访问记录INI。如表7所示:[0117]表7INI文件示例[01191[0120]步骤S04:基于步骤S03形成的原始文件访问记录INI,进行初步的数据清洗,将无用的文件操作去除,W保证系统的运行效率形成文件INI'。根据实验,W及查阅资料,可W去除的文件有:Filename=/dev/urandom/%","Finename=/usb/%","Finename=/battery/%'',"Finename=/acct/uid/,"Finename=/dev/ashmen/%'',"Finename=/lib/%"O[0121]对比表7发现文件记录T6属于噪声,需要被删除。[0122]步骤S05:基于步骤S04去噪后的文件,将文件记录W文件访问周期为单位做整理,在文件访问周期中,Fd,Fi1eName,PidNameS个参数相同。形成整理后的文件PRE。[0123]整理INI文件发现Tl与T4打开的是同一个文件且fd相同,T2,T3,T5操作的是同一个文件且fd相同。同时比较Tl与T4对应的MD5值发现相同,T2与巧对应的MD5值发现不相同,则形成原始文件访问记录PRE,如下:[0124]表8PRE文件示例[0125][01%]步骤S06:将步骤S05新形成的PRE文本与步骤S02制定的策略集S,Q,U匹配,判别是否触发敏感行为,最终判断是否为恶意应用。若判定PRE文件匹配策略集S,Q,U中的任意一条,则认为该应用触发了敏感行为,为恶意应用。否则认为其为安全应用。[0127]将PRE与策略集S,Q,U匹配发现Pl触发了S策略集中的敏感行为:上传信息。因此,该应用为恶意应用。[0128]提供W上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。【主权项】1.一种基于文件访问动态监控的Android恶意应用检测方法,其特征在于包括如下步骤:步骤SOl:基于Android内核结构,利用动态加载内核模块技术(LoadableKernelModuIe,LKM)加载修改过的文件系统,更改Android原生系统的系统调用列表,使待测应用在运行过程受到监控,得到修改过的Android内核;步骤S02:定制文件访问策略集S,Q,U,其中S表示无时序策略集,Q表示单文件访问时序策略集,U表示多文件访问时序策略集;步骤S03:在步骤SOl修改过的Android内核上运行待测应用,点击应用的不同组件,收集运行过程中的所有文件访问操作,形成原始文件访问记录INI及其属性值;步骤S04:对形成的原始文件访问记录INI,进行初步的数据清洗,将无用的文件操作去除,得到去噪后的ΙΝΓ文件,以保证文件系统的运行效率;步骤S05:将去噪后的ΙΝΓ按照文件访问周期整理,形成整理后的记录文件PRE及其属性值;步骤S06:将步骤S05整理后的记录文件PRE与步骤S02制定的文件访问策略集S,Q,U匹配,判别是否触发敏感行为,最终判断是否为恶意应用,若判定文件PRE匹配文件访问策略集S,Q,U中的任意一条,则认为该应用触发了敏感行为,为恶意应用,否则认为该应用为安全应用。2.根据权利要求1所述的基于文件访问动态监控的Android恶意应用检测方法,其特征在于:所述步骤SOl中动态加载内核模块技术的实现步骤如下:(11)找到sys_open(),sys_close(),sys_read(),sys_write(),sys_unlink()这五个系统调用函数在原系统调用列表中的入口地址;sys_open(),sys_close(),sys_read(),sys_write(),sys_unlink()分别表示打开文件,关闭文件,读文件,写文件,删除文件;(12)将步骤(11)所找到的入口地址保存,即为这五个系统调用的旧入口地址;(13)将自定义新的函数所对应的入口地址写入原系统调用列表中步骤(12)所保存的位置处,至此原系统调用列表就被替换。3.根据权利要求1所述的基于文件访问动态监控的Android恶意应用检测方法,其特征在于:所述步骤S02中定制的文件访问策略集S,Q,U如下:(21)无时序策略集SS-{SI,S2,...Sm···}其中任意策略8?表示为如下二元组形式:Sm=<MalBehaviorName,Rules)MalBehaviorName为策略匹配成功后,待测应用携带的恶意行为的名称,Rules为原子级匹配规则r的无序集合,其中r表示为如下三元组形式:r=〈SubjectProcess,0bjectFile,0pTypes>其中SubjectProcess为进程主体,代表某一进程名,ObjectFiIe为文件客体,代表文件名称的正则表达式,可与android文件系统中的各文件绝对路径匹配,代表一个文件集,OpType为文件访问操作集合,其形式为{create,touch,modify,delete}四种操作集合的一个非空子集,其中create表示新建一个文件目录,touch表示打开已有文件但未更改,modify表示打开已有文件并更改,delete表示删除文件每一条规则r表示的意思为,待测应用执行期间,根据底层监控,如果发现存在某个进程主体SubjectProcess采用OpTypes中的任意一种操作方式,操作了ObjectFiles对应的文件集合中的任意一个文件,则认为该应用触发了规则r;策略Sm表示的意思为,待测应用执行期间,触发了其规则集合Rules中的每一条规则r,则认为该应用携带了恶意行为MalBehaviorName;(22)单文件时序策略集QQ-{Ql,Q2,...Qm,...}其中任意策略qm表示为一个二元组,形式化如下:qm=<MaIBehaviorName,QruIes>MalBehaviorName为策略匹配成功后,认为待测应用携带的恶意行为的名称,Qrules为原子级时序规则qr的集合,其中qr由四元组形式化表示:qr=〈SubjectProcess,ObjectFiIe,OpTypes,Pset>其中SubjectProcess为进程主体,ObjectFiIe为文件客体,OpType为文件访问操作集合,定义同S中的原子级匹配规则r;Pset为一个谓词集合,其中的每一个谓词P(opduration,t)为关于操作持续时间opduration和某个时间常量t的谓词,表示操作持续时间的一个时间约束;每一条规则qr表示的意思为,待测应用执行期间,根据底层监控,如果发现存在某个进程主体SubjectProcess采用opTypes中的任意一种操作方式,操作了ObjectFiles对应的文件集合中的任意一个文件,且操作持续时间满足Pset中的所有谓词公式约束,则认为该应用触发了规则qr;单文件时序策略啦表示的意思为,待测应用执行期间,触发了其规则集合qrules中的每一条规则qr,则认为该应用携带了恶意行为MalBehaviorName.(23)多文件时序策略集UU={ui,U2,...Um...}其中任意策略Um表示为二元组形式:Um=<MalBehaviorName,Urules>MalBehaviorName为策略匹配成功后,认为待测应用携带的恶意行为的名称,Urules为一条原子级多文件时序匹配规则的集合{uri,ur2,...uri,...},Urules中的任意一条原子级多文件时序匹配规则形式化表示为一个三元组:uri=<ri,Γ2,DPset>其中两条原子级匹配规则,其定义同S中原子级匹配规则^DPset为一个谓词集合,其中的每一个谓词P为关于操作持续时间opdurationI,opduration2,操作开始时间opstartl,opstart2,操作结束时间opstopl,opstop2中的一个或多个变量与某个时间常量t的谓词,表示ri,r2相关操作持续时间之间的一个时间约束;每一条规则表示的意思为,待测应用执行期间,根据底层监控,如果发现存在某个η类型操作,和一个^类型操作,他们各自的操作持续时间满足DPset中的所有谓词公式约束,则认为该应用触发了规则im;策略um表示的意思为,待测应用执行期间,触发了其规则集合Urules中的每一条规则uri,则认为该应用携带了恶意行为MalBehaviorNameο4.根据权利要求1所述的基于文件访问动态监控的Android恶意应用检测方法,其特征在于:所述步骤S03中原始文件访问记录INI的过程如下:(31)原始文件访问记录INI的基本形式如下:INI={Ti,T2...Τι..其中Ti为任意一条文件操作记录;(32)为步骤(31)中形成的原始文件访问记录INI基本形式配置属性,1\是一个八元组形式,表示如下:Ti=〈Type,FileName,Time,Pid,PidName,Mode,Fd,Md5>其中Type为文件操作类型,其语法可表示为如下形式:Type={Open|Close|Read|Write|Delete}选择五种操作中的任意一个,Open表示打开文件,Close表示关闭文件,Read表示读取文件,Write表示写文件,Delete表示删除文件;FiIeName表示被访问的文件名称,形式为/一级目录/二级目录/...Time表示访问时间,精确到秒Pid表示操作文件的进程号PidName表示进程名称,指某一进程号对应的进程名称Mode表示文件打开方式,语法形式如下:Mode={0I!0}其中mode=0表示该文件为已有文件,mode=!0时表示该文件为新建文件Fd表示文件描述符,是文件操作过程中的唯一标识Md5表示当前文件对应的一个哈希值。5.根据权利要求1所述的基于文件访问动态监控的Android恶意应用检测方法,其特征在于:所述步骤S05中周期文件PRE,形式化如下:其中Pk为表示任意一条周期记录;所述步骤S05中周期文件PRE,形式化如下:其中^表示任意一条周期记录PRE={Pi,P2...Pi...}对周期文件PRE配置属性:其中^表示任意一条周期记录,其具体内容可以表示为一个六元组,如下:Pi={cPidName,cFileName,cType,cStart,cStop,cDuration}cPidName表示进程名称cFiIeName表示被访问的文件名称cType={deleteIcreate|modifyItouch}表示在这个文件访问周期中涉及的文件操作,create表示在文件访问周期内某进程新建了一个文件,touch表示在文件访问周期内,某进程打开一个已有的文件但未做修改,modify表示在文件访问周期内,某进程打开一个已有文件并做了修改,可通过判断该周期中open与close操作时文件的MD5值是否相同来判定是否修改,若不同认为进程更改了该文件,delete表示在文件访问周期内,某进程删除了文件;cStart表示文访问件周期开始的时间,即该周期中open操作的时间cStop表示文件访问周期结束的时间,即该周期中close操作的时间cDuration表示该进程对某一文件操作的持续时间,即cStop-cStart。6.-种基于文件访问动态监控的Android恶意应用检测系统,其特征在于包括:内核加载模块,用于将修改过的文件模块加载到内核,为运行待测应用准备测试环境,即基于Android内核结构,利用动态加载内核模块技术(LoadabIeKerneIModuIe,LKM)加载修改过的文件系统,更换原系统调用列表,使待测应用在运行过程受到监控,得到修改过的Android内核;策略定制模块,用于定制文件操作策略集S,Q,U,S表示无时序策略集,Q表示单文件时序策略集,U表示多文件时序策略集;数据分析模块,在内核加载模块修改过的手机上运行待测应用,记录待测应用运行过程中的所有文件操作记录,整理,形成INI文件与PRE文件,包括数据收集,数据清洗,数据规整三个步骤;将在内核加载模块修改过的Android内核上运行待测应用,点击应用的不同组件,收集运行过程中的所有文件访问操作,形成原始文件访问记录INI及其属性值;对形成的原始文件访问记录INI,进行初步的数据清洗,将无用的文件操作去除,得到去噪后的原始文件访问记录INI,以保证文件系统的运行效率;将去噪后的原始文件访问记录INI记录以文件访问周期为单位做整理,形成整理后的文件PRE及其属性值;策略判定模块,将数据分析模块形成整理后的文件PRE与策略定制模块所制定的文件访问策略集S,Q,U匹配,判别是否触发敏感行为,最终判断是否为恶意应用,若判定文件PRE匹配文件访问策略集S,Q,U中的任意一条,则认为该应用触发了敏感行为,为恶意应用,否则认为该应用为安全应用。7.根据权利要求6所述的基于文件访问动态监控的Android恶意应用检测系统,其特征在于:所述策略集S,Q,U是存储在硬盘上的策略文件,在所述策略判定模块进行操作时会读取相应的策略文件至内存中。8.根据权利要求6所述的基于文件访问动态监控的Android恶意应用检测系统,其特征在于:所述INI与PRE是Android系统维护在内存的数据结构,会随着组件的运行动态变化,除了记录文件操作自身结构之外,还记录文件操作的访问时间、打开方式各项属性值。【文档编号】G06F21/56GK105956468SQ201610256541【公开日】2016年9月21日【申请日】2016年4月22日【发明人】张妍,王雅哲【申请人】中国科学院信息工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1