库卡是全球厉害的机器人制造商之一,其库卡机器人广泛应用于国内外工业控制领域。本文从实战的角度介绍了如何进行快速的安全测试,挖掘机器人的弱点。
测试的目标
本次试验的目标是KUKA KR C4机器人,该机器人主要由三部分组成:手动操作人员、控制器和机器人手臂。简要介绍了以下三个部分:
(1)手工操作者:机器人的状态和其他相关信息可以读取和呈现。下图是使用KUKA KR C4的手动操作员。控制器通过“专用”数据线与控制器相连,从外观上看不见数据线。
(2)控制柜:机器人的大脑不仅可以运行配置良好的程序,还可以执行人工操作者给出的指令,从而控制机器人手臂等外部设备。由于它是机器人的核心,是安全测试的主要目标。根据***文件,内部运行的Windows 7系统实际上是PC的简化版。下面是不同类型的外观控制内阁:
(3)机械臂:外部机器人的机械系统,改变态度接受控制器的指令来执行一个动作,因为机器人手臂的焦点不是一个测试目标,本身也有一定的风险,所以在测试之前应该断开连接的控制器,测试时为了防止安全事故的发生。下图为机械手的示意图:
总体架构图如下:
梳状结构
控制柜相当于一台PC机,只需插入鼠标、键盘和显示器即可直接操作。为了便于分析,将主程序(C:/KRC文件夹)从控制柜通过U盘复制。这是文件夹的内容。
(1) SmartHMI是手动操作人员显示的界面程序,直接与操作人员进行交互。从文件名可以看出(如下图所示),这个程序主要是用c#编写的。分析过程中应使用Dnspy进行反编译分析。
(2) VxWin是一种解决方案,使非实时Windows系统能够运行高实时系统Vxworks。由于机器人控制要求实时性,Windows显然不能满足要求。因此,VxWin使Windows系统能够运行Vxworks虚拟机来执行机器人控制任务。以下图片来自百度百科全书:
(3) ROBOTER文件夹包含Vxworks内核/驱动模块/配置信息,是控制器核心的核心。采用Vxworks系统直接控制外围机械系统。可以使用IDA对该部分进行反向分析,并且指令集与主机(X86体系结构)一致。
(4) smartPAD文件夹中存放了一部分手持操作人员固件文件(如下图所示),第1次浏览,发现是WinCE的固件(这里是ARM架构),说明手动操作人员正在运行WinCE系统(微软发布的嵌入式系统)。
在Kcpui_app。exe时,发现手动操作人员通过RDP与控制柜通信,即手动操作人员应连接到控制柜内部网络端口:
可以看到,有一个用户kukauser,其密码为“68kuka1secpw59”。用户和密码在互联网上被泄露,这在技术上是一种安全风险。这个用户和密码不能随意更改,这会导致机器人无法正常工作。
以上内容为转载,若侵权请及时联系
更多:KUKA机器人