CPS攻擊案例(一)——基於脈衝寬度調製PWM的無人機攻擊
本文系原創,轉載請說明出處
Please Subscribe Wechat Official Account:信安科研人,獲取更多的原創安全資訊
原論文鏈接:
目錄
2.3.2 致動器使用PWM的上升沿和下降沿之間的持續時間確定致動數據
摘要
攻擊者通過放置在己方無人機上的電磁干擾部件,構造三種不同的攻擊波形,作用到無人機控制器與伺服電機之間通訊的PWM電纜,構造的波形與PWM電纜中的PWM波耦合,因原PWM波攜帶指令數據,耦合後數據變更,進而阻塞或修改指令數據,進而影響伺服電機的操作,最終對無人機進行攻擊,達到干擾進入我方空域的敵方無人機,甚至控制敵方無人機,與常規的炮火對空攻擊不同,此攻擊方式花費較小。
一 知識背景
1.1 CPS
CPS是cyber-physical system的縮寫,也就是信息物理系統。
CPS由四大組件構成:執行器、傳感器、控制器以及被控對象,基本執行流程如下圖
傳感器將系統變量(例如加速度)轉換為電(數字或模擬)信號並將它們發送到控制器;控制器處理傳感器數據並決定如何影響系統的未來狀態,並向執行器(例如電機)發送致動信號。
1.2 脈衝寬度調製PWM
脈衝寬度調製(英語:Pulse-width modulation,縮寫:PWM),簡稱脈寬調製,是將
變換為脈衝的一種技術,一般變換後脈衝的周期固定,但脈衝的
(1)提出背景:模擬信號有很多問題
參考:
在模擬電路中,模擬信號的值可以連續進行變化,在時間和值的幅度上都幾乎沒有限制,基本上可以取任何實數值,所以能通過代表任意值對設備進行操作。
但模擬電路有諸多的問題:例如控制信號容易隨時間漂移,難以調節;功耗大;易受噪聲和環境干擾等。生成模擬信號對於數字電路而言往往需要額外的數字-模擬轉換器。
在任何時刻,其輸出只可能為ON和OFF兩種狀態,所以數字信息丟失能力弱,抗干擾能力強。
(2)如何用數字信號表示模擬信號
模擬信號數字化一般需要三個步驟:採樣、量化和編碼。
1 採樣:按時間間隔進行採樣。如上圖,每 1s 進行一次採樣(採樣的頻率被稱為採樣率)。
2 量化:因為模擬信號本質上是一連串連續的值,我們可以對這些值進行等級劃分(量化的等級),這樣步驟一的採集到的樣品就可以被劃分到不同的等級。
3 編碼:步驟二中的不同等級可以表示不同的編碼(如果該採樣時間段內,波的面積小於二分之一,則認為是0,大於則是1)。則連續的模擬信號最終可以轉化 0101 的數字信號。
綜上,不難得出,隨着採樣率和量化等級的增加,轉換後的數字信號的曲線也就越能貼近模擬信號的曲線(對比上圖的原曲線和黃色曲線)。
(3)PWM技術
PWM技術是一種對模擬信號
的數字 方法,通過使用高分辨率占空比(Duty Ratio,Duty Cycle)表示在一個周期內,工作時間與總時間的比值。
方波示例見下圖上往下數第二行
其最大的優點是從處理器(CPS種抽象為控制器)到被控對象之間的所有信號都是數字形式的,無需再進行
模擬信號能否使用PWM進行編碼調製,僅依賴
在信號接收端,需將信號解調還原為模擬信號。
目前在很多微型控制器(MCU)內部都包含有PWM控制器模塊。
(4)PWM信號的調製方法
參考維基百科
先介紹一下調製出的脈衝波:
調製出的脈衝波為方波,T為周期,D為一個工作循環,低值ymin,高值ymax,波的平均值計算公式為:
算的結果為:
很多情況下,ymin為0,所以可以簡化為:
其實就是個長方形面積計算公式。。。。。。。。。
有很多調製方法,包括(太難描述,具體請看維基百科鏈接):
- 微分調製
- 積分-微分調製
- 空間向量調製
- 直接轉矩控制
- 事件比例
最簡單的調製方法:只需要使用鋸齒波或
二 攻擊方案研究思路
術語:
- intentional electromagnetic interference (IEMI) 故意電磁干擾,故意電磁干擾 (IEMI) 允許攻擊者改變致動信號以干擾或控制致動器。(本文的攻擊手法驗證方法)
- False Actuation Injection (FAI) 假致動注入(本文的攻擊手法)
- electromagnetic (EM)
- unmanned aerial vehicle (UAV) 無人機
2.1 研究背景
無人機的CPS可以簡述為上圖,從上圖中可以看到無人機的CPS系統主要有三個攻擊點:攻擊者可以利用EM波來阻礙或操縱致動數據,傳感器數據或通信信號,分別見上圖中的點1、2和3。本文主要針對FAI攻擊提出方案,也就是上圖的點1——攻擊者旨在通過IEMI阻礙或操縱致動器。
控制器通常將致動數據 (例如電動機的速度或旋轉角度) 編碼到的脈衝寬度調製 (PWM) 信號用於控制執行器。因此,PWM信號的完整性非常重要,因為致動數據的任何阻塞或改變都會導致物理部件的失去控制。
例如,在對固定翼無人機UAV的攻擊期間,如果攻擊者阻止控制面 (例如,無人機的副翼) 的致動,則受害者UAV可以容易地墜毀。即使使用特定的致動器,攻擊者也可以控制控制面 (例如,副翼) 以迫使UAV遵循不安全的軌跡。
本文關注的是攻擊者如何在一定距離內獲得這種效果,而又不會破壞傳統的數字保護,例如控制器和執行器之間的加密通信。
2.2 靈感與動機
法拉第感應定律指出,垂直於導體迴路的時變磁場會在導體的端子處產生感應電壓 。
攻擊者可以通過使用特定波形來影響傳送PWM信號的電路(例如,印刷電路板或電纜上的跡線) 來利用這種現象,從而通過改變表示PWM信號的電壓來操縱目標緻動器的操作。
在某些條件下 (例如,當攻擊者利用共振攻擊受害者時),感應電壓足夠大是可以阻止或操縱致動數據。
現有的IEMI工作都是從傳感器、控制器出發,攻擊以獲取物理設備的控制權,本文參考的論文則是第一個使用IEMI干擾並控制執行器的工作。
2.3 PWM控制執行器的機理
2.3.1 PWM信號攜帶致動數據
PWM信號通過信號中編碼的信息 (例如,旋轉角度或速度) 來控制致動器。攻擊者旨在阻止成功傳輸(阻塞攻擊)或更改此信息(篡改與注入攻擊)以操縱執行器運動。
如圖2a所示,PWM信號是具有20 ms的固定周期tPWM的矩形波形。持續時間thigh在1ms和2ms之間變化,並攜帶致動信息,該致動信息是諸如旋轉角度或速度之類的致動數據。
在本節中,將針對 PWM 攜帶旋轉角度數據的伺服電機應用說明 PWM 操作;然而,相同的機制(即,數據編碼到thigh)也被直流電機應用於傳遞轉速 (rpm) 信息。
伺服電機(servo motor )是指在
伺服電機可以控制速度,位置精度非常準確,可以將電壓信號轉化為
伺服電機轉子轉速受輸入信號控制,並能快速反應,在自動控制系統中,用作執行元件,且具有機電時間常數小、線性度高等特性,可把所收到的電信號轉換成電動機軸上的角位移或角速度輸出。分為直流和
通用伺服電機的總體旋轉角度為90 °(註:不難理解一個主機翼順時針轉90°和逆時針轉90°基本上能夠覆蓋所有操作角度),並隨着thigh的增加沿順時針方向旋轉。
例如,thigh = 1ms、1.5ms和2ms分別對應於旋轉角度-45 ° 、0 ° 和45 °,如下圖的2b、2c和2d所示。
2.3.2 致動器使用PWM的上升沿和下降沿之間的持續時間確定致動數據
致動器有兩種選擇來處理PWM編碼的信號對應的致動數據:
- 首先,通過檢查PWM脈衝的上升沿和下降沿;
- 其次,可能用低通濾波器取PWM的平均值。
實驗觀察到,致動器對施加到PWM輸入的低幅度DC信號不響應,這表明用於確定致動數據的是PWM的上升沿和下降沿之間的持續時間。
問題來了,什麼是上升沿和下降沿?數字電平從0變為1 的那一瞬間叫作上升沿 ,從1到0的那一瞬間叫作下降沿。
2.4 攻擊場景設定
FAI 攻擊低功耗且無法追蹤,並且只通過 EM 耦合攻擊來改變受害者的 PWM 信號。最大攻擊功率限制為 20W,可通過 COTS 放大器獲得。
場景一
第一種攻擊場景中要求功率較低,攻擊者旨在阻止驅動數據以使受害者的驅動控制無效,但不注入錯誤命令。
場景二
在第二種攻擊場景中,攻擊者需要注入虛假驅動數據來控制受害者的驅動器。
攻擊者可以訪問放大器和天線等射頻組件,以及有關受害系統拓撲的信息,例如 PWM 電纜長度。
三 攻擊方案、原理與實驗設備
3.1 測試攻擊波形對通信信號的影響
藍色虛線框是受害者系統,也就是無人機系統,紅色虛線框是攻擊者。
首先看受害者這邊有什麼:從左往右看
Futaba是帶有地面無線電控制器的無人機系統,該控制器將操作人員的控制命令發送給無人機;
無人機中的自動駕駛儀Pixhawk,將控制器發來的控制信息轉為PWM信號,並發送給伺服電機;
再就是Servo Motor,就是接受PWM信號的伺服電機,最底下那個實線藍色框就是無人機的電機們。
再看看攻擊者這邊有什麼:從右往左看
先是包絡發生器,什麼是包咯發生器呢?
Envelope generators provide a means for shaping the waveforms to produce a more musical character. Most commonly, envelope generators are used to modulate amplitude over a period of time. They come in a variety of configurations, but the most prevalent type of envelope generator is an ADSR envelope.
包絡發生器提供了一種塑造波形的方法,以產生更具音樂性的特徵。最常見的是,包絡發生器用於在一段時間內調製振幅。它們有多種配置,但最流行的包絡生成器類型是ADSR包絡。
好好好,說白了就是一種塑造波的儀器,產生攻擊波形。
然後送到真正的波形生成器,生成波。
在所有攻擊場景中,攻擊波形載波都由Rohde&Schwarz SMU 200矢量信號發生器生成。
在其他兩種攻擊中,Keysight 33600A波形發生器將會被添加到包絡生成模塊中。
再看看兩個圈外的東西
BUFFER,電壓緩衝器,用於消除可能使 PWM 波形失真的負載。
Combiner,因為這是個有線實驗,而不是直接無限實驗,所以這裡要這麼看:
1、做這個有線系統的實驗是為了找到能夠產生有效攻擊的攻擊波形和其他參數
2、要做的是對執行器的攻擊,所以需要從控制器到執行器的流程中,找到攻擊點,因此,這裡的combiner其實就是攻擊點,在Pixhawk和伺服電機的通信流程之間。
3、combiner要做的就是將產生的攻擊波與正常操作下自動駕駛儀發送的含有控制指令的PWM波相互作用下的結果
3.1.1 攻擊波形Ⅰ:BLOCK
實驗步驟:
- 通過地面無線電控制器建立伺服控制。
- 注入塊波形從 -30 dBm 開始,增量為 1 dBm
- 檢測成功攻擊的最小 Vp(即地面控制器無法控制伺服旋轉)。
攻擊原理:
(1)攻擊手段
塊攻擊的攻擊波是一個頻率為fa的連續波信號,如下圖的黑色連續波,然後電纜裏面傳輸的是藍色框框的PWM波,這連續波能夠和PWM耦合,經過包絡檢波器產生感應電壓,阻止伺服電機服務,從而干擾無人機的飛行。
(2)攻擊機理
這個信號能夠在受害者的PWM電路中感應出一個電壓,從而阻止伺服系統檢測到上升沿和下降沿。
問:為什麼能夠在PWM電路中感應出一個電壓?為什麼感應出電壓就能阻止伺服系統?攻擊波和PWM波之間是如何作用的?
第一個問題為什麼能感應出電壓,依據是法律第感應定律,即直於導體迴路的時變磁場會在導體的端子處產生感應電壓,通過傳入的電磁波耦合產生電壓。
如圖,從左至右,分別為耦合攻擊波形、保護二極管、修正後的波形和低通濾波器、PWM輸入到電機處。
文章說到,保護二極管和低通濾波器中的電容Cv和Rv能夠在原理上等價為「envelope detector」,又名包絡檢波器。
這玩意是用來幹什麼的呢?包絡檢波器(英語:envelope detector)是以高頻信號為輸入信號並提供原始信號的
那麼就好解釋了:
1、通過PWM電纜耦合的攻擊波形由二極管整流,僅留下正周期(水平坐標軸上的波)。
2、在第一個整流周期中,電容器被充電到電壓峰值。
3、 然而,由於攻擊波形的高頻/低周期性質和並聯r-c電路的相對較高的時間常數,電容器不能在周期之間放電 。
4、此外,包括二極管和Rv,Cv在內的整個電路只不過是一個包絡檢測器,在早期的無線電中廣泛用作AM解調器 。
5、攻擊成功的很大原因是二極管的整流,因為整流引入了攻擊者的低頻成分,即envelope。
6、實驗觀察到Futaba和HiTec伺服控制器板由二極管保護組成,這是成功控制這些伺服系統的原因。
(3)攻擊效率
攻擊的效率取決於頻率(fa)和與受害者共振頻率(fv)。攻擊者可以使用受害者的共振頻率來增加攻擊距離。下一大節討論檢測受害共振的分析和實驗方法。
(4)實驗結果
3.1.2 攻擊波形 ⅠⅠ :BLOCK & ROTATE
上節的塊波的作用簡單說就是阻止旋轉角數據向致動器傳輸,那麼這一節需要做到,注入錯誤的致動數據。
具體思想可以簡述為:利用一種波形掩蓋或消除原有的旋轉數據,然後注入構造好的錯誤致動數據,掩蓋方式可以為寬脈衝(thigh>2ms)
讓無人機機翼停轉:
(1)上圖可以看到,正常旋轉的範圍是1~2ms,作者實驗觀察到,當thigh>2ms時,PWM所攜帶的信號全被覆蓋,所有的伺服模型電機都保持原形。
(2)當Eflite和Hitec伺服器鎖定時 (即,外部扭矩不能移動它),觀察到雙葉伺服器自由移動。
(3)當PWM通道中沒有旋轉角數據時,Eflite和Hitec的響應可能是保持伺服旋轉穩定。
注入錯誤的旋轉指令信號:
(1)使用額外的正弦脈衝來注入錯誤的旋轉角度信息 (圖4b中的 「旋轉」 脈衝)。
(2)旋轉脈衝的持續時間(trotate的寬度)決定了注入受害者系統的錯誤旋轉角度。例如,攻擊者可以使用trotate = 1ms的Block & Rotate波形 (圖4b) 將伺服機構旋轉到-45 °。
批註:很多這種信號注入攻擊,注入指令的前一步都是阻塞原有的服務,然後將自己構造的命令注入到這個信道以劫持通信。
3.1.3 攻擊波形 III:完全控制
整個無人機可以操作(即左右旋轉45度)的時間範圍trotate,從下圖可以得知為[1ms,2ms]:
tPWM為20ms,那麼這個占空比就是[1/20,2/20]也就是5%到10%。攻擊1和攻擊2都是在固定的占空比範圍內進行操作,那麼超過這個占空比呢?
因為thigh的範圍和trotate相關,要做一些電機操作,所以是固定的[1,2],所以只能通過變小tPWM來增大占空比。
實驗觀察到,當這個tPWM變小到2.5ms的時候,也就是占空比範圍到[40%,80%]的時候,在這個範圍內,無人機內的每個伺服服務組件都可以通過增加PWM的占空比來控制:
例如,注入thigh=1ms,就能控制無人機往左轉。
3.1.4 各波形對比
拿三種攻擊波形對比一下:
黑色的連續波是攻擊波形,然後我這上上節也說到了,這個黑色連續波會和藍色PWM波耦合形成新的波,(注意:這兩個藍色的PWM波的間距就是tPWM,為20ms)然後這個新的波能對伺服電機產生對應的效果,然後本質是切割磁感線產生感應電壓。
a是持續不間斷的連續波,b和c都是間斷的波形,b的間斷目的是先覆蓋後注入(在tPWM時間內)。
塊波形可防止在每個測試頻率下傳輸致動數據傳輸,並且觀察到在所有測試的伺服模型上都是有效的。
Block & Rotate 和 Full Control使攻擊者能夠通過將旋轉角數據注入PWM通道來完全控制特定的伺服模型。
Block & Rotate適用於經過測試的雙葉和HiTec伺服器型號。
完全控制波形利用了原始PWM的低占空比特性,並且非常頻繁地注入錯誤的致動數據以在不需要同步的情況下控制受害致動器。
完全控制適用於所有雙葉模型,並為攻擊者提供伺服旋轉的 「完全控制」,即順時針和逆時針旋轉。
3.2 實例攻擊
這實驗做出來能幹什麼就不用說了吧,最顯而易見的,敵方無人機來了可以直接給他控制遼。
他們要做個什麼事捏? 因為這個干擾和注入的距離是有限的,遠距離電波容易被反射、吸收、屏蔽,近距離的電波穿透力更強,所以要架設在己方無人機上,飛到敵方無人機附近去干擾和控制。
攻擊者系統由光發射器和接收器、電池、射頻模塊、放大器和ZPSL天線組成,如圖9b所示。受害者Pixhawk被編程為根據地面控制器的要求發起攻擊。攻擊控制信號作為光信號發送,以確保即使在高EMI下也能進行可靠的控制,例如在緊急情況下停止攻擊。
RF開關對連續波信號進行調製,以生成塊或完全控制波形。來自RF開關的攻擊波形以20W的輸出功率饋送到RF放大器,並且攻擊波形從ZPSL天線輻射,該天線以攻擊頻率諧振並匹配到50Ω。
受害無人機使用在PX4固件上運行的Pixhawk自動駕駛儀,該自動駕駛儀經過修改以控制來自地面/無線電控制器的IEMI攻擊的持續時間和波形。
為了可靠地測量高EMI中的副翼旋轉,將正交編碼器連接到右副翼伺服器,並在UAV的右翼上安裝了隔離的Pixhawk (即,具有單獨的DC電源)。作者為PX4固件開發了固件模塊,該固件模塊充當正交編碼器的接口並記錄副翼旋轉角度。
對於飛行,使用Pixhawk的穩定飛行模式,在此期間,俯仰和滾動設定點由飛行員從無線電/地面控制器提供。
然後,自動駕駛儀分別計算所需的升降舵和副翼旋轉,以達到設定值。方向舵旋轉和推力直接來自無線電/地面控制器。
四 試驗結果
20w的功率足以進行25厘米完全控制和50厘米塊攻擊。
一些觀察結果如下:
- 無論天線大小如何,完全控制都需要比塊攻擊更多的功率。
- 大型天線比較小的天線所需的功率要少得多。
- 對於在da = 1m處的完全控制,對於大型和小型天線,所需功率分別為611W和3.3kW。但是,如果塊的攻擊距離為2m,則對於大型和小型天線,所需功率分別為532W和1.38kW。
- 大型天線在近場中產生高磁場的能力是一種已知現象。對於經顱磁刺激 (TMS) 應用,其中磁場刺激大腦的特定區域,較大的環是優選的,以更好地 「穿透」 到大腦內層 。
為了增加攻擊距離,增加天線空間,超材料-人造磁導體,其功能為磁反射器,可以用來提高場功率3dB,降低攻擊能力,保護追蹤器從自己的攻擊場。