安卓系统下的恶意代码检测方法、系统及一种移动终端技术方案

技术编号:15650189 阅读:80 留言:0更新日期:2017-06-17 03:08
本发明专利技术提出了安卓系统下的恶意代码检测方法及系统,首先对安卓系统下的可执行文件进行识别和解析,拆分出各可执行文件的机器指令,利用虚拟技术模拟执行机器指令,并模拟指令运行时所需物理环境,并对可能的系统调用以及API调用进行模拟,监测并记录模拟执行以及模拟调用过程中产生的敏感信息,最终将敏感信息与规则库匹配中的特征进行匹配,判断是否存在含有恶意代码的可执行文件。本发明专利技术弥补了现有针对安卓系统下恶意代码静态检测技术中存在的不足,实现了对安卓系统下恶意代码的深度检测。本发明专利技术还公开了一种移动终端。

【技术实现步骤摘要】
安卓系统下的恶意代码检测方法、系统及一种移动终端相关申请的交叉引用本申请要求武汉安天信息技术有限责任公司于2015年12月08日提交的、专利技术名称为“安卓系统下基于虚拟技术的恶意代码检测方法及系统”的、中国专利申请号“201510889821.X”的优先权。
本专利技术涉及恶意代码监测
,尤其涉及一种安卓系统下的恶意代码检测方法及系统。
技术介绍
当前安卓系统下的恶意代码呈现出更加复杂的发展趋势,其采用了更加复杂的混淆、加密手段,并且加密算法通常采用自定义算法,给恶意代码的静态检测带来很大挑战,恶意代码将敏感字符串、执行代码、执行模块文件进行加密,使得现有的静态检测方案不能有效的对其进行智能检测。安卓系统目前支持多种可执行文件格式,例如APK、DEX、ELF等,并且在Android4.4之后添加了一种新的运行时环境ART,该运行时环境下的可执行文件格式为OAT,Android5.0以后,便将原来的Dalvik运行时环境完全替代为ART运行时环境,并且安卓系统在运行的CPU架构上,除了ARM,还增加了对X86、MIPS以及ARM64位的支持,由于安卓系统可执行文件和指令架构的多样化,恶意代码也以多种形态存在,所以安卓系统下对恶意代码的静态检测方案也必须支持多种格式和指令架构。
技术实现思路
针对现有安卓系统下恶意代码静态检测技术中存在的不足,本专利技术提出了一种安卓系统下的恶意代码检测方法及系统,首先对安卓系统下的可执行文件进行识别和解析,拆分出各可执行文件的机器指令,利用虚拟技术模拟执行机器指令,并模拟指令运行时所需物理环境,监测并记录敏感执行信息,以及敏感调用信息,最终通过规则库匹配,判断是否存在含有恶意代码的可执行文件。具体
技术实现思路
包括:安卓系统下的恶意代码检测方法,包括:对安卓系统下的可执行文件进行格式识别和解析,并确定各可执行文件的代码块在内存中的分布位置,该过程支持多种可执行文件的格式识别和解析,包括APK、DEX、ELF、OAT等格式的可执行文件;解析代码块中的代码指令,并将解析的代码指令拆分为由操作码、操作数两部分组成的机器指令,该过程支持多种架构下的代码指令的识别和解析,包括Dalvik、ARM、Thumb、ARM64、X86、MIPS等架构下的代码指令,并将解析的各代码指令拆分为相应架构下的机器指令;解析并模拟执行各可执行文件的机器指令,对在运行架构下的可执行文件的机器指令时的模拟执行行为进行监测,同时记录敏感行为信息,并监测系统下的调用行为,该过程支持对不同架构下的机器指令进行解析和模拟执行;将监测的模拟执行状态以及调用行为与检测规则库中的特征进行匹配,判断相应的可执行文件中是否包含恶意代码,所述检测规则库中的特征包括:恶意代码字符串、恶意代码序列、恶意代码释放的代码模块名称、恶意API签名、恶意文件路径、恶意API调用序列。进一步地,所述模拟执行各可执行文件的机器指令,包括模拟实现每条机器指令、模拟不同架构的寄存器、模拟内存分配,所述寄存器包括通用寄存器、状态寄存器。进一步地,所述模拟执行行为包括:模拟对寄存器的操作、模拟对内存的操作、模拟对栈的操作,具体为:根据所要模拟执行的机器指令在执行过程中所占的内存,模拟分配一定的内存空间,实现模拟对内存的操作,并将模拟分配的内存空间中的一部分模拟为栈空间,利用模拟对寄存器的操作来模拟使用所述栈空间,从而实现对各可执行文件的机器指令进行模拟执行。进一步地,所述监测系统下的调用行为,包括:对模拟执行机器指令过程中的系统调用以及API调用进行模拟,并监测模拟的调用行为,对敏感调用行为进行记录,所述敏感调用行为包括文件系统写入、网络连接、通信、文件创建、文件删除、修改参数、修改返回值以及发送短信、拨打电话等移动端特有的行为等。进一步地,还包括对可执行文件的代码块进行加密、解密入口识别,模拟执行加密、解密代码,获取加密代码块的明文信息,对所述明文信息中的敏感信息进行记录,并将记录的敏感信息与检测规则库中的特征进行匹配,判断相应的可执行文件中是否包含恶意代码,所述敏感信息包括敏感字符串、敏感代码、敏感执行信息等。安卓系统下的恶意代码检测系统,包括:可执行文件解析模块,用于对安卓系统下的可执行文件进行格式识别和解析,并确定各可执行文件的代码块在内存中的分布位置,该过程支持多种可执行文件的格式识别和解析,包括APK、DEX、ELF、OAT等格式的可执行文件;指令架构解析模块,用于解析代码块中的代码指令,并将解析的代码指令拆分为由操作码、操作数两部分组成的机器指令,该过程支持多种架构下的代码指令的识别和解析,包括Dalvik、ARM、Thumb、ARM64、X86、MIPS等架构下的代码指令,并将解析的各代码指令拆分为相应架构下的机器指令;虚拟执行模块,用于解析并模拟执行各可执行文件的机器指令,对模拟执行行为进行监测,同时记录敏感行为信息,并监测系统下的调用行为,该过程支持对不同架构下的机器指令进行解析和模拟执行;规则库匹配模块,用于将监测的模拟执行状态以及调用行为与检测规则库中的特征进行匹配,判断相应的可执行文件中是否包含恶意代码,所述检测规则库中的特征包括:恶意代码字符串、恶意代码序列、恶意代码释放的代码模块名称、恶意API签名、恶意文件路径、恶意API调用序列。进一步地,所述模拟执行各可执行文件的机器指令,包括模拟实现每条机器指令、模拟不同架构的寄存器、模拟内存分配,所述寄存器包括通用寄存器、状态寄存器。进一步地,所述模拟执行行为包括:模拟对寄存器的操作、模拟对内存的操作、模拟对栈的操作,具体为:根据所要模拟执行的机器指令在执行过程中所占的内存,模拟分配一定的内存空间,实现模拟对内存的操作,并将模拟分配的内存空间中的一部分模拟为栈空间,利用模拟对寄存器的操作来模拟使用所述栈空间,从而实现对各可执行文件的机器指令进行模拟执行。进一步地,所述监测系统下的调用行为,包括:对模拟执行机器指令过程中的系统调用以及API调用进行模拟,并监测模拟的调用行为,对敏感调用行为进行记录,所述敏感调用行为包括文件系统写入、网络连接、通信、文件创建、文件删除、修改参数、修改返回值等。进一步地,还包括对可执行文件的代码块进行加密、解密入口识别,模拟执行加密、解密代码,获取加密代码块的明文信息,对所述明文信息中的敏感信息进行记录,并将记录的敏感信息与检测规则库中的特征进行匹配,判断相应的可执行文件中是否包含恶意代码,所述敏感信息包括敏感字符串、敏感代码、敏感执行信息等。本专利技术还提出了一种移动终端,包括:一个或者多个处理器;存储器;一个或多个程序,所述一个或者多个程序存储在所述存储器中,当被所述一个或者多个处理器执行时进行如下操作:对安卓系统下的可执行文件进行格式识别和解析,并确定可执行文件的代码块在内存中的分布位置;确定所述安卓系统下的运行架构的所属类型,并基于所述分布位置,根据所述所属类型解析代码块中的代码指令,并对解析的代码指令进行拆分以生成所述运行架构下的机器指令,其中,所述机器指令由操作码和操作数两部分组成;根据所述运行架构的所属类型确定对应的处理规则,并根据所述处理规则解析并模拟执行在所述运行架构下的可执行文件的机器指令,并对模拟执行行为进行监测,同时记录敏感本文档来自技高网
...
安卓系统下的恶意代码检测方法、系统及一种移动终端

【技术保护点】
一种安卓系统下的恶意代码检测方法,其特征在于,包括:对安卓系统下的可执行文件进行格式识别和解析,并确定可执行文件的代码块在内存中的分布位置;确定所述安卓系统下的运行架构的所属类型,并基于所述分布位置,根据所述所属类型解析代码块中的代码指令,并对解析的代码指令进行拆分以生成所述运行架构下的机器指令,其中,所述机器指令由操作码和操作数两部分组成;根据所述运行架构的所属类型确定对应的处理规则,并根据所述处理规则解析并模拟执行在所述运行架构下的可执行文件的机器指令,并对模拟执行行为进行监测,同时记录敏感行为信息,并监测系统下的调用行为;将监测到的模拟执行状态以及调用行为与检测规则库中的特征进行匹配,判断所述可执行文件中是否包含恶意代码。

【技术特征摘要】
2015.12.08 CN 201510889821X1.一种安卓系统下的恶意代码检测方法,其特征在于,包括:对安卓系统下的可执行文件进行格式识别和解析,并确定可执行文件的代码块在内存中的分布位置;确定所述安卓系统下的运行架构的所属类型,并基于所述分布位置,根据所述所属类型解析代码块中的代码指令,并对解析的代码指令进行拆分以生成所述运行架构下的机器指令,其中,所述机器指令由操作码和操作数两部分组成;根据所述运行架构的所属类型确定对应的处理规则,并根据所述处理规则解析并模拟执行在所述运行架构下的可执行文件的机器指令,并对模拟执行行为进行监测,同时记录敏感行为信息,并监测系统下的调用行为;将监测到的模拟执行状态以及调用行为与检测规则库中的特征进行匹配,判断所述可执行文件中是否包含恶意代码。2.如权利要求1所述的方法,其特征在于,所述监测系统下的调用行为,包括:对模拟执行所述机器指令过程中的系统调用以及API调用进行模拟,并监测模拟的调用行为,对敏感调用行为进行记录。3.如权利要求1所述的方法,其特征在于,所述方法还包括:对所述可执行文件的代码块进行加密、解密入口识别以确定所述代码块中的加密代码和解密代码,并模拟执行所述加密代码和解密代码,以获取所述加密代码中的明文信息,并对所述明文信息中的敏感信息进行记录,并将记录的敏感信息与所述检测规则库中的特征进行匹配,判断所述可执行文件中是否包含恶意代码。4.一种安卓系统下的恶意代码检测系统,其特征在于,包括:可执行文件解析模块,用于对安卓系统下的可执行文件进行格式识别和解析,并确定可执行文件的代码块在内存中的分布位置;第一确定模块,用于确定所述安卓系统下的运行架构的所属类型;指令架构解析模块,用于基于所述分布位置,根据所述所属类型解析代码块中的代码指令,并对解析的代码指令进行拆分以生成所述运行架构下的机器指令,其中,所述机器指令由操作码和操作数两部分组成;第二确定模块,用于根据所述运行架构的所属类型确定对应的处理规则;虚拟执行模块,用于根据所述处理规则解析并模拟执行在所述运行架构下的可执行文件的机器指令,并对模拟执行行为进行监测,同时...

【专利技术属性】
技术研发人员:潘宣辰潘博文雷刚武乔伟
申请(专利权)人:武汉安天信息技术有限责任公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1