安全控制方法及计算机系统技术方案

技术编号:20944724 阅读:35 留言:0更新日期:2019-04-24 02:29
本申请提供一种安全控制方法及计算机系统,该计算机系统上部署有第一域和第二域,第二域的安全性高于第一域,所述第一域内部署有程序,所述第二域内部署有控制流管理模块和审计模块。所述第二域的安全性高于第一域。所述控制流管理模块在位于所述第一域中的程序执行时,通过跟踪器获取控制流信息;所述审计模块根据审计规则对所述待审计信息执行审计,当所述待审计信息匹配所述审计规则时确定审计通过,然后允许第一域执行之后的操作,例如访问第二域的安全程序。审计控制流信息的同时还可以审计程序的数据流。通过上述方法,可避免一些关键程序的执行被绕过,提高计算机系统的安全性。

Safety Control Method and Computer System

This application provides a security control method and a computer system. The computer system is equipped with the first domain and the second domain. The security of the second domain is higher than that of the first domain. The first domain is equipped with a program, and the second domain is equipped with a control flow management module and an audit module. The security of the second domain is higher than that of the first domain. When a program in the first domain is executed, the control flow management module obtains the control flow information through a tracker; the audit module performs an audit of the information to be audited according to the audit rules, determines the approval of the audit when the information to be audited matches the audit rules, and then allows the operation after the execution of the first domain, such as access to the security program in the second domain. Audit control flow information can also audit program data flow. Through the above methods, we can avoid some key program execution being bypassed and improve the security of computer system.

【技术实现步骤摘要】
安全控制方法及计算机系统
本申请涉及计算机系统的安全控制技术,尤其涉及通过审计控制流等信息实现系统安全的方法、设备及系统。
技术介绍
终端设备处理重要服务的需求日益增加。从能够支付、下载和观看某一特定时段的最新好莱坞大片,到能够通过手机远程支付账单和管理银行账户,这些发展趋势已使终端设备成为恶意软件、木马和rootkit等病毒的重点攻击目标。为了保证终端设备的安全性,出现了以TrustZone为代表的终端设备安全框架。在现有的TrustZone框架下,系统级的安全是通过将片上系统(systemonchips,SoC)的软硬件资源划分到两个世界中分别获得,即正常世界(normalworld)和安全世界(secureworld)(也可以叫安全域和非安全域),这两个世界分别对应富执行环境(richexecutionenvironment,REE)和可信执行环境(trustedexecutionenvironment,TEE)。TEE和REE运行于同一个设备上,TEE能够保证在可信的环境中进行敏感数据的存储、处理和保护,并为授权的可信应用(trustedapplication,TA)提供安全的执行环境。客户应用(clientapplication,CA)(也称之为普通应用)运行于REE上,CA通过调用位于REE的TEE客户端应用编程接口(applicationprogramminginterface,API)去访问TA,从而使用TEE及TA提供的安全功能。现有技术中,为了保证CA访问TA的安全性,在REE侧设置有CA的鉴权程序,该鉴权程序用于提取CA的身份信息,以便于后续验证CA的身份。具体的,在CA访问TA之前,REE侧通过执行该鉴权程序提取CA的身份信息,然后通过安全模式调用(securemonitorcall,SMC)提交给TEE侧,TEE侧验证通过之后才允许CA访问它想要访问的TA。但是在REE侧,CA所运行的操作系统(operatingsystem,OS)有可能被攻破,导致该鉴权程序被绕过,亦即不执行。例如,以为代表的REE侧的OS之上部署有各种CA,而中部署有CA鉴权程序,存在一个超级用户权限,即root权限。当被超级提权(即被root)之后,原有的权限管理不再有效。也就是说,被root之后的CA就有可能在某些攻击情况下绕过鉴权程序。如果鉴权程序被绕过,CA的身份信息提取过程没有了。这样,仿冒的CA就可以将伪造的身份信息直接提交给TEE侧,待TEE侧验证通过之后,仿冒的CA就可以调用TA提供的安全功能,比如指纹验证功能,进而造成一系列的系统安全问题。
技术实现思路
本申请提供一种计算机系统、终端设备以及应用在其上的安全控制方法等,用于提高终端设备或其他类型的计算机系统的安全性。为了方便理解本申请提出的技术方案,首先在此介绍本申请描述中会引入的几个要素。域:计算机系统的一个逻辑组织单元,具体可以是一台计算机设备内部的逻辑组织单元。每个域都有自己的安全策略,不同域之间存在安全边界。计算机系统的域可能是通过软件划分的,例如系统的用户态和内核态,再例如利用虚拟化技术形成的宿主层(host)和客户层(guest);也可能是通过硬件方式划分的,例如基于TrustZone的安全域和非安全域。跟踪器:本申请中也叫tracer,用于记录CPU上发出的转移指令(例如跳转指令)和数据传输指令(例如中的load指令和store指令)等,这些指令可以作为控制流信息用来重构控制流以及用于获取动态数据等。例如架构下的CoreSight,X86架构下的IPT(ProcessorTracer),或其它可以实现CPU指令跟踪的单元或模块。跟踪器可以独立作为一个装置存在,也可以部分或全部嵌入到CPU中或其他硬件中。控制流(也可以叫执行流):表示程序的执行过程。控制流可直接或间接地表现为指令地址序列或事件序列。例如代码x=y,转换为汇编语言就是0x1234:loadr0,[y];0x1238:storer0,[x]。这里内存中存着的y的值流动到CPU的寄存器,再流动到x的内存中,该代码的控制流就是先执行0x1234,再执行0x1238,而其中y的值属于代码执行过程中的动态数据。控制流信息:用来表示可以重构控制流的信息。在一些描述中指形成一段程序的控制流的多条控制流信息中的一条,在另一描述中指形成一段程序的控制流的所有信息,在其他一些描述中也可以用来指控制流本身,具体可参考描述上下文。数据流:表示程序的数据读写过程,包含过程中的数据。可直接或间接地表现为程序的数据读写事件序列。本申请的一些实施例中通过对读写事件序列中包含的数据进行审计以保证系统的安全性,该数据一般为动态数据。数据流信息:用来表示可以重构数据流的信息,其中包含动态数据。在一些描述中指形成一段程序的数据流的多个动态数据中的一个,在另一描述中指形成一段程序的数据流的所有动态数据,在其他一些描述中也可以用来指数据流本身,具体可参考描述上下文。自动机:计算机实现的数学模型。自动机可以响应于外部输入(例如一个事件)而从一个状态转换为另一个状态。自动机实例是一个运行时自动机。在本申请提供的实施例中,规则或模型用来审计控制流等信息,自动机则为“规则或模型”的一种实现形式。“在第一域或第二域中执行某个动作”可以理解为执行该动作的主体部署在第一域或第二域中,或者可以理解为执行该动作的执行主体处在第一域或第二域所代表的状态,执行动作的主体可以是硬件模块也可以是软件模块;或者由于“域”是逻辑组织单元,所以某些情况下也可以理解为动作的执行主体为第一域或第二域。本申请中出现的“多个”或“多次”若无特殊说明则意指“两个或两个以上”,或“两次或两次以上”。本申请中出现的“第一”和“第二”并无限定顺序的意思,仅是为了在某些描述上下文中区分两个主体,以方便理解,但是其所指示的主体并非在所有实施例中都必须是不同的主体。本申请中出现的“A/B”、“A和/或B”包括A、B以及A和B三种情况。本申请中意指A为一个商标名称,但没有带的词语也有可能是商标名称。接下来将分不同的方面介绍本申请提供的技术方案。应理解的是,以下方面未必涵盖本申请提出的所有实现方式,并且不同方面的实现方式和有益效果可互相参考。第一方面,本申请提供一种计算机系统,具体可以为终端设备,所述终端设备上部署有第一域和第二域,所述第一域内部署有程序,所述第二域内部署有控制流管理模块和审计模块。该终端设备上还部署有跟踪器,与所述控制流模块和审计模块一起实现对所述程序的控制流的完整性审计。具体的,所述控制流管理模块被配置为在位于所述第一域中的程序执行时,通过硬件跟踪器获取待审计信息,所述待审计信息包括所述程序的控制流信息;所述审计模块被配置为根据审计规则对所述待审计信息执行审计,当所述待审计信息匹配所述审计规则时确定审计通过。负责审计的域的安全性通常高于(或等于)被审计的程序所运行的域。第一域和第二域可以是通过软件和/或硬件划分的。在一些实现方式下,所述第一域和第二域分别为基于TrustZone的非安全世界和安全世界(也可以理解为是REE和TEE)。可见,利用跟踪器,例如CoreSight或IPT,获取关键的程序(下述具体实施方式中称为待保护程序)本文档来自技高网
...

【技术保护点】
1.一种计算机系统,其特征在于,所述计算机系统上部署有第一域和第二域,所述第一域内部署有程序,所述第二域内部署有控制流管理模块和审计模块,其中:所述控制流管理模块被配置为:在位于所述第一域中的程序执行时,通过跟踪器获取待审计信息,所述待审计信息包括所述程序的控制流信息;所述审计模块被配置为:根据审计规则对所述待审计信息执行审计,当所述待审计信息匹配所述审计规则时确定审计通过。

【技术特征摘要】
1.一种计算机系统,其特征在于,所述计算机系统上部署有第一域和第二域,所述第一域内部署有程序,所述第二域内部署有控制流管理模块和审计模块,其中:所述控制流管理模块被配置为:在位于所述第一域中的程序执行时,通过跟踪器获取待审计信息,所述待审计信息包括所述程序的控制流信息;所述审计模块被配置为:根据审计规则对所述待审计信息执行审计,当所述待审计信息匹配所述审计规则时确定审计通过。2.如权利要求1所述的计算机系统,其特征在于,所述待审计信息还包括所述程序的数据流信息。3.如权利要求1或2所述的计算机系统,其特征在于,所述计算机系统还包括部署在所述第二域内的Tracer审核模块,所述Tracer审核模块被配置为:在所述审计模块执行审计之前对所述跟踪器执行审核,审核通过后再触发所述审计模块执行所述审计。4.如权利要求1-3任意一项所述的计算机系统,其特征在于,所述计算机系统还包括部署在所述第一域内的进程标识获取模块,所述进程标识获取模块被配置为:在所述跟踪器采集所述控制流信息之前获取执行所述程序的进程的进程标识,并将所述进程标识存入所述跟踪器的第一寄存器中;所述控制流管理模块具体被配置为:通过所述跟踪器获取所述待审计信息,所述待审计信息还包括所述进程标识,其中,所述进程标识为所述跟踪器从所述第一寄存器中读取的进程标识;所述审计模块具体被配置为:根据所述进程标识查找与所述进程标识匹配的审计规则,并根据查找到的审计规则对所述控制流信息执行审计。5.如权利要求1-4任意一项所述的计算机系统,其特征在于,所述计算机系统还包括部署在所述第一域的第一随机数发生器和自采集模块,所述第二域中包含所述程序的TEXT段;所述自采集模块被配置为:在所述程序被执行之前调用所述第一随机数发生器以产生随机数RX,并将所述随机数RX存入所述跟踪器的第二寄存器;根据所述随机数RX和执行所述程序的进程的TEXT段计算得到哈希值H1;所述控制流管理模块具体被配置为:通过所述跟踪器获取所述待审计信息,所述待审计信息中还包括所述随机数RX,其中所述RX由所述跟踪器访问所述第二寄存器获得;所述审计模块具体被配置为:获取所述哈希值H1;根据所述随机数RX和所述第二域中包含的所述TEXT段计算得到哈希值H2,比较所述H1和H2,当所述H1和H2相同且其他待审计信息匹配所述审计规则时确定审计通过。6.如权利要求1-4任意一项所述的计算机系统,其特征在于,所述计算机系统还包括部署在第一域的第一随机数发生器和部署在第二域的第二随机数发生器;所述控制流管理模块具体被配置为:通过所述跟踪器获取所述待审计信息,所述待审计信息中还包括随机数,其中,所述随机数为在所述程序被执行时所述第一随机数发生器被调用而产生的且产生之后被写入所述跟踪器的第三寄存器中,然后由所述跟踪器访问所述第三寄存器获得;所述审计模块具体被配置为:获取所述第一随机数发生器在所述程序执行过程中产生的最后一个随机数RY以及获取所述第二域中预置的随机数发生次数n;根据所述n触发所述第二随机数发生器产生n个随机数,并将其中第n个随机数Rn与所述RY比较,当所述Rn与所述RY相同且其他待审计信息匹配所述审计规则时确定审计通过。7.如权利要求1-6任意一项所述的计算机系统,其特征在于,所述跟踪器的全部组件或部分组件通过硬件划分的方式部署到所述第二域中,或所述跟踪器的全部组件或部分组件通过软件权限管理的方式部署到所述第二域中;其中,所述第二域的安全性高于所述第一域。8.如权利要求1-7任意一项所述的计算机系统,其特征在于,所述审计规则通过机器学习的方法获得。9.如权利要求1-8任意一项所述的计算机系统,其特征在于,所述程序存储在只读存储区中。10.一种计算机系统,所述计算机系统上部署有第一域和第二域,所述计算机系统还包括处理器、跟踪器和存储器,其特征在于:所述存储器被配置为:存储计算机可读指令;所述处理器被配置为:执行所述计算机可读指令以实现:启动所述跟踪器,以及在所述第一域中执行程序;所述跟踪器被配置为:在所述处理器执行所述程序时,采集待审计信息,所述待审计信息包括所述程序的控制流信息;所述处理器还被配置为:执行所述计算机可读指令以实现:在所述第二域中获取所述待审计信息,并根据审计规则对所述待审计信息执行审计,当所述待审计信息匹配所述审计规则时确定审计通过。11.如权利要求10所述的计算机系统,其特征在于,所述待审计信息还包括所述程序的数据流信息。12.如权利要求10或11所述的计算机系统,其特征在于,所述处理器还被配置为:在执行所述审计之前,在所述第二域中审核所述跟踪器,在审核通过后再执行所述审计。13.如权利要求10-12任意一项所述的计算机系统,其特征在于,所述处理器还被配置为:在所述跟踪器采集所述待审计信息之前,在所述第一域中获取当前进程的进程标识,并将所述进程标识存入所述跟踪器的第一寄存器;所述跟踪器被配置为:在采集所述控制流信息时读取所述第一寄存器中当前存储的进程标识,以和所述控制流信息一起作为所述待审计信息;所述处理器被配置为:在所述第二域中根据所述进程标识查找与所述进程标识匹配的审计规则,并根据查找到的审计规则对所述控制流信息执行审计。14.如权利要求10-13任意一项所述的计算机系统,其特征在于,所述计算机系统还包括部署在所述第一域的第一随机数发生器,所述第二域中包含所述程序的TEXT段;所述处理器还被配置为:在执行所述程序之前,在所述第一域中调用所述第一随机数...

【专利技术属性】
技术研发人员:陈海波王楠陈善席谢淼
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1