基于L4微内核的物联网操作系统安全机制实现研究
2017-07-25范昌琪普华基础软件股份有限公司
范昌琪 普华基础软件股份有限公司
基于L4微内核的物联网操作系统安全机制实现研究
范昌琪 普华基础软件股份有限公司
目前各种智能感知设备众多,软硬件多元化和碎片化,普遍采用基于L4的微内核操作系统,本文基于物联网应用情况提出基于国际三层安全实现规范要求的安全设计规范,并在强制访问控制和安全审计方面提出可行性的技术实现建议。
微内核 L4 物联网操作系统 强制访问控制 安全审计
1 前言
在目前的各种智能感知设备面临厂家不同,智能化的程度参差不齐,各感知设备也是千差万别,呈现出软硬件设备多元化的局面。这种软硬件设备的多元化和碎片化也给生态体系的建设带来的明显的障碍,缺乏统一的操作系统平台和统一的集成开发环境,给设备提供商和应用开发商带来了很多额外的开发成本,也影响了物联网产业的健康发展。同时,物联网操作系统有着多接入、长实时、多元数据交互的特点,系统的信息安全对物联网设备的稳定运行和可靠使用至关重要。
因此,传统的操作系统已经无法满足物联网产业的发展需求,需要对传统的操作系统功能进行扩展,架构进行重新设计和规划,在信息安全上进行深度设计,满足物联网发展的需要。
2 L4操作系统微内核
微内核作为近些年操作系统内核技术的热点话题,其可靠性、可扩展性、实时性和安全性为解决目前物联网操作系统的碎片化问题提供了较好的思路,物联网操作系统有实时性和非实时性要求,也有需要图形界面的,也有不需要图形界面的,同时也面临着多硬件架构的问题,微内核刚好可以很好解决这些技术难题。
L4是目前最为先进的微内核构架的操作系统内核,其设计基于两个基本设计原则:①高性能和灵活性的要求决定微内核必须尽可能缩到最小;②微内核实现本身取决于硬件结构,它是不可移植的。虽然微内核可以改善整个系统的移植性,但它本身是不可移植的,因为要达到高性能,它的实现必须紧密联系于硬件结构。具有实时能力的微内核服务通常还可以向非实时应用提供它们的服务,并根据可用资源来调度其客户。
图1 单内核操作系统(左)和微内核操作系统(右)结构比较
与微内核相对应的是单内核操作系统,单核操作系统提供了完整的操作系统服务,如上图所示的文件系统、进程间通信、进程调度、内存管理、设备驱动程序等。而应用程序则运行在用户态,而应用程序想要使用系统服务,则需要通过内核所提供的接口,即系统调用。当应用程序进程执行系统调用时,会陷入到内核的代码去执行,进程此时运行于内核态,处理器处于特权等级最高的状态执行。当应用程序需要的操作系统服务调用完成,进程回到原来的应用程序代码中继续执行,同时也回到了用户态,在较低的特权等级上运行。常见的操作系统如Windows和Linux操作系统都属于这一类型。
而对于右边的微内核操作系统来说,内核部分则被最大限度的简化了,只包括了最基本的IPC机制、地址空间管理和调度机制等用于实现操作系统服务的基本功能。而操作系统服务,比如前文所提到的诸如设备驱动、文件系统、应用程序间通信等,则都将通过用户态服务程序的方式实现。当普通的应用程序需要操作系统的相关服务时,其需要通过发起进程间通信给相应的服务程序,由这些服务程序进行相关操作,必要时服务程序也会通过执行内核提供的系统调用陷入到内核态运行以便完成一些基本的操作,并把结果再通过进程间通信反馈给应用程序。
物联网操作系统核心层要实现国标GB/T 20272操作系统安全技术要求第三级要求,需要最访问控制、安全审计和特权管理进行内核级安全增强达到安全三级要求。如下图浅蓝色背景所示:
图2 内核层国标安全三级实现
3 微内核安全体系安全框架设计
安全微内核操作系统将提供一种新的特性-Capability,即权能机制保护系统所有内核维护资源,除了几个精心设计的系统调用之外,所有系统调用都已被权能保护,其他资源,包括虚拟内存,物理内存,系统缓存,进程间通信以及其他资源都受权能检查的保护。另外权能是一种单向的保护,类似现实中的门概念,两个房间之间只有一扇门。作为发送者,它必须拥有发送给接受者的权能,接受者是目标资源。
另外,为了提高操作系统安全性,Capability和要访问的资源之间的关系类似于文件描述符号和文件之间的关系一样,要访问一个资源,必须通过Capability来进行,Capability里面规定了那么资源可以被访问等安全特性,Capability允许被授予(从一个用户转移到另外一个用户),因此,Capability是比ACL(访问控制列表)更好的一种增强系统安全性的方法。微内核系统安全框架如下图所示。
图3 L4微内核系统安全框架图
用户应用程序分为一般性应用程序程序和可信应用程序。当这些应用程序要进行系统资源访问时,通过系统调用接口,进入微内核安全内核。安全内核会进行一系列安全检查,并且所有这些安全特性调用,都会被审计机制监控。
4 微内核安全强制访问控制
强制访问控制模块是以TE等安全模型为基础,对数据实施强制访问控制,支持系统客体和主体的敏感性、完整性和非等级类别划分,提供具有不同敏感性和完 整性的信息和资源的保护。在微内核安全访问控制框架(LSM)基础上,采用Flask安全控制机制实现强制访问控制。
客体管理器负责实施安全策略的判定结果,对于内核,可以认为客体管理器是一个内核子系统,内核客体管理器的实例包括文件系统、进程管理和System V进程间通信(IPC)。在LSM架构中,客体管理器是通过LSM钩子描绘的,这些钩子分散在内核子系统各个地方,调用安全服务器(LSM模块)做出访问决定。然后,LSM钩子通过允许或拒绝对内核资源的访问强制执行这些决定。
安全服务器负责作出安全策略的判定。安全服务器的安全策略由四个子策略组成:BLP策略、BIBA策略、类型加强(TE)策略和基于角色的访问控制(RBAC)策略。安全服务器提供的访问判定必须满足每个子策略的要求。
访问向量缓存(AVC),AVC缓存决定是由安全服务器为后面的访问检查准备的,目的为了提升访问确认的速度。AVC还为LSM钩子和内核客体管理器提供了功能接口。
用户空间客体管理器实现在用户空间进行资源管理。用户空间客体管理器行为与内核客体管理器功能非常类似,主要的区别是用户空间客体管理器不能使用内核AVC,每个都必须有其自身的,独立的AVC存储过去来自内核的决定,用户空间的AVC功能包括在库中。另一个区别是用户空间客体管理器没有LSM钩子,LSM钩子属于内核空间的概念。
图4 强制访问控制整体框架
5 微内核安全审计
安全审计模块对系统内发生的各种安全事件进行实时记录并保证审计记录的可用性。对审计事件的记录应是一个搜集并保存事件的过程。审计模块应能够侦测审计存储是否超过设定的门限阀值,并能执行超过范围后采取的行动。
图5 审计子系统实现构架
其中:
内核审计进程,开辟一个大缓冲区用来收集从审计点收集到的审计记录,并定期将审计记录写到文件中。
用户态审计守护进程,进行用户态的守护进程主要负责将内核接口产生的审计信息写到硬盘。这些审计信息是由应用程序和系统活动触发。用户态审计守护进程的启动后由审计配置控制。用户态审计守护进程通过netlink套接字与内核审计线程通信。
审计配置工具控制审计系统,它控制日志产生参数,内核审计接口,和审计规则配置。审计规则则决定哪些事件被记录到日志。
审计规则文件包含审计配置工具的命令参数。用户态的审计守护进程在启动时通过审计配置工具顺序读入参数内容。
审计报告工具可以通过分析审计日志文件定制报告,生成的报告应该很容易被其它应用程序利用。
审计查询工具能够通过不同的关键字或者其它的日志格式特性查询到特定的事件。
审计分发工具守护进程能够传递事件通知到其它进程或者写入审计日志。
[1]张琰,晏永红,刘静,周娅琴.一种基于物联网技术的通风离心机控制平台设计[J].微电子学与计算机,2016,11:171-175+180
[2]刘伟,林开司,刘安勇.基于物联网的鱼缸智能控制系统设计与实现[J].淮海工学院学报(自然科学版),2016,04:1-4
[3]石鑫,夏青.基于Android操作系统的实时系统监控研究[J].电视技术,2015,16:61-64