嵌入式系统的VxWorks安全性问题研究
时间:11-06
来源:作者:单片机与嵌入式系统 南京航空航天大学 田力 袁家
点击:
引 言
实时嵌入式系统与网络的结合以及高可信覆盖网络的发展使得嵌入式实时操作系统的安全性问题日益突出。提高实时嵌入式系统的安全性和可靠性是未来实时嵌入式系统发展的重要方向之一。VxWorks是一个运行在目标机上的高性能、可裁剪的嵌入式实时操作系统。该系统以其良好的可靠性和卓越的实时性被广泛应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。VxWorks系统在安全方面未作任何处理。针对这一问题,本文在分析现有嵌入式安全操作系统构建原理及技术的基础上,提出了VxWorks安全内核,实现了基于多策略的强制访问控制等安全机制。测试表明,该安全内核不仅增强了VxWorks系统的安全性,而且对其实时性的影响较小。
1 安全操作系统构建原理及方法
1.1 强制安全和访问控制
操作系统的安全性是整个计算机系统安全性的基础。操作系统的安全特性很多,强制安全是其一个侧面。是不是强制安全,要视其安全策略逻辑定义与安全属性分配是不是由系统安全性策略管理员控制。如果是,则是强制安全;反之,如果是由普通用户控制的,则是自主安全。一个操作系统的强制安全策略可以分解为若干种类的策略,如访问控制策略,认证、加密策略等。
在本系统中实现了基于多策路的强制访问控制,即规定主体在操作系统的控制下依据一定的策略对客体进行访问。为此,提供了一个定义和转换强制安全性策略的架构,用于定义操作系统的强制安全策略,并把它转化成底层的操作系统强制安全机制能够解释的形式。
1.2 增强嵌入式操作系统安全性的方法
在一个现有的较成熟的嵌入式操作系统基础上增加安全核来增强现有系统安全性,是一个很好的开发安全嵌入式系统的思路。安全内核负责实现整个操作系统的安全机制,在硬件、操作系统、计算系统的其他部分之间提供安全接口,将安全功能隔离在安全核内。
2 VxWorks安全核框架
2.1 安全核体系结构
本文提出一种如图1所示的VxWorks安全核框架结构。基本思想是:应用程序对Wind内核的访问都是受控的,即应用程序(主体)对任务、信号量、共享内存、消息队列、管道、信号和文件等(客体)的访问及操作都受到强制的控制,安全核依据一定的策略判定是否允许主题对客体访问。应用程序对Wind内核的所有调用都被监控器拦截。首先通过查询策略缓存判定该调用的合法性,如果合法则允许进行该调用;如果没有找到相关策略则将该请求交由安全服务器进行判定,合法则允许进行该调用并将该策略写入策略缓存以便下次调用时直接判定,非法则拒绝此次调用。每次调用及结果反馈给审计模块以备查询。监视器、安全服务器、审计模块的配置工作由主机端配置工具进行。
该安全核的强制访问控制模块主要由监控器、策略缓存和安全服务器三大组件组成。其中,监控器负责拦截主体对客体的所有访问,将拦截到的访问交由判定机构判定,并负责依据接收到的判定结果对访问进行控制;策略缓存(Access Vector Cache,AVC)组件缓存安全服务器提供的访问控制决策供监控器使用,以减少检查对象访问权限耗时,从而提高整体性能;安全服务器是内核的一个子系统,将安全策略与通用接口封装在一起的一个组件,通用接口用于获取安全策略决策。针对不同对象的管理器负责向安全服务器申请SID标签以及向监控器提供服务。
2.2 安全服务器
安全服务器是本系统的核心组件,是访问合法性的判定部分。其结构如图2所示。
安全上下文是表示安全属性的变长字符串,是安全服务器私有的数据类型,由安全服务器依据一定的策略逻辑负责解释。安全上下文不直接与主客体绑定,而是在运行时由安全服务器依据标签规则进行其与安全标识符SID的映射。多策略验证器是安全服务器的核心模块,它包含系统设定的所有安全策略的判定逻辑。本安全核对多安全策略的支持由这一模块实现。按照不同的策略,对访问有不同的判定结果,安全服务器依据这些判定结果的交集做出最终的判定结论。
策略数据库是策略数据的存储结构,通过主机端配置工具配置其中相关信息。
本安全核的实现采用了一种结合类型实施(TE)、基于角色的访问控制(RBAC)和多级安全(MLS)的多安全策略。安全服务器定义的安全性上下文由用户身份、角色、类型及可选的安全级别和范围组成,其中角色只与任务(task)相关。只有合法的用户、角色、类别及安全级别或范围的组合才会被安全服务器赋予SID。
2.3 客体管理器及强制访问控制
客体管理器是负责安全策略实施的部分。Wind内核中任务、信号量、共享内存、消息队列、管道、信号、文件等的管理系统是不同的对象管理器。本系统实行强制访问控制,系统中每个任务、信号量、文件等都被赋予一定的安全属性,这些属性由客体管理器负责维护。
强制访问控制的具体过程为:监控器截获访问请求格式为主体SID、客体SID以及许可权限三元组,即<SID,SID,Perms>。监控器将三元组交与AVC进行匹配,如果有相应条目,则允许该访问请求;如果没有相应条目,则将该三元组交由安全服务器进行判定。安全服务器首先进行SID与安全上下文的映射,依据策略逻辑将映射后的该条访问信息交与策略验证器进行验证。如果验证通过则将该三元组写入AVC,同时运行此次访问,反之则不允许访问。
实时嵌入式系统与网络的结合以及高可信覆盖网络的发展使得嵌入式实时操作系统的安全性问题日益突出。提高实时嵌入式系统的安全性和可靠性是未来实时嵌入式系统发展的重要方向之一。VxWorks是一个运行在目标机上的高性能、可裁剪的嵌入式实时操作系统。该系统以其良好的可靠性和卓越的实时性被广泛应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。VxWorks系统在安全方面未作任何处理。针对这一问题,本文在分析现有嵌入式安全操作系统构建原理及技术的基础上,提出了VxWorks安全内核,实现了基于多策略的强制访问控制等安全机制。测试表明,该安全内核不仅增强了VxWorks系统的安全性,而且对其实时性的影响较小。
1 安全操作系统构建原理及方法
1.1 强制安全和访问控制
操作系统的安全性是整个计算机系统安全性的基础。操作系统的安全特性很多,强制安全是其一个侧面。是不是强制安全,要视其安全策略逻辑定义与安全属性分配是不是由系统安全性策略管理员控制。如果是,则是强制安全;反之,如果是由普通用户控制的,则是自主安全。一个操作系统的强制安全策略可以分解为若干种类的策略,如访问控制策略,认证、加密策略等。
在本系统中实现了基于多策路的强制访问控制,即规定主体在操作系统的控制下依据一定的策略对客体进行访问。为此,提供了一个定义和转换强制安全性策略的架构,用于定义操作系统的强制安全策略,并把它转化成底层的操作系统强制安全机制能够解释的形式。
1.2 增强嵌入式操作系统安全性的方法
在一个现有的较成熟的嵌入式操作系统基础上增加安全核来增强现有系统安全性,是一个很好的开发安全嵌入式系统的思路。安全内核负责实现整个操作系统的安全机制,在硬件、操作系统、计算系统的其他部分之间提供安全接口,将安全功能隔离在安全核内。
2 VxWorks安全核框架
2.1 安全核体系结构
本文提出一种如图1所示的VxWorks安全核框架结构。基本思想是:应用程序对Wind内核的访问都是受控的,即应用程序(主体)对任务、信号量、共享内存、消息队列、管道、信号和文件等(客体)的访问及操作都受到强制的控制,安全核依据一定的策略判定是否允许主题对客体访问。应用程序对Wind内核的所有调用都被监控器拦截。首先通过查询策略缓存判定该调用的合法性,如果合法则允许进行该调用;如果没有找到相关策略则将该请求交由安全服务器进行判定,合法则允许进行该调用并将该策略写入策略缓存以便下次调用时直接判定,非法则拒绝此次调用。每次调用及结果反馈给审计模块以备查询。监视器、安全服务器、审计模块的配置工作由主机端配置工具进行。
该安全核的强制访问控制模块主要由监控器、策略缓存和安全服务器三大组件组成。其中,监控器负责拦截主体对客体的所有访问,将拦截到的访问交由判定机构判定,并负责依据接收到的判定结果对访问进行控制;策略缓存(Access Vector Cache,AVC)组件缓存安全服务器提供的访问控制决策供监控器使用,以减少检查对象访问权限耗时,从而提高整体性能;安全服务器是内核的一个子系统,将安全策略与通用接口封装在一起的一个组件,通用接口用于获取安全策略决策。针对不同对象的管理器负责向安全服务器申请SID标签以及向监控器提供服务。
2.2 安全服务器
安全服务器是本系统的核心组件,是访问合法性的判定部分。其结构如图2所示。
安全上下文是表示安全属性的变长字符串,是安全服务器私有的数据类型,由安全服务器依据一定的策略逻辑负责解释。安全上下文不直接与主客体绑定,而是在运行时由安全服务器依据标签规则进行其与安全标识符SID的映射。多策略验证器是安全服务器的核心模块,它包含系统设定的所有安全策略的判定逻辑。本安全核对多安全策略的支持由这一模块实现。按照不同的策略,对访问有不同的判定结果,安全服务器依据这些判定结果的交集做出最终的判定结论。
策略数据库是策略数据的存储结构,通过主机端配置工具配置其中相关信息。
本安全核的实现采用了一种结合类型实施(TE)、基于角色的访问控制(RBAC)和多级安全(MLS)的多安全策略。安全服务器定义的安全性上下文由用户身份、角色、类型及可选的安全级别和范围组成,其中角色只与任务(task)相关。只有合法的用户、角色、类别及安全级别或范围的组合才会被安全服务器赋予SID。
2.3 客体管理器及强制访问控制
客体管理器是负责安全策略实施的部分。Wind内核中任务、信号量、共享内存、消息队列、管道、信号、文件等的管理系统是不同的对象管理器。本系统实行强制访问控制,系统中每个任务、信号量、文件等都被赋予一定的安全属性,这些属性由客体管理器负责维护。
强制访问控制的具体过程为:监控器截获访问请求格式为主体SID、客体SID以及许可权限三元组,即<SID,SID,Perms>。监控器将三元组交与AVC进行匹配,如果有相应条目,则允许该访问请求;如果没有相应条目,则将该三元组交由安全服务器进行判定。安全服务器首先进行SID与安全上下文的映射,依据策略逻辑将映射后的该条访问信息交与策略验证器进行验证。如果验证通过则将该三元组写入AVC,同时运行此次访问,反之则不允许访问。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 嵌入式系统中文输入法的设计(03-02)
- 基于MPC755的嵌入式计算机系统设计(05-10)
- WinCE下光电编码器的驱动程序设计(04-12)
- 为什么嵌入式开发人员要使用FPGA(05-13)
- VxWorks几种常用的延时方法介绍(05-16)