1920年,捷克作家K.凯比克在一本科幻剧中首次提出“机器人”这一名词。
这一来自于工业文明时代的概念,充斥着人类以科技封神的狂放野望。在全世界迥异的神话体系中,神依照自身的形态造人,而后赋予灵性;机器人则是人类以造物主自居的产物。对于机器人,人类总抱着两种矛盾的态度,既渴望驾驭它的全知、强大与不朽,又畏惧它超人的力量反掌便可覆灭文明的火种。
然而,对于机器人的种种担忧似乎已经近在眼前。
雷锋网消息,最近在新加坡举行的安全技术大会——Hack in the Box 上,来自 IOActive 的安全专家 Lucas Apa 以及首席技术官 Cesar Cerrudo,现场展示了他们针对三大流行机器人的黑客攻击,包括消费级机器人Alpha2、NAO(Pepper),以及体量更大的 Universal Robots 工业机器手臂。
试想一下,平时围绕在你身边乖巧执行命令的机器人,若是被人操控,变成黑客的眼线、耳目,甚至化身杀戮机器,可不可怕?
嘤嘤嘤,工业机器人大铁拳锤你胸口?
建筑工地、医院、银行、航空公司、商场......似乎你所想象到的任何场景都有了这些机器人的身影。研究公司IDC的数据显示,2020年,机器人及相关服务方面的支出将比现在翻一番,达1880亿美元。
对于这些没有思维的工业机器人来说,坚决执行编程指令就是使命,他们并不关心执行谁的命令,那如果是黑客的呢?
据 IOActive 公布的最新研究显示,他们调查了 Universal Robots 生产的 UR 系列机器人,发现了一组尚未修补的漏洞,包括“控制协议中的认证问题、对物理攻击的敏感性、内存损坏漏洞以及不安全的通信传输。”该团队在 2016 年 1 月向这家公司披露过他们的担忧,还在 7 月发布了一段相关视频,并在在博文中详细阐述了方法。
实时视频演示显示,他们使用一种称为“缓冲区溢出”的常见安全漏洞来获得未经授权的机器人手臂操作系统的访问权限,并覆盖修改后的“safety.conf”文件,以此限制机器人的运动速度,甚至在当红外线传感器检测到附近的人时机器人会伸长手臂给你一拳。
这可不是小拳拳捶你胸口,这一下怕是会骨折。
所以,是否黑客轻而易举就能黑掉那些工业机器人呢?
绿盟科技的安全工程师 M 提供了相关思路。
把大象装进冰箱需要三步,黑掉一个机械臂也只需要三步。
先要发现或建立一个远程入侵通道。这是入侵的前提条件之一。通过蓝牙、Wi-Fi或者网络连接到将要入侵的机器人使用的操作系统。
获取机器人的控制权限。研究机器人的操作系统或应用软件,尝试发现漏洞,利用发现的漏洞获得机器人的控制权限。若未发现机器人存在上述漏洞,则可尝试破解控制机器人的通讯协议(当前有部分机器人的关键通讯指令没有加密)。
开启机器人破坏模式。在远程掌握了机器人控制权限或者破解了机器人的通讯协议的基础上,发送恶意控制指令远程控制机器人。
显而易见,如果机器人存在安全漏洞,而漏洞又被心存破坏的黑客发现是多么危险的一件事。
“机器人本身就是一门跨学科的技术,因此机器人的安全研究与传统安全漏洞研究的区别是其与工控、机器人基础知识、通讯(包括蓝牙、Wi-Fi 等有线和无线通讯技术)协议、操作系统平台、传感器技术等结合紧密,”M 表示。
除了前期研究漏洞,在发现疑似漏洞后需要对机器人固件进行调试,从而验证漏洞的存在性和获得系统的控制权限。当然,对硬件进行调试需要获得一个调试接口,如果网口一时难以突破,可以尝试从串口开始突破。
串口突破的目的有两个:
提取固件。一般的机器人都是不公开固件的,我们通过机器人的BootLoader漏洞从串口提取固件。然后对提取到的固件进行逆向和分析,从而更容易的发现漏洞。有时候还能发现更敏感信息,例如:厂家的后门密码。
调试固件。一般来说,嵌入式系统的开发人员都是通过串口来进行固件调试的。这个调试接口既方便了开发人员,也为黑客研究固件漏洞提供了不少帮助。通过串口获取系统的本地调试接口,和网络发包结合,从而加速调试固件的漏洞的进程。
这么看来,机器人的漏洞也不是很难找。那到底工业机器人的操作系统有多少漏洞呢?
其实,漏洞并不多。
“工业机器臂的大脑是PLC——可编程控制器,它是一个数字式的电子装置,是一台计算机,专为工业环境应用设计的计算机。这种情况下,寻找的就是 PLC 漏洞。”M 说道。
雷锋网了解到,PLC的操作系统多使用 linux,VxWorks等操作系统,或者直接定制操作系统。其相对运行的服务较少,开放的远程端口较少,因此 PLC 的漏洞相比Android 漏洞要少的多。
以ABB为例,其产品被纰漏出来的全部漏洞也仅有下图的几个。
PLC 漏洞常见的是权限类漏洞、弱密码硬编码类漏洞、WEB 页面获取权限漏洞等,其中重放攻击漏洞在 PLC 中也比较常见,缓冲区溢出漏洞实际上并不多见。
缓冲区溢出漏洞与 PLC 的操作系统和应用软件都有一定的关系,越是常见的操作系统,越容易发生缓冲区溢出问题。但是 PLC 用的操作系统都比较冷门或者 PLC 的公司自己设计的操作系统,甚至有的 PLC 连操作系统也没有;另外,在 PLC 内部固件编写时,如果不注意遵守安全的编码原则,容易出现安全问题,留下缓冲区溢出的隐患。操作系统提供一些保护手段,例如:ASLR, NX ( Windows 平台上称其为 DEP ) 等技术来增加应用软件在漏洞溢出时的利用难度,但遇到高手还是可以突破的。
在缓冲区漏洞利用的时候,可能是操作系统提供的一个内部服务开放远程通讯的端口有漏洞;也可能是应用软件开的端口存在漏洞。不过,上面这些都需要研究者的经验和通过耐心细致的调试才能发现可以利用的漏洞。
消费级机器人正在监视你?
似乎相比上文的大块头,身处我们周遭的各种消费级人形机器人显得可爱得多。
但,如果是这样,
或者是,这样,
还可爱......吗?
康力优蓝 CEO 刘雪楠表示,相比多存在于工厂或特定场景与人接触较少的工业级机器人,渗透到家庭及商用环境的服务型机器人一但被黑客操纵,造成的影响更可怕。
IOActive 的研究报告显示,软银 NAO 和 Pepper 两种机器人可能因为黑客入侵而成为间谍设备,用于收集各种未经加密的视频和音频数据,并进行远程传输。
此外,他们还发现中国公司优必选(UBTech)出售的机器人Alpha2 所运行的 Android 操作系统,没有使用代码签名(code-signing)机制,这是一种防止流氓软件安装的安全措施。Alpha2 还没有对通信连接进行加密,这让黑客可以使用“中间人攻击”来注入恶意引用程序。
听起来就有点怕怕呢~
“机器人的操作系统是 Linus 和 Android,黑客想要操作机器人动作就类似于黑掉一只没有防护措施的 Android 手机。在获取机器人的控制权后,若是想要监视监听则更是简单,直接调用摄像头和麦克风的通讯接口或者用机器人公司提供的软件就可以了。”M 表示。
机器人虽然还在你的家里,灵魂已经是别人的了。
为什么众多机器人缺乏安全措施呢?
这并非单独现象,对于机器人公司来说,迅速上市抢占市场似乎比动用大量人力物力设置安全措施更吸引人。
那么动辄耗费大量人力资金的安全设置究竟有多复杂?
以代码签名机制为例,代码签名机制主要针对应用程序。简单来说包括两种技术:非对称算法和数字签名,其主要目的就是防止应用程序被修改。
雷锋网了解到,一般来说,厂家可以给机器人安装软件,但某些厂家没有给系统开启代码签名机制,当黑客取得系统权限后,上传的恶意程序就会运行。如果开启代码签名机制后,黑客所用的软件内签名审核不通过,其所使用的软件不能正常运行,系统也就多了一份保障。具体可参考关于iOS签名机制的理解。
而另一种中间人攻击,实际就是劫持。
“假设我建立了一个WiFi,让机器人连接。而机器人的关键通讯如果没有加密,采用明文传输,那么我就可以获取这些信息并进行修改,冒充正常指令,实际发送恶意指令给机器人。”马良谈到。
当然,所谓的加密措施不仅是设置密码这么简单。
数据加密算法有很多种,每种加密算法的加密强度各不相同。目前存在两种基本的加密体制:对称密钥加密和非对称密钥加密。
感兴趣的童靴可以在度娘上搜索一下~
那么,需要担心吗?
回到这次的新闻,作为此次被黑的几位机器人主角在随后都通过媒体作出回应,表示“已经全面解决了相关问题”、“不需要担心”、“正在密切监测潜在风险”。
但 Apa 和 Cerrudo 则表示,并没有发现问题已经解决的迹象。
不过也并不需要太悲观,攻与防向来是一对你来我往的冤家,黑客无孔不入的攻击也会引起机器人公司对安全措施的加强。
当然,视频中令人毛骨悚然的机器人捅西红柿也只是为了增强表现出来的破坏力而专门设计的动作,诸位童靴不必害怕。
毕竟视频来源于生活,也高于生活~
刘雪楠也透露了目前公司旗下的机器人产品已经在硬件中采取了加密芯片,对机器人的运动控制进行了防范。另外,对于机器人的智能语言、对话等方面,也采取了云平台防控。
不过,这些都还只是起点,对于机器人的安全防护似乎有很长一段路要走。