还剩2页未读,继续阅读
文本内容:
嵌入式Linux系统平安性问题的解决 目前很多运行在局域网甚至Inter上的产品如雨后春笋般涌向市场,比方智能家居、安卓手机等这些产品在方便用户的同时也出现一些平安问题,系统置于网络上相当于暴露给所有人,故对嵌入式产品平安性研究刻不容缓嵌入式产品由于尺寸、本钱的约束注定不可能从硬件局部提供更多的平安措施,故提升平安性重点应考虑Linux内核 开源的Linux内核无论在功能上或性能上都有很多优点,但Linux内核属于开源工程,缺少提供商的平安保证,所以需要使用者最大限度地提升系统的平安性根据实际情况裁剪Linux内核,并采取适当的平安措施可提升系统的平安性掌握Linux核心技术、配合先进的平安模型、增强其平安性进而研发平安的操作系统非常有必要Linux的平安性问题从机制角度可以有以下几点 1Linux系统访问控制Linux系统主流发行版本的访问控制属于自主访问控制;自主访问控制控制形式任何一个活动主体对应用户标识和组标识显然自主访问控制形式的问题是忽略了用户的角色、程序可信性等平安信息,故不能提供有效的平安性保障 2Linux系统管理Linux系统中用户可以分为两类,一类是普通用户,另一类是管理员用户Linux系统管理员用户拥有系统所有权限,包括用户管理、设备管理、审计管理和平安管理等;这样方便了管理员管理,易于用户操作,但是违犯了“最小特权”管理原那么Linux系统的平安性只是建立在管理员必须正确设置系统功能、且不被冒充和不存在平安破绽等一系列假设的根底上显而易见这样的系统存在宏大的风险,假设系统管理员被非法控制,系统将没有平安性可言 3Linux系统日志Linux系统中的日志功能从设计到实现不是以系统平安为目的而是以内核调试为目的;此与系统平安审计有很大差距第一,缺乏资源访问方面的记录;第二,不能详细记录系统发生的事件;最后,缺少必要数据分析与警告 由此可见,嵌入式Linux内核自身的平安功能相当薄弱,对于平安性要求比拟高的产品,那么需要进步Linux内核的平安性 提升Linux平安性所采取措施主要有在Linux系统内核使用平安模块和安装必要的防火墙,还有一些嵌入式特有的平安措施 1使用平安模块LSMLinuxSecurityModulesxx年一次Linux内核峰会中美国国家平安局推出了他们的平安增强LinuxSELinux,与此同时Linux内核创始人提出,Linux内核作为一个开放的系统确实应该有一个通用的平安访问控制框架,不过也提出应该可以使用加载内核模块的方式来支持不同的平安模块,Linux内核的平安模块从此产生下面可以通过图1来理解一下平安模块工作原理 从图1中可知,Linux平安模块工作原理是通过使用函数回调的方法,系统根据用户配置来判断内核对象的访问系统运行进程执行系统调用时找到I节点并分配相关资源,就在即将访问相应的对象时,系统立即调用Linux平安模块提供的函数,对平安模块提出疑问“是否允许访问该对象”,平安模块根据用户设定的平安策略进展判断该次访问是否具有相应的权限在平安模块里可以调用不同的平安模块,使用较多的有SELinux、SmackSimplifiedMandatoryAessControlKernel、TOMOYO等 SELinux平安模块该模块的使用使得系统由原来的自主访问机制改变为强迫访问控制机制但是SELinux平安模块并不适用于处理才能有限嵌入式产品,原因有以下几点首先,SELinux模块的细粒度访问控制造成平安策略的复杂性,例如Fedora发行版本里就超过800000行,如此复杂的平安策略肯定不能应用于嵌入式系统;其次,在使用SELinux模块后,假设要运行某一个进程时,需要给出所有要调用函数的权限才能运行,在本身资源短缺的嵌入式产品里非常不适用;另外一点,当系统平安策略频繁改变时,要将文件系统重新设置且重新装载到内核里,嵌入式文件系统一般都烧写在FLASH中,需要重新烧写文件系统,这对于最终用户是不可能实现的事使用SELinux模块后,要求系统支持文件扩展属性,而嵌入式系统经常采用的文件系统有CRAMFS、JFFS2等,这些文件系统本身不支持属性扩展由此可见,SELinux平安模块不合适在嵌入式产品中使用 Smack平安模块的原理与SELinux模块一样,同样是强迫访问控制的一个实现,与SELinux不同的是使用简单的配置策略来代替配置复杂的SELinux因为Smack平安模块基于标签实现强迫访问控制,故需要支持标签的文件系统支持使用Smack平安模块需要完成3局部工作配置修改Linux内核支持Smack、设置Smack脚本以及用户空间应用程序的修改基于标签实现强迫访问的Smack模块需要修改根文件系统,所以Smack不合适作为嵌入式系统的平安模块 TOMOYO平安模块是基于途径名的强迫访问控制平安模块,由NTTDATA公司开发和维护MOTOYO身材较小,只有100K左右代码、300K策略文件,是一个典型的基于途径面向行为的系统分析者和保护者,合适在嵌入式产品使用MOTOYO平安模块拥有图形界面策略工具,方便用户策略,除此之外还支持友好的学习形式与强迫形式模板内容仅供参考 。