2017年12月5日 航空航天和国防

VxWorks安全启动

作者:Ka Kay Achacoso

KaKay-photo

去年美国发生的大规模互联网中断导致数百万用户无法访问最受欢迎的互联网网站。突然间,我们了解到像相机、打印机和dvr这样的普通消费设备参与了DNS基础设施的拒绝服务攻击。后来欧洲和非洲部分地区也发生了类似的网络中断事件。原因可以追溯到感染了数千台设备的Mirai僵尸网络。这类事件鲜明地提醒我们,在我们的设备中植入安全措施的重要性:我们如何防止我们的设备成为攻击的工具?我们如何防止我们的设备运行恶意软件?我们如何防止我们的设备运行任何不需要的软件?

VxWorks是一种实时操作系统,通常部署在受攻击风险较高的设备上,如军事设备和电厂控制,或成功渗透导致致命灾难的设备,如飞机或机器人设备。在这些情况下,攻击者甚至比Mirai僵尸网络开发人员还要复杂。设备安全的一种方法是确保在设备上运行的任何软件都是最初打算使用的软件,而不是攻击者已经加载到设备上的软件。

VxWorks提供了保护设备不被非法软件执行的解决方案:

  • 安全引导设置设备固件,在运行它之前验证引导加载程序和VxWorks的真实性。
  • 安全加载是VxWorks的一个配置,用于在运行用户应用程序之前验证其真实性。

安全引导和安全加载的详细信息在白皮书保护关键物联网设备与VxWorks安全引导和安全加载(http://www.windriver.com/whitepapers/vxworks/protect-critical-iot-devices-with-vxworks/)。这个博客展示了VxWorks中的安全引导和安全加载。

VxWorks安全加载演示

VxWorks应用程序以内核空间软件模块、用户空间可执行文件和用户空间共享库的形式出现。这些应用程序可以驻留在设备内存中,在可移动存储中,或者可以从远程站点通过网络传输。

一个简单的应用程序可以从print语句开始。下面是一行代码,用于在应用程序开始时打印出生命的秘密。

1

在VxWorks上,应用程序运行没有问题。

2

能够访问用户应用程序映像的黑客可以探测到保护不足的设备,并改变应用程序映像中的某些字节以改变设备行为。注意,在下面的十六进制编辑器中,原来的消息“幸福的关键是使用VxWorks”现在已经被更改为“幸福的关键是给我钱。”

更改前的应用二进制图像:

1

应用程序二值图像更改后:

2

在没有安全加载的VxWorks配置中,运行更改后的应用程序会在控制台上产生错误的消息。

3.

虽然这是一个相对无害的例子,但对用户应用程序的更改可能以更灾难性的形式出现:更改执行路径、绕过安全检查、在系统中造成致命异常,并向DNS服务器发送拒绝服务攻击。

VxWorks安全加载通过对应用程序执行签名检查来防止恶意应用程序的执行。文档中详细介绍了签名流程和验证流程白皮书。一旦使用安全加载保护VxWorks,被篡改的应用程序将无法运行。

4

上面的执行表明,试图运行被篡改的用户应用程序失败了。错误表明签名无效。

来自可信源的原始未篡改用户应用程序正常加载和执行

5

VxWorks安全启动演示

为攻击目标的情况下系统在早期阶段,引导加载程序加载时,当操作系统加载,VxWorks提供安全引导使用硬件固件的安全特性,以确保引导加载程序和VxWorks真实性验证之前执行。VxWorks安全引导支持多种硬件平台。的白皮书给出了其中两个平台的详细信息:英特尔架构板和NXP i.MX6板。

下面是一个攻击英特尔架构板的例子。在其中一个样板上,UEFI固件加载UEFI加载器。UEFI加载器依次从USB驱动器加载VxWorks。一个黑客得到了USB驱动器,并修改加载程序,以启动一个修改后的有安全漏洞的VxWorks。

这是当UEFI加载器试图加载一个被篡改的VxWorks映像时的控制台输出。

3.

VxWorks镜像认证失败,设备无法启动,黑客无法利用该系统进行犯罪。

如果攻击者的目标是系统启动的早期阶段,将UEFI加载器替换为一个将加载包含Mirai僵尸网络恶意软件的Linux系统,UEFI固件吐出一个安全违规消息。

4

这个演示展示了对具有安全启动配置的VxWorks设备的被挫败的攻击。关于安全启动及其根植于硬件的信任链的详细信息太长了,所以本文不作解释。的白皮书给出了VxWorks如何使用硬件安全特性的安全引导和安全加载功能的更完整的解释。

在VxWorks上找到更多关于安全性的信息在这里

要了解更多关于风河的安全能力,请单击在这里

以前的风河帮助欧姆龙解决其工业物联网挑战
下一个中国移动浙江公司成功完成风河钛云NovoNet一期工程