Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Out of Control: Stealthy Attacks Against Robotic Vehicles Protected by Control-based Techniques

作者:Pritam Dash, Mehdi Karimibiuki, Karthik Pattabiraman

单位:University of British Columbia

出处:ACSAC’ 2019

链接:http://blogs.ubc.ca/karthik/files/2019/09/acsac19.pdf


1. Abstract & Introduction

无人载具(RV)是指在通过在软件控制下在物理世界中运行的物理系统,例如无人飞行器(UAV,又称无人机)和自动驾驶机器人车(也称为无人车)。这种车辆被用于各种工业部门(例如,农业,监视,送快递,仓库管理),甚至是关键任务,例如太空探索任务等。它们依靠传感器和执行机构(液压缸,马达,叶板)操作和导航。

通常为了消除噪声对传感器的影响,会使用基于控制算法的估计技术对传感器数值进行处理,防止执行机构输出出现故障,以及还可以用来实现IDS来检测针对RV的攻击。例如使用CI和EKF方法,可以估算RV的下一个状态和控制输出信号。估计值用于监视RV的运行时行为并标记异常行为。

在本文中,作者提出了三种攻击,以逃避这种基于控制的检测技术诱从而使RV出错。作者还提出了用于执行攻击的自动化算法,而无需攻击者花费大量精力去了解RV的特定细节就可以攻击各种RV。作者在一些部署了入侵检测系统(IDS)的情况下使用控制估计模型监视系统运行时的行为,并且使用ArduPilot模拟器和两个真实的RV(无人驾驶飞机和流动站)进行了这些攻击。最后,控制模型无法检测到这种隐形攻击,并且这些攻击会对RV的任务产生相当大的危害(例如,导致RV坠毁或明显偏离目标)。

2. BACKGROUND

2.1 Robotic Vehicle Control

RV使用比例积微分(PID)反馈控制进行导航。RV系统一般具有检测环境中的车辆的物理状态的多个传感器(例如气压计,陀螺仪,加速度计和磁力计)和有关车辆当前状态(例如角度和线性位置)当做反馈,然后用于估算执行机构的输出信号(例如,转子转速,转向),以将车辆定位在下一个状态。对于无人机或无人车,PID控制器用于位置(例如,高度,纬度,经度)控制和姿态(例如,偏航,侧倾,俯仰)控制。

2.2 Modes of Operation in RV Mission

对于给定的飞行路径,RV会通过一系列通常称为操作模式的状态过渡。 以无人机为例,当任务开始时,无人机先达到预定位置,然后垂直起飞以达到一定的高度,之后可以执行一系列模式。如果执行RTL模式,无人机会返航。

image-20191115020619848

2.3 Control Invariants & Extended Kalman Filter

控制不变性(CI)是指给RV的物理动力学建模,并利用其控制定律得到Invariants(例如控制输出)。控制不变性取决于两个方面,即车辆动力学和基本控制算法。简单地说,对于给定的RV,CI模型根据其当前状态捕获系统的传感器输入,以估计系统的控制输出。然后,该方法使用以下状态估计方程式得出不变量。

image-20191115021022494

其中x(t)是当前状态,而u(t)是控制输入。 A,B,C,D是通过系统标识确定的状态空间矩阵[34]。上面的方程式基于当前状态和控制输入信号确定系统的下一状态x’(t)和输出y(t)。 CI模型使用状态错误分析,在此模型中,它会在预定义的监视窗口中累积估算输出与实际输出之间的误差(偏差)。当累积误差超过预定阈值时,CI会发出警报。例如,如果无人机的侧倾角的误差持续2.6秒都大于91度(阈值)。

扩展卡尔曼滤波器(EKF)

对于传感器的检测值来说,它是服从正态分布的,由于某个传感器的值可能会有较大的误差,那么对于这个传感器,扩展卡尔曼滤波器通常在RV中以将多个传感器的测量结果融合在一起,以提供位置和/或方向的最佳估计。例如,EKF将加速度计,陀螺仪,GPS和磁力计的测量结果与速度估算值融合在一起,以估算无人机的偏航角,俯仰角和侧倾角。假设系统处于稳定状态,则系统状态的估计值由以下公式给出:

image-20191115021926187其中K是稳态卡尔曼增益,而A,B,C是状态空间矩阵。基于EKF的IDS使用残差分析技术来检测传感器和执行器攻击。实时传感器测量值与传感器测量值估计值之间的差是残差矢量,其定义为

image-20191115021936280

其中,r(t)在每个时间点t都是残差。基于EKF的IDS比较残留r(t)是否大于某个监视窗口的预定义阈值,并在观察到这种异常行为时发出警报。

3. LIMITATIONS IN EXISTING METHODS AND ATTACK SCENARIOS

3.1 Limitations

基于EKF的IDS有以下不足,作者针对这些缺陷实施了后续的攻击:

  1. 当偏差在某个监视窗口的阈值限制以下时,IDS不会被报告为异常,只要在连续产生在阈值内的误差即可绕过IDS。
  2. IDS是采用一定的时间窗口与阈值进行比较,可以认为修改延迟,把积累的误差平摊到更长的时间窗口上让IDS变得迟钝。
  3. 当RV切换模式时(例如当无人机在固定高度飞行后被命令降落),运行时值与估计值之间的差异变得更大。因此,在状态切换时应用的检测技术将必须采用较大的阈值以避免误报。这使攻击者能够注入大量的虚假数据,从而导致RV路径发生更大限度的变化。

3.2 Attack Scenarios

image-20191115022602208

针对第一种缺陷,攻击者可以使用数据注入来将传感器测量值更改为所需的值。作者认为可以对传感器读数执行更细微的突变,以在延长的时间段内以受控的方式模拟细微和较小的偏差,并使偏差保持在IDS使用CI和EKF预先定义的阈值以下。

第二种,攻击者通过注入人为延迟来影响系统事件或控制器事件的定时行为。例如,越来越多的无人车部署在仓库中,这些流动站接收实时命令以在仓库区域中的给定位置拾取或放置包裹。通过人为延迟攻击,攻击者可以使RV在延迟的时间接收到特定命令,以破坏无人车的正常工作。

第三种,切换模式攻击是在RV在切换状态状态下发起的特殊的虚假数据注入形式。攻击者可以注入恶意代码,当RV切换其操作模式时就会触发恶意代码。

4 APPROACH

4.1 Attack Model

作者假设攻击者可以做到如下事情:

  • 只能compromise RV(无人机或无人车)的系统,而不是其他组件(例如GCS,遥测等)
  • 可以监听控制输入和输出,并导出RV的状态估计模型。
  • 可以通过代码注入来替换RV软件中使用的共享库。 这将使攻击者能够修改程序代码并注入恶意行为。
  • 攻击者可以执行有针对性的欺骗攻击,可以任意将传感器读数操纵到Ta的期望值

4.2 Attack Preparation

image-20191115023612089

  1. 数据收集:收集RV的任务配置文件数据。攻击者可以从真实的RV收集任务配置文件数据。简单地说,收集两部分数据,当前目标的状态数据和当前目标的执行输出数据。
  2. 控制状态估计模型:这里攻击者的目标是导出未知系数,以求解前面提到的方程。攻击者可以通过系统识别(SI),该过程是使用系统的控制输入和控制输出数据来开发系统动态模型的过程。攻击者可以从状态空间矩阵中得出卡尔曼增益K以及为了获得A,B,C,D状态空间矩阵。]
  3. 恶意共享库:RV的软件使用两套广泛的库来进行以下操作:i)控制操作,例如PID控制、电机混合等; ii)传感器操作,例如GPS接口,光学接口等。 部署在许多RV上的Autopilot软件堆栈具有一组通用的共享库。 攻击者执行隐式攻击的方法之一是通过用恶意软件替换原始共享库。 当然也可以通过电磁波来干扰传感器,但是作者认为这种方法不能提供比较高的精度。
  4. 错误数据注入:攻击者为了完成错误数据注入,还需要知道CI和EKF的阈值。作者提出,可以通过上述所收集到的时间序列数据通过对比得到最大偏差。而EKF的增益则可以通过提供在范围内的有偏差的传感器数据给无人机,通过EKF修正后的数据来获取卡尔曼增益。
  5. 人为延迟:使用恶意三方库来实现,当恶意库中的特定时间窗口API被触发时,代码段delay_attack将被触发。
  6. 切换模式:要执行此攻击,除了按照CI和EKF技术的检测阈值和监视窗口外,攻击者还必须监视RV的操作模式。作者通过监视传感器来判断无人机当前是不是出于模式转换状态。

5 EXPERIMENTAL EVALUATION

5.1 Experimental Setup

作者使用Pixhawk无人机和Aion R1无人车当做真实机器,同时使用APM SITL和JSMSim对ArduCopter SITL无人机和ArduRover SITL无人车进行仿真。仿真环境为Intel i7-2600 CPU @ 3.40GHz处理器和8 GB RAM的Ubuntu 16.0 64位。

Attack Setup

作者在模拟器和实际车辆上执行了20次任务,并从RV的位置控制和姿态控制操作中收集了时间序列数据。为了进行攻击,作者为ArduPilot软件包的以下控制库设计了一组恶意库:AHRS,AttitideControl和PositionControl。通过改写了.bashrc文件中的环境变量(LD_LIBRARY_PATH)让共享库链接以指向恶意lib而不是原始lib。

5.2 Results

image-20191115030958309

从以上实验中,作者发现错误的数据注入攻击可能会导致无人机的轨迹偏离30 m(当任务距离为100 m时)。当任务距离为5 km时,偏差会增加到100 m以上。通常,部署在工业场景(如包裹递送,监视等)中的无人机将自主运行,任务持续时间约为30分钟,覆盖范围可达20 km。

在模拟中,当无人机切换到着陆模式时,作者能够通过有策略地发起切换模式攻击而使无人机坠毁。当在工业用例中对无人机发起此类攻击时,它还会损坏无人机和附近的其他物体。人为延误攻击使无人车的任务持续时间增加了50%以上,而无人机则增加了30%。

尽管此攻击不会直接使RV偏离或损坏,但在工业用例中针对RV发起攻击时,可能会严重影响性能和效率。例如,无人机用于运送时间紧迫的物品(血液样本和药品),流动车用于提高仓库的生产率。在这些情况下,延迟攻击可能会带来不利后果。