《移动操作系统的恶意软件检测方法和恶意软件检测系统.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 敏感调用序列发送步骤, 发送所述敏。