节点主动监控机制一般是通过调用在操作系统、虚拟机监视器(VMM)、底层函数和中间件中的钩子函数来实现对上层行为的监控。监控过程过程可抽象为可信度量、可信决策、可信控制。同时,对系统中已有的安全机制,可信软件也可以通过策略输出和审计接入将它们纳入系统的可信保障体系架构中,并向这些安全机制提供可信支撑。
钩子机制原理
钩子机制是windows、linux等同样操作系统以及虚拟机、中间件等场合常用的安全机制,为开发者提供相对独立的安全机制开发环境。可信软件基与操作系统访问控制机制的对接就是通过钩子机制实现的。
Linux安全模块(LSM)是代表性的安全钩子机制,通过在操作系统内核中提供一个通用的访问控制框架来解决系统安全问题。LSM允许安全策略以内核模块的形式加载,目标是通过给Linux一个安全策略执行的标准API接口,以方便Linux环境的安全改造。
LSM采取钩子机制接入系统调用中对内核的内部对象(任务、索引节点、文件等)处理过程,一般流程为:在系统调用的合适位置插入一个函数调用接口,该接口提供一组通用的安全API,用户可以按照这些API自行编写安全策略处理函数,并通过LSM加载机制让用户的安全策略处理流程对接到这些API上。当用户执行系统调用时,首先按照正常的系统调用顺序执行到LSM机制插入的函数调用接口处,调用接口通过安全API访问用户提供的安全策略处理函数,完成后返回出处理结果。系统调用可以根据这一处理结果决定调用是否返回,也可以存储处理过程中获取的信息以备其他钩子函数使用。
主动免疫机制
系统运行时的主动免疫机制由控制机制、判定机制、度量机制和可信基准库联合组成。控制机制实现与系统监视点和安全机制点的对接,度量机制对系统的行为实施度量,判定机制根据判定策略决定对系统行为的授权、拒绝和其他处理方式。每一个机制都有自己的策略库,而可信基准库则为系统安全机制和安全策略提供可信基准值,为系统度量本地节点和远程节点提供可信依据,以支撑主动免疫机制的可信运行。
系统运行时主动免疫的工作流程分为四个步骤:
- 控制机制依据策略对系统实施主动监控,控制包括文件/设备的打开、读、写、程序的执行等,并收集度量点处受度量对象的上下文信息(主体、客体、操作、环境)传递给度量机制。
- 度量机制依据度量策略对不同的度量点(如系统环境度量点、进程环境度量点、文件访问控制度量点、设备控制度量点、网络通信度量点等)设置合适的度量方法(如完整性度量和行为度量方法等)。度量机制依据度量策略对控制机制传递的受度量信息(主体、客体、操作、环境等)进行可信度量,并将度量结果发送至判定机制。
- 判定机制对度量信息机制产生的度量结果进行综合判定。判定机制利用系统运行环境的基准配置信息对系统运行环境的度量结果进行判定,利用应用的基准配置信息对应用启动时的度量结果进行判定,利用应用的基准行为信息对应用的行为度量结果进行判定。
- 控制机制根据判定机制返回的判定结果对受度量对象进行处理,包括执行、阻止、隔离、审计等。处理方式根据系统的实际安全需求灵活配置。
可信机制与已有安全机制的对接
可信3.0不会取代现有安全机制,它可以为安全机制提供可信支撑,保障安全机制运行环境的可信,让安全机制更好地集成到系统安全框架中。
各种安全产品的安全机制,实质是依据一定的安全策略,对其上层的运行环境进行监控。可抽象为一个输入安全策略、完成功能并输出审计信息的模块,这一模块需要有一个底层的可信运行环境来支持其可靠运行,并通过它的安全功能保护其上层运行环境的安全。
在可信3.0体系下:
- 底层的可信计算机制可以对产品安全机制的底层运行环境进行可信度量,确保其底层运行环境的可信。
- 与产品安全机制同一层面的可信计算机制可以与安全产品对接,将安全管理中心配置的安全策略发送给产品安全机制,同时接受产品安全机制获得的审计信息,并将其发送给安全管理中心进行分析,使产品安全机制可以集成到系统的可信保障体系中。
- 主动可信免疫还可以建立起安全机制和其他安全机制之间的协作关系。
、