基于Android系统的Zygote驱动级安全防御方法及装置与流程

文档序号:12467757阅读:413来源:国知局
基于Android系统的Zygote驱动级安全防御方法及装置与流程

本发明涉及一种信息安全技术,尤其是涉及一种基于Android系统的Zygote驱动级安全防御方法及装置。



背景技术:

Android是Google开发的基于Linux平台的开源手机操作系统。Google通过与运营商、设备制造商、手机公司和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的智能手机操作系统,在移动产业内形成一个开放式的生态系统。

由于Android系统的开放性和Google强有力的技术支持以及不错的用户体验,安卓设备发展十分迅猛。2015年底,友盟正式对外发布2015年第二、三季度中国移动互联网趋势报告。报告显示:截止2015年9月底,我国活跃移动设备数量已达到12.8亿,较2014年增长20%。其中智能设备占比94.2%,苹果占比27%,Android厂商成多元化趋势,总体占比大于70%。因此,Android系统在我国的设备覆盖率占绝对性地位,这些设备的安全性就显得尤其重要。

目前Android由于过于开放,版本繁多造成发展分裂的状况,引来了兼容性和安全方面的问题;不同版本Android之间的硬件要求不同造成了Android及其衍生系统的应用兼容性下降,在一定程度上影响了用户体验。而过于开放带来许多安全问题,例如“Android SD卡漏洞”爆发后一些基于Android的定制系统无法及时有效应对,而“安卓短信卧底”等病毒木马也频频出现,威胁Android用户的安全。

数据显示,2015全年,Android平台新增恶意程序样本1874.0万个。分别是2013年,2014年的27.9倍、5.7倍。平均每天新增恶意程序样本也高达51342个。2015全年,Android用户感染恶意程序3.7亿人次,分别是2013年、2014年的3.8倍和1.1倍;平均每天感染量达到了100.6万人次。在所有手机恶意程序中,资费消耗类恶意程序的感染量仍然保持最多,占比高达73.6%;其次为恶意扣费(21.5%)和隐私窃取(4.1%)。按照地域划分,感染手机恶意程序最多的地区为广东省,感染数量占全国感染数量的14.8%;北京、广州、深圳、成都、郑州、杭州、上海、重庆、南京和佛山是Android平台恶意程序感染量最多的十大城市。

目前国内对于Android系统的安全防御手段主要依赖于360杀毒,腾讯手机管家等手机卫士软件查杀,但是这些杀毒软件对于病毒的发现不够及时,一般都是在病毒已成泛滥趋势之后,才会有所反应,这种滞后性时效性不能很好的保护用户的移动生活安全。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于Android系统的Zygote驱动级安全防御方法及装置。

本发明的目的可以通过以下技术方案来实现:

一种基于Android系统的Zygote驱动级安全防御方法,包括:

配置沙盒,并运行程序于沙盒中;

当所述程序发起系统函数调用请求时,截获该系统函数调用请求;

按照预设的规则选择是否将此系统函数调用请求传递给系统内核。

预设的规则包括:

已确认的危险操作拒绝调用,

未确认的风险操作提示并由用户选择将此调用请求传递给系统内核,

可控的安全操作则将此调用请求传递给系统内核。

已确认的危险操作包括:修改系统配置文件,

未确认的风险操作包括:请求网络连接、请求位置信息,

可控的安全操作包括:加载图片、加载音频。

配置沙盒的过程具体包括:

创建一个临时文件夹;

将程序的操作重定向至该临时文件夹中。

一种基于Android系统的Zygote驱动级安全防御装置,包括:

用于配置沙盒并运行程序于沙盒中的沙盒配置模块;

用于当所述程序发起系统函数调用请求时截获该系统函数调用请求的防御内核模块;

用于按照预设的规则选择是否将此系统函数调用请求传递给系统内核的执行模块。

所述沙盒配置模块包括:

用于创建一个临时文件夹的文件夹创建单元;

用于将程序的操作重定向至该临时文件夹中的操作重定向单元。

与现有技术相比,本发明具有以下优点:

1)将程序运行于沙盒中,对程序的操作进行过滤,基于程序的行为判断程序是否为恶意程序,相较于特征码识别的方式,具有更强的对为止恶意程序的识别能力。

2)虽然病毒通过各种方式来躲避杀毒软件,但是当它运行在虚拟机中时,它并不知道自己的一切行为都在被虚拟机所监控,所以当它在虚拟机中脱去伪装进行传染时,就会被虚拟机所发现,如此一来,利用虚拟机技术就可以发现大部分的变形病毒和大量的未知病毒。

3)Zygote驱动级安全防御技术是完全脱胎与静态查杀方式,是在程序动态执行的时候,让程序运行在自己的环境内,监控程序整个生命周期的特定涉及安全的操作行为。

附图说明

图1为目前Android系统的启动流程示意图;

图2为本发明的主要步骤流程示意图

图3应用本发明之后Android系统的启动流程示意图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。

本申请对Zygote进程搭建一个程序运行的沙盒,让所有程序运行在我们的沙盒里面,程序的所有行为不直接影响系统,包括一些恶意操作,我们能够做到实时的拦截病毒程序运行的恶意操作,并对病毒程序实施一些系统级的屏蔽,从而让Android系统用户的手机更加安全。

我们知道,Android系统是基于Linux内核的,而在Linux系统中,所有的进程都是init进程的子孙进程,也就是说,所有的进程都是直接或者间接地由init进程fork出来的。Zygote进程也不例外,它是在系统启动的过程大致启动的流程图如图1所示,由init进程创建的。

1.系统启动时init进程会创建Zygote进程,Zygote进程负责后续Android应用程序框架层的其它进程的创建和启动工作。

2.Zygote进程会首先创建一个SystemServer进程,SystemServer进程负责启动系统的关键服务,如包管理服务PackageManagerService和应用程序组件管理服务ActivityManagerService。

3.当我们需要启动一个Android应用程序时,ActivityManagerService会通过Socket进程间通信机制,通知Zygote进程为这个应用程序创建一个新的进程。

所以,zygote为系统其它应用的母程序,即android系统的程序的驱动。

基于对zygote进行设计,提供一种基于Android系统的Zygote驱动级安全防御方法,如图2所示,包括:

配置沙盒,并运行程序于沙盒中;

当所述程序发起系统函数调用请求时,截获该系统函数调用请求;

按照预设的规则选择是否将此系统函数调用请求传递给系统内核。

预设的规则包括:

已确认的危险操作拒绝调用,

未确认的风险操作提示并由用户选择将此调用请求传递给系统内核,

可控的安全操作则将此调用请求传递给系统内核。

其中,已确认的危险操作包括:修改系统配置文件,

未确认的风险操作包括:请求网络连接、请求位置信息,

可控的安全操作包括:加载图片、加载音频。

配置沙盒的过程具体包括:

创建一个临时文件夹;将程序的操作重定向至该临时文件夹中。

那么,Zygote驱动级安全防御技术就是指我们在驱动Zygote启动的过程中搭建我们的运行虚拟机(My Dalvik VM),从而让其它程序运行在我们的虚拟机里面,达到安全沙箱的功能,如图3所示。

1,android系统启动执行init过程

2,android系统加载Zygote驱动,搭建VM虚拟机

3,加载MY Dalvik VM

4,初始化加载沙箱My SandBox

5,初始化系统进程System-server

6,初始化系统服务

7,启动上层应用

传统杀毒软件杀毒的原理有很多,应用最广泛的是特征码法,根据从病毒体中提取的病毒特征码,逐个与程序文件比较。特征码是反病毒公司在分析病毒时,确定的只有该病毒才可能会有的一系列二进制串,由这些特征可以与其它病毒或正常程序区别开来。

应用最广泛的是特征码法,根据从病毒体中提取的病毒特征码,逐个与程序文件比较.特征码是反病毒公司在分析病毒时,确定的只有该病毒才可能会有的一系列二进制串,由这些特征可以与其它病毒或正常程序区别开来.杀毒软件的升级就是使该软件病毒库数据更新,能查出新的病毒。

从上原理可以看出采用特征码的查杀方式,必须依赖特征码病毒库的更新速率,决定了查杀能力,原因是这种特征码的查杀方式使用的是静态方式。但是现在的病毒通常采用了隐藏自身的方法还有加壳和压缩两种方法来伪造自身特征。加壳是通过一系列的数学运算,将可执行程序文件的编码进行改变,以达到缩小程序体积或加密程序编码的目的。病毒通过使用不同种类或者版本的加壳软件,对自身进行加壳,使得杀毒软件无法发现真正的病毒体,以逃避查杀。并且由于加壳的工具种类很多,同一个工具也存在不同的版本。

为了检测已加壳的病毒,就必须要针对不同种类不同版本的壳编写脱壳程序才可以发现壳内隐藏的真正病毒体。所以,杀毒软件对病毒的查杀能力也在一定程度上取决于他自身的脱壳能力。

针对变形病毒、未知病毒等复杂的病毒情况,Zygote驱动级安全防御技术采用了虚拟机技术,达到了对未知病毒良好的查杀效果。它实际上是一种可控的,由软件模拟出来的程序虚拟运行环境,就像我们看的电影《黑客帝国》一样。在这一环境中虚拟执行的程序,就像生活在母体(Matrix)中的人,不论好坏,其一切行为都是受到建筑师(architect)控制的。虽然病毒通过各种方式来躲避杀毒软件,但是当它运行在虚拟机中时,它并不知道自己的一切行为都在被虚拟机所监控,所以当它在虚拟机中脱去伪装进行传染时,就会被虚拟机所发现,如此一来,利用虚拟机技术就可以发现大部分的变形病毒和大量的未知病毒。

Zygote驱动级安全防御技术是完全脱胎与静态查杀方式,是在程序动态执行的时候,让程序运行在自己的环境内,监控程序整个生命周期的特定涉及安全的操作行为:

1、上层应用运行调用系统功能函数(网络操作,文件操作,读取设备信息,发送短信等)

2、安全防御沙箱过滤功能行为,

3、已经确认的危险操作做屏蔽处理,

4、未确认的风险操作提示用户是否允许,

5、可控的正常操作调用底层功能API。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1