当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于uCOSII的MAC设计与实现

  : 针对嵌入式计算机应用领域中越来越突出的信息安全问题。本文以uCOSII操作系统为基础,在其上增加了强制访问控制MAC模块。模块参照BLP安全模型,根据uCOSII特性设计出BLP修正模型,实现了对系统的强制存取控制。
关键字:强制访问控制 安全模型 安全操作系统

1   引言

    随着嵌入式计算机应用的日益普及,特别是嵌入式设备不断的网络化、智能化,嵌入式计算机的安全就成为一个急待解决的问题。许多嵌入式计算机处理的信息涉及到国家政治经济安全,工商业情报等,不采取有效的安全防范措施,一旦受到攻击将造成巨大的损失。

    在计算机系统中,安全机制的重要内容就是存取控制。一般存在二种存取控制形式:自主访问控制和强制访问控制。

    自主访问控制具有很大的缺陷性。由于它的“自主”能力,从理论上讲根本不可能建立对特洛伊木马的有效防护机制。而强制访问控制MAC则强制性严格规定各个客体属性,实现了信息的单向流通,可以有效的抵制特洛伊木马的攻击。

2   MAC控制模型

2.1 强制访问控制MAC简介

    在强制访问控制下,系统中的每个进程,每个文件和每个IPC客体(消息,信号量和共享区域)都被赋予了相应的安全属性,这些属性是有安全管理员或者系统自动生成的,是不能随意改变的。主体对任何客体的访问要求,必须经过MAC访问控制模块的检测。如图1所示。

图1  MAC结构示意图

2.2 形式化安全模型BLP

    本文采用的MAC安全模型将基于改进的BLP模型(Bell-LaPadula Module)的安全策略包括二部分:自主安全策略和强制安全策略。模型认为系统中的活动使系统状态不断变化,但是必须保持所有的状态都是系统安全状态。由此定义所有系统状态的转换规则必须保持简单安全性,*特性和自主安全性。

    与BIBA模型(BIBA Module)相反,BLP模型主要注重保密性控制,控制信息从低安全级传向高安全级,但是缺少完整性的控制,其“向上写”规则存在潜在的危险,它不能够有效的限制隐通道。因此对其规则中所有涉及到可能对客体内容进行改动的操作以更严格控制,修改后规则如下:

(O∈b(S:a))=>(fo(O)=fc(S))

(O∈b(S:w))=>(fo(O)=fc(s))

(O∈b(S:r))=>(fo(S)>fc(O))

(O∈b(S:c))=>(fo(O)<fc(S))

(O∈b(S:x))=>(fo(S)>fc(O))

其中:

S表示主体:用户,进程等;

O表示客体:文件,信号量等;

主体对客体的访问属性A分为:r(只读),a(只写),w(读写),x(执行)和c(控制);

b (S×O×A)表示某个特定状态下,主体以何方式访问客体;

fo表示客体的安全级函数;

fc表示主体当前的安全级函数;

    可以看出根据修改后的规则当进行只写操作时,主体必须具有与客体相同的安全属性。

2.3 BLP模型在uCOSII中的应用

    为了使BLP在uCOSII中运用,必须进行模型与uCOSII的对应性分析。下面我们将讨论模型的系统状态,状态转换和系统安全状态初始化在uCOSII中的对应实施方式。

2.3.1 BLP模型的系统状态

    系统状态是集合V=(B×M×F×H)中的元素。其中B是S×O×A的集合,在uCOSII中主体S只有进程,当用户登录后,所有由用户发起的进程都会继承用户的安全级。uCOSII系统中客体O主要有进程,文件,共享内存,消息和信号量。模型的访问权限集由r(读),a(追加写),w(写),x(执行)和-(空)组成。在uCOSII中把追加写也认为是写,所以访问权限集由四个属性组成。

    uCOSII中存取控制矩阵M将通过每个客体属性中16bit的保护模式实现。而安全级别函数F由赋予主体的当前安全级别和赋予客体的安全级别组成。安全级别是由密级和域二部分组成的。密级共分为三级:top secret,secret和unsecret。域分为用户空间域,系统管理域和安全控制域。

    uCOSII是一个嵌入式的系统,我们采用的文件系统将是一个一级目录的文件系统。所以对于文件不存在客体层次结构H。

2.3.2 BLP模型的状态转换

       模型要求状态转换的任一规则都要保持系统安全状态。uCOSII系统中的状态转换都是通过系统调用实施的。系统中定义了基本的调用接口。当出现调用时,系统通过软中断下陷到安全控制域中完成操作,以保证状态的安全。

2.3.3 BLP模型的安全状态初始化

       uCOSII系统的安全初始化是在系统常规服务启动以前完成的。主要包括:

① MAC机制和DAC机制的初始化。

② 系统中客体安全属性的配置与检测。

③ 审计跟踪机制的启动和日志数据库的初始化。

3   MAC模块的设计与实现

3.1  MAC模块的设计

    在模块设计中,安全策略实施代码被集成到操作系统的各个子系统中。在各个子系统中建立客体管理器。现在主要有MAC进程管理器,MAC文件系统管理器,MAC网络管理器。对于进程的访问控制是MAC模块的重点。MAC进程管理器中不仅包括进程的访问控制还包括消息,信号量等IPC客体的访问控制。只有这些IPC客体的配合才能真正做到进程的MAC控制。

    由于安全措施是运用在嵌入式操作系统上的,必须对一般的MAC控制方式进行裁减,并作出一些规定以方便模块的实现。

(1)主体只有进程。作为主体的用户在系统中表现为继承用户的安全属性的进程。

(2)整个系统中大部分客体的密级和范畴都是事先定义的,除了重新编译系统外,无法作出改变。

(3)安全管理员可以更改与它同密级的安全配置文件和用户帐户属性文件信息,但是不能修改其他任何信息。

(4)为了方便策略的更改,安全策略的实施代码与安全策略的决策代码是严格划分的。

       为了保持uCOSII系统的实时性,对访问要求的判断在保持正确性的基础上要尽量快捷。当判断为非法访问时,还需要进行一系列的后续操作,如恢复进程状态,记录访问情况,审计判断等,这些操作的实施将保持在一个较低的进程优先级上,尽量避免影响其他进程的运行,减少对系统实时性的影响。

       模块实施框架如图2所示。

图2 MAC模块框架图

3.2 MAC模块的实现

3.2.1 MAC访问控制的实现过程

       整个MAC模块以模块化方式实现,依据设计中的要求可以分为客体管理器、响应处理单元和策略库三个部分。整个控制过程如图3所示。

图3 MAC控制流程图

3.2.2 MAC模块中重要数据结构和函数

对于主体对象的安全属性以如下结构体表示:

struct label {

    int flags;   //是否已经初始化

//主体安全属性

    unsigned int prio; //主体安全级别

    unsigned long reg //主体范畴

    void (*dfs_handle); //默认处理句柄   

};

    考虑到系统是一个实时操作系统,所以策略不应该很复杂.策略库在系统初始化时加载到RAM中,策略库以单向链表形式存在.每个结点数据结构如下:

struct macpolicy {

  struct macpolicy *next //用于连接下一个结点

  char *mpc_name;  //违规操作名称

  void (*mpc_ops);   //策略操作句柄

  void (*restore);   //恢复操作句柄

};

    目前一共有三个客体管理器,管理四个类型的客体:进程,IPC客体,文件,网络事件。针对每一类客体都有一个访问控制函数,对该类客体的访问作出初步判断:

(1) mac_checkprocess(struct label *p,OS_TCB *q)

    本函数实施对进程的访问控制,第一个参数为访问者的安全属性,第二个参数为被访问进程的控制块指针。

(2) mac_checkfs(struct label *p,pfile *q, INT8U optype ,int state)

    本函数实施对文件系统的访问控制,第二个参数为指向文件客体的指针,第三个参数对客体的操作类型,第四个参数为文件系统的状态,供审计跟踪使用。

(3) mac_checkevent(struct label *p,EVENT *q, INT8U optype)

    本函数实现对ipc客体的访问控制。参数中分别指明操作者和被操作客体,还有操作类型。

(4) mac_checknet(struct label *p,SOCKET *q, INT8U optype)

    本函数实现对网络客体的访问控制。主体对任何一个套接字的访问操作必须通过该函数的控制。

    通过上述四个函数的判断,当出现非法访问请求时,必须对操作进程进行一定的控制:

(5) mac_erropt(void *pdata)

    该函数是作为一个出错处理的入口函数。客体管理器将把访问情况通过无类型参数pdata传递给本函数,函数根据访问情况分别调用各个客体的错误处理函数。

    对于四个类型的客体分别有一个通用的错误处理函数:

(6) mac_handlerprocesserr(void);

(7) mac_handlereventerr(void);

(8) mac_handlerfserr(void);

(9) mac_handlerneterr(void);

    它们将负责对非授权操作的初步评估,根据策略改变主体运行状态,反馈信息给安全管理员和提交相关信息给审计模块。

4 结束语

    基于改进的BLP模型,本文所提出的强制访问控制模块的设计已基本实现。并且,作者修改了本实验室已实现的智能脱扣器项目的软件,并把它加载到修改后的嵌入式操作系统上进行初步的测试。测试结果表明:系统的实时性和安全性均能满足要求。在本论文的基础上,作者将对MAC的安全模型进行进一步改进和扩充,使其稳定性和实时性进一步增强,以使其能更适应实际的应用领域。

参考文献:

【1】 Jean J.Labrosse[USA] MicroC/OS-II The Real-Time Kernel Second Edition[M]  2002

【2】 IEEE Draft P1003.1e[S]

“B.26 Mandatory Access Control”

”B.27 Information Labeling” 1999

【3】  钟诚, 赵跃华主编 信息安全概论[M]   武汉理工大学出版社 2003

【4】  卿斯汉 刘文清等编著 操作系统安全[M] 清华大学出版社 2004

【5】 Jeremy Bentham著 嵌入式系统Web服务器-tcp/ip lean[M] 机械工业出版社 20

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭