机器人发展势不可挡,但仍需考虑网络安全问题

机器人和人工智能一直是近些年的热点话题。 富士康、亚马逊和西门子等许多企业已经开始布局工业机器人产业,主要面向产品包装、装配、供应链运营等领域,推动传统人工作业的自动化进程。

国际机器人联合会进行的一项调查显示,预测到2018年,全世界将有多达130万台机器人投入使用,其中中国机器人保有量将占到三分之一以上。 除了工业机器人以外,许多科技巨头也在研发私人机器人助理并取得了一定的进展。在不久的将来,这些机器人将会出现在我们的家中。

然而,随着越来越多的机器人出现在人类的生活和工业生产中,机器人扮演的角色和承担的责任也相应增加,我们应该扪心自问——这些机器人是否足够安全?

今年,通过与米兰理工大学合作进行的一组对照实验成功证明:对工厂中标准工业机器人发起网络攻击是完全有可能的。

漏洞百出的机器人

从上述实验得出的安全分析结果表明,在机器人设备上运行的软件大部分是旧的操作系统,诸如Linux 2.6或NET SDK 3.5。除此以外,大部分机器人的认证系统安全性低,且不更改默认密码。进一步的研究还发现这些机器人设备上有大量未修补的漏洞。

由于越来越多的工业机器人配备了可远程监控和维护的工业路由器,就增加了它们从外部被入侵的风险。 Shodan,ZoomEye和Censys这三个搜索引擎收集的信息显示,截至今年3月,竟有至少83,600个工业机器人通过文件传输协议(FTP)服务器或通过无保护的路由器遭受了网络攻击。

操控机器人

由于工业机器人在不同领域被广泛的标准化,因此各厂商的机器人在架构、功能和技术上很相似。这意味着,通过黑客技术操控这些机器人也相对容易。

机器人发展势不可挡,但仍需考虑网络安全问题

图片:工业机器人的体系结构

一般来说,网络犯罪分子可以对工业机器人发起五类攻击。

改变控制器的参数

机器人控制器是由多个互连子系统和计算机系统组成的复杂设备。控制器一般在机器人的正常操作时选择自动模式,在需要操作员提供特定操作时选择手动模式。

在这种攻击下,网络犯罪分子改变了控制系统的设置,因此机器人会意外或不准确地移动。 这种攻击可能导致生产出有缺陷或有改动的产品,从而导致大规模产品召回。

篡改校准参数

机器人首次连接到控制器时,传感设备必须进行校准。 控制器使用校准数据来修正已知的测量误差。

操控校准参数可能导致伺服电机不正常或意外移动。 如果机器人移动时受到攻击,控制器可以检测到攻击并执行停止程序。 然而,如果攻击者在机器人运行时重复这种操作,则可能导致机器人拒绝服务,停止工作。

干涉生产规则

在这种情况下,网络攻击者更改原始代码或命令去影响机器人的行为,例如插入小缺陷代码,修改工件或完全改变企业的制造过程。 因此,对任何正在运行的机器人进行常规的代码完整性检查是非常必要的。 一旦生产规则被干涉,最终的结果也可能是机器人损坏。

改变用户认为的机器人状态

操作界面必须提供有关电机状态(开/关)和运行模式(手动/自动)的及时信息。 另外,一些对安全性要求极高的情况,例如从停机状态重新启动机器人,需要用户手动确认。

攻击者可以操纵机器人显示的的状态信息。 例如,操作员可能受欺骗,认为一个巨大的机械臂是静止不动的,但事实上它正在实验室中到处移动。不知情的操作人员可能因为实验室里移动的机械臂而受伤。

修改机器人的真实状态

攻击者可以通过改变机器人显示的状态信息,而改变机器人的真实状态,导致操作者失去对机器人的控制并因此受伤,特别是当操作者正在与机器人近距离接触时一起工作时。

重新审视机器人的安全问题

  • 人为手动控制

任何使用中的工业机器人都应该嵌入一个机电开关,使得当机器人开始执行更改的代码并且异常行事时操作人员能用机电开关手动控制机器人。

人为干预可以改变之前出现过的攻击导致的结果。 但是,这可能不适用于不太明显的攻击情况这可能不能解决小攻击带来的不良后果。

  • 攻击检测和系统强化

虽然访问控制技术很重要,但是对软件和网络异常情况的检测和修正也必须到位。

除此以外,运营商也应该考虑系统的强化。 虽然很多工业机器人采用实时操作系统(RTOSs),但是它们很少甚至几乎没有强化功能。 加强RTOS的有效方法是启用基于操作系统和编译器的攻击缓冲手段,如地址空间布局随机化(ASLR)、数据执行预防(DEP)和堆栈关键字。

另一个有效的防范措施是通过在不同系统子集之间分隔关键功能,进而在操作系统层实施权限分离。

  • 安全软件开发

进行安全编程实践可以增强代码的牢固性并加强安全性。每个软件开发周期中的综合过程都应该重视安全问题,而安全编程实践应该成为其中的一部分。

  • 代码和配置签名

另一个有效的系统层的缓解手段是结合通过实施严格认证的代码签名机制。

一般来说,我们可以区分三种类型的可执行代码将可执行代码分成三类—— 供应商提供的固件、程序任务代码和自定义软件。 预计只有供应商才能开发和运行机器人组件的更新固件。 对于自定义代码,客户必须能够为他/她自己的机器人签署与其他客户不一样的代码。 这样,即使网络攻击者将任意文件上传到机器人文件系统,他们也不会获得任意的执行代码。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据