公开/公告号CN105956474A
专利类型发明专利
公开/公告日2016-09-21
原文格式PDF
申请/专利权人 武汉虹旭信息技术有限责任公司;
申请/专利号CN201610323750.1
申请日2016-05-17
分类号G06F21/56(20130101);
代理机构42001 武汉宇晨专利事务所;
代理人黄瑞棠
地址 430074 湖北省武汉市洪山区邮科院路88号
入库时间 2023-06-19 00:30:14
法律状态公告日
法律状态信息
法律状态
2018-12-25
授权
授权
2016-10-19
实质审查的生效 IPC(主分类):G06F21/56 申请日:20160517
实质审查的生效
2016-09-21
公开
公开
技术领域
本发明属于智能移动终端技术领域,尤其涉及一种Android平台软件异常行为检测系统。
背景技术
近年来,随着移动互联网的快速发展和智能手机生产成本的下降,很多 PC
功能也慢慢往手机端迁移,智能手机功能变得更强大, 如移动办公、 电子支付、 车载导航等, 智能移动终端软件的数量已远远超出传统 PC 上应用软件的数量。相对于PC来说,智能终端更贴近用户,渐渐成为人们工作、生活中不可或缺的一部分。Android和iOS占据了移动智能终端操作系统的重要的份额。
与 iOS上的应用软件相比较, 目前 Android应用软件的数量和用户数量已占据了绝对优势。由于Android阵营通过采用开放性策略,在其普及率越来越高的同时,也成为了黑客和恶意软件攻击的重要目标,Android平台安全问题不容忽视。
软件检测是 Android平台安全防护最重要的手段,目前智能终端软件检测技术大致可分为静态检测和动态检测:
静态检测在不运行目标软件的情况下,需要通过反编译等手段抽取程序的代码片段、API函数、语义逻辑等静态特征进行检测。该方法的特点是检测速度快、误报率低,检测效果取决于恶意软件特征码库的全面性。当恶意软件数量大、变
种多时,将使征码库迅速膨胀,在占据较大存储空间的同时,也会增大检索的复
杂度。而且容易受程序加壳等因素影响,无法应对经过混淆和多态技术处理的恶
意软件,无法检测未知恶意软件。
动态检测是指先将待检测的软件在终端上安装并运行,然后通过使用软件的各个功能来检测该软件对系统资源的使用情况。这些资源可以包括是否有擅自联网情况、是否有包括联系人等敏感信息的获取、是否未经提示请求发送短信内容、是否未经提示请求上传和下载文件等通过软件运行来检测软件是否符窃密、吸费、非法内容传播等异常行为。但动态监测过程需要在移动终端不断运行一个监测程序,将造成移动终端电量等资源的迅速耗尽,在一定程度上影响用户体验。另一方面,也在一定程度上造成用户对隐私泄露等方面的担忧。
发明内容
本发明的目的就在于克服现有技术的存在的缺点和不足,提出了一种Android 平台软件异常行为检测系统,为Android 平台上软件运行环境提供了安全保证。
实现本发明目的的技术方案是:
结合静态检测和动态检测的特点,结合数据分析、行为监测和Hook日志等信息有效地识别软件异常行为,并支持异常行为提供有效的查询及界定,为Android 智能终端使用提供安全保障。
具体地说,Android平台软件异常行为检测系统(简称系统)
本系统包括相互连通的Android移动终端和软件行为监测数据库;
Android移动终端包括内核Hook模块、数据分析模块和Hook日志模块;
内核Hook模块包括依次交互的System_server进程、libbind.so库和ioctl函数,实现内核hook信息的提取;
数据分析模块包括资源监测进程、状态监测进程、数据分析引擎和数据处理进程;资源监测进程和状态监测进程分别与数据分析引擎交互,数据分析引擎和数据处理进程交互,对软件行为异常的界定写入;
ioctl函数和数据分析模块交互,完成数据传输;
数据分析引擎分别与Hook日志模块和监测数据库交互,完成软件行为特征的查询及日志写入;
数据处理进程分别与Hook日志模块和软件行为监测数据库交互,对软件行为特征进行界定,将软件行为写入Hook日志模块,将界定的软件行为写入软件行为监测数据库中。
本发明具有下列优点和积极效果:
①超前性:本发明是Hook敏感API检测的方法相结合的方法,提高软件异常检测的效率。
②准确性:越来越多的app恶意软件不仅仅停留在应用层面,更多的开始在应用框架层甚至内核层做一些恶意操作;这些新出现的恶意软件对病毒分析系统提出了新的需求;对敏感API函数接口Hook,能够监测出app软件的恶意行为操作。
③综合性:本发明不仅结合动态检测和静态检测的优点,通过对敏感API接口函数的Hook,有效的检测app软件的异常行为,通过对软件的异常行为的处理;用户可以通过检测Hook日志的方法或查询行为特征数据库,有效统计软件的操作系统行为特征。
附图说明
图1是本系统的结构方框图;
图2是Android binder通信机制示意图。
其中:
100—Android移动终端,
110—内核Hook模块,
111—System_server进程,
112—libbind.so库,
113—ioctl函数;
120—数据分析模块,
121—资源监测进程,
122—状态监测进程,
123—数据分析引擎,
124—数据处理进程;
130—Hook日志模块。
200—软件行为监测数据库。
英译汉
1、Hook技术:钩子技术,实际上是一种处理消息的程序段,通过调用,将其载入系统。
2、Android:是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
3、iOS:由苹果公司开发的移动操作系统,是一个与硬件分离的软件体系结构。
具体实施方式
下面结合附图和实施例详细说明:
1、总体
如图1,本系统包括相互连通的Android移动终端100和软件行为监测数据库200;
Android移动终端100包括内核Hook模块110、数据分析模块120和Hook日志模块130;
内核Hook模块110包括依次交互的System_server进程111、libbind.so库112和ioctl函数113,实现内核hook信息的提取;
数据分析模块120包括资源监测进程121、状态监测进程122、数据分析引擎123和数据处理进程124;资源监测进程121和状态监测进程122分别与数据分析引擎123交互,数据分析引擎123和数据处理进程124交互,对软件行为异常的界定写入;
ioctl函数113和数据分析模块120交互,完成数据传输;
数据分析引擎123分别与Hook日志模块130和监测数据库200交互,完成软件行为特征的查询及日志写入;
数据处理进程124分别与Hook日志模块130和软件行为监测数据库200交互,对软件行为特征进行界定,将软件行为写入Hook日志模块130,将界定的软件行为写入软件行为监测数据库200中。
2、功能块
1)Android移动终端100
(1)内核Hook模块110
内核Hook模块110的工作流程:
①利用ptrace系统函数,将Shellcode程序注入到System_server进程111,
ptrace提供了一种父进程可以控制子进程运行,它主要用于实现断点调试;
②利用ptrace系统函数,执行Shellcode中的代码:
Shellcode实际是一段代码(也可以是填充数据),是利用了系统的特定漏洞的代码,可以获取更高的权限;Shellcode经常是作为数据发送给受攻击系统的;
③Shellcode的代码在System_server进程111中运行,功能是调用Hook共享库;
④Hook共享库的功能是对System_server进程111中的libbind.so库112中调用的ioctl函数113进行功能劫持,将劫持数据进行输出重定向,输出至数据分析模块130进行数据解析,并将处理结果写入Hook日志模块130和软件行为监测数据库200。
内核Hook模块110工作机理:
近来手机恶意软件不仅仅停留在应用层的操作,已经开始向应用框架层甚至内核层做一些恶意操作,这样对于检测软件难度提出了更高的挑战;内核Hook模块110就是通过Hook内核层驱动函数的API接口,对系统进程进行监测;利用ptrace系统函数,将Shellcode程序注入到System_server进程111;执行Shellcode中的代码,Shellcode的代码在System_server进程111中运行,功能是调用Hook共享库;Hook共享库将劫持数据进行输出重定向,输出至数据分析模块120进行数据解析,并将处理结果写入Hook日志模块130和软件行为监测数据库200。
(2)数据分析模块120
数据分析模块120的工作流程:
①接收内核Hook模块110发送的数据;
②数据分析模块120对步骤①中所接收的数据进行分类解析,系统资源:读取IMEI或IMSI、发送短信、拨打电话、读取GPS信息、连接摄像头服务和连接录音服务;系统状态:读写系统数据库信息;
③数据分析引擎120对步骤②解析的数据与软件行为监测数据库200中app的权限做对比,将处理数据处理后,按app名称、操作时间、类型、次数及内容写入Hook日志模块130和软件行为监测数据库200;
④根据操作的形成行为特征数据库,在app软件的操作中,数据处理进程124对软件行为做处理统计,并对软件行为与软件行为监测数据库200的数据做对比,如在统计时间内有明显异常,生成异常报告写入Hook日志模块130中;
⑤根据操作的形成行为特征数据库,在app软件的操作中,数据处理模块对软件行为做处理统计,并对软件行为与软件行为监测数据库200的数据做对比,如在统计时间内,没有明显异常,生成日志报告写入Hook日志模块130中。
数据分析模块120的工作机理:
数据分析模块120主要是对接收的软件操作系统Hook数据进行解析的作用;接数据分析模块120对数据进行分类解析,按系统资源和系统状态解析分类;系统资源包括读取IMEI或IMSI、发送短信、拨打电话、读取GPS信息、连接摄像头服务和连接录音服务;系统状态包括读写系统数据库信息;数据分析引擎123对数据行为监测数据库200中app的权限做对比,将处理数据处理后,按app名称、操作时间、类型、次数及内容解析,并将处理结果写入Hook日志模块130和行为监测数据库200;根据操作的形成行为特征数据库,在app软件的操作中,数据处理进程124对软件行为做处理统计,并对软件行为与软件行为监测数据库(200)的数据做对比,如在统计时间内有明显异常,生成异常报告写入Hook日志130中;根据操作的形成行为特征数据库,在app软件的操作中,数据处理进程124对软件行为做处理统计,并对软件行为与数据分析模块120的数据做对比,如在统计时间内没有明显异常,生成日志报告写入Hook日志130中。
(3)Hook日志模块130
Hook日志模块130的工作流程:
选用本地日志,主要是数据处理进程124完成对软件行为界定后,基于统计结论,如果软件行为异常,则将异常信息生成异常报告写入Hook日志模块130中;如果软件行为正常,则将软件行为生成日志报告写入Hook日志模块130中。
Hook日志模块130的工作机理:
Hook日志模块130和行为监测数据库200为系统行为记录模块,主要是在完成数据处理后,将按app名称、操作时间、类型、次数及内容写到数据库中,统计某些时段用户使用某种协议的次数、流量、安全统计和界定的目的;对界定后的结果,如果软件行为异常,则将异常信息生成异常报告写入Hook日志模块130中;如果软件行为正常,则将软件行为生成日志报告写入Hook日志模块130中。
2)软件行为监测数据库200
软件行为监测数据库200的工作流程:
软件行为监测数据库200为数据库模块,主要是完成数据的存储,将按app名称、操作时间、类型、次数及内容写到数据库中,统计某些时段用户使用某种协议的次数、流量,达到安全统计和界定的目的。
软件行为监测数据库200的工作机理:
对软件的异常行为特征做了界定,当android移动终端对软件行为特征,结合Hook日志模块130做分析时,为数据库提供实时查询,并支持数据分析模块120的处理结果的实时写回。
3、工作原理
1)系统原理
系统的目的是从Android系统获取软件操作信息,识别app软件异常行为。
Android移动终端100的内核Hook模块110,在获取权限的情况下,将Shellcode代码注入System_server进程111,通过Hook的动态链接库libbind.so库112中导入ioctl函数113,将Android 的系统操作信息发送至数据分析模块120;数据分析模块120对应用程序行为的监控包括:读取IMEI或IMSI、发送短信、拨打电话、读取或者写入系统数据库、读取GPS信息、连接摄像头服务和连接录音服务;系统操作信息经由资源监测进程121和状态监测进程122分析处理,发送至数据分析引擎123,数据处理进程124,结合软件行为监测数据库200,对系统状态信息进行处理,并写入Hook日志模块130。
2)Android binder通信机制原理:
如图2,Android Binder是一种进程间通信机制。系统的各个远程service对象都是以Binder的形式存在的,而这些Binder有一个管理者,那就ServiceManager,要Hook这些服务,当然要从ServiceManager下手。在Android系统的Binder机制中,由一系统组件组成,分别是Client、Server、Service Manager和Binder驱动程序,其中Client、Server和Service Manager运行在用户空间,Binder驱动程序运行内核空间。Binder就是一种把这四个组件粘合在一起的粘结剂了,其中,核心组件便是 Binder驱动程序了,Service Manager提供了辅助管理的功能,Client和Server正是在Binder驱动和Service Manager提供的基础设施上,进行Client-Server之间的通信。把这种Hook系统服务的机制称之为Binder Hook,因为本质上这些服务提供者都是存在于系统各个进程的Binder对象。
(1)Client、Server和Service Manager实现在用户空间中,Binder驱动程序实现在内核空间中;
(2)Binder驱动程序和Service Manager在Android平台中已经实现,开发者只需要在用户空间实现自己的Client和Server;
(3)Binder驱动程序提供设备文件与用户空间交互,Client、Server和Service Manager通过ioctl文件操作函数与Binder驱动程序进行通信;
(4)Client和Server之间的进程间通信通过Binder驱动程序间接实现;
(5)Service Manager是一个守护进程,用来管理Server,并向Client提供查询Server接口的能力。
机译: 异常行为检测设备,异常行为检测系统,异常行为检测方法和计算机程序
机译: 基于深度学习的异常行为检测系统和方法
机译: 使用多机学习模型的异常行为检测系统的方法,以及相同的装置