【读书笔记】嵌入式系统安全(2)—— 系统软件的安全考量(上)

系统软件的安全考量

一、操作系统角色

操作系统承担着保护嵌入式系统安全性和可靠性的巨大责任

二、多重独立安全等级

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 页保护

  1. 操作系统在么个栈空间下面留下一页或多页的虚拟地址空间,防止栈溢出时,不破坏其他
  2. Bug定位,比如RAM初始地址为0,即便使用空指NULL,也不好被发觉。

4.2.2 位置混淆

隐藏了代码和数据的物理地址,使得攻击者很难发觉捏在的操作和状态。

4.3 故障恢复

  • 管理进程,可以重启故障进程
  • 日志,可以追溯

4.4 资源保护

  1. 对于独立应用程序的请求将相关的关键资源进行分割使用。被感染的耗尽自己的份额,但不影响其他。
  2. 分隔技术的系统缺点是静态属性,有可能分不到内存
  3. 多个资源管理器,每个安全域一个

4.5 虚拟设备驱动

设备驱动程序常常是导致系统可靠性问题的原因,因此常是黑客攻击的目标,这样,设备驱动是操作系统要隔离和保护的最重要组件的组成部分。

4.6 确定性影响

1,实时操作系统能够保障在最差的执行许可时间内提供相应的服务。
2. 真正的RTOS,内核的操作完全可确定,即每个服务的WCET必须是有界且可计量的。
3. 通过保障每个临界区可计量的WCET的确定性,内核就可称为确定的。
4. 加强安全的时间分隔需要确定性。
5. 隐或侧 时间通道

4.7 安全调度

不可信的进程不能修改系统定义好的调度。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年7月19日
下一篇 2022年7月19日

相关推荐