安全沙箱构造方法及装置制造方法及图纸

技术编号:11077110 阅读:149 留言:0更新日期:2015-02-25 15:20
本发明专利技术涉及一种安全沙箱构造方法,包括如下步骤:利用系统原孵化器构造用于孵化进程环境的子孵化器;通过该子孵化器进行孵化,以为待运行应用程序建立所述进程环境;利用该子孵化器孵化而得的进程将监控单元及待运行应用程序加载到该进程环境中运行,由所述监控单元对所述待运行应用程序的事件行为实施监控。本发明专利技术还提供了一种用于执行该方法的相应的装置。本发明专利技术使得目标应用程序能够运行于沙箱运行环境中,能确保系统的安全。

【技术实现步骤摘要】
安全沙箱构造方法及装置
本专利技术涉及计算机软件安全
,尤其涉及一种安全沙箱构造方法及相应的装置。
技术介绍
沙箱是一种按照安全策略限制程序行为的执行环境,目前已经广泛实用于各种操作系统中。以Android为例,一些应用程序,出于实现应用程序固有功能需要之外的目的,特别是商业目的,随意申请系统权限,获取用户隐私数据、执行网络访问、保持设备活动、发送短信行为等。轻则可能导致用户隐私数据泄露,或者占用系统资源,重则可能通过恶意扣费、植入广告、消耗资费、欺诈诱骗等,使用户遭受损失。因此,通过沙箱技术提供的执行环境,由沙箱对系统的资源、权限进行管理,让应用程序于该沙箱中运行,应用程序的访问先经沙箱按安全策略进行审查,由此,形成一种相对于系统本身的隔离运行效果,可以有效地保护系统的安全。对于沙箱中所用到的安全策略,适应各种不同的操作系统有不同的细节考虑,这些有关技术实现的基本知识,均已为本领域技术人员所掌握,恕不赘述。目前有多种实例来实现沙箱技术。这些实例中,一方面,沙箱技术为了兼容市面的多种应用,一般仅仅通过限定沙箱的安全策略,控制该应用的可执行资源而实现。然而,在安全领域,攻防双方的技术水平此消彼长,传统的仅仅通过限制安全策略的沙箱,有时难以确保能够达到所期望的目的,必须借助于更富技术含量的新方案。另一方面,沙箱技术往往涉及系统底层操作,而在诸如以Android为代表的Unix系的操作系统中,本身有着严格的权限管理,这样,便导致在未获得Root授权的前提下,难以应用沙箱技术去构造沙箱。可以独辟蹊径,去实现免Root环境下的沙箱环境,然而,在这种情况下,往往会引起多方面的一些技术障碍,其防护效果依然有限,这些障碍依沙箱的具体实现方式而定。导致这些沙箱实例难以取得更佳的效果的原因是由操作系统的既定的逻辑决定的。具体而言,恶意应用程序的开发人员知晓操作系统的实现原理及各种函数接口,对于Android而言,甚至熟知其开放的源代码。在此基础上,开发人员得以依据这些原理,针对系统所提供的各种功能模块、函数接口等进行非法利用,绕开系统的安全原旨,达到自身的非法目的。Android自身出于安全的考虑,已经利用虚拟机原理加以实现,以最大程度降低可能的侵入可能。虚拟机用于进一步运行应用程序进程。虚拟机的启动源于系统的Zygote(业内称之为孵化器)模块,Zygote由Linux底层实现的init函数加载。Zygote被加载后,便通过自身的孵化函数fork()来复制自身,新进程被命名为SystemServer,SystemServer便是Zygote孵化的第一个成功运行的进程,为理解的便利本专利技术称其为长子进程。继而,由SystemServer进程去实现系统服务的一系列初始化功能,包括对Native层的服务进行初始化、对Java层的服务进行初始化,最终进入Binder通信系统监听请求,给应用层和系统提供各种服务请求。在这个过程中,ActivityManagerService(AMS)和PackageManagerService(PMS)在内的一系列的Java层的服务被陆续加载,而Zygote则退居后台继续监听是否有新的孵化请求。一旦AMS为运行应用程序而向Zygote发起孵化请求时,Zygote便会继续孵化自身,然后通过新的Zygote进程加载虚拟机,使该应用程序运行于该虚拟机中。Android希望利用这一机制来实现更为安全的进程保护效果,一方面希望确保单个的虚拟机的崩溃不会影响到其它虚拟机的正常运行,另一方面,希望每个应用程序进程都能被以虚拟机为单位进行管理。从这个角度来看,虚拟机便天然具有沙箱的特质,只不过这种特质对程序开发人员而言的公开透明的。于是,现实中,不少恶意应用正是利用了Android进程加载原理的这些特质,在获得系统Root权限的前提下,利用各种公知的病毒手段或黑客手段,深入到Android的底层,包括Zygote、SystemServer均可能被非法利用,从而达到非法目的。诚然,Android的权限管理较为严格,在未获得Root的情况下,恶意程序的很多常规侵犯手段可以被一般的安全应用软件拒绝。然而,随着Android越来越开放,以及用户出于自定义预安装应用的需要,越来越多的移动终端设备被永久Root,于是,这些移动终端的安全问题就越来越突出,完善已Root设备的安全防护机制,实现更为具体有效的沙箱实例,是业内悬而未决的问题。以上对现有技术的剖析可以大致概括为两方面,或者说是两个层次的问题,一是操作系统如何在已Root环境下避免受底层攻击从而实现其安全目的;二是操作系统如何在已Root环境下实现更为安全的沙箱实例。这两方面虽相辅相成,也有其相对独立性。
技术实现思路
本专利技术的第一目的是为了克服前述的至少部分问题而提供一种安全沙箱构造方法。本专利技术的第二目在于提供一种适于构造第一目的所述的方法的安全沙箱构造装置。为实现本专利技术的目的,本专利技术采取如下技术方案:本专利技术提供的一种安全沙箱构造方法,包括如下步骤:利用系统原孵化器构造用于孵化进程环境的子孵化器;通过该子孵化器进行孵化,以为待运行应用程序建立所述进程环境;利用该子孵化器孵化而得的进程将监控单元及待运行应用程序加载到该进程环境中运行,由所述监控单元对所述待运行应用程序的事件行为实施监控。较佳的,利用原孵化器构造子孵化器的进程,包括如下步骤:运行控制模块;利用所述控制模块,以原孵化器为基础构造所述子孵化器;建立控制模块与子孵化器的连接。进一步,利用所述控制模块以原孵化器为基础构造所述子孵化器的步骤包括:所述控制模块利用原孵化器的套接口建立与原孵化器的连接;所述控制模块关闭活动管理服务基于原孵化器的套接口所维持的连接;所述控制模块复制原孵化器的可执行代码并向其植入用于加载所述监控单元的调用指令;所述控制模块运行所述子孵化器的代码以构造子孵化器。进一步,所述控制模块通过注入于系统服务进程的关断模块实施关闭管理服务基于原孵化器的套接口所维持的连接。较佳的,所述控制模块先于所述控制模块利用原孵化器的套接口建立与原孵化器的连接的步骤,或先于所述控制模块关闭活动管理服务基于原孵化器的套接口所维持的连接的步骤,而执行该关断模块以实施关闭管理服务基于原孵化器的套接口所维持的连接。具体的,所述控制模块基于子孵化器所生成的套接口建立与子孵化器的连接。进一步,所述监控单元包括若干挂钩插件,通过监视所述应用程序进程的不同调用指令而适用相应的挂钩插件,以对所述应用程序进程的事件行为进行处理。具体的,所述原孵化器与子孵化器分别配置有以不同文件名命名的套接口文件,所述套接口文件存储于系统本地目录下。较佳的,所述子孵化器的套接口文件存储于本地目录中/dev/socket目录下。较佳的,所述子孵化器的进程名称与其所产生的套接口文件的文件名相同。进一步,所述的控制模块通过一前台模块提供的用户界面接收用于启动所述待运行应用程序的指令而触发执行。较佳的,所述用于启动待运行应用程序的指令被系统的活动管理服务转换为所述的请求,该请求被所述控制模块中转给所述的子孵化器,以驱动子孵化器为待运行应用程序构造运行环境。本专利技术提供的一种安全沙箱构造装置,包括:控制模块,用于利用系统原孵化器构造用于孵化进程环境的本文档来自技高网
...
安全沙箱构造方法及装置

【技术保护点】
一种安全沙箱构造方法,其特征在于,包括如下步骤:利用系统原孵化器构造用于孵化进程环境的子孵化器;通过该子孵化器进行孵化,以为待运行应用程序建立所述进程环境;利用该子孵化器孵化而得的进程将监控单元及待运行应用程序加载到该进程环境中运行,由所述监控单元对所述待运行应用程序的事件行为实施监控。

【技术特征摘要】
1.一种安全沙箱构造方法,其特征在于,包括如下步骤:利用系统原孵化器构造用于孵化进程环境的子孵化器,其中,先运行控制模块;利用所述控制模块以原孵化器为基础构造所述子孵化器;再建立控制模块与子孵化器的连接;通过该子孵化器进行孵化,以为待运行应用程序建立所述进程环境;利用该子孵化器孵化而得的进程将监控单元及待运行应用程序加载到该进程环境中运行,由所述监控单元对所述待运行应用程序的事件行为实施监控。2.根据权利要求1所述的安全沙箱构造方法,其特征在于,利用所述控制模块以原孵化器为基础构造所述子孵化器的步骤包括:所述控制模块利用原孵化器的套接口建立与原孵化器的连接;所述控制模块关闭活动管理服务基于原孵化器的套接口所维持的连接;所述控制模块复制原孵化器的可执行代码并向其植入用于加载所述监控单元的调用指令;所述控制模块运行所述子孵化器的代码以构造子孵化器。3.根据权利要求2所述的安全沙箱构造方法,其特征在于,所述控制模块通过注入于系统服务进程的关断模块实施关闭管理服务基于原孵化器的套接口所维持的连接。4.根据权利要求3所述的安全沙箱构造方法,其特征在于,所述控制模块先于所述控制模块利用原孵化器的套接口建立与原孵化器的连接的步骤,或先于所述控制模块关闭活动管理服务基于原孵化器的套接口所维持的连接的步骤,而执行该关断模块以实施关闭管理服务基于原孵化器的套接口所维持的连接。5.根据权利要求1所述的安全沙箱构造方法,其特征在于,所述控制模块基于子孵化器所生成的套接口建立与子孵化器的连接。6.根据权利要求1所述的安全沙箱构造方法,其特征在于,所述监控单元包括若干挂钩插件,通过监视所述应用程序进程的不同调用指令而适用相应的挂钩插件,以对所述应用程序进程的事件行为进行处理。7.根据权利要求1至6中任意一项所述的安全沙箱构造方法,其特征在于,所述原孵化器与子孵化器分别配置有以不同文件名命名的套接口文件,所述套接口文件存储于本地目录下。8.根据权利要求7所述的安全沙箱构造方法,其特征在于,所述子孵化器的套接口文件存储于本地目录中/dev/socket目录下。9.根据权利要求7所述的安全沙箱构造方法,其特征在于,所述子孵化器的进程名称与其所产生的套接口文件的文件名相同。10.根据权利要求...

【专利技术属性】
技术研发人员:曹阳杨威
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1