2.9 确保TCB的完整性
2.9.1 可信硬件和供应链
现在,我们开始探讨系统级的安全威胁,该威胁可以导致最完备且绝对安全的软件瘫痪。嵌入式系统安全要求集成TCB(可信的操作系统、应用程序、中间件,以及数据保护协议,这些将在第5章讲述)的完整性。
例如,采用了虚拟内存的操作系统依赖于以下的事实:未授权的实体可以访问分配给特定进程的内存,而该进程会用到微处理器内存管理和相关的保护硬件。如果操作系统是从能够暴露一定内存位置(例如通过附带的以太网接口发送内存的内容)的不良硬件启动的,很显然,由操作系统实施的系统安全策略将形同虚设。
对硬件组件、子系统和外围器件进行攻击并非遥不可及。这些年来多有伪造和破坏硬件的攻击事件被报到。在2007年,一些迈拓/希捷硬盘就被发现有一个预安装的病毒(是合同制造商做的),将存储在硬盘上的数据发送到恶意网站[16]。在现场编程门阵列(FPGA)中插入了一个隐蔽的“kill switch”,据称就是设计用来在军事打击时禁止雷达系统[17]。
关键点 嵌入式系统开发者必须尽其所能以确保硬件供应链的可信度。
供应链和制造商的安全性本身是个复杂的话题,已超出了本书的范畴。现实情况是,大多数的嵌入式系统组织尽量会从可靠的供应商处采购,并对硬件的可信性承担一定的风险。