CN108647513B - 一种基于TrustZone的共享库安全隔离方法及系统 - Google Patents
一种基于TrustZone的共享库安全隔离方法及系统 Download PDFInfo
- Publication number
- CN108647513B CN108647513B CN201810249221.0A CN201810249221A CN108647513B CN 108647513 B CN108647513 B CN 108647513B CN 201810249221 A CN201810249221 A CN 201810249221A CN 108647513 B CN108647513 B CN 108647513B
- Authority
- CN
- China
- Prior art keywords
- library
- sandbox
- trustzone
- interceptor
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种基于TrustZone的共享库安全隔离系统,其特征在于,所述系统至少包括:沙盒环境构建器、库控制器和拦截器。沙盒环境构建器,在普通域中动态构建与Rich OS隔离的沙盒。拦截器,基于进程间堆栈检测的方式拦截相对应的系统调用信息和/或Android framework APIs。库控制器,基于拦截的所述系统调用信息和/或Android framework APIs进行分析,对所述沙盒中库函数的调用状态进行切换并设置库权限。本发明的通用性好,系统性能开销低,安全性高,在尽可能的不增加TrustZone中Secure World可信基的前提下,实现库的隔离,有效的降低被攻击的风险。
Description
技术领域
本发明涉及移动安全领域,尤其涉及一种基于TrustZone的共享库安全隔离方法及系统。
背景技术
近年来,移动智能终端几乎成为人们工作生活中必不可少的工具,扮演着越来越重要的角色,然而其面临的安全问题也越来越严重。库的应用加速了Android应用开发人员开发的周期,并能够提升应用的性能。然而,开发人员在使用共享库的时候,往往忽略其所带来的风险。首先,由于Android系统的权限是应用层的,应用与其所使用的库具有相同的权限,甚至,有些库可能要求更多的权限。这违反了“每个程序(模块)都应该运行完成特定工作所需的最少权限”原则,可能有些库会滥用一些权限来收集用户数据。其次,应用与其所使用的库共享相同的内部存储,这意味着应用所使用的库可以操纵应用的内部文件,这也可能会导致隐私的泄露。
当前已有的将库的隔离的方法主要有两种。第一种是基于进程的库的隔离,其原理是将库与应用程序分别置于不同的进程中运行,通过进程间的切换来实现库与程序的交互,但是基于进程的库的隔离的方法需要修改Android框架或应用(或库);第二种是基于应用虚拟化沙盒的库的隔离,通过程序运行时的细粒度的权限控制实现隐私保护,但是基于虚拟化沙盒的库的隔离的方法隔离的是整个应用,无法防止所应用所使用的库(可能是恶意的)对自身隐私的泄露。
2003年ARM公司提出的TrustZone技术使用硬件级的隔离方式保护数据安全。TrustZone技术是通过将设备的系统资源划分为两部分——安全域(Secure World,SW)和非安全域(Normal World,NW),通过CP15的SCR寄存器中的NS位来表明当前所处的状态。NW只可以访问自己的资源,而SW可以访问所有的系统资源。两个World之间的通信是通过Secure Monitor(Cortex-A)或者core logic(Cortex-M)完成的。
当前已有的对移动终端应用保护的主要方法是简单的将需要保护的内容(如应用或者共享库)直接移入TrustZone。但是这会带来巨大的性能开销,并且会使TrustZone的安全性降低,而将应用移入TrustZone需要与OEM协商,这极大的不便于第三方开发者。
中国专利(107194284A)公开了一种基于Trustzone隔离用户数据的方法及系统,方法包括:在智能终端内设置Trustzone协处理器以及在智能终端的内存上设置普通内存区域、共享内存区域和安全内存区域;运行于普通内存区域的普通域操作系统将待隔离用户数据存储至共享内存区域,向Trustzone协处理器的中断控制器发送快速中断信号,以使Trustzone协处理器进入监控模式;利用进入监控模式的Trustzone协处理器控制安全域操作系统在安全内存区域中运行;运行于安全内存区域的安全域操作系统从共享内存区域读取待隔离用户数据,并将读取的待隔离用户数据加载到安全内存区域。通过本发明的技术方案,可提高用户数据的安全性。
但是,该专利实现的数据隔离保护,是将隔离的数据存储于共享内存区域,然后通过将隔离数据直接加载到安全内存区域中执行实现的。将隔离数据直接加载到安全内存区域中具有以下缺陷:
(1)降低安全内存区域的安全性,被攻击的危险性将会大大增加;
(2)普通开发者没有向安全内存区域中添加代码的权限,只有设备厂商或者是系统厂商可以向安全内存区域中添加代码。
因此,该专利不能够解决如何在不改变应用程序和Android的架构,尽可能的不增加TrustZone中Secure World可信基的前提下,实现库的隔离的技术问题。
发明内容
针对现有技术之不足,本发明提供一种基于TrustZone的共享库安全隔离系统,其特征在于,所述系统至少包括:沙盒环境构建器、库控制器和拦截器,沙盒环境构建器,在普通域中动态构建与Rich OS隔离的沙盒,拦截器,基于进程间堆栈检测的方式拦截相对应的系统调用信息和/或Android framework APIs,库控制器,基于拦截的所述系统调用信息和/或Android framework APIs进行分析,重定向库函数至沙盒,并且对所述沙盒中库函数的调用状态进行切换并设置库权限。
根据一个优选实施方式,所述拦截器对非沙盒中的库函数调用行为进行检测,和/或所述拦截器获取普通域中程序库的物理地址信息并调用库控制器对所述物理地址信息进行重定向。
根据一个优选实施方式,所述沙盒环境构建器基于拦截器监测的异常信息在普通域构建所述沙盒。
根据一个优选实施方式,所述库控制器设置库权限的方式包括:基于至少一个应用程序的启动信息创建对应的特定线程和/或可信基,所述特定线程基于敏感资源请求在framework层和/或内核层进行堆栈权限检查,基于所述应用程序的访问请求以遍历所述访问请求涉及的程序的方式确定所述应用程序的合法权限。
根据一个优选实施方式,所述库控制器基于所述拦截器拦截的系统调用信息与访问控制列表白名单的匹配结果确定应用程序的合法权限。
根据一个优选实施方式,所述拦截器基于应用程序或库运行的行为信息判断拦截的系统调用信息的调用模式。
根据一个优选实施方式,所述库控制器基于所述拦截器判断的库函数调用模式将对应库的起始地址重定向至所述沙盒中,其中,所述库控制器用于重定向所述沙盒的切换代码。
根据一个优选实施方式,所述库控制器基于所述拦截器判断的回调函数调用模式调整所述沙盒中的库函数指针。
根据一个优选实施方式,所述库控制器以将应用程序创建的新文件的路径更改至沙盒的方式隔离库函数。
根据一个优选实施方式,所述库控制器基于函数返回值的类型反馈虚拟返回值以保护隐私信息。
本发明还提供一种基于TrustZone的共享库安全隔离方法,其特征在于,所述方法至少包括:在普通域中动态构建与Rich OS隔离的沙盒,基于进程间堆栈检测的方式拦截相对应的系统调用信息和/或Android framework APIs,基于拦截的所述系统调用信息和/或Android framework APIs进行分析,重定向库函数至沙盒,并且对所述沙盒中库函数的调用状态进行切换并设置库权限。
根据一个优选实施方式,所述方法还包括:对非沙盒中的库函数调用行为进行检测,和/或获取普通域中程序库的物理地址信息并调用库控制器对所述物理地址信息进行重定向。
根据一个优选实施方式,所述方法还包括:基于拦截器监测的异常信息在普通域构建所述沙盒。
根据一个优选实施方式,所述库控制器设置库权限的方法包括:基于至少一个应用程序的启动信息创建对应的特定线程和/或可信基,所述特定线程基于敏感资源请求在framework层和/或内核层进行堆栈权限检查,基于应用程序的访问请求以遍历所述访问请求涉及的程序的方式确定所述应用程序的合法权限。
根据一个优选实施方式,所述方法还包括:基于所述拦截器拦截的系统调用信息与访问控制列表白名单的匹配结果确定应用程序的合法权限。
根据一个优选实施方式,所述方法还包括:基于应用程序或库运行的行为信息判断拦截的系统调用信息的调用模式。
根据一个优选实施方式,所述方法还包括:基于所述拦截器判断的库函数调用模式将对应库的起始地址重定向至所述沙盒中,其中,库控制器用于重定向所述沙盒的切换代码。
根据一个优选实施方式,所述方法还包括:基于所述拦截器判断的回调函数调用模式调整所述沙盒中的库函数指针。
根据一个优选实施方式,所述方法还包括:以将应用程序创建的新文件的路径更改至沙盒的方式隔离库函数。
根据一个优选实施方式,所述方法还包括:基于函数返回值的类型反馈虚拟返回值以保护隐私信息。
本发明的有益技术效果:
(1)本发明的通用性好:本发明通过底层硬件的支持,避免修改程序的内存地址空间。通过沙盒限制了库,使得应用程序只能通过JNI访问自己的内存区域和与应用程序交换的数据。在这个过程中,既不需要修改Android框架或应用(或库)也能保证库的共享特性和正常运行,且无需大量修改TrustZone的安全域,因此具有良好的通用性。
(2)本发明的开销低:本发明通是在普通域中创建一个隔离域(沙盒),减少了Worlds之间的切换带来的性能开销;同时,与现有的库函数的隔离方案相比,本发明只运行合法的库函数调用,能有效地减少频繁的无效的库函数调用带来的性能开销。
(3)本发明的安全性高:本发明是在普通域(Normal World)中创建一个隔离域,并未将所有需要保护的内容都置于安全域(Secure World)中,有效的减少了可信基和被攻击的风险;其次,基于TrustZone实现的沙盒环境构建器(Sandbox Creater)、库控制器(LibController)以及对库函数调用状态的安全切换,利用ARM架构底层硬件的支持,都能够保证绝对的安全;同时,本发明通过对库函数相关的系统调用、API以及系统中断以外的库运行时环境(程序)的所有行为进行恶意代码检测,并反馈给用户,用户可以根据这些信息,来判断恶意行为所在的进程和操作的内存位置,并加以阻止。
附图说明
图1是本发明的共享库安全隔离系统的架构示意图;
图2是本发明的拦截器的重定向库函数的.GOT表示意图;
图3是本发明的环境切换实现流程图;和
图4是本发明的方法的流程图。
附图标记列表
10:沙盒 20:库控制器
30:沙盒环境构建器 40:拦截器
50:安全监控器 60:安全启动器
具体实施方式
下面结合附图进行详细说明。
为了便于理解,在可能的情况下,使用相同附图标记来表示各附图中共同的相似元件。
如在整篇本申请中所使用的那样,词语“可以”系容许含义(即,意味着有可能的)而不是强制性含义(即,意味着必须的)。类似地,词语“包括”、意味着包括但不限于。
短语“至少一个”、“一个或多个”以及“和/或”系开放式表达,它们涵盖操作中的关联与分离两者。例如,表述“A、B和C中的至少一个”、“A、B或C中的至少一个”、“A、B和C中的一个或更多个”、“A、B或C”和“A、B和/或C”中的每个分别指单独A、单独B、单独C、A和B一起、A和C一起、B和C一起或A、B和C一起。
术语“一种”或“一个”实体指的是该实体中的一个或多个。这样,术语“一”(或“一”)、“一个或多个”以及“至少一个”在本文中可以交换地使用。还应该注意,术语“包括”、“包含”和“具有”可以交换地使用。
如本文中所使用的那样,术语“自动的”及其变型是指当执行过程或操作时在没有实质性人工输入的情况下完成的任何过程或操作。然而,如果在执行该过程或操作之前接收到该输入,则该过程或操作可以是自动的,即使该过程或操作的执行使用了实质性或非实质性的人工输入。如果这样的输入影响该过程或操作的执行方式,则该人工输入被认为是实质性的。准予执行该过程或操作的人工输入不被视为“实质性的”。
如本文所用的词语“模块”描述任一种硬件、软件或软硬件组合,其能够执行与“模块”相关联的功能。
实施例1
本发明的目的是实现一种基于TrustZone的共享库安全隔离方法及系统,以防止攻击者利用库漏洞或者是恶意的库窃取应用程序隐私数据。
本发明中的安全域(Secure World),也称为安全环境或安全世界。
本发明中的普通域(Normal World),也称为普通环境或普通世界。
本发明的沙盒环境构建器(Sandbox Creater),设置于安全域中,用于根据需求动态地在普通域中构建一个隔离于普通域中Rich OS的隔离环境—沙盒。
库控制器(Lib Controler),设置于安全域中,作用包括:①根据开发者定义的配置文件Policy.xml,判断相对应的库函数调用是否具有合法权限;②将所调用的库函数加载到Sandbox Creater所构建的隔离环境沙盒中运行,③将运行结果返回给应用程序。
Rich OS:表示一般的操作系统,运行于普通域中,与运行于安全域中的Secure OS相对应。
Secure OS:标识安全系统,运行于安全域中。
拦截器(Interceptor):设置于普通域中,其作用是对一些敏感系统调用信息进行拦截,同时触发安全监控器(Secure Monitor)切换到安全域中,并调用库控制器。敏感系统调用信息包括framework APIs或者通过JNI来调用Native C程序中的函数。
安全监控器(Secure Monitor):负责控制安全域和普通域两个域之间的切换。
本发明提供一种基于TrustZone的共享库安全隔离系统,如图1所示。该基于TrustZone的共享库安全隔离系统至少包括:沙盒环境构建器、库控制器和拦截器。沙盒环境构建器30,用于在普通域中动态构建与Rich OS隔离的沙盒10。拦截器40设置于普通域中,用于基于进程间堆栈检测的方式拦截相对应的系统调用信息和/或Android frameworkAPIs。库控制器20,基于拦截的所述系统调用信息和/或Android framework APIs进行分析,对所述沙盒中库函数的调用状态进行切换并设置库权限。
优选的,所述沙盒环境构建器30基于所述拦截器监测的异常信息在普通域构建沙盒10。
例如,拦截器40根据Rich OS中的内核数据结构获取普通域中程序库的物理地址信息(Physical address information)。如图2所示,Android的库是一些可重定位的ELF(Executable and Linkable Format)的文件。当被加载时,将会与应用映射到相同的地址空间。应用程序库函数调用时的地址空间切换是通过修改.GOT表实现的。当调用库函数时,拦截器40首先从.GOT表中检索其地址,然后执行代码。将.GOT表中的地址修改为监视函数的指针,从而将对该库的调用重定向到指定的函数。
所述库控制器设置库权限的方式包括:基于至少一个应用程序的启动信息创建对应的特定线程和/或可信基,所述特定线程基于敏感资源请求在framework层和/或内核层进行堆栈权限检查,基于所述应用程序的访问请求以遍历所述访问请求涉及的程序的方式确定所述应用程序的合法权限。
例如,对于每一个APP,在其启动的时候,库控制器都会创建一个特定用途的线程——Stacktrace,并且为每个APP创建一个可信的模块,即作为应用权限系统的可信基。线程Stacktrace将针对不同类型的敏感资源请求分别在framework层和内核层进行不同的堆栈权限检查。
当一个应用程序中的程序模块申请访问一个服务对应的用户态资源时,将会通过查询应用程序管理包(PackageManager),并遍历当前请求所涉及的所有的程序模块来判断该应用程序是否具有合法的权限。
当一个应用程序中的程序模块申请访问一个服务对应的内核态资源时,将会拦截相对应的系统调用,并由库控制器(Lib Controller)中的访问控制列表中的白名单来进行检查,从而判断该应用程序是否具有合法的权限。
优选的,通过安全域中的沙盒环境构建器30在普通域中动态的创建安全可靠的沙盒10。本发明中,沙盒10也可以称为隔离域。
如图1所示,沙盒10一旦创建,就只允许安全域中所授权的信任程序Trust App进行访问控制,其他任何对沙盒10的区域的读写操作,都是不允许的。信任程序Trust App包括沙盒环境构建器30和库控制器20。
优选的,TrustZone系统运行包括如下步骤。
S1:上电。
在开始的时候,TrustZone系统中的所有装置处于断电关机状态A0。当给TrustZone系统上电时,TrustZone系统第一次进入到安全域中,并且进入安全启动状态A1。S2:加载沙盒环境控制程序。
在安全启动状态A1,安全只读内存镜像(ROM image)的Bootloader将初始化关键代码。同时,安全的bootloader将通过TrustZone在普通域中设置一块安全区域来加载安全的应用程序。例如在相应的硬件芯片沙盒环境控制器30和库控制器20中加载对应的沙盒环境控制程序和库控制程序。此时,TrustZone系统处于沙盒环境控制器状态A2。然后启动Rich OS状态A4。
S3:加载库控制程序并切换沙盒环境控制器状态A2至沙盒状态A3。
S4:退出沙盒状态A3,恢复沙盒控制器环境控制器状态A2。
当调用库时,Rich OS将会发送SMC系统调用请求,此时会切换到沙盒控制器环境控制器状态A2,创建安全的沙盒。库控制器通过调用已经修改的动态加载API将库重定向到沙盒状态A3,保证库只能在指定范围内安全执行。当执行结束,则返回。
S5:加载库,将Rich OS状态A4切换为沙盒环境控制器状态A2。
S6:通过加载/切换,将沙盒环境控制器状态A2切换为Rich OS状态A4。
S7:断电。
无论处于任何状态,一旦系统断电,TrustZone系统都会切换到断电关机状态A0。
优选的,库控制器20基于所述拦截器40拦截的系统调用信息与访问控制列表白名单的匹配结果确定应用程序的合法权限。
优选的,拦截器40基于应用程序或库运行的行为信息判断拦截的系统调用信息的调用模式。
优选的,库控制器20基于拦截器40判断的库函数调用模式将对应库的起始地址重定向至所述沙盒中。其中,所述库控制器用于重定向所述沙盒的切换代码
优选的,库控制器20基于拦截器40判断的回调函数调用模式调整沙盒10中的库函数指针。
优选的,库控制器20以将应用程序创建的新文件的路径更改至沙盒10的方式隔离库函数。
优选的,库控制器20基于函数返回值的类型反馈虚拟返回值以保护隐私信息。
具体地,本发明通过修改普通域中的Rich OS的动态加载API(包括dlopen,dlsym和dlclose),从而在库加载到程序的地址空间时,可以将应用程序的进程号发送给库控制器,然后通过读取、修改对应的内核中记录的内存信息,将库重定向到沙盒10中。
本发明能够实现在沙盒中对库函数的调用和回掉函数的调用时的状态切换,并实现库的权限控制。具体而言,根据Interceptor所获取的系统调用拦截信息,然后根据应用程序或库运行时的行为进行判断。当是库函数的调用时,库控制器20将提取程序二进制文件中存储的全局偏移表(GOT)中的程序所使用库的起始地址,并将其重定向到所创建的沙盒10中。其中,库控制器20还用于重定向Rich OS中应用程序库和沙盒10的切换代码。当是回调函数调用时,库控制器20将修改沙盒域中的库函数指针。当库函数进行回调调用的时候,将沙盒中的库函数指针指向Rich OS,当库函数进行调用返回时,将沙盒10中的库函数指针指向沙盒,同时对库函数的权限进行审核。
优选的,Interceptor所获取的系统调用拦截信息包括敏感的操作和函数调用,即:framework APIs或者是通过JNI来调用Native C程序中的函数。
优选的,应用开发者可以明确应用所使用的每一个库需要的权限,因此开发者只需要在assets文件中新建一个Policy.xml文件,用于给所使用的库分配不同的权限。库控制器20只需要根据Policy.xml,就可以判断库的调用是否合法。首先,要根据文件的路径,来识别正在操作的文件是否在应用内部存储中。如果在外部,则判断其是否具有相应的权限;如果在内部,则需要判断其是否在分配给库的隔离文件空间中。
优选的,本发明的基于TrustZone的共享库安全隔离系统还包括程序分析模块。程序分析模块对库运行时的行为进行恶意行为检测,并且在恶意行为发生时,向用户进行安全提示,阻止其恶意行为。具体而言,就是在沙盒中构建一个程序分析模块,通过对程序运行时的控制流分析,判断其是否是恶意的。一旦发现恶意行为,则通过安全域中的安全显示装置,将信息安全展示到用户界面,提醒用户终止程序的恶意行为。优选的,安全显示装置至少是具有显示信息功能的显示屏、液晶屏、触摸屏中的一种或几种。
优选的,本发明中的沙盒10可以是具有隔离域功能的芯片、服务器、处理器中的一种或几种。优选的,沙盒中的程序分析模块包括具有恶意行为检测功能的专用集成芯片、微处理器、服务器中的一种或几种。
本发明中的库控制器20可以是具有库调用功能的芯片、服务器、处理器中的一种或几种。
本发明中的沙盒环境构建器20可以是具有沙盒创建功能的芯片、服务器、处理器中的一种或几种。
本发明中的拦截器40可以是具有信息分析功能和拦截功能的芯片、服务器、处理器中的一种或几种。
本发明中的安全监控器50可以是具有安全监控功能的芯片、服务器、处理器中的一种或几种。
本发明还包括安全启动器60,用于在TrustZone系统上电后的安全启动。安全启动器(secure boot)60可以是具有安全启动系统功能的芯片、服务器、处理器中的一种或几种。
优选的,本发明中的处理器优选为具有TrustZone功能的处理器。
优选的,本发明的实际应用场景如下所述。
在TrustZone的安全域中,构建一个安全可信的沙盒环境控制器。当安全监控器捕获到SMC指令或者普通域中的硬件异常时(包括IRQ、FIQ、外部data abort或prefetchabort等)在普通域构建一个隔离于Rich OS的沙盒(所隔离的库只能够访问此沙盒中的数据)。然后,安全域中通过实现库控制器,将提取程序二进制文件中存储的全局偏移表(Global Offset Table,GOT)中的程序所使用库的起始地址,并将其重定向到沙盒环境控制器所创建的沙盒中。同时,根据开发者所提供的Policy.xml文件(开发者明确知道其所调用的库需要哪些权限),将其所需要的数据加载到Sandbox Creater所创建的沙盒中;最后将沙盒中的运行结果返回给程序。
实施例2
本实施例是对实施例1的进一步改进,重复的内容不再赘述。
如图4所示,本发明还提供一种基于TrustZone的共享库安全隔离方法。一种基于TrustZone的共享库安全隔离方法,其特征在于,所述方法至少包括:
S11:在普通域中动态构建与Rich OS隔离的沙盒,
S12:基于进程间堆栈检测的方式拦截相对应的系统调用信息和/或Androidframework APIs;
S13:基于拦截的所述系统调用信息和/或Android framework APIs进行分析,重定向库函数至沙盒,并且对所述沙盒中库函数的调用状态进行切换并设置库权限。
优选的,本发明的方法还可以包括步骤:
S14:对库运行时的行为进行恶意行为检测,并且在恶意行为发生时,向用户进行安全提示,阻止其恶意行为。
根据一个优选实施方式,所述方法还包括:对非沙盒中的库函数调用行为进行检测以进行安全提示。
根据一个优选实施方式,所述方法还包括:基于拦截器监测的异常信息在普通域构建所述沙盒。
根据一个优选实施方式,所述库控制器设置库权限的方法包括:基于至少一个应用程序的启动信息创建对应的特定线程和/或可信基,所述特定线程基于敏感资源请求在framework层和/或内核层进行堆栈权限检查,基于所述应用程序的访问请求以遍历所述访问请求涉及的程序的方式确定所述应用程序的合法权限。
根据一个优选实施方式,所述方法还包括:基于所述拦截器拦截的系统调用信息与访问控制列表白名单的匹配结果确定应用程序的合法权限。
根据一个优选实施方式,所述方法还包括:基于应用程序或库运行的行为信息判断拦截的系统调用信息的调用模式。
根据一个优选实施方式,所述方法还包括:基于所述拦截器判断的库函数调用模式将对应库的起始地址重定向至所述沙盒中。其中,所述库控制器用于重定向所述沙盒的切换代码。
根据一个优选实施方式,所述方法还包括:基于所述拦截器判断的回调函数调用模式调整所述沙盒中的库函数指针。
根据一个优选实施方式,所述方法还包括:以将应用程序创建的新文件的路径更改至沙盒的方式隔离库函数。
根据一个优选实施方式,所述方法还包括:基于函数返回值的类型反馈虚拟返回值以保护隐私信息。
虽然已经详细描述了本发明,但是在本发明的精神和范围内的修改对于本领域技术人员将是显而易见的。这样的修改也被认为是本公开的一部分。鉴于前面的讨论、本领域的相关知识以及上面结合背景讨论的参考或信息(均通过引用并入本文),进一步的描述被认为是不必要的。此外,应该理解,本发明的各个方面和各个实施例的各部分均可以整体或部分地组合或互换。而且,本领域的普通技术人员将会理解,前面的描述仅仅是作为示例,并不意图限制本发明。
已经出于示例和描述的目的给出了本公开的前述讨论。这并不意图将本公开限制于本文公开的形式。在前述的具体实施方式中,例如,为了简化本公开的目的,本公开的各种特征在一个或多个实施例、配置或方面中被组合在一起。实施例、配置或方面的特征可以以除上面讨论的那些之外的替代实施例、配置或方面组合。本公开的该方法不应被解释为反映本公开需要比每个权利要求中明确记载的更多特征的意图。相反,如以下权利要求所反映的,创造性方面在于少于单个前述公开的实施例、配置或方面的所有特征。因此,以下权利要求由此被并入本具体实施方式中,其中每个权利要求其自身作为本公开的单独实施例。
而且,虽然本公开的描述已经包括对一个或多个实施例、配置或方面以及某些变型和修改的描述,但是其他变型、组合和修改也在本公开的范围内,例如在本领域技术人员的技能和知识范围内,在理解了本公开之后。旨在获得在允许的程度上包括替代实施例、配置或方面的权利,所述权利包括那些要求保护的替代的、可互换的和/或等效的结构、功能、范围或步骤的权利,无论这种替代的、可互换的和/或等效的结构、功能、范围或步骤是否在本文中公开,并且无意公开奉献任何可专利的主题。
Claims (10)
1.一种基于TrustZone的共享库安全隔离系统,其特征在于,所述系统至少包括:沙盒环境构建器、库控制器和拦截器,
沙盒环境构建器,在普通域中动态构建与Rich OS隔离的沙盒,
拦截器,基于进程间堆栈检测的方式拦截相对应的系统调用信息和/或Androidframework APIs,
库控制器,基于拦截的所述系统调用信息和/或Android framework APIs进行分析,重定向库函数至沙盒,并且对所述沙盒中库函数的调用状态进行切换并设置库权限。
2.如权利要求1所述的基于TrustZone的共享库安全隔离系统,其特征在于,
所述拦截器对非沙盒中的库函数调用行为进行检测,和/或
所述拦截器获取普通域中程序库的物理地址信息并调用库控制器对所述物理地址信息进行重定向。
3.如权利要求2所述的基于TrustZone的共享库安全隔离系统,其特征在于,
所述沙盒环境构建器基于拦截器监测的异常信息在普通域构建所述沙盒。
4.如权利要求3所述的基于TrustZone的共享库安全隔离系统,其特征在于,所述库控制器设置库权限的方式包括:
基于至少一个应用程序的启动信息创建对应的特定线程和/或可信基,
所述特定线程基于敏感资源请求在framework层和/或内核层进行堆栈权限检查,
基于所述应用程序的访问请求以遍历所述访问请求涉及的程序的方式确定所述应用程序的合法权限。
5.如权利要求4所述的基于TrustZone的共享库安全隔离系统,其特征在于,
所述库控制器基于所述拦截器拦截的系统调用信息与访问控制列表白名单的匹配结果确定应用程序的合法权限。
6.如权利要求5所述的基于TrustZone的共享库安全隔离系统,其特征在于,
所述拦截器基于应用程序或库运行的行为信息判断拦截的系统调用信息的调用模式。
7.如权利要求6所述的基于TrustZone的共享库安全隔离系统,其特征在于,
所述库控制器基于所述拦截器判断的库函数调用模式将对应库的起始地址重定向至所述沙盒中,其中,
所述库控制器用于重定向所述沙盒的切换代码。
8.如权利要求6所述的基于TrustZone的共享库安全隔离系统,其特征在于,
所述库控制器基于所述拦截器判断的回调函数调用模式调整所述沙盒中的库函数指针。
9.一种基于TrustZone的共享库安全隔离方法,其特征在于,所述方法至少包括:
在普通域中动态构建与Rich OS隔离的沙盒,
基于进程间堆栈检测的方式拦截相对应的系统调用信息和/或Android frameworkAPIs,
基于拦截的所述系统调用信息和/或Android framework APIs进行分析,重定向库函数至沙盒,并且对所述沙盒中库函数的调用状态进行切换并设置库权限。
10.如权利要求9所述的基于TrustZone的共享库安全隔离方法,其特征在于,所述方法还包括:
对非沙盒中的库函数调用行为进行检测,和/或
获取普通域中程序库的物理地址信息并调用库控制器对所述物理地址信息进行重定向。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810249221.0A CN108647513B (zh) | 2018-03-22 | 2018-03-22 | 一种基于TrustZone的共享库安全隔离方法及系统 |
US16/109,870 US10754953B2 (en) | 2018-03-22 | 2018-08-23 | TrustZone-based security isolation method for shared library and system thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810249221.0A CN108647513B (zh) | 2018-03-22 | 2018-03-22 | 一种基于TrustZone的共享库安全隔离方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108647513A CN108647513A (zh) | 2018-10-12 |
CN108647513B true CN108647513B (zh) | 2020-04-28 |
Family
ID=63744719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810249221.0A Active CN108647513B (zh) | 2018-03-22 | 2018-03-22 | 一种基于TrustZone的共享库安全隔离方法及系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10754953B2 (zh) |
CN (1) | CN108647513B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10657248B2 (en) * | 2017-07-31 | 2020-05-19 | KnowBe4, Inc. | Systems and methods for using attribute data for system protection and security awareness training |
CN110362983B (zh) * | 2019-05-31 | 2022-06-17 | 北京中电飞华通信股份有限公司 | 一种保证双域系统一致性的方法、装置及电子设备 |
CN110889104B (zh) * | 2019-11-05 | 2022-03-25 | 福州汇思博信息技术有限公司 | 一种Android系统设备的数据采集方法和装置 |
CN111143095B (zh) * | 2019-12-31 | 2023-12-29 | 张杰辉 | 一种移动设备应用程序兼容性闪退预防方法及系统 |
CN113268726B (zh) * | 2020-02-17 | 2023-10-20 | 华为技术有限公司 | 程序代码执行行为的监控方法、计算机设备 |
CN112256448A (zh) * | 2020-09-30 | 2021-01-22 | 北京达佳互联信息技术有限公司 | 远程控制方法、装置、电子设备、系统及存储介质 |
CN113641989B (zh) * | 2021-08-13 | 2024-05-31 | 南京中孚信息技术有限公司 | 应用管理方法、装置及系统、电子设备 |
CN113791898B (zh) * | 2021-08-24 | 2022-07-26 | 电子科技大学 | 一种基于TrustZone的可信微内核操作系统 |
CN114048502B (zh) * | 2021-10-15 | 2023-08-15 | 中国科学院信息工程研究所 | 一种轻量级可信通道及其通信控制方法 |
CN117633265A (zh) * | 2022-08-10 | 2024-03-01 | 华为技术有限公司 | 图片的存储方法、装置和终端设备 |
CN116436681B (zh) * | 2023-04-25 | 2024-01-02 | 上海物盾信息科技有限公司 | 一种基于TrustZone的安全隔离系统、方法、终端及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9384347B1 (en) * | 2008-12-15 | 2016-07-05 | Open Invention Network Llc | System and method for hierarchical interception with isolated environments |
CN106446672A (zh) * | 2016-07-25 | 2017-02-22 | 中国科学院大学 | 一种Android第三方类库权限隔离方法及装置 |
CN107102888A (zh) * | 2017-04-25 | 2017-08-29 | 华中科技大学 | 一种基于硬件虚拟化技术的共享库隔离保护方法及系统 |
CN107194284A (zh) * | 2017-06-22 | 2017-09-22 | 济南浪潮高新科技投资发展有限公司 | 一种基于TrustZone隔离用户数据的方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060253908A1 (en) * | 2005-05-03 | 2006-11-09 | Tzu-Jian Yang | Stateful stack inspection anti-virus and anti-intrusion firewall system |
US8745361B2 (en) * | 2008-12-02 | 2014-06-03 | Microsoft Corporation | Sandboxed execution of plug-ins |
US8978092B2 (en) * | 2012-02-17 | 2015-03-10 | Hewlett-Packard Development Company, L.P. | Data leak prevention from a device with an operating system |
US9183412B2 (en) * | 2012-08-10 | 2015-11-10 | Sprint Communications Company L.P. | Systems and methods for provisioning and using multiple trusted security zones on an electronic device |
US9785560B2 (en) * | 2013-04-19 | 2017-10-10 | Salesforce.Com, Inc. | Scene-isolated internet application |
EP3248132B1 (en) * | 2015-01-22 | 2021-03-03 | McAfee, LLC | Detection of malicious invocation of application program interface calls |
-
2018
- 2018-03-22 CN CN201810249221.0A patent/CN108647513B/zh active Active
- 2018-08-23 US US16/109,870 patent/US10754953B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9384347B1 (en) * | 2008-12-15 | 2016-07-05 | Open Invention Network Llc | System and method for hierarchical interception with isolated environments |
CN106446672A (zh) * | 2016-07-25 | 2017-02-22 | 中国科学院大学 | 一种Android第三方类库权限隔离方法及装置 |
CN107102888A (zh) * | 2017-04-25 | 2017-08-29 | 华中科技大学 | 一种基于硬件虚拟化技术的共享库隔离保护方法及系统 |
CN107194284A (zh) * | 2017-06-22 | 2017-09-22 | 济南浪潮高新科技投资发展有限公司 | 一种基于TrustZone隔离用户数据的方法及系统 |
Non-Patent Citations (2)
Title |
---|
基于Android系统的隐私保护技术综述;谢燕江;《计算机时代》;20140114(第12期);全文 * |
基于TrustZone技术的Linux安全模块隔离方法研究;岳晨旭;《中国优秀硕士学位论文全文数据库信息科技辑》;20170815;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US10754953B2 (en) | 2020-08-25 |
CN108647513A (zh) | 2018-10-12 |
US20190294798A1 (en) | 2019-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647513B (zh) | 一种基于TrustZone的共享库安全隔离方法及系统 | |
CN110348252B (zh) | 基于信任区的操作系统和方法 | |
US8413230B2 (en) | API checking device and state monitor | |
US8380987B2 (en) | Protection agents and privilege modes | |
EP2521062B1 (en) | Protecting operating-system resources | |
RU2723668C1 (ru) | Фильтрация событий для приложений безопасности виртуальных машин | |
US8528083B2 (en) | Using a call gate to prevent secure sandbox leakage | |
US9633231B2 (en) | Hardware-protective data processing systems and methods using an application executing in a secure domain | |
US20090119748A1 (en) | System management mode isolation in firmware | |
US8893306B2 (en) | Resource management and security system | |
JP2007220086A (ja) | 入出力制御装置、入出力制御システム及び入出力制御方法 | |
JP2011227939A (ja) | システム管理割り込みを再命令し、仮想マシンコンテナを生成することによる、信頼性のないシステム管理コードに対する保護方法 | |
US10360386B2 (en) | Hardware enforcement of providing separate operating system environments for mobile devices | |
KR20150038574A (ko) | 타겟 디바이스의 능동 모니터링, 메모리 보호 및 무결성 검증을 위한 방법, 시스템 및 컴퓨터 판독 가능 매체 | |
CN113239329B (zh) | 一种用于移动端应用程序的可信执行环境的实现系统 | |
CN112818327A (zh) | 基于TrustZone的用户级代码和数据安全可信保护方法及装置 | |
WO2015174512A1 (ja) | 情報処理装置、情報処理監視方法、プログラム、及び記録媒体 | |
WO2017172190A1 (en) | Trusted execution of called function | |
KR20210060443A (ko) | 스택 포인터의 검증 | |
Schiffman et al. | The smm rootkit revisited: Fun with usb | |
Yiu | The Next Steps in the Evoluation of Embedded Processors for the Smart Connected Era,” | |
KR102479465B1 (ko) | 모바일 신뢰 실행 환경의 보안성 강화를 위한 장치 | |
CN109190383B (zh) | 访问指令的处理方法、装置及设备 | |
WO2022093184A1 (en) | Untrusted software handling | |
KR20240104780A (ko) | 모바일 기기의 동적커널모듈 보호 방법 및 이를 이용한 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |