系统软件的安全考量
一、操作系统角色
操作系统承担着保护嵌入式系统安全性和可靠性的巨大责任
二、多重独立安全等级
MILS(Multiple Independent Levels of Security)架构, 规定一个分层的安全方法。
2.1 信息流
除非系统安全策略明确许可,否则相互隔离的应用程序之间不能有信息流动
2.2 数据隔离
一个被隔离的应用程序中的数据不能被其他应用程序读取或修改
2.3 损害控制
如果一个被隔离的应用程序存在漏洞或因攻击而遭到破坏,那这种破坏不应该扩展到其他应用程序
2.4 周期性处理
举个例子,组件A使用的内存,使用完成后,需要在组件B使用前清楚,否则B组件就会拿到A组件的内存信息
MILS架构还使用了引用监视器或引用验证机制。当内核的MILS策略执行机制一直保激活、防篡改且可评估的,那么可以将分离内核看做一个引用监视器
2.5 一直激活
应用程序通过操作系统访问资源或服务时,不能绕过系统的安全策略
2.6 防篡改
禁止应用程序破坏安全策略或与之相关的机制
2.7 可评估
三、微内核与单内核
术语: 可信计算基(Trusted Computing Base, TCB)是指哪些用来保障系统安全的部件(硬件和软件)
相对单内核操作系统,微内核操作系统为安全提供一个更好的架构。
四、嵌入式操作系统核心安全要求
4.1 内存保护
4.2 虚拟内存
虚拟内存除了基本的内存保护,还提供了额外的特性,包括页保护和位置混淆
4.2.1 页保护
- 操作系统在么个栈空间下面留下一页或多页的虚拟地址空间,防止栈溢出时,不破坏其他
- Bug定位,比如RAM初始地址为0,即便使用空指NULL,也不好被发觉。
4.2.2 位置混淆
隐藏了代码和数据的物理地址,使得攻击者很难发觉捏在的操作和状态。
4.3 故障恢复
- 管理进程,可以重启故障进程
- 日志,可以追溯
4.4 资源保护
- 对于独立应用程序的请求将相关的关键资源进行分割使用。被感染的耗尽自己的份额,但不影响其他。
- 分隔技术的系统缺点是静态属性,有可能分不到内存
- 多个资源管理器,每个安全域一个
4.5 虚拟设备驱动
设备驱动程序常常是导致系统可靠性问题的原因,因此常是黑客攻击的目标,这样,设备驱动是操作系统要隔离和保护的最重要组件的组成部分。
4.6 确定性影响
1,实时操作系统能够保障在最差的执行许可时间内提供相应的服务。
2. 真正的RTOS,内核的操作完全可确定,即每个服务的WCET必须是有界且可计量的。
3. 通过保障每个临界区可计量的WCET的确定性,内核就可称为确定的。
4. 加强安全的时间分隔需要确定性。
5. 隐或侧 时间通道
4.7 安全调度
不可信的进程不能修改系统定义好的调度。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!