移动操作系统的恶意软件检测方法和恶意软件检测系统.pdf

上传人:32 文档编号:6184025 上传时间:2019-05-18 格式:PDF 页数:20 大小:1.50MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310598132.4

申请日:

2013.11.22

公开号:

CN103839005A

公开日:

2014.06.04

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 21/56申请日:20131122|||公开

IPC分类号:

G06F21/56(2013.01)I

主分类号:

G06F21/56

申请人:

北京智谷睿拓技术服务有限公司

发明人:

焦健

地址:

100085 北京市海淀区小营西路33号1层1F05室

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明提供了一种安卓移动操作系统的恶意软件检测方法。所述方法包括:敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。本发明根据目前恶意软件主要依靠系统调用实现这一特点,对恶意软件所使用的系统调用进行有效的检测,这样可以有效的解决现有技术中检测技术所面临的问题,实现恶意软件本质行为的检测,提高了恶意软件的检测效率。

权利要求书

权利要求书
1.  一种安卓移动操作系统的恶意软件检测方法,其特征在于,所述方法包括:
敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;
检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。

2.  根据权利要求1所述的方法,其特征在于,所述敏感调用序列生成步骤进一步包括:
调用关系图生成步骤,针对软件中的至少一个入口函数,分析对软件中各功能模块的顺序调用关系,生成描述软件运行流程的功能模块调用关系图;
序列生成步骤,根据预定义的敏感系统调用库,基于所述功能模块调用关系图来生成所述敏感系统调用序列。

3.  根据权利要求2所述的方法,其特征在于,所述调用关系图生成步骤进一步包括:
获取所述软件的源代码;
抽取所述软件中的所述入口函数;
确定每个所述入口函数所调用的功能模块以及相应的调用顺序;以及
生成所述功能模块调用关系图。

4.  根据权利要求2所述的方法,其特征在于,所述序列生成步骤进一步包括:
查找所述功能模块调用关系图中各功能模块中出现的系统调用;
根据所述敏感系统调用库,确定所查找出的各系统调用中的敏感系统调用,并标识敏感系统调用在所述功能模块调用关系图的出现位置;以及
根据所述敏感系统调用的出现位置的顺序生成所述敏感系统调用序列。

5.  根据权利要求2所述的方法,其特征在于,所述方法进一步包括定义所述敏感系统调用库的步骤。

6.  根据权利要求1所述的方法,其特征在于,在所述检测步骤中,将所述敏感系统调用序列与所述恶意软件特征库中的恶意调用序列样本进行匹配并得到匹配结果,作为所述恶意软件检测结果。

7.  根据权利要求1所述的方法,其特征在于,所述方法进一步包括定义所述恶意软件特征库的步骤。

8.  根据权利要求4所述的方法,其特征在于,在所述序列生成步骤中,还提取出各敏感系统调用所调用的参数。

9.  根据权利要求8所述的方法,其特征在于,所述恶意软件特征库包括系统调用所调用的参数,
在所述检测步骤中,将所述敏感系统调用序列以及所调用的参数与所述恶意软件特征库中的恶意调用序列样本以及所调用的参数同时进行匹配以得到匹配结果,作为所述恶意软件检测结果。

10.  一种安卓移动操作系统的恶意软件检测系统,其特征在于,所述系统包括:
敏感调用序列生成设备,用于针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
检测设备,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。

11.  一种安卓移动操作系统的恶意软件检测方法,其特征在于,所述方法在移动终端执行,包括如下步骤:
敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
敏感调用序列发送步骤,发送所述敏感系统调用序列。

12.  根据权利要求11所述的方法,其特征在于,所述敏感调用序列生成步骤进一步包括:
调用关系图生成步骤,针对软件中的至少一个入口函数,分析对软件中各功能模块的顺序调用关系,生成描述软件运行流程的功能模块调用关系图;
序列生成步骤,根据预定义的敏感系统调用库,基于所述功能模块调用关系图来生成所述敏感系统调用序列。

13.  根据权利要求12所述的方法,其特征在于,所述调用关系图生成步骤进一步包括:
获取所述软件的源代码;
抽取所述软件中的所述入口函数;
确定每个所述入口函数所调用的功能模块以及相应的调用顺序;以及
生成所述功能模块调用关系图。

14.  根据权利要求12所述的方法,其特征在于,所述序列生成步骤进一步包括:
查找所述功能模块调用关系图中各功能模块中出现的系统调用;
根据所述敏感系统调用库,确定所查找出的各系统调用中的敏感系统调用,并标识敏感系统调用在所述功能模块调用关系图的出现位置;以及
根据所述敏感系统调用的出现位置的顺序生成所述敏感系统调用序列。

15.  根据权利要求12所述的方法,其特征在于,所述方法进一步包括定义所述敏感系统调用库的步骤。

16.  根据权利要求14所述的方法,其特征在于,在所述序列生成步骤中,还提取出各敏感系统调用所调用的参数。

17.  根据权利要求11所述的方法,其特征在于,在所述敏感调 用序列发送步骤中,将所生成的敏感系统调用序列按照预定协议进行编码之后进行发送。

18.  根据权利要求16所述的方法,其特征在于,在所述敏感调用序列发送步骤中,将所生成的敏感系统调用序列和所提取的所述参数按照预定协议进行编码之后进行发送。

19.  一种安卓移动操作系统的恶意软件检测系统,其特征在于,所述系统包括:
敏感调用序列生成设备,用于针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
敏感调用序列发送设备,用于发送所述敏感系统调用序列。

20.  一种安卓移动操作系统的恶意代码检测方法,其特征在于,所述方法在服务器执行,包括如下步骤:
敏感调用序列接收步骤,接收敏感系统调用序列;
检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
检测结果发送步骤,发送所述恶意软件检测结果。

21.  根据权利要求20所述的方法,其特征在于,在所述检测步骤中,将所述敏感系统调用序列与所述恶意软件特征库中的恶意调用序列样本进行匹配并得到匹配结果,作为所述恶意软件检测结果。

22.  根据权利要求20所述的方法,其特征在于,所述方法进一步包括定义所述恶意软件特征库的步骤。

23.  根据权利要求20所述的方法,其特征在于,所述恶意软件特征库包括系统调用所调用的参数,
在所述检测步骤中,将所述敏感系统调用序列以及所调用的参数与所述恶意软件特征库中的恶意调用序列样本以及所调用的参数同时进行匹配以得到匹配结果,作为所述恶意软件检测结果。

24.  一种安卓移动操作系统的恶意代码检测系统,其特征在于, 所述系统包括:
敏感调用序列接收设备,用于接收敏感系统调用序列;
检测设备,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
检测结果发送设备,用于发送所述恶意软件检测结果。

说明书

说明书移动操作系统的恶意软件检测方法和恶意软件检测系统
技术领域
本发明涉及移动互联网安全领域,尤其涉及一种移动操作系统的恶意软件检测方法和系统。
背景技术
近年来,以安卓(Android)为代表的开源智能移动操作系统得到了广泛的应用,同时伴随功能强大的智能移动终端一同出现的是各种恶意软件的攻击。目前,网络上针对安卓移动终端的恶意软件有上千种之多,其主要涉及垃圾短信、恶意扣费、窃取用户个人信息等诸多方面。虽然从危害程度和影响范围而言,针对安卓移动终端的恶意软件还无法和个人电脑安全隐患相比,但是从发展的角度来看,移动终端在社会领域的推广和普及必将进一步加深和扩大恶意软件的影响。
目前,针对安卓移动终端平台的恶意软件的防范技术主要包括恶意软件的特征值扫描和虚拟机技术两种。
特征值扫描是目前最常用的恶意软件防范技术,其基本原理在于分析已知恶意软件,识别出其中恶意部分的代码标识,将该代码标识存入一恶意代码特征库,而后对待检测的软件实行扫描匹配,查找其中是否有符合恶意软件的代码标识的部分。该技术从本质上说属于软件的静态检测,其不足之处是当恶意软件变形或参杂有其他成分后,特征值匹配会受到很大的影响;此外特征扫描需要有实时的恶意代码特征库的支持,移动终端需要消耗大量的通信流量下载最新的特征库数据。
虚拟机技术则采用动态检测的方式,让需要检测的软件在特殊环境下被执行,以此来检测软件是否具备恶意的行为。该技术对恶意软件的检测率较高,特别适用于多态和变形的恶意软件,但由于软件执行过程中具有多分支的特点,虚拟机技术只能检查软件中一部分流程中恶意代码的存在与否,不能够实现对软件全部流程的恶意代码的检测。
发明内容
本发明的目的是要提供一种针对安卓移动操作系统的恶意软件检测技术,以解决现有技术中采用的恶意软件检测技术所面临的诸多技术问题中的至少一个。
为解决上述技术问题,根据本发明的一个方面,提供一种安卓移动操作系统的恶意软件检测方法,所述方法包括:
敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;
检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。
根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意软件检测系统,所述系统包括:
敏感调用序列生成设备,用于针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
检测设备,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。
根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意软件检测方法,所述方法在移动终端执行,包括如下步骤:
敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
敏感调用序列发送步骤,发送所述敏感系统调用序列。
根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意软件检测系统,所述系统包括:
敏感调用序列生成设备,用于针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
敏感调用序列发送设备,用于发送所述敏感系统调用序列。
根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意代码检测方法,所述方法在服务器执行,包括如下步骤:
敏感调用序列接收步骤,接收敏感系统调用序列;
检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
检测结果发送步骤,发送所述恶意软件检测结果。
根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意代码检测系统,所述系统包括:
敏感调用序列接收设备,用于接收敏感系统调用序列;
检测设备,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
检测结果发送设备,用于发送所述恶意软件检测结果。
本发明的方法和系统根据目前恶意软件主要依靠系统调用实现这一特点,对恶意软件所使用的系统调用进行有效的检测,这样可以有效的解决现有技术中检测技术所面临的问题,实现恶意软件本质行为的检测,提高了恶意软件的检测效率。
提供上述发明内容是为了以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有技术问题的实现。
附图说明
图1是本发明一个具体实施方式中恶意软件检测方法的步骤流程图;
图2是本发明一个具体实施方式的恶意软件检测方法中敏感调用序列生成步骤的具体流程图;
图3是本发明一个具体实施方式的恶意软件检测方法中调用关系图生成步骤的具体流程图;
图4是本发明中一个功能模块调用关系子图的示意图;
图5是本发明一个具体实施方式的恶意软件检测方法中序列生成步骤的具体流程图;
图6是本发明中一个标识了敏感系统调用的功能模块调用关系子图的示意图;
图7是本发明一个具体实施方式中恶意软件检测系统的结构图;
图8是本发明另一个具体实施方式中恶意软件检测方法的步骤流程图;
图9是本发明中对系统调用序列进行编码的协议格式示意图;
图10是本发明另一个具体实施方式中恶意软件检测方法的步骤流程图;
图11是本发明中一个恶意软件检测结果的格式示意图;
图12是本发明另一个具体实施方式中恶意软件检测系统的结构图;
图13是本发明另一个具体实施方式中恶意软件检测系统的结构图;
图14是本发明另一个具体实施方式中恶意软件检测系统的硬件结构示意图。
具体实施方式
下面结合附图(若干附图中相同的标号表示相同的元素)和实施例,对本发明的具体实施方式作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。
本领域技术人员可以理解,本发明中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
在本发明中,“入口函数”是指软件中的初始化函数和触发函数,这两部分函数一般会声明软件所使用的对象和所调用的系统函数。
在本发明中,“功能模块”是指软件中除入口函数之外的其他程序模块,其各自实现特定功能。
在本发明中,“功能模块调用关系图”是指从入口函数开始,分别对功能模块中的内容进行调用,依照其调用的顺序来描述软件运行流程的、由各功能模块所组成的调用关系图。
发明人通过研究发现,首先,安卓移动终端平台之上的恶意软件主要依靠平台自身提供的系统调用来实现,因此对软件源代码中系统调用的分析可以有效的实现恶意代码的检测;第二,安卓软件作为面向对象的语言,均采用事件触发机制实现软件的运行,因此软件中具有多个入口函数,每个入口函数通过声明和引用其他的功能模块来实现自身的功能,因此对功能模块调用顺序的分析可以有效的掌握软件的运行流程。
如图1所示,本发明具体实施方式中提供了一种安卓移动操作系统的恶意软件检测方法,所述方法包括:
S110:敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;
S120:检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。
下面,根据附图1-6来具体介绍上述恶意软件检测方法中各步骤的功能。
S110:敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列。
在一具体实施方式中,如图2所示,该敏感调用序列生成步骤S110可进一步包括如下步骤:
S111:调用关系图生成步骤,针对软件中的至少一个入口函数,分析对软件中各功能模块的顺序调用关系,生成描述软件运行流程的功能模块调用关系图;
S112:序列生成步骤,根据预定义的敏感系统调用库,基于所述功能模块调用关系图来生成所述敏感系统调用序列。
在一具体实施方式中,如图3所示,该调用关系图生成步骤S111可进一步包括如下步骤:
S1111:获取所述软件的源代码。
由于本具体实施方式中的方法是基于软件源代码中的系统调用对恶意软件进行检测的,因此首先需要获取软件的源代码。具体地,可通过反编译来得到安卓软件(APK文件)的java源代码,这为软件的静态分析提供了可能。
S1112:抽取软件中所有的入口函数,即软件中的所有初始化函数和触发函数。
其中,初始化函数的主要功能在于实现整个软件的基本参数设置,后台的服务进程会在初始化函数中启动;触发函数主要实现系统对用户事件的响应操作。从软件运行的角度看,初始化函数和触发函数是软件运行的入口位置,各种功能模块的调用均是在这里直接或间接实现的。
在本步骤中,根据S1111中所获取的软件源代码确定出该软件中所有的入口函数。
S1113:确定每个入口函数所调用的各功能模块以及相应的调用顺序。
软件功能模块中的程序一般是恶意代码有可能运行的区域。因此在本步骤中,可以先抽取软件中声明构建的各个功能模块,然后从软件的每个入口函数开始,对软件中所声明的各个功能模块进行遍历,确定每个所述入口函数所调用的各功能模块以及相应的调用顺序,所确定的结果可以通过下表1的形式来体现:
表1

如表1所示,表的首行中列出了软件中的各入口函数,包括一个初始函数和多个触发函数,表的首列则列出了软件中声明的各功能模块。表中的数字用于表示对应功能模块在对应入口函数执行流程中被调用的次序编号,例如功能模块1在第一触发函数中的标号为1,即表示该功能模块在第一触发函数中第1个被调用,而功能模块2则在第一触发函数中第3个被调用,功能模块3在第一触发函数中第2个被调用。
S1114:生成功能模块调用关系图。
表1体现了各入口函数所调用的各功能模块以及相应的调用顺序,根据表1可生成所述功能模块调用关系图。具体地,例如针对第一触发函数,可根据其调用的功能模块和顺序形成关于第一触发函数的一个功能模块调用关系子图:功能模块1—>功能模块3—>功能模块2,如图4所示。
综合所有入口函数的功能模块调用关系子图便可生成该软件的功能模块调用关系图,即,每个入口函数可对应一个功能模块调用关 系子图,而整个功能模块调用关系图中可包括一个或多个类似于图4的功能模块调用关系子图。
在针对安卓移动操作系统的恶意软件中,所使用的系统调用类型主要与网络操作和系统资源访问有关,可以包括开启网络通信接收器(短信服务、网络套接字等)、向指定网址发送指定信息、下载定制软件、读取用户SIM卡或移动终端相关信息、启动后台进程等。在本发明一个具体实施方式中,可以基于上述系统调用类型预先定义部分系统调用为敏感系统调用,以形成一敏感系统调用库。也就是说,敏感系统调用库中的系统调用是一些存在恶意代码可能性较大的系统调用。
在一个具体实施方式中,如图5所示,该序列生成步骤S112可进一步包括如下步骤:
S1121:查找该功能模块调用关系图中各功能模块中出现的所有系统调用。
软件中的每个功能模块有可能出现一个或多个系统调用,在本步骤中,将功能模块调用关系图中涉及的所有功能模块中出现的所有系统调用都查找出来。
S1122:根据上述预定义的敏感系统调用库,确定所查找出的各系统调用中的敏感系统调用,并标识敏感系统调用在所述功能模块调用关系图的出现位置。
在本步骤中,可以将查找出的各系统调用逐一与敏感系统调用库中所定义的敏感系统调用进行匹配,从而判断是否属于预定义的敏感系统调用。当判断一系统调用属于敏感系统调用时,标识出其在功能模块调用关系图中出现的位置。
例如,在图6所示的功能模块调用关系图中,功能模块1—>功能模块3—>功能模块2构成了一个功能模块关系调用子图。在该子图中,在功能模块1中出现了敏感系统调用S1,功能模块3中出现了敏感系统 调用S2和S3,在功能模块2中出现了敏感系统调用S4。
S1123:根据所述敏感系统调用出现的顺序位置生成所述敏感系统调用序列。
由于存在恶意代码的系统调用函数需要通过一系列组合来实现其恶意功能,因此将这些系统调用按照一定的顺序组合而成的调用序列,可以有效的描述恶意代码的实现机制。在本步骤中,针对所述功能模块调用关系图中的每个子图,按照敏感系统调用出现的先后顺序形成多个敏感系统调用子序列。例如根据图5所示的,获得一个敏感系统调用子序列:S1—>S2—>S3—>S4。综合所有的敏感系统调用子序列就生成了敏感系统调用序列,即每个功能模块调用关系子图可生成一个敏感系统调用子序列,而整个敏感系统调用序列中可包括一个或多个敏感系统调用子序列。
优选地,在生成敏感系统调用序列的同时,还可以从源代码中提取出所出现的各敏感系统调用所调用的参数。
S120:检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配,以得到一恶意软件检测结果。
在本发明一个具体实施方式中,可以分析已知的恶意软件,基于先验知识抽取恶意软件中的系统调用序列,预先形成用于检测恶意软件的一恶意软件特征库,该恶意软件特征库中包括描述恶意代码的实现机制的多个调用序列作为样本。优选地,可在抽取恶意软件中的系统调用序列时,同时抽取恶意软件中各系统调用所调用的参数,将系统调用序列和相应参数共同形成该恶意软件特征库,即,该恶意软件特征库中包括描述恶意代码的实现机制的多个调用序列与相应参数的组合作为样本。
在该检测步骤S120中,可具体将在S110中生成的敏感系统调用序列中的所有敏感系统调用子序列与所述恶意软件特征库中的恶意调用序列样本进行匹配并得到匹配结果,将所有匹配结果作为所述恶意 软件检测结果。
优选地,当在敏感调用序列生成步骤S110中同时提取调用参数时,将各敏感系统调用子序列以及所调用的参数与所述恶意软件特征库中的恶意调用序列样本以及相应参数同时进行匹配以得到匹配结果,并将所有匹配结果作为所述恶意软件检测结果。这样,结合敏感系统调用序列中对于敏感系统调用的顺序以及所调用的参数进行综合检测,可以提高检测结果的准确程度。本领域技术人员可以理解,此时考虑到敏感系统调用中参数类型和个数的变化,可以对匹配程度做一定的模糊化处理,当匹配结果达到某一阈值时即认为该敏感系统调用属于恶意软件的范畴。
与现有技术中的检测技术相比,本发明的上述方法可直接运行于手机等移动终端中,其从源代码分析入手,根据目前恶意代码主要依靠系统调用实现这一特点,对恶意代码所使用的系统调用进行有效的检测,这样可以有效的避免传统的特征值匹配无法解决的代码变形的问题,从源代码一级实现恶意代码本质行为的检测,提高了恶意代码的检测效率。同时相比于虚拟机检测技术相比,本发明从程序的入口函数分析入手,通过功能模块间的调用关系可以获得整个程序的执行流程,继而全面的分析程序的代码执行过程,避免了虚拟机方式检测时只能检查代码的一条执行流程的问题。
与上述方法对应,如图7所示,本发明具体实施方式中还提供了一种安卓移动操作系统的恶意软件检测系统200,所述系统200包括:
敏感调用序列生成设备210,用于针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
检测设备220,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。
上述系统200中各设备分别用于实现图1所示的上述恶意软件检测方法中的各步骤功能,各设备中还可以进一步包括多个装置用于实 现各步骤中子步骤的功能,此处不再赘述。
如图8所示,本发明具体实施方式中提供了一种安卓移动操作系统的恶意软件检测方法,该方法可在移动终端中执行,具体可包括如下步骤:
S310:敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
S320:敏感调用序列发送步骤,发送所述敏感系统调用序列。
在图8所示的该方法中,上述敏感调用序列生成步骤S310的功能和执行细节与图1所示方法中敏感调用序列生成步骤S110完全一致,此处不再赘述。
在调用序列发送步骤S320中,可将所生成的敏感系统调用序列发送至服务器端。这样,将得到的敏感系统调用序列上传到服务器,有可能由服务器根据后台的恶意软件特征库中的系统调用序列进行匹配,并将检测结果返还给移动终端,避免了移动终端维护庞大的恶意软件特征库所需要耗费的时间和数据流量,并保证了对最新恶意软件检测的实时性。
在一个具体实施方式中,在调用序列发送步骤S320中,将所获得的敏感系统调用序列按照某种预定协议格式实现编码,并将编码后的敏感系统调用序列发送到服务器端。优选地,当在敏感调用序列生成步骤S310中同时提取了调用参数时,可将所获得的敏感系统调用序列和对应调用参数一起进行编码并发送。
例如,图9中示出了对敏感系统调用序列及其参数进行编码的某协议格式,其中:
协议的头部是字段调用序列数目,长度为1字节,记录范围0-255,表示该部分报文内装载的敏感系统调用子序列的个数;
协议的第二个字段为编号字段,长度为1字节,记录范围0-255,表示当前字段后加载的是第几个敏感系统调用子序列;
协议的第三个字段为长度字段,长度为4个字节,表示后续加载的敏感系统调用子序列的长度;
协议的第四个字段是调用序列的内容,由若干个系统调用字段和参数字段组合而成,其中系统调用字段主要用于记录系统调用的编号,参数字段则主要记录调用中所使用的各个参数。若干个系统调用字段和参数字段的组合既可以描述完整的系统调用过程。
当所获得的敏感系统调用序列中包括多个敏感系统调用子序列时,协议的二三四字段可重复加载在报文后,以扩展描述的内容。
与图8中所示方法对应,如图12所示,本发明具体实施方式中还提供了一种安卓移动操作系统的恶意软件检测系统400,所述系统400可实现于移动终端中,具体包括:
敏感调用序列生成设备410,用于针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
敏感调用序列发送设备420,用于发送所述敏感系统调用序列。
上述系统400中各设备分别用于实现图8所示的恶意软件检测方法中的各步骤功能,各设备中还可以进一步包括多个装置用于实现各步骤中子步骤的功能,此处不再赘述。
与图8中所示的执行于移动终端的方法对应,如图10所示,本发明具体实施方式中提供了一种安卓移动操作系统的恶意代码检测方法,所述方法在服务器执行,包括如下步骤:
S510:敏感调用序列接收步骤,接收敏感系统调用序列;
S520:检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
S530:检测结果发送步骤,发送所述恶意软件检测结果。
在敏感调用序列接收步骤S510中,服务器从移动终端接收所生成的敏感系统调用序列。在一个具体实施方式中,所接收的是移动终端按照某种协议格式进行编码后的敏感系统调用序列,此时进一步包 括一相应的解码步骤,从而得到原始的敏感系统调用序列。优选地,在移动终端同时提取了调用参数的情况下,服务器解码后的内容也同时包括相应的调用参数。
在检测步骤S520中,服务器根据预定义的恶意软件特征库对该敏感系统调用序列进行匹配并得到一恶意软件检测结果。与图9中所示的敏感系统调用序列对应,该恶意软件检测结果可包括与各敏感系统调用子序列相应的检测结果,如图11所示。
可见,该检测步骤S520的具体过程与上文方法中所介绍的检测步骤S120相近,区别在于该检测操作在服务器端执行,这样避免了移动终端维护庞大的恶意软件特征库所需要耗费的时间和数据流量,并保证了对最新恶意软件检测的实时性。
在检测结果发送步骤S530中,服务器将最终的恶意软件检测结果发送至移动终端,通知移动终端的用户对于恶意软件的检测结果。
与图10所示方法对应,如图13所示,本发明具体实施方式中还提供了一种安卓移动操作系统的恶意软件检测系统600,所述系统600可实现于移动终端中,具体包括:
敏感调用序列接收设备610,用于接收敏感系统调用序列;
检测设备620,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
检测结果发送设备630,用于发送所述恶意软件检测结果。
上述系统600中各设备分别用于实现图10所示的上述恶意软件检测方法中的各步骤功能,各设备中还可以进一步包括多个装置用于实现各步骤中子步骤的功能,此处不再赘述。
与现有技术中的检测技术相比,本发明的上述方法和系统从源代码分析入手,根据目前恶意代码主要依靠系统调用实现这一特点,对恶意代码所使用的系统调用进行有效的检测,这样可以有效的避免传统的特征值匹配无法解决的代码变形的问题,从源代码一级实现恶意 代码本质行为的检测,提高了恶意代码的检测效率。相比于虚拟机检测技术相比,本发明从程序的入口函数分析入手,通过功能模块间的调用关系可以获得整个程序的执行流程,继而全面的分析程序的代码执行过程,避免了虚拟机方式检测时只能检查代码的一条执行流程的问题。同时,本发明上述方法和系统采用特殊的协议格式,将得到的系统调用序列上传到服务器,有可能由服务器根据后台的恶意软件特征库中的系统调用序列进行匹配,并将检测结果返还给移动终端,避免了移动终端维护庞大的恶意软件特征库所需要耗费的时间和数据流量,并保证了对最新恶意软件检测的实时性。
本领域技术人员可以理解,在本发明具体实施方式的上述各方法中,各步骤的序号大小并不意味着执行顺序的先后,各步骤的执行顺序应以其功能和内在逻辑确定,而不应对本发明具体实施方式的实施过程构成任何限定。
图14为本发明实施例提供的一种恶意软件检测系统800的硬件结构示意图,本发明具体实施例并不对恶意软件检测系统800的具体实现做限定。如图14所示,该恶意软件检测系统800可以包括:
处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830、以及通信总线840。其中:
处理器810、通信接口820、以及存储器830通过通信总线840完成相互间的通信。
通信接口820,用于与比如客户端等的网元通信。
处理器810,用于执行程序832,具体可以实现附图所示的系统实施例中恶意软件检测系统的相关功能。
具体地,程序832可以包括程序代码,所述程序代码包括计算机操作指令。
处理器810可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施 本发明实施例的一个或多个集成电路。
存储器830,用于存放程序832。存储器830可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序832具体可以具体实现以下步骤:
敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;
检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。
或者,程序832具体可以具体实现以下步骤:
敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
敏感调用序列发送步骤,发送所述敏感系统调用序列。
或者,程序832具体可以具体实现以下步骤:
敏感调用序列接收步骤,接收敏感系统调用序列;
检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
检测结果发送步骤,发送所述恶意软件检测结果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述装置实施例中的对应描述,在此不再赘述。
尽管此处所述的主题是在结合操作系统和应用程序在计算机系统上的执行而执行的一般上下文中提供的,但本领域技术人员可以认识到,还可结合其他类型的程序模块来执行其他实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。本领域技术人员可以理解,此处所述的本主题可以使用其他计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、 大型计算机等,也可使用在其中任务由通过通信网络连接的远程处理设备执行的分布式计算环境中。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备的两者中。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对原有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的计算机可读取存储介质包括以存储如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方式或技术来实现的物理易失性和非易失性、可移动和不可因东介质。计算机可读取存储介质具体包括,但不限于,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、可擦除可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存或其他固态存储器技术、CD-ROM、数字多功能盘(DVD)、HD-DVD、蓝光(Blue-Ray)或其他光存储设备、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算机访问的任何其他介质。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下, 还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

移动操作系统的恶意软件检测方法和恶意软件检测系统.pdf_第1页
第1页 / 共20页
移动操作系统的恶意软件检测方法和恶意软件检测系统.pdf_第2页
第2页 / 共20页
移动操作系统的恶意软件检测方法和恶意软件检测系统.pdf_第3页
第3页 / 共20页
点击查看更多>>
资源描述

《移动操作系统的恶意软件检测方法和恶意软件检测系统.pdf》由会员分享,可在线阅读,更多相关《移动操作系统的恶意软件检测方法和恶意软件检测系统.pdf(20页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103839005 A (43)申请公布日 2014.06.04 CN 103839005 A (21)申请号 201310598132.4 (22)申请日 2013.11.22 G06F 21/56(2013.01) (71)申请人 北京智谷睿拓技术服务有限公司 地址 100085 北京市海淀区小营西路33号1 层 1F05 室 (72)发明人 焦健 (54) 发明名称 移动操作系统的恶意软件检测方法和恶意软 件检测系统 (57) 摘要 本发明提供了一种安卓移动操作系统的恶意 软件检测方法。所述方法包括 : 敏感调用序列生 成步骤, 针对软件中的至少一个入口函数对软。

2、件 进行代码分析, 生成敏感系统调用序列 ; 检测步 骤, 根据预定义的恶意软件特征库对所述敏感系 统调用序列进行匹配并得到一恶意软件检测结 果。本发明根据目前恶意软件主要依靠系统调用 实现这一特点, 对恶意软件所使用的系统调用进 行有效的检测, 这样可以有效的解决现有技术中 检测技术所面临的问题, 实现恶意软件本质行为 的检测, 提高了恶意软件的检测效率。 (51)Int.Cl. 权利要求书 3 页 说明书 10 页 附图 6 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书10页 附图6页 (10)申请公布号 CN 103839005 A CN 103。

3、839005 A 1/3 页 2 1. 一种安卓移动操作系统的恶意软件检测方法, 其特征在于, 所述方法包括 : 敏感调用序列生成步骤, 针对软件中的至少一个入口函数对软件进行代码分析, 生成 敏感系统调用序列 ; 检测步骤, 根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一 恶意软件检测结果。 2. 根据权利要求 1 所述的方法, 其特征在于, 所述敏感调用序列生成步骤进一步包括 : 调用关系图生成步骤, 针对软件中的至少一个入口函数, 分析对软件中各功能模块的 顺序调用关系, 生成描述软件运行流程的功能模块调用关系图 ; 序列生成步骤, 根据预定义的敏感系统调用库, 基于所。

4、述功能模块调用关系图来生成 所述敏感系统调用序列。 3. 根据权利要求 2 所述的方法, 其特征在于, 所述调用关系图生成步骤进一步包括 : 获取所述软件的源代码 ; 抽取所述软件中的所述入口函数 ; 确定每个所述入口函数所调用的功能模块以及相应的调用顺序 ; 以及 生成所述功能模块调用关系图。 4. 根据权利要求2 所述的方法, 其特征在于, 所述序列生成步骤进一步包括 : 查找所述功能模块调用关系图中各功能模块中出现的系统调用 ; 根据所述敏感系统调用库, 确定所查找出的各系统调用中的敏感系统调用, 并标识敏 感系统调用在所述功能模块调用关系图的出现位置 ; 以及 根据所述敏感系统调用的出。

5、现位置的顺序生成所述敏感系统调用序列。 5. 根据权利要求 2 所述的方法, 其特征在于, 所述方法进一步包括定义所述敏感系统 调用库的步骤。 6. 根据权利要求 1 所述的方法, 其特征在于, 在所述检测步骤中, 将所述敏感系统调用 序列与所述恶意软件特征库中的恶意调用序列样本进行匹配并得到匹配结果, 作为所述恶 意软件检测结果。 7. 根据权利要求 1 所述的方法, 其特征在于, 所述方法进一步包括定义所述恶意软件 特征库的步骤。 8. 根据权利要求 4 所述的方法, 其特征在于, 在所述序列生成步骤中, 还提取出各敏感 系统调用所调用的参数。 9. 根据权利要求 8 所述的方法, 其特征。

6、在于, 所述恶意软件特征库包括系统调用所调 用的参数, 在所述检测步骤中, 将所述敏感系统调用序列以及所调用的参数与所述恶意软件特征 库中的恶意调用序列样本以及所调用的参数同时进行匹配以得到匹配结果, 作为所述恶意 软件检测结果。 10. 一种安卓移动操作系统的恶意软件检测系统, 其特征在于, 所述系统包括 : 敏感调用序列生成设备, 用于针对软件中的至少一个入口函数对软件进行代码分析, 生成敏感系统调用序列 ; 以及 检测设备, 用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得 到一恶意软件检测结果。 权 利 要 求 书 CN 103839005 A 2 2/3 页 3 11。

7、. 一种安卓移动操作系统的恶意软件检测方法, 其特征在于, 所述方法在移动终端执 行, 包括如下步骤 : 敏感调用序列生成步骤, 针对软件中的至少一个入口函数对软件进行代码分析, 生成 敏感系统调用序列 ; 以及 敏感调用序列发送步骤, 发送所述敏感系统调用序列。 12. 根据权利要求 11 所述的方法, 其特征在于, 所述敏感调用序列生成步骤进一步包 括 : 调用关系图生成步骤, 针对软件中的至少一个入口函数, 分析对软件中各功能模块的 顺序调用关系, 生成描述软件运行流程的功能模块调用关系图 ; 序列生成步骤, 根据预定义的敏感系统调用库, 基于所述功能模块调用关系图来生成 所述敏感系统调。

8、用序列。 13. 根据权利要求 12 所述的方法, 其特征在于, 所述调用关系图生成步骤进一步包括 : 获取所述软件的源代码 ; 抽取所述软件中的所述入口函数 ; 确定每个所述入口函数所调用的功能模块以及相应的调用顺序 ; 以及 生成所述功能模块调用关系图。 14. 根据权利要求 12所述的方法, 其特征在于, 所述序列生成步骤进一步包括 : 查找所述功能模块调用关系图中各功能模块中出现的系统调用 ; 根据所述敏感系统调用库, 确定所查找出的各系统调用中的敏感系统调用, 并标识敏 感系统调用在所述功能模块调用关系图的出现位置 ; 以及 根据所述敏感系统调用的出现位置的顺序生成所述敏感系统调用序。

9、列。 15. 根据权利要求 12 所述的方法, 其特征在于, 所述方法进一步包括定义所述敏感系 统调用库的步骤。 16. 根据权利要求 14 所述的方法, 其特征在于, 在所述序列生成步骤中, 还提取出各敏 感系统调用所调用的参数。 17. 根据权利要求 11 所述的方法, 其特征在于, 在所述敏感调用序列发送步骤中, 将所 生成的敏感系统调用序列按照预定协议进行编码之后进行发送。 18. 根据权利要求 16 所述的方法, 其特征在于, 在所述敏感调用序列发送步骤中, 将所 生成的敏感系统调用序列和所提取的所述参数按照预定协议进行编码之后进行发送。 19. 一种安卓移动操作系统的恶意软件检测系。

10、统, 其特征在于, 所述系统包括 : 敏感调用序列生成设备, 用于针对软件中的至少一个入口函数对软件进行代码分析, 生成敏感系统调用序列 ; 以及 敏感调用序列发送设备, 用于发送所述敏感系统调用序列。 20. 一种安卓移动操作系统的恶意代码检测方法, 其特征在于, 所述方法在服务器执 行, 包括如下步骤 : 敏感调用序列接收步骤, 接收敏感系统调用序列 ; 检测步骤, 根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一 恶意软件检测结果 ; 以及 检测结果发送步骤, 发送所述恶意软件检测结果。 权 利 要 求 书 CN 103839005 A 3 3/3 页 4 21. 根据权。

11、利要求 20 所述的方法, 其特征在于, 在所述检测步骤中, 将所述敏感系统调 用序列与所述恶意软件特征库中的恶意调用序列样本进行匹配并得到匹配结果, 作为所述 恶意软件检测结果。 22. 根据权利要求 20 所述的方法, 其特征在于, 所述方法进一步包括定义所述恶意软 件特征库的步骤。 23. 根据权利要求 20 所述的方法, 其特征在于, 所述恶意软件特征库包括系统调用所 调用的参数, 在所述检测步骤中, 将所述敏感系统调用序列以及所调用的参数与所述恶意软件特征 库中的恶意调用序列样本以及所调用的参数同时进行匹配以得到匹配结果, 作为所述恶意 软件检测结果。 24. 一种安卓移动操作系统的。

12、恶意代码检测系统, 其特征在于, 所述系统包括 : 敏感调用序列接收设备, 用于接收敏感系统调用序列 ; 检测设备, 用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得 到一恶意软件检测结果 ; 以及 检测结果发送设备, 用于发送所述恶意软件检测结果。 权 利 要 求 书 CN 103839005 A 4 1/10 页 5 移动操作系统的恶意软件检测方法和恶意软件检测系统 技术领域 0001 本发明涉及移动互联网安全领域, 尤其涉及一种移动操作系统的恶意软件检测方 法和系统。 背景技术 0002 近年来, 以安卓 (Android) 为代表的开源智能移动操作系统得到了广泛的应用,。

13、 同 时伴随功能强大的智能移动终端一同出现的是各种恶意软件的攻击。目前, 网络上针对安 卓移动终端的恶意软件有上千种之多, 其主要涉及垃圾短信、 恶意扣费、 窃取用户个人信息 等诸多方面。虽然从危害程度和影响范围而言, 针对安卓移动终端的恶意软件还无法和个 人电脑安全隐患相比, 但是从发展的角度来看, 移动终端在社会领域的推广和普及必将进 一步加深和扩大恶意软件的影响。 0003 目前, 针对安卓移动终端平台的恶意软件的防范技术主要包括恶意软件的特征值 扫描和虚拟机技术两种。 0004 特征值扫描是目前最常用的恶意软件防范技术, 其基本原理在于分析已知恶意软 件, 识别出其中恶意部分的代码标识。

14、, 将该代码标识存入一恶意代码特征库, 而后对待检测 的软件实行扫描匹配, 查找其中是否有符合恶意软件的代码标识的部分。该技术从本质上 说属于软件的静态检测, 其不足之处是当恶意软件变形或参杂有其他成分后, 特征值匹配 会受到很大的影响 ; 此外特征扫描需要有实时的恶意代码特征库的支持, 移动终端需要消 耗大量的通信流量下载最新的特征库数据。 0005 虚拟机技术则采用动态检测的方式, 让需要检测的软件在特殊环境下被执行, 以 此来检测软件是否具备恶意的行为。该技术对恶意软件的检测率较高, 特别适用于多态和 变形的恶意软件, 但由于软件执行过程中具有多分支的特点, 虚拟机技术只能检查软件中 一。

15、部分流程中恶意代码的存在与否, 不能够实现对软件全部流程的恶意代码的检测。 发明内容 0006 本发明的目的是要提供一种针对安卓移动操作系统的恶意软件检测技术, 以解决 现有技术中采用的恶意软件检测技术所面临的诸多技术问题中的至少一个。 0007 为解决上述技术问题, 根据本发明的一个方面, 提供一种安卓移动操作系统的恶 意软件检测方法, 所述方法包括 : 0008 敏感调用序列生成步骤, 针对软件中的至少一个入口函数对软件进行代码分析, 生成敏感系统调用序列 ; 0009 检测步骤, 根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得 到一恶意软件检测结果。 0010 根据本发明的。

16、另一个方面, 还提供一种安卓移动操作系统的恶意软件检测系统, 所述系统包括 : 0011 敏感调用序列生成设备, 用于针对软件中的至少一个入口函数对软件进行代码分 说 明 书 CN 103839005 A 5 2/10 页 6 析, 生成敏感系统调用序列 ; 以及 0012 检测设备, 用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配 并得到一恶意软件检测结果。 0013 根据本发明的另一个方面, 还提供一种安卓移动操作系统的恶意软件检测方法, 所述方法在移动终端执行, 包括如下步骤 : 0014 敏感调用序列生成步骤, 针对软件中的至少一个入口函数对软件进行代码分析, 生成敏感系。

17、统调用序列 ; 以及 0015 敏感调用序列发送步骤, 发送所述敏感系统调用序列。 0016 根据本发明的另一个方面, 还提供一种安卓移动操作系统的恶意软件检测系统, 所述系统包括 : 0017 敏感调用序列生成设备, 用于针对软件中的至少一个入口函数对软件进行代码分 析, 生成敏感系统调用序列 ; 以及 0018 敏感调用序列发送设备, 用于发送所述敏感系统调用序列。 0019 根据本发明的另一个方面, 还提供一种安卓移动操作系统的恶意代码检测方法, 所述方法在服务器执行, 包括如下步骤 : 0020 敏感调用序列接收步骤, 接收敏感系统调用序列 ; 0021 检测步骤, 根据预定义的恶意软。

18、件特征库对所述敏感系统调用序列进行匹配并得 到一恶意软件检测结果 ; 以及 0022 检测结果发送步骤, 发送所述恶意软件检测结果。 0023 根据本发明的另一个方面, 还提供一种安卓移动操作系统的恶意代码检测系统, 所述系统包括 : 0024 敏感调用序列接收设备, 用于接收敏感系统调用序列 ; 0025 检测设备, 用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配 并得到一恶意软件检测结果 ; 以及 0026 检测结果发送设备, 用于发送所述恶意软件检测结果。 0027 本发明的方法和系统根据目前恶意软件主要依靠系统调用实现这一特点, 对恶意 软件所使用的系统调用进行有效的检测。

19、, 这样可以有效的解决现有技术中检测技术所面临 的问题, 实现恶意软件本质行为的检测, 提高了恶意软件的检测效率。 0028 提供上述发明内容是为了以简化的形式介绍将在以下具体实施方式中进一步描 述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征, 也不 旨在用于帮助确定所要求保护的主题的范围。此外, 所要求保护的主题不限于解决在本发 明的任一部分中提及的任何或所有技术问题的实现。 附图说明 0029 图 1 是本发明一个具体实施方式中恶意软件检测方法的步骤流程图 ; 0030 图 2 是本发明一个具体实施方式的恶意软件检测方法中敏感调用序列生成步骤 的具体流程图 ; 0。

20、031 图 3 是本发明一个具体实施方式的恶意软件检测方法中调用关系图生成步骤的 具体流程图 ; 说 明 书 CN 103839005 A 6 3/10 页 7 0032 图 4 是本发明中一个功能模块调用关系子图的示意图 ; 0033 图 5 是本发明一个具体实施方式的恶意软件检测方法中序列生成步骤的具体流 程图 ; 0034 图 6 是本发明中一个标识了敏感系统调用的功能模块调用关系子图的示意图 ; 0035 图 7 是本发明一个具体实施方式中恶意软件检测系统的结构图 ; 0036 图 8 是本发明另一个具体实施方式中恶意软件检测方法的步骤流程图 ; 0037 图 9 是本发明中对系统调用。

21、序列进行编码的协议格式示意图 ; 0038 图 10 是本发明另一个具体实施方式中恶意软件检测方法的步骤流程图 ; 0039 图 11 是本发明中一个恶意软件检测结果的格式示意图 ; 0040 图 12 是本发明另一个具体实施方式中恶意软件检测系统的结构图 ; 0041 图 13 是本发明另一个具体实施方式中恶意软件检测系统的结构图 ; 0042 图 14 是本发明另一个具体实施方式中恶意软件检测系统的硬件结构示意图。 具体实施方式 0043 下面结合附图 (若干附图中相同的标号表示相同的元素) 和实施例, 对本发明的具 体实施方式作进一步详细说明。 以下实施例用于说明本发明, 但不用来限制本。

22、发明的范围。 0044 本领域技术人员可以理解, 本发明中的 “第一” 、“第二” 等术语仅用于区别不同步 骤、 设备或模块等, 既不代表任何特定技术含义, 也不表示它们之间的必然逻辑顺序。 0045 在本发明中,“入口函数” 是指软件中的初始化函数和触发函数, 这两部分函数一 般会声明软件所使用的对象和所调用的系统函数。 0046 在本发明中,“功能模块” 是指软件中除入口函数之外的其他程序模块, 其各自实 现特定功能。 0047 在本发明中,“功能模块调用关系图” 是指从入口函数开始, 分别对功能模块中的 内容进行调用, 依照其调用的顺序来描述软件运行流程的、 由各功能模块所组成的调用关 。

23、系图。 0048 发明人通过研究发现, 首先, 安卓移动终端平台之上的恶意软件主要依靠平台自 身提供的系统调用来实现, 因此对软件源代码中系统调用的分析可以有效的实现恶意代码 的检测 ; 第二, 安卓软件作为面向对象的语言, 均采用事件触发机制实现软件的运行, 因此 软件中具有多个入口函数, 每个入口函数通过声明和引用其他的功能模块来实现自身的功 能, 因此对功能模块调用顺序的分析可以有效的掌握软件的运行流程。 0049 如图 1 所示, 本发明具体实施方式中提供了一种安卓移动操作系统的恶意软件检 测方法, 所述方法包括 : 0050 S110 : 敏感调用序列生成步骤, 针对软件中的至少一个。

24、入口函数对软件进行代码 分析, 生成敏感系统调用序列 ; 0051 S120 : 检测步骤, 根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹 配并得到一恶意软件检测结果。 0052 下面, 根据附图 1-6 来具体介绍上述恶意软件检测方法中各步骤的功能。 0053 S110 : 敏感调用序列生成步骤, 针对软件中的至少一个入口函数对软件进行代码 分析, 生成敏感系统调用序列。 说 明 书 CN 103839005 A 7 4/10 页 8 0054 在一具体实施方式中, 如图 2 所示, 该敏感调用序列生成步骤 S110 可进一步包括 如下步骤 : 0055 S111 : 调用关系图生。

25、成步骤, 针对软件中的至少一个入口函数, 分析对软件中各功 能模块的顺序调用关系, 生成描述软件运行流程的功能模块调用关系图 ; 0056 S112 : 序列生成步骤, 根据预定义的敏感系统调用库, 基于所述功能模块调用关系 图来生成所述敏感系统调用序列。 0057 在一具体实施方式中, 如图 3 所示, 该调用关系图生成步骤 S111 可进一步包括如 下步骤 : 0058 S1111 : 获取所述软件的源代码。 0059 由于本具体实施方式中的方法是基于软件源代码中的系统调用对恶意软件进行 检测的, 因此首先需要获取软件的源代码。具体地, 可通过反编译来得到安卓软件 (APK 文 件) 的 。

26、java 源代码, 这为软件的静态分析提供了可能。 0060 S1112 : 抽取软件中所有的入口函数, 即软件中的所有初始化函数和触发函数。 0061 其中, 初始化函数的主要功能在于实现整个软件的基本参数设置, 后台的服务进 程会在初始化函数中启动 ; 触发函数主要实现系统对用户事件的响应操作。从软件运行的 角度看, 初始化函数和触发函数是软件运行的入口位置, 各种功能模块的调用均是在这里 直接或间接实现的。 0062 在本步骤中, 根据 S1111 中所获取的软件源代码确定出该软件中所有的入口函 数。 0063 S1113 : 确定每个入口函数所调用的各功能模块以及相应的调用顺序。 00。

27、64 软件功能模块中的程序一般是恶意代码有可能运行的区域。因此在本步骤中, 可 以先抽取软件中声明构建的各个功能模块, 然后从软件的每个入口函数开始, 对软件中所 声明的各个功能模块进行遍历, 确定每个所述入口函数所调用的各功能模块以及相应的调 用顺序, 所确定的结果可以通过下表 1 的形式来体现 : 0065 表 1 0066 0067 如表 1 所示, 表的首行中列出了软件中的各入口函数, 包括一个初始函数和多个 触发函数, 表的首列则列出了软件中声明的各功能模块。表中的数字用于表示对应功能模 块在对应入口函数执行流程中被调用的次序编号, 例如功能模块 1 在第一触发函数中的标 号为 1,。

28、 即表示该功能模块在第一触发函数中第 1 个被调用, 而功能模块 2 则在第一触发函 数中第 3 个被调用, 功能模块 3 在第一触发函数中第 2 个被调用。 0068 S1114 : 生成功能模块调用关系图。 0069 表 1 体现了各入口函数所调用的各功能模块以及相应的调用顺序, 根据表 1 可生 说 明 书 CN 103839005 A 8 5/10 页 9 成所述功能模块调用关系图。 具体地, 例如针对第一触发函数, 可根据其调用的功能模块和 顺序形成关于第一触发函数的一个功能模块调用关系子图 : 功能模块 1 功能模块 3 功能模块 2, 如图 4 所示。 0070 综合所有入口函数。

29、的功能模块调用关系子图便可生成该软件的功能模块调用关 系图, 即, 每个入口函数可对应一个功能模块调用关系子图, 而整个功能模块调用关系图中 可包括一个或多个类似于图 4 的功能模块调用关系子图。 0071 在针对安卓移动操作系统的恶意软件中, 所使用的系统调用类型主要与网络操作 和系统资源访问有关, 可以包括开启网络通信接收器 (短信服务、 网络套接字等) 、 向指定网 址发送指定信息、 下载定制软件、 读取用户 SIM 卡或移动终端相关信息、 启动后台进程等。 在本发明一个具体实施方式中, 可以基于上述系统调用类型预先定义部分系统调用为敏感 系统调用, 以形成一敏感系统调用库。 也就是说,。

30、 敏感系统调用库中的系统调用是一些存在 恶意代码可能性较大的系统调用。 0072 在一个具体实施方式中, 如图 5 所示, 该序列生成步骤 S112 可进一步包括如下步 骤 : 0073 S1121 : 查找该功能模块调用关系图中各功能模块中出现的所有系统调用。 0074 软件中的每个功能模块有可能出现一个或多个系统调用, 在本步骤中, 将功能模 块调用关系图中涉及的所有功能模块中出现的所有系统调用都查找出来。 0075 S1122 : 根据上述预定义的敏感系统调用库, 确定所查找出的各系统调用中的敏感 系统调用, 并标识敏感系统调用在所述功能模块调用关系图的出现位置。 0076 在本步骤中,。

31、 可以将查找出的各系统调用逐一与敏感系统调用库中所定义的敏感 系统调用进行匹配, 从而判断是否属于预定义的敏感系统调用。当判断一系统调用属于敏 感系统调用时, 标识出其在功能模块调用关系图中出现的位置。 0077 例如, 在图 6 所示的功能模块调用关系图中, 功能模块 1 功能模块 3 功能 模块 2 构成了一个功能模块关系调用子图。在该子图中, 在功能模块 1 中出现了敏感系统 调用 S1, 功能模块 3 中出现了敏感系统调用 S2 和 S3, 在功能模块 2 中出现了敏感系统调用 S4。 0078 S1123 : 根据所述敏感系统调用出现的顺序位置生成所述敏感系统调用序列。 0079 由。

32、于存在恶意代码的系统调用函数需要通过一系列组合来实现其恶意功能, 因此 将这些系统调用按照一定的顺序组合而成的调用序列, 可以有效的描述恶意代码的实现机 制。 在本步骤中, 针对所述功能模块调用关系图中的每个子图, 按照敏感系统调用出现的先 后顺序形成多个敏感系统调用子序列。例如根据图 5 所示的, 获得一个敏感系统调用子序 列 : S1S2S3S4。综合所有的敏感系统调用子序列就生成了敏感系统调用序列, 即 每个功能模块调用关系子图可生成一个敏感系统调用子序列, 而整个敏感系统调用序列中 可包括一个或多个敏感系统调用子序列。 0080 优选地, 在生成敏感系统调用序列的同时, 还可以从源代码。

33、中提取出所出现的各 敏感系统调用所调用的参数。 0081 S120 : 检测步骤, 根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹 配, 以得到一恶意软件检测结果。 0082 在本发明一个具体实施方式中, 可以分析已知的恶意软件, 基于先验知识抽取恶 说 明 书 CN 103839005 A 9 6/10 页 10 意软件中的系统调用序列, 预先形成用于检测恶意软件的一恶意软件特征库, 该恶意软件 特征库中包括描述恶意代码的实现机制的多个调用序列作为样本。优选地, 可在抽取恶意 软件中的系统调用序列时, 同时抽取恶意软件中各系统调用所调用的参数, 将系统调用序 列和相应参数共同形成该恶。

34、意软件特征库, 即, 该恶意软件特征库中包括描述恶意代码的 实现机制的多个调用序列与相应参数的组合作为样本。 0083 在该检测步骤 S120 中, 可具体将在 S110 中生成的敏感系统调用序列中的所有敏 感系统调用子序列与所述恶意软件特征库中的恶意调用序列样本进行匹配并得到匹配结 果, 将所有匹配结果作为所述恶意软件检测结果。 0084 优选地, 当在敏感调用序列生成步骤 S110 中同时提取调用参数时, 将各敏感系统 调用子序列以及所调用的参数与所述恶意软件特征库中的恶意调用序列样本以及相应参 数同时进行匹配以得到匹配结果, 并将所有匹配结果作为所述恶意软件检测结果。 这样, 结 合敏感。

35、系统调用序列中对于敏感系统调用的顺序以及所调用的参数进行综合检测, 可以提 高检测结果的准确程度。本领域技术人员可以理解, 此时考虑到敏感系统调用中参数类型 和个数的变化, 可以对匹配程度做一定的模糊化处理, 当匹配结果达到某一阈值时即认为 该敏感系统调用属于恶意软件的范畴。 0085 与现有技术中的检测技术相比, 本发明的上述方法可直接运行于手机等移动终端 中, 其从源代码分析入手, 根据目前恶意代码主要依靠系统调用实现这一特点, 对恶意代码 所使用的系统调用进行有效的检测, 这样可以有效的避免传统的特征值匹配无法解决的代 码变形的问题, 从源代码一级实现恶意代码本质行为的检测, 提高了恶意。

36、代码的检测效率。 同时相比于虚拟机检测技术相比, 本发明从程序的入口函数分析入手, 通过功能模块间的 调用关系可以获得整个程序的执行流程, 继而全面的分析程序的代码执行过程, 避免了虚 拟机方式检测时只能检查代码的一条执行流程的问题。 0086 与上述方法对应, 如图 7 所示, 本发明具体实施方式中还提供了一种安卓移动操 作系统的恶意软件检测系统 200, 所述系统 200 包括 : 0087 敏感调用序列生成设备 210, 用于针对软件中的至少一个入口函数对软件进行代 码分析, 生成敏感系统调用序列 ; 以及 0088 检测设备 220, 用于根据预定义的恶意软件特征库对所述敏感系统调用序。

37、列进行 匹配并得到一恶意软件检测结果。 0089 上述系统200中各设备分别用于实现图1所示的上述恶意软件检测方法中的各步 骤功能, 各设备中还可以进一步包括多个装置用于实现各步骤中子步骤的功能, 此处不再 赘述。 0090 如图 8 所示, 本发明具体实施方式中提供了一种安卓移动操作系统的恶意软件检 测方法, 该方法可在移动终端中执行, 具体可包括如下步骤 : 0091 S310 : 敏感调用序列生成步骤, 针对软件中的至少一个入口函数对软件进行代码 分析, 生成敏感系统调用序列 ; 以及 0092 S320 : 敏感调用序列发送步骤, 发送所述敏感系统调用序列。 0093 在图8所示的该方。

38、法中, 上述敏感调用序列生成步骤S310的功能和执行细节与图 1 所示方法中敏感调用序列生成步骤 S110 完全一致, 此处不再赘述。 0094 在调用序列发送步骤 S320 中, 可将所生成的敏感系统调用序列发送至服务器端。 说 明 书 CN 103839005 A 10 7/10 页 11 这样, 将得到的敏感系统调用序列上传到服务器, 有可能由服务器根据后台的恶意软件特 征库中的系统调用序列进行匹配, 并将检测结果返还给移动终端, 避免了移动终端维护庞 大的恶意软件特征库所需要耗费的时间和数据流量, 并保证了对最新恶意软件检测的实时 性。 0095 在一个具体实施方式中, 在调用序列发送。

39、步骤 S320 中, 将所获得的敏感系统调用 序列按照某种预定协议格式实现编码, 并将编码后的敏感系统调用序列发送到服务器端。 优选地, 当在敏感调用序列生成步骤 S310 中同时提取了调用参数时, 可将所获得的敏感系 统调用序列和对应调用参数一起进行编码并发送。 0096 例如, 图 9 中示出了对敏感系统调用序列及其参数进行编码的某协议格式, 其中 : 0097 协议的头部是字段调用序列数目, 长度为 1 字节, 记录范围 0-255, 表示该部分报 文内装载的敏感系统调用子序列的个数 ; 0098 协议的第二个字段为编号字段, 长度为 1 字节, 记录范围 0-255, 表示当前字段后 。

40、加载的是第几个敏感系统调用子序列 ; 0099 协议的第三个字段为长度字段, 长度为 4 个字节, 表示后续加载的敏感系统调用 子序列的长度 ; 0100 协议的第四个字段是调用序列的内容, 由若干个系统调用字段和参数字段组合而 成, 其中系统调用字段主要用于记录系统调用的编号, 参数字段则主要记录调用中所使用 的各个参数。若干个系统调用字段和参数字段的组合既可以描述完整的系统调用过程。 0101 当所获得的敏感系统调用序列中包括多个敏感系统调用子序列时, 协议的二三四 字段可重复加载在报文后, 以扩展描述的内容。 0102 与图 8 中所示方法对应, 如图 12 所示, 本发明具体实施方式中。

41、还提供了一种安卓 移动操作系统的恶意软件检测系统 400, 所述系统 400 可实现于移动终端中, 具体包括 : 0103 敏感调用序列生成设备 410, 用于针对软件中的至少一个入口函数对软件进行代 码分析, 生成敏感系统调用序列 ; 以及 0104 敏感调用序列发送设备 420, 用于发送所述敏感系统调用序列。 0105 上述系统400中各设备分别用于实现图8所示的恶意软件检测方法中的各步骤功 能, 各设备中还可以进一步包括多个装置用于实现各步骤中子步骤的功能, 此处不再赘述。 0106 与图 8 中所示的执行于移动终端的方法对应, 如图 10 所示, 本发明具体实施方式 中提供了一种安卓。

42、移动操作系统的恶意代码检测方法, 所述方法在服务器执行, 包括如下 步骤 : 0107 S510 : 敏感调用序列接收步骤, 接收敏感系统调用序列 ; 0108 S520 : 检测步骤, 根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹 配并得到一恶意软件检测结果 ; 以及 0109 S530 : 检测结果发送步骤, 发送所述恶意软件检测结果。 0110 在敏感调用序列接收步骤 S510 中, 服务器从移动终端接收所生成的敏感系统调 用序列。在一个具体实施方式中, 所接收的是移动终端按照某种协议格式进行编码后的敏 感系统调用序列, 此时进一步包括一相应的解码步骤, 从而得到原始的敏感系统。

43、调用序列。 优选地, 在移动终端同时提取了调用参数的情况下, 服务器解码后的内容也同时包括相应 的调用参数。 说 明 书 CN 103839005 A 11 8/10 页 12 0111 在检测步骤 S520 中, 服务器根据预定义的恶意软件特征库对该敏感系统调用序 列进行匹配并得到一恶意软件检测结果。与图 9 中所示的敏感系统调用序列对应, 该恶意 软件检测结果可包括与各敏感系统调用子序列相应的检测结果, 如图 11 所示。 0112 可见, 该检测步骤S520的具体过程与上文方法中所介绍的检测步骤S120相近, 区 别在于该检测操作在服务器端执行, 这样避免了移动终端维护庞大的恶意软件特征。

44、库所需 要耗费的时间和数据流量, 并保证了对最新恶意软件检测的实时性。 0113 在检测结果发送步骤 S530 中, 服务器将最终的恶意软件检测结果发送至移动终 端, 通知移动终端的用户对于恶意软件的检测结果。 0114 与图10所示方法对应, 如图13所示, 本发明具体实施方式中还提供了一种安卓移 动操作系统的恶意软件检测系统 600, 所述系统 600 可实现于移动终端中, 具体包括 : 0115 敏感调用序列接收设备 610, 用于接收敏感系统调用序列 ; 0116 检测设备 620, 用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行 匹配并得到一恶意软件检测结果 ; 以及 01。

45、17 检测结果发送设备 630, 用于发送所述恶意软件检测结果。 0118 上述系统 600 中各设备分别用于实现图 10 所示的上述恶意软件检测方法中的各 步骤功能, 各设备中还可以进一步包括多个装置用于实现各步骤中子步骤的功能, 此处不 再赘述。 0119 与现有技术中的检测技术相比, 本发明的上述方法和系统从源代码分析入手, 根 据目前恶意代码主要依靠系统调用实现这一特点, 对恶意代码所使用的系统调用进行有效 的检测, 这样可以有效的避免传统的特征值匹配无法解决的代码变形的问题, 从源代码一 级实现恶意代码本质行为的检测, 提高了恶意代码的检测效率。相比于虚拟机检测技术相 比, 本发明从。

46、程序的入口函数分析入手, 通过功能模块间的调用关系可以获得整个程序的 执行流程, 继而全面的分析程序的代码执行过程, 避免了虚拟机方式检测时只能检查代码 的一条执行流程的问题。 同时, 本发明上述方法和系统采用特殊的协议格式, 将得到的系统 调用序列上传到服务器, 有可能由服务器根据后台的恶意软件特征库中的系统调用序列进 行匹配, 并将检测结果返还给移动终端, 避免了移动终端维护庞大的恶意软件特征库所需 要耗费的时间和数据流量, 并保证了对最新恶意软件检测的实时性。 0120 本领域技术人员可以理解, 在本发明具体实施方式的上述各方法中, 各步骤的序 号大小并不意味着执行顺序的先后, 各步骤的。

47、执行顺序应以其功能和内在逻辑确定, 而不 应对本发明具体实施方式的实施过程构成任何限定。 0121 图14为本发明实施例提供的一种恶意软件检测系统800的硬件结构示意图, 本发 明具体实施例并不对恶意软件检测系统 800 的具体实现做限定。如图 14 所示, 该恶意软件 检测系统 800 可以包括 : 0122 处理器 (processor)810、 通信接口 (Communications Interface)820、 存储器 (memory)830、 以及通信总线 840。其中 : 0123 处理器 810、 通信接口 820、 以及存储器 830 通过通信总线 840 完成相互间的通信。。

48、 0124 通信接口 820, 用于与比如客户端等的网元通信。 0125 处理器 810, 用于执行程序 832, 具体可以实现附图所示的系统实施例中恶意软件 检测系统的相关功能。 说 明 书 CN 103839005 A 12 9/10 页 13 0126 具体地, 程序 832 可以包括程序代码, 所述程序代码包括计算机操作指令。 0127 处理器 810 可能是一个中央处理器 CPU, 或者是特定集成电路 ASIC (Application Specific Integrated Circuit) , 或者是被配置成实施本发明实施例的一个或多个集成电 路。 0128 存储器 830, 用。

49、于存放程序 832。存储器 830 可能包含高速 RAM 存储器, 也可能还 包括非易失性存储器 (non-volatile memory) , 例如至少一个磁盘存储器。 程序832具体可 以具体实现以下步骤 : 0129 敏感调用序列生成步骤, 针对软件中的至少一个入口函数对软件进行代码分析, 生成敏感系统调用序列 ; 0130 检测步骤, 根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得 到一恶意软件检测结果。 0131 或者, 程序 832 具体可以具体实现以下步骤 : 0132 敏感调用序列生成步骤, 针对软件中的至少一个入口函数对软件进行代码分析, 生成敏感系统调用序列 ; 以及 0133 敏感调用序列发送步骤, 发送所述敏。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1