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

文档序号:6520310阅读:143来源:国知局
移动操作系统的恶意软件检测方法和恶意软件检测系统的制作方法
【专利摘要】本发明提供了一种安卓移动操作系统的恶意软件检测方法。所述方法包括:敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。本发明根据目前恶意软件主要依靠系统调用实现这一特点,对恶意软件所使用的系统调用进行有效的检测,这样可以有效的解决现有技术中检测技术所面临的问题,实现恶意软件本质行为的检测,提高了恶意软件的检测效率。
【专利说明】移动操作系统的恶意软件检测方法和恶意软件检测系统
【技术领域】
[0001]本发明涉及移动互联网安全领域,尤其涉及一种移动操作系统的恶意软件检测方法和系统。
【背景技术】
[0002]近年来,以安卓(Android)为代表的开源智能移动操作系统得到了广泛的应用,同时伴随功能强大的智能移动终端一同出现的是各种恶意软件的攻击。目前,网络上针对安卓移动终端的恶意软件有上千种之多,其主要涉及垃圾短信、恶意扣费、窃取用户个人信息等诸多方面。虽然从危害程度和影响范围而言,针对安卓移动终端的恶意软件还无法和个人电脑安全隐患相比,但是从发展的角度来看,移动终端在社会领域的推广和普及必将进一步加深和扩大恶意软件的影响。
[0003]目前,针对安卓移动终端平台的恶意软件的防范技术主要包括恶意软件的特征值扫描和虚拟机技术两种。
[0004]特征值扫描是目前最常用的恶意软件防范技术,其基本原理在于分析已知恶意软件,识别出其中恶意部分的代码标识,将该代码标识存入一恶意代码特征库,而后对待检测的软件实行扫描匹配,查找其中是否有符合恶意软件的代码标识的部分。该技术从本质上说属于软件的静态检测,其不足之处是当恶意软件变形或参杂有其他成分后,特征值匹配会受到很大的影响;此外特征扫描需要有实时的恶意代码特征库的支持,移动终端需要消耗大量的通信流量下载最新的特征库数据。
[0005]虚拟机技术则采用动态检测的方式,让需要检测的软件在特殊环境下被执行,以此来检测软件是否具备恶意的行为。该技术对恶意软件的检测率较高,特别适用于多态和变形的恶意软件,但由于软件执行过程中具有多分支的特点,虚拟机技术只能检查软件中一部分流程中恶意代码的存在与否,不能够实现对软件全部流程的恶意代码的检测。

【发明内容】

[0006]本发明的目的是要提供一种针对安卓移动操作系统的恶意软件检测技术,以解决现有技术中采用的恶意软件检测技术所面临的诸多技术问题中的至少一个。
[0007]为解决上述技术问题,根据本发明的一个方面,提供一种安卓移动操作系统的恶意软件检测方法,所述方法包括:
[0008]敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;
[0009]检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。
[0010]根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意软件检测系统,所述系统包括:
[0011 ] 敏感调用序列生成设备,用于针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
[0012]检测设备,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。
[0013]根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意软件检测方法,所述方法在移动终端执行,包括如下步骤:
[0014]敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
[0015]敏感调用序列发送步骤,发送所述敏感系统调用序列。
[0016]根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意软件检测系统,所述系统包括:
[0017]敏感调用序列生成设备,用于针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;以及
[0018]敏感调用序列发送设备,用于发送所述敏感系统调用序列。
[0019]根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意代码检测方法,所述方法在服务器执行,包括如下步骤:
[0020]敏感调用序列接收步骤,接收敏感系统调用序列;
[0021]检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
[0022]检测结果发送步骤,发送所述恶意软件检测结果。
[0023]根据本发明的另一个方面,还提供一种安卓移动操作系统的恶意代码检测系统,所述系统包括:
[0024]敏感调用序列接收设备,用于接收敏感系统调用序列;
[0025]检测设备,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及
[0026]检测结果发送设备,用于发送所述恶意软件检测结果。
[0027]本发明的方法和系统根据目前恶意软件主要依靠系统调用实现这一特点,对恶意软件所使用的系统调用进行有效的检测,这样可以有效的解决现有技术中检测技术所面临的问题,实现恶意软件本质行为的检测,提高了恶意软件的检测效率。
[0028]提供上述
【发明内容】
是为了以简化的形式介绍将在以下【具体实施方式】中进一步描述的一些概念。本
【发明内容】
并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有技术问题的实现。
【专利附图】

【附图说明】
[0029]图1是本发明一个【具体实施方式】中恶意软件检测方法的步骤流程图;
[0030]图2是本发明一个【具体实施方式】的恶意软件检测方法中敏感调用序列生成步骤的具体流程图;
[0031]图3是本发明一个【具体实施方式】的恶意软件检测方法中调用关系图生成步骤的具体流程图;[0032]图4是本发明中一个功能模块调用关系子图的示意图;
[0033]图5是本发明一个【具体实施方式】的恶意软件检测方法中序列生成步骤的具体流程图;
[0034]图6是本发明中一个标识了敏感系统调用的功能模块调用关系子图的示意图;
[0035]图7是本发明一个【具体实施方式】中恶意软件检测系统的结构图;
[0036]图8是本发明另一个【具体实施方式】中恶意软件检测方法的步骤流程图;
[0037]图9是本发明中对系统调用序列进行编码的协议格式示意图;
[0038]图10是本发明另一个【具体实施方式】中恶意软件检测方法的步骤流程图;
[0039]图11是本发明中一个恶意软件检测结果的格式示意图;
[0040]图12是本发明另一个【具体实施方式】中恶意软件检测系统的结构图;
[0041]图13是本发明另一个【具体实施方式】中恶意软件检测系统的结构图;
[0042]图14是本发明另一个【具体实施方式】中恶意软件检测系统的硬件结构示意图。
【具体实施方式】
[0043]下面结合附图(若干附图中相同的标号表示相同的元素)和实施例,对本发明的【具体实施方式】作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0044]本领域技术人员可以理解,本发明中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
[0045]在本发明中,“入口函数”是指软件中的初始化函数和触发函数,这两部分函数一般会声明软件所使用的对象和所调用的系统函数。
[0046]在本发明中,“功能模块”是指软件中除入口函数之外的其他程序模块,其各自实现特定功能。
[0047]在本发明中,“功能模块调用关系图”是指从入口函数开始,分别对功能模块中的内容进行调用,依照其调用的顺序来描述软件运行流程的、由各功能模块所组成的调用关系图。
[0048]发明人通过研究发现,首先,安卓移动终端平台之上的恶意软件主要依靠平台自身提供的系统调用来实现,因此对软件源代码中系统调用的分析可以有效的实现恶意代码的检测;第二,安卓软件作为面向对象的语言,均采用事件触发机制实现软件的运行,因此软件中具有多个入口函数,每个入口函数通过声明和引用其他的功能模块来实现自身的功能,因此对功能模块调用顺序的分析可以有效的掌握软件的运行流程。
[0049]如图1所示,本发明【具体实施方式】中提供了一种安卓移动操作系统的恶意软件检测方法,所述方法包括:
[0050]SllO:敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列;
[0051]S120:检测步骤,根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果。
[0052]下面,根据附图1-6来具体介绍上述恶意软件检测方法中各步骤的功能。
[0053]SllO:敏感调用序列生成步骤,针对软件中的至少一个入口函数对软件进行代码分析,生成敏感系统调用序列。[0054]在一【具体实施方式】中,如图2所示,该敏感调用序列生成步骤SllO可进一步包括如下步骤:
[0055]Slll:调用关系图生成步骤,针对软件中的至少一个入口函数,分析对软件中各功能模块的顺序调用关系,生成描述软件运行流程的功能模块调用关系图;
[0056]S112:序列生成步骤,根据预定义的敏感系统调用库,基于所述功能模块调用关系图来生成所述敏感系统调用序列。
[0057]在一【具体实施方式】中,如图3所示,该调用关系图生成步骤Slll可进一步包括如下步骤:
[0058]Sllll:获取所述软件的源代码。
[0059]由于本【具体实施方式】中的方法是基于软件源代码中的系统调用对恶意软件进行检测的,因此首先需要获取软件的源代码。具体地,可通过反编译来得到安卓软件(APK文件)的java源代码,这为软件的静态分析提供了可能。
[0060]S1112:抽取软件中所有的入口函数,即软件中的所有初始化函数和触发函数。
[0061]其中,初始化函数的主要功能在于实现整个软件的基本参数设置,后台的服务进程会在初始化函数中启动;触发函数主要实现系统对用户事件的响应操作。从软件运行的角度看,初始化函数和触发函数是软件运行的入口位置,各种功能模块的调用均是在这里直接或间接实现的。
[0062]在本步骤中,根据 Sllll中所获取的软件源代码确定出该软件中所有的入口函数。
[0063]S1113:确定每个入口函数所调用的各功能模块以及相应的调用顺序。
[0064]软件功能模块中的程序一般是恶意代码有可能运行的区域。因此在本步骤中,可以先抽取软件中声明构建的各个功能模块,然后从软件的每个入口函数开始,对软件中所声明的各个功能模块进行遍历,确定每个所述入口函数所调用的各功能模块以及相应的调用顺序,所确定的结果可以通过下表1的形式来体现:
[0065]表1
【权利要求】
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.一种安卓移动操作系统的恶意代码检测系统,其特征在于,所述系统包括: 敏感调用序列接收设备,用于接收敏感系统调用序列; 检测设备,用于根据预定义的恶意软件特征库对所述敏感系统调用序列进行匹配并得到一恶意软件检测结果;以及 检测结果发送设备,用于发送所述恶意软件检测结果。
【文档编号】G06F21/56GK103839005SQ201310598132
【公开日】2014年6月4日 申请日期:2013年11月22日 优先权日:2013年11月22日
【发明者】焦健 申请人:北京智谷睿拓技术服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1