5G、物联网、工业互联网、智能制造、智能家居…当下信息技术革命几大热门领域,都在显著扩大一个攻击面:固件安全。因为,几乎所有硬件设备都内置了一种确保设备正常运行的底层软件——固件。
安全“下移”
在过去的二十年中,随着软件安全性得到显著加固,黑客的攻击路径开始沿着技术堆栈“下移”,聚焦在固件入口点。作为攻击目标,固件不像软件,可以被基本安全控件轻松地访问或扫描,因此固件的安全漏洞生命周期往往比较长,给攻击者提供了足够的时间窗口来利用或者施展各种攻击手段。
面对黑客攻击的“下移”,过去十年业界通过固件安全解决方案和最佳实践提升了固件安全。但是,依然有许多组织仍在遭受固件安全盲区的困扰,这些盲区给企业系统和数据的安全管理留下诸多隐患。
导致固件安全隐患的原因有很多,从简单的平台错误配置、更新滞后,到普遍缺乏对固件安全重要性的认知和相关安全意识等。
简而言之,许多人(包括很多安全专家)不知道当前存在哪些固件安全隐患。以下,我们列举了每个企业都应考虑解决的三个固件安全盲点,以提高整体安全性:
01固件安全意识
固件无处不在,我们每天使用的设备上几乎都运行着固件,其安全性已成为整个安全界研究人员的新焦点。由于太多设备运行着五花八门的固件,因此固件安全问题往往让人感到无处下手,不知所措。对于企业安全主管来说,第一步工作是将固件识别为组织威胁模型中的一项资产,并建立针对机密性、完整性和可用性(CIA)的安全性目标。以下是CIA模型与固件安全的映射:
机密性:固件中可能包含需要保护的秘密。例如,BIOS密码可以使攻击者能够访问固件内容,从而绕过攻击者的身份验证。
完整性:确保系统上运行的固件是正确的固件,并且没有被破坏或修改。安全启动和可信硬件等功能支持对正在运行的固件进行测量和验证。
可用性:确保设备可以访问其固件并正常运行是企业的头等大事。攻击者可能会通过永久拒绝服务(PDoS)攻击的形式来破坏固件安全,这将需要手动刷新系统组件(有时是昂贵且麻烦的解决方案)。
总之,增强固件安全性的第一步是充分意识到固件作为资产在企业威胁模型中的重要性,以及固件安全的 CIA(机密性、完整性和可用性)三要素的定义。
02固件更新
底层技术安全研究的兴起,意味着更多的漏洞被发现和修补,从而有助于产品/平台弹性的逐步提高。产品供应商通常通过其漏洞赏金计划,内部研究团队与安全研究人员合作,并在世界各地的会议上介绍他们的工作,以协调披露固件安全漏洞。该行业在实现协作,实现流程和加快响应时间方面朝着一个共同的目标走了很长的路要走:改善计算机系统的整体健康状况和弹性。
固件更新过程可能很复杂且很耗时,涉及多方参与者,包括研究人员、设备制造商、OEM等等。例如,一旦UEFI的EDK II源代码更新了补丁,供应商就必须采用并将更改推送给最终客户。供应商发行固件更新的原因有很多,但是一些最重要的补丁往往是“计划外”的,为了应对突发的严重漏洞。
定期进行固件更新对于增强安全性的重要性已经无需多言,但是由于多种原因,许多企业都不愿引入新的补丁程序,例如企业担心更新的时间或经济成本、平台阻塞甚至业务停顿的风险,还有很多其他顾虑都让企业推迟甚至取消更新。但是,总的来说,延迟或放弃补丁更新通常会增加企业暴露在风险中的时间。
WannaCry就是一个很好的例证。尽管微软此前已发布更新来解决该漏洞,但WannaCry勒索软件在2017年春季对数十万台未打补丁的计算机造成了严重破坏,影响了数百个国家的企业,并造成数十亿美元的损失。尽管问题的根源不是固件漏洞,但WannaCry造成的巨大损失明确无误地告诉我们,不对已知威胁应用补丁程序将产生何种严重后果。
可以说,定期进行固件更新是企业安全人员可以采取的最简单、最有效的固件安全措施之一。
如果你担心安装固件更新可能会无意间破坏企业的关键业务系统,请在对整个系统进行全面部署之前考虑对一小部分系统进行现场测试,并记住始终备份平台的当前镜像,并做好系统还原的预案。
03平台配置错误
可能导致固件安全风险的另一个问题是平台配置错误。启动运行后,平台将通过一系列复杂的步骤来正确配置计算机以进行运行时操作。这个过程中的固件和硬件有很多基于时间和顺序的交互方式,如果平台设置不正确,可能会遭到整体安全性的破坏。
禁用的安全功能,例如安全启动、VT-d、端口保护(如Thunderbolt)、执行保护等是可能造成代价高昂的平台错误配置的“事故多发地段”。如果工程师忘记了关键的配置步骤或未能正确配置数以百计的参数中的任何一个,都可能会产生各种固件安全风险。
如果没有自动化的安全验证工具,大多数平台配置错误都很难发现,因为不同版本的平台往往定义了不同的寄存器,检查的对象列表很长,而且设置之间可能存在依赖性。累积跟踪正确的平台配置可能会很快变得很麻烦。
幸运的是,一些开源项目,例如英特尔主导的Chipsec(https://github.com/chipsec/chipsec)之类的工具可以扫描平台中的配置异常,并评估固件中对安全敏感的字节,以自动识别错误配置。作为一个维护积极的开放源代码工具,Chipsec会定期更新最新的威胁分析,从而使全球的企业都可以从不断发展的安全行业研究中受益。Chipsec还能够自动检测正在运行的平台并设置寄存器定义,除了扫描,它还提供了几种固件安全工具,包括模糊测试、手动测试和取证分析。
尽管有市场上还有一些商业解决方案可以检查系统配置,但是运行Chipsec扫描是一种免费、快速的方法,可以确保将特定系统设置为建议值。