利索能及
我要发布
收藏
专利号: 2024107106250
申请人: 王明贵
专利类型:发明专利
专利状态:授权未缴费
更新日期:2025-07-25
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.云安全平台联动的安卓手机应用沙箱模型,其特征在于,一是构建安卓应用沙箱运行环境检测框架,建立一个快速有效检测安卓应用沙箱运行环境的检测方案,最终以JAR包形式提供;二是构建一个新颖的基于云安全平台联动的安卓应用沙箱模型,包括沙箱服务端、沙箱客户端、云服务端,该模型构建多重隔离的安全机制,建立云安全平台联动机制来扩展应用沙箱,该沙箱扩展实现恶意代码检测、热修复、双开;

P1‑构建快速有效检测安卓应用沙箱运行环境:建立一个全新的应用沙箱环境检测模型,首先提出了多个检测点,然后筛选出其中检测效率较高的检测点,再通过实验进行验证,并进一步改善检测方案;最终,以JAR包的形式供开发者调用;

P2‑构建一款具备安全隔离、灵活扩展性、较低性能消耗、能合法上传到GooglePlay应用商店的应用沙箱方案,首先,采用动态修改类应用沙箱避免重打包,然后,采用沙箱构造无权限进程,利用云服务端,建立多级隔离,构建基于云安全平台联动的应用沙箱模型,同时依靠两种系统安全机制来实现安全隔离:既通过安卓的uid隔离机制隔离沙箱服务端和沙箱客户端,也通过isolated属性隔离监控拦截模块和第三方APP代码,模型基于云端服务,包括更新拦截策略、更新第三方APP、检查APP的签名和包完整性,云安全平台联动降低应用沙箱被检测出的几率,提高沙箱环境的隐匿性。

2.根据权利要求1所述云安全平台联动的安卓手机应用沙箱模型,其特征在于,沙箱总体结构:云安全平台联动沙箱基于Boxify框架,引入isolated属性进程,构建无权限应用,解决沙箱客户端和APP权限一致化问题;首先将沙箱拆分为沙箱客户端和沙箱服务端两个APP,沙箱客户端的权限针对每个APP进行定制,并与沙箱服务端之间实现系统级别的UID隔离,解决Boxify存在的权限集中、单点故障、性能不佳的问题,此外,生成沙箱客户端需要云服务端模块的协作,云服务端为应用沙箱中的安全隔离与权限管理提供更多帮助;

云安全平台联动沙箱总体分为三部分,分别是沙箱服务端、沙箱客户端、云服务端,沙箱服务端和沙箱客户端安装在安卓系统终端上,云服务端布置在远程的应用服务器上,其中,沙箱服务端为整个系统的通信中枢,与用户、云服务端、沙箱客户端交互通信;云服务端为整个系统强大的外部支撑,生成新的沙箱客户端,以及为终端上运行的应用沙箱提供灵活高效的安全扩展方面支持;沙箱客户端为应用沙箱环境的具体实现,构建第三方APP代码安全运行的安全隔离空间,并监控拦截敏感行为。

3.根据权利要求1所述云安全平台联动的安卓手机应用沙箱模型,其特征在于,沙箱内安装并运行一个第三方APK的具体步骤:采用Linux内核安全机制实现沙箱服务端和客户端权限与资源的隔离,沙箱服务端管理沙箱客户端的生成与安装,而沙箱客户端负责具体的APK代码与资源的加载,云安全平台联动沙箱将沙箱服务端和客户端分为两个APK,它们没有共同的UID,依靠安卓系统安全机制实现权限与资源的隔离,避免权限集中申请,在沙箱客户端内部,依靠isolated进程机制隔离第三方APK代码和安全策略模块,从而进一步实现权限的隔离,最终实现无权限应用。

4.根据权利要求1所述云安全平台联动的安卓手机应用沙箱模型,其特征在于,沙箱服务端在设备终端上连接沙箱客户端和用户,接收沙箱客户端的询问请求,负责与用户进行交互,和对沙箱客户端下达指令;服务端还负责连接设备终端和远程的云服务端,上传manifest.xml文件和其它重要信息,接收生成的沙箱客户端,请求用户安装。

5.根据权利要求1所述云安全平台联动的安卓手机应用沙箱模型,其特征在于,用户使用云安全平台联动沙箱,首先需要安装沙箱服务端APK,然后在沙箱服务端中安装第三方APK,即将第三方APK加入到沙箱运行环境中,沙箱服务端的设计包括:(1)沙箱服务端解压第三方APK,提取安卓Manifest.xml文件、APK签名、APK的MD5值,上传至云服务端,沙箱服务使用Java语言中的java.util.zip.*系列工具类来解压第三方APK包,并且提取其中的安卓Manifest.xml文件,安卓Manifest.xml包括APK包中的重要信息:四大组件、权限信息,在安装时被系统读取,使系统对该APK所需权限进行授权、对APK所需组件进行管理,安卓Manifest.xml文件定义第三方APK的Application类,定义第三方APK中所使用的安卓四大组件,获取到第三方APK所需的所有权限;保留原APK的安卓Manifest.xml文件中的组件信息,并加入到沙箱客户端中去,沙箱客户端是运行第三方APK代码的沙箱组件,获取到第三方APK内的组件信息,从而在第三方APK代码动态加载起来时顺利管理组件生命周期;

(2)下载沙箱云服务端生成的沙箱客户端APK文件和安全隔离等级信息,并向设备终端用户请求进行安装,云端服务器和沙箱服务器均采用IO多路复用技术实现,且沙箱服务器实现了APK文件的MD5秒传,云服务端生成的沙箱客户端APK包名与原第三方APK应用包名一致,沙箱服务端首先向APK包管理器查询是否有同样包名的APK已经安装,如果是则会向设备终端用户提示让其进行卸载,然后,使用Intent向用户请求安装沙箱客户端APK,由沙箱客户端负责第三方APK代码的启动,同时,沙箱服务端也从云服务端获取到安卓Manifest.xml文件的权限解析结果,并存储在自己的数据库中,最终在第三方APK代码运行时对每个权限进行细粒度的动态监管监控,权限解析结果通过沙箱服务端调用PackageParser类解析APK包获得;

(3)后续对于权限细粒度的动态监管监控:沙箱服务端和客户端之间通过AIDL机制进行进程间通信,沙箱服务端作为服务提供方,客户端作为AIDL服务调用方,客户端通过int getPermissionState(Stringperm)方法接口查询第三方APK使用某权限的状态,其中perm参数表示一个系统权限的名称,沙箱服务端实现int getPermissionState(Stringperm)函数,从数据库中读取该权限目前的状态,并返回到沙箱客户端,客户端接收权限状态的返回结果,并采取对应操作;

(4)构建APP风险评估模型:沙箱客户端将APP每次运行时捕获到的敏感API调用链发送给沙箱服务端,沙箱服务端将敏感API调用链输入到APP风险评估模型中,计算APP的风险值,如果高于一定风险值,沙箱服务端将APK包上传给云服务端,并交由第三方专业的安卓恶意代码检测平台进行检测,评估模型的配置文件实时从云服务端更新。

6.根据权利要求1所述云安全平台联动的安卓手机应用沙箱模型,其特征在于,沙箱客户端安装启动后,首先运行管理模块,管理模块与沙箱服务端通信,获取针对此APK的权限限制策略;启动一个特殊的isolated属性的Service组件,Service组件在一个独立的进程中运行,Isolated进程初始化一个监控拦截模块,然后利用动态代码加载技术运行第三方APP代码,监控拦截模块监控和拦截第三方APP代码运行过程中的所有权限映射到的API调用,然后将调用请求传递给管理模块,沙箱客户端检测并拦截第三方APK对沙箱环境的检测行为,降低沙箱环境被检测出的概率;

在第三方APK代码加载运行部分,云安全平台联动沙箱采取以下方式:沙箱客户端首先将第三方APK文件拷贝到自己存储路径下,再使用ZipFile类从中解压出动态链接库文件,同样存放在自己的存储路径下,然后,沙箱客户端使用DexClassLoader类加载第三方APK中的Dex可执行文件,DexClassLoader在构造的过程中先调用dex2oat工具对Dex文件进行优化,然后保存在optimizedDirectory路径下,如果oat文件创建成功则加载到内存中,对于Native层代码,在设定librarySearchPath路径后,第三方APK代码自己调用loadLibrary(Stringlibname)将其加载进内存。

7.根据权利要求1所述云安全平台联动的安卓手机应用沙箱模型,其特征在于,沙箱客户端‑加载第三方APK中的资源:调用AssetManager中的addAssetPath()方法,将第三方APK的资源路径传给AssetManager对象,并通过它创建一个新的Resource对象,这个新生成的对象增加一个资源加载路径,使用第三方APK中的资源文件;

细粒度的权限监管监控:沙箱服务端和客户端相配合,沙箱客户端的管理模块通过AIDL接口从沙箱服务端获取APK的权限状态表,从而得知针对该APK采取的权限隔离措施,同时沙箱服务端的管理模块和监控拦截模块相互配合,按照权限状态表给予第三方APP权限映射API调用合理的返回值;

拦截第三方APK对于这些敏感API的调用:首先,oat文件在存储状态下是一个ELF类型文件,OatMethod结构体代表每一个方法,其中OatMethod的code_offset_字段指向oat文件中该方法的native code在整个文件中的偏移量,ART将OatMethod转换为ArtMethod,如果要HOOK一个ArtMethod对象,首先调用JNIEnv的FromReflectedMethod()方法来获取ArtMethod对象的指针,然后按照固定的偏移量找到对象的entry_point_from_compiled_code_字段,替换成构造的HOOKmethod的本地代码指针。

8.根据权利要求1所述云安全平台联动的安卓手机应用沙箱模型,其特征在于,云安全平台联动沙箱还设置对抗第三方APK对沙箱环境的检测操作,首先将检测方法分为以下四类:

(1)读取文件类型:通过HOOK读文件方法,让其读取一个备份的“正常”文件,如果在Java层读取文件,需要HOOKFileInputStream.read()、RandomAccessFile.read()、InputStream.read()、BufferedReader.readLine()的Framework方法;若在Native层读取文件,需要HOOKread()、fread()方法,在Java层云安全平台联动沙箱采用ART运行时HOOK技术;而在Native层则采取inlineHOOK技术;

(2)执行shell命令:第三方APK通过执行ps命令判断自身uid所在用户下是否有其它异常进程;或者是通过pm命令查询进程包名是否真正安装在系统上,前者采用HOOK技术,并且重点过滤ps命令,如果在Java层执行shell命令,采用HOOKRuntime.exec()方法;若在Native层,采用HOOKsystem()、exec()函数,针对Java层使用ART运行时HOOK技术,对Native层使用inlineHOOK技术;

(3)向PackageManagerService服务查询信息:云安全平台联动沙箱设置两种方式应对针对签名的检查:一是HOOK查询签名的函数;二是接管本地PMS代理对象,查询所有已安装的APK的签名,调用PackageManager.getInstalledPackages(PackageManager.GET_SIGNATURES)方法,返回一个包括所有已安装APK的PackageInfo的List,再通过packageName比对找出该APK的signatures字段,通过HOOKgetInstalledPackages()方法返回包括第三方APK签名PackgeInfo的被篡改List,从而使得对签名的检查无效,PMS的代理对象为ActivityThread类中的sPackageManager,先实现一个自设代理对象,控制其所有的字段和方法,再利用反射将sPackageManager替换成自设代理对象,完成对PMS代理对象的接管。

9.根据权利要求1所述云安全平台联动的安卓手机应用沙箱模型,其特征在于,云服务端接收沙箱服务端拆解的Manifest.xml文件和其它重要信息,并用于生成新的沙箱客户端和安全配置文件,最终传输到沙箱服务端开始布置沙箱运行环境;具体设计如下:(1)生成沙箱客户端APK:云服务端接收第三方APK的安卓Manifest.xml文件,并对其做两个修改:第一,在其中插入自己的Application定义,从而让沙箱客户端在第三方APK代码真正运行起来之前布置好沙箱环境;第二,在其中插入一个isolated属性的Service组件,由该组件负责加载第三方APK代码,从而有效隔离沙箱客户端和第三方APK的运行空间,构造无权限的沙箱运行环境;云服务端准备沙箱客户端的代码smali文件、沙箱客户端用来向用户展示或交互的布局和资源文件和安全配置文件,这些文件被运行不同APP的沙箱客户端共用,最后,以上所有文件通过apktool工具打包成APK、签名,并最后生成沙箱客户端安装文件;

(2)针对每个沙箱客户端生成不同等级的安全隔离配置信息:云安全平台联动沙箱依靠权限机制来实现用户对沙箱隔离强度的动态控制,采用沙箱安全隔离等级;

沙箱客户端提取APK的签名信息和APK的MD5校验信息并发送到云服务端,云服务端结合以上文件和信息为该APP确定一个初步的安全隔离等级,并发送到沙箱服务端,沙箱客户端向沙箱服务端请求安全隔离等级,并在APP第一次加载时开始实施对应的安全隔离措施,与此同时,沙箱客户端向用户显示该应用为安全/山寨/恶意应用;

云安全平台联动沙箱的服务端维护一个白名单和黑名单,其中白名单内容为常用软件的“包名‑签名”字符串对,白名单内容通过GooglePlay等高可信的应用商店抽取,并定期进行维护;

黑名单内容为已经出现过的安卓病毒、木马的签名、MD5值、包名信息,或者其它安装有应用沙箱的终端上发现的疑似恶意代码的样本信息,黑名单内容从可信的专业恶意软件研究机构获取,另一方面来源于其它终端沙箱中发现、并上传到云服务端的恶意样本信息;

(3)分析记录疑似恶意应用:采用云端与云端相互协作的体系,APP一旦在沙箱中执行敏感API调用,沙箱客户端将信息发送到沙箱服务端,沙箱服务端维护一个APP危险系数评估模型,一旦评估该APP风险指数过高、疑似恶意代码,则将其所在APK包直接上传到云服务端;随后,云服务端将APK包交由专业的安卓恶意代码在线审查平台进行评估,一旦发现其确实为恶意应用,则将其相关信息加入黑名单,并提示用户;否则将其加入APP危险系数评估模型的白名单中,通过这种云端‑云端相互协作的机制,快速高效的检测出新出现的恶意应用。