高 斌,翟江涛,薛朋骏
(江苏科技大学电子信息学院,江苏镇江 212003)
一种VxWorks文件系统层访问控制方法
高 斌,翟江涛*,薛朋骏
(江苏科技大学电子信息学院,江苏镇江 212003)
针对VxWorks系统缺少文件层保护的问题,设计并实现了一种基于VxWorks文件层的访问控制系统.该系统包括访问监控器、访问决策器和权限库3部分.首先,在dosFs文件系统层嵌入访问监控器,拦截任务对块设备中文件的访问,同时获取由访问主体、客体以及访问方式所构成的三元组访问任务信息;其次,访问决策器将获取的访问任务信息与权限库的规则作匹配,给出决策方案;最后,访问监控器根据决策方案进行相应的访问控制.文中实验部分对使用文中方法设计的VxWorks系统进行了性能评估,结果表明该控制方法不仅有效提高了VxWorks系统的安全性,而且对VxWorks系统的实时性影响较小.
VxWorks;dosFs文件系统;访问控制;块设备
VxWorks系统有着广泛的应用,其安全问题备受研究者们的关注.2010年7月在拉斯维加斯举办的黑帽大会上,HD Moore演示了利用VxWorks 5.5~6.8漏洞的过程,一旦这些漏洞被利用将会带来巨大损失.因此,研究VxWorks系统安全问题具有重要意义和实用价值.
在国外,针对VxWorks的安全问题,风河公司(Winder River)不断发布漏洞修复补丁和系统升级更新,其主要研究集中在VxWorks系统的故障管理功能、系统保护域、虚拟层安全以及防火墙机制[1].2014年3月,风河公司发布了VxWorks 7系统,该系统包含全套内置安全功能,包括安全数据存储、防篡改设计、安全升级、可信任引导、用户以及策略管理[2].
在国内,对于VxWorks的安全问题研究,主要分为两个方面:①VxWorks系统的安全传输协议,例如文献[3]中设计的EST协议能够保证系统快速建立加密通信,文献[4]中改进的SSH协议能够有效防止“中间人攻击”问题,文献[5,6]中提出的文件传输方案能够保证系统的身份认证和端对端数据加密;②VxWorks系统的访问控制机制,例如文献[7]中设计的由访问控制单元、安全信息库和安全I/O库所构成的访问控制系统进一步地提高了系统的安全性.
VxWorks系统的漏洞仍在逐渐被发现,需要不断增强VxWorks系统安全,其中块设备数据安全便是一个尤为突出的问题,尤其是VxWorks系统所特有的dosFs文件系统的块设备数据保护.文中对VxWorks5.5系统的dosFs文件系统进行分析研究,提出一种dosFs文件系统层访问控制方法,并通过实验验证该方法的有效性.
VxWorks的dosFs文件系统是一种广泛应用的读写文件系统,该文件系统可以应用在块设备存储器上,能够实现层次性文件和目录管理模式,满足VxWorks的实时性要求.
dosFs文件系统在VxWorks启动过程中完成,初始化包括5个方面,分别是dosFs主模块、dosFs格式化功能模块、FAT文件分配表管理模块、dosFs一致性检查功能模块和dosFs长文件名处理模块.在dosFs包含的所有模块中,dosFsLib库完成dosFs文件系统与I/O子系统的衔接以及与底层块设备驱动层的衔接,dosFs文件系统对上由I/O子系统进行管理,对下通过CBIO中间层管理底层块设备驱动,其在内核中的层次如图1.
图1 内核中dosFs文件系统的层次Fig.1 Level of the dosFs file system in the core
dosFs文件系统完成初始化,创建dosFs文件系统下块设备后,用户层即可通过I/O系统操作块设备.I/O系统操作传递到I/O子系统层,I/O子系统借助系统设备表、系统驱动表和系统文件描述符表传递到dosFs文件系统层,dosFs文件系统通过CBIO层调用底层块设备驱动函数,最后完成块设备中文件的相应操作.
VxWorks块设备文件通过dosFs文件系统对所有用户可见,dosFs文件系统可以通过驱动函数以文件为单位对块设备文件进行访问,因而可在dosFs文件系统层实现文件级访问控制.
图2 系统调用中访问控制部件的位置Fig.2 Location of access control module in system calling
在dosFs文件系统层嵌入访问监控器,拦截所有对块设备文件的访问,并向访问决策器发出判定请求.对于打开文件前的操作,决策器加载访问控制策略,根据权限库信息决定用户对文件的访问权限,并与监控器发来的判定请求进行匹配,得出判定结果,最后监控器根据判定结果进行访问控制;对于打开文件后的操作,决策器需要借助策略缓存来决策,策略缓存中存放任务对dosFs结构指针所指向文件的访问权限.在系统调用中,访问控制部件所处位置如图2,图中虚线框内为访问控制部件.
2.1 访问监控器
用户通过I/O系统访问块设备中的文件,访问传递到I/O子系统,I/O子系统调用dosFs文件系统注册的7个驱动函数完成操作.访问监控器嵌入在dosFs文件系统的7个驱动函数中,执行驱动函数操作前,先进入对应的监控器函数,监控器将访问请求交给决策器进行判定,决策器根据返回的判定结果,决定继续执行该驱动函数或者返回ERROR到I/O子系统,调用结束.
dosFs文件系统7个驱动函数对应7个访问监控器函数,监控器将访问主体、访问客体和访问权限构成的三元组发给决策器进行判定.对应于上述dosFs文件系统的驱动函数分类,将监控器函数也分为两类:一类是拦截访问前,将<访问主体(任务ID),访问客体(文件名),访问方式>构成的三元组发送给决策器进行判定,包括Open,Create和Delete监控器函数,即在文件打开前访问监控器;另一类是拦截访问后,将<访问主体(任务ID),访问客体(dosFs结构指针),访问方式>构成的三元组发送给决策器进行判定,包括Read,Write,Ioctl和Close监控器函数,即在文件打开后访问监控器.
综上所述,2型糖尿病合并急性脑梗患者在饮食护理中使用饮食指导卡的效果显著,既可明显提高血糖控制情况和相关知识掌握度,又可改善患者生活质量和血脂情况,值得临床推广借鉴。
除了监控访问,访问监控器还需要添加、删除策略缓存中的权限信息,以保证打开文件后的访问决策.添加、删除的权限信息是<dosFs结构指针,任务ID,权限>构成的三元组,在Open监控器中成功打开文件后实现添加,在Close监控器中关闭文件后实现删除.添加权限,即利用合成的<dosFs结构指针,任务ID,权限>三元组权限信息来替代策略缓存中的<文件名,任务ID,访问模式>过渡三元组信息.
2.2 访问决策器及权限库
访问决策器与访问监控器分离,这样可以在决策器中方便地加入各种访问控制策略模块.考虑到复杂的访问策略会影响VxWorks系统的实时性,因而采用基于任务的访问控制列表(Access Control Lists,ACL)的访问控制方法[8].访问控制机制启动时,从权限库存储器中加载ACL到系统内存中供决策器使用,同时加入策略缓存机制,接收访问监控器发送来的添加、删除权限信息,用以打开文件后的访问控制.
ACL以任务为中心,给任务分配对各文件的权限,任务和文件权限构成一个访问控制列表元素,系统中所有任务的访问权限构成整个系统的ACL.任务结构和文件权限结构组成一个链表,其结构如图3.
图3 任务对文件访问权限的链表结构Fig.3 Structure of access authority lists from a task to a file
策略缓存实际也是一个访问控制列表,访问决策器接收到监控器发送来的添加请求后,将在策略缓存中申请一段内存空间,存放该权限信息,同时利用指向直接前驱和指向直接后驱的指针,将所有策略缓存元素链接成一个链表;在接收到删除请求后,将删除策略缓存中的对应元素.权限库加密存储在独立的权限库存储器中,形式与图3中的结构一致.采用对等加密算法[9],将该数据加密存储到权限存储器Flash[10]中,在取出时解密得到权限库数据.
3.1 实验验证
设计并实现dosFs文件系统层访问控制机制后,通过实验验证该访问控制机制能否拒绝非法访问.对两个任务tShell和tWDBx配置读写块设备“/D”中文件的权限如表1.
表1 任务权限配置Table 1 Authority configuration of tasks
分别测试两个任务对块设备“/D”中两个文件/D/a.txt和/D/b.txt的实际可访问权限.在Secure CRT下输入打开、读写两个文件的命令;在Downloadable Project中编写打开、读写两个文件的函数,并编译、链接、下载、执行该函数.观察上述两个任务读写文件的结果,其中/D/a.txt文件的初始内容为小写字母a~z这26个字符,/D/b.txt文件的初始内容为“0123456789ABCDEFG”字符串.
图4为通过Secure CRT命令,由tShell任务读取文件/D/a.txt,解读结果,读取的前8位数据为0x61,0x62,…,0x67,0x68,即字符串“abcdefgh”,读取成功.
图4 tShell任务读a.txt的结果Fig.4 Result of reading a.txt of tShell
图5为通过Secure CRT命令,由tShell任务向文件/D/a.txt写入字符串“ABCDE”,解读结果,读取的前10位数据为0x41,0x42,…,0x45,0x66,0x67,…,0x6a,即字符串“ABCDEfghij”,写入的字符串覆盖了原字符串,写入成功.
图5 tShell任务写数据到a.txt的结果Fig.5 Result of writing in a.txt of tShell
图6为通过Secure CRT命令,由tShell任务读写文件/D/b.txt,解读结果,当以读写方式打开文件时打开失败,当以只读方式打开文件时打开成功,即tShell只有对文件/D/b.txt的读权限,写权限被拒绝.
图6 tShell任务读写b.txt的结果Fig.6 Result of reading and writing in b.txt of tShell
图7为通过WindSh将Downloadable Project输出文件下载到VxWorks系统,tWDBx任务读取文件/D/a.txt,解读结果,由于tWDBx任务对/D/a.txt没有读写权限,所以访问权限被拒绝.
图7 tWDBx任务读a.txt的结果Fig.7 Result of reading a.txt of tWDBx
图8为通过WindSh将Downloadable Project输出文件下载到VxWorks系统,tWDBx任务读写文件/D/b.txt,解读结果,读取的数据为字符串“0123456789ABCDEFG”,读取成功.写入字符串“VxWorks5.5”之后,读取的数据为字符串“Vx-Works5.5ABCDEFG”,写入成功.
图8 tWDBx任务读写b.txt的结果Fig.8 Result of reading and writing in b.txt of tWDBx
综上所述,实验结果表明:dosFs文件系统层访问控制机制能够允许合法文件访问并拒绝非法文件访问,从而保护块设备中文件的安全,提高Vx-Works系统的安全性.
3.2 性能分析
加入访问控制后会影响系统的实时性,考虑到访问控制机制在访问不同大小文件时所带来的影响差异,所以这里采用不同大小的文件进行比较实验.
首先进行读文件测试,文件大小依次是128B,512B,1KB,2KB,10KB,20KB,50KB,100KB,500KB,1 000KB,其文件名依次为1.txt~10.txt这10个文件,且均配置读权限.读文件操作测试100次,平均读取时间如表2.
表2 加入访问控制前后读文件的时间Table 2 Time of file-reading after access control added
接着进行写文件测试,写入数据的大小依次是128B,512B,1KB,2KB,10KB,20KB,50KB,100KB,500KB,1 000KB,其文件名依次为a1.txt~a10.txt这10个文件,且均配置读写权限,所得测试时间如表3.
表3 加入访问控制前后写文件的时间Table 3 Time of file-writing after access control added
VxWorks提供的系统函数timex和timexN存在1%左右的系统误差,所以表2,3中读取大文件的时间差受误差影响无法精确测量.dosFs文件系统层访问控制系统中,不论文件大小,打开并读写一个文件时,都需经过相同的监控和决策步骤,因此其消耗的系统时间相差不大.由前面多组有效数据可知,读写大文件比小文件需要的时间长,加入访问控制后的系统延时最大不超过9%,最小为1.4%,其对系统性能的影响随文件增大而降低.
文中针对VxWorks块设备安全隐患,基于访问控制列表方法,设计了一种VxWorks文件系统层访问控制系统.在利用dosFs文件系统进行文件操作之前,该系统通过判定来访程序的权限来保护块设备中文件的安全.文中实验数据表明,在dosFs文件系统层设立访问控制机制,不仅提高了Vx-Works的安全性,而且对VxWorks实时性所造成的影响均在可接受范围内.
References)
[1]Fei Chen,Bruhadeshwar B.Cross-domain privacy-preserving cooperative firewall optimization[J].IEEE/ ACM Transactions on Networking,2012,21(3):857-868.
[2]Camara P,Castro J,Merino P,et al.Verification support for ARINC-653-based avionics software[J].Software Testing:Verification and Reliability,2011,21 (4):267-298.
[3] 万伟,王晋东,张恒巍.一种基于CPK的传输协议[J].计算机工程,2010,36(4):147-149.
Wan Wei,Wang Jindong,Zhang Hengwei.CPK-based transmission protocol[J].ComputerEngineering,2010,36(4):147-149.(in Chinese)
[4]Tang Xuehai,Sun Bing,Li Ruilin,et al.A meet-inthe-middle attack on reduced-round ARIA[J].Journal of Systems and Software,2011,84(10):1685-1692.
[5] 田战玲,刘利强.基于VxWorks网络文件传输安全性的研究[J].信息技术与信息化,2011,54(4): 32-35.
Tian Zhanling,Liu Liqiang.The study of security of network tile transmission based on VxWorks[J].Information Technology and Informatization,2011,54(4): 32-35.(in Chinese)
[6]Boho A,Van Wallendael G,Dooms A.End-to-end security for video distribution:the combination of encryption,watermarking,and video adaptation[J].IEEE Signal Processing Magazine,2013,30(2):97-107.
[7] 王晋东,董文超,张恒巍,等.VxWorks系统访问控制机制设计与实现[C]∥刘晓平.全国第21届计算机技术与应用学术会议暨全国第2届安全关键技术与应用学术会议论文集.合肥:中国科学技术大学出版社,2010:622-629.
[8] 杨梅,杨平利,宫殿庆.ACL技术研究及应用[J].计算机技术与发展,2011,21(6):145-149.
Yang Mei,Yang Pingli,Gong Dianqing.Access control list technology studying and application[J].Computer Technology Development,2011,21(6):145-149.(in Chinese)
[9] 何茗.加密解密算法的实现及改进[J].西南民族大学学报:自然科学版,2010,36(1):153-158.
He Ming.The implementation of a AES algorithm of the encryption and decryption of documents[J].Journal of Southwest University for Nationalities:Natural Science Edition,2010,36(1):153-158.(in Chinese)
[10] 石改辉,武静,李兵.基于VxWorks的FLASH之文件系统TFFS分析[J].电光与控制,2013,20(12): 80-83.
Shi Gaihui,Wu Jing,Li Bing.Analysis of flash TFFS based on VxWorks[J].Electronics Optics&Control,2013,20(12):80-83.(in Chinese)
(责任编辑:童天添)
An access control method based on file system layer of VxWorks
Gao Bin,Zhai Jiangtao*,Xue Pengjun
(School of Electronics and Information,Jiangsu University of Science and Technology,Zhenjiang Jiangsu 212003,China)
An access control system based on file layer of VxWorks is designed and implemented to solve the problem of lack of protection in file layer of VxWorks.This system is composed of three parts which are access monitor,access decider and authority library.Firstly,access monitor which is used to intercept the access of tasks to files in the block device and to acquire the access information of tasks is embedded into the dosFs file system layer,and the access information is also made up of three parts which are access subject,access object and access mode.Secondly,a decision scheme is given by access decider when the acquired access information of tasks is compared by the rules in authority library.Finally,the corresponding access control is carried out by access monitor according to the decision above.The performance of VxWorks embedded with the designed access control system is evaluated by experiments,and it turns out that the security of VxWorks is improved by the control method whose effect on the instantaneity of VxWorks is acceptable.
VxWorks;dosFs file system;access control;block device
TP316.2
:A
:1673-4807(2015)05-0462-05
10.3969/j.issn.1673-4807.2015.05.010
2015-06-15
高斌(1992—),男,硕士研究生.*通信作者:翟江涛(1983—),男,博士,研究方向为多媒体与网络信息安全.E-mail:jiangtaozhai@gmail.com
高斌,翟江涛,薛朋骏.一种VxWorks文件系统层访问控制方法[J].江苏科技大学学报:自然科学版,2015,29(5):462-466.