CPS攻擊案例(一)——基於脈衝寬度調變PWM的無人機攻擊

2022-10-07 06:02:00

 本文系原創,轉載請說明出處

Please Subscribe Wechat Official Account:信安科研人,獲取更多的原創安全資訊

原論文連結:sec22-dayanikli.pdf (usenix.org)

目錄

摘要

一 知識背景

1.1 CPS

1.2 脈衝寬度調變PWM

二 攻擊方案研究思路

2.1 研究背景

2.2 靈感與動機

2.3 PWM控制執行器的機理

2.3.1 PWM訊號攜帶致動資料

   2.3.2 致動器使用PWM的上升沿和下降沿之間的持續時間確定致動資料

2.4 攻擊場景設定

三 攻擊方案、原理與實驗裝置

3.1  測試攻擊波形對通訊訊號的影響

3.1.1 攻擊波形Ⅰ:BLOCK

3.1.2 攻擊波形 ⅠⅠ :BLOCK & ROTATE

3.1.3 攻擊波形 III:完全控制

 3.1.4 各波形對比

3.2 範例攻擊

四 試驗結果


摘要

        攻擊者通過放置在己方無人機上的電磁干擾部件,構造三種不同的攻擊波形,作用到無人機控制器與伺服電機之間通訊的PWM電纜,構造的波形與PWM電纜中的PWM波耦合,因原PWM波攜帶指令資料,耦合後資料變更,進而阻塞或修改指令資料,進而影響伺服電機的操作,最終對無人機進行攻擊,達到干擾進入我方空域的敵方無人機,甚至控制敵方無人機,與常規的炮火對空攻擊不同,此攻擊方式花費較小。

編輯


 

一 知識背景

1.1 CPS

        CPS是cyber-physical system的縮寫,也就是資訊物理系統

        CPS由四大元件構成:執行器、感測器、控制器以及被控物件,基本執行流程如下圖

編輯

        感測器將系統變數(例如加速度)轉換為電(數位或模擬)訊號並將它們傳送到控制器;控制器處理感測器資料並決定如何影響系統的未來狀態,並向執行器(例如電機)傳送致動訊號。        

1.2 脈衝寬度調變PWM

        脈衝寬度調變(英語:Pulse-width modulation,縮寫:PWM),簡稱脈寬調變是將模擬訊號變換為脈衝的一種技術,一般變換後脈衝的週期固定,但脈衝的工作週期會依模擬訊號的大小而改變。

     

(1)提出背景:模擬訊號有很多問題

         參考:數位訊號和模擬訊號_一劍何風情的部落格-CSDN部落格_數位訊號

        在類比電路中,模擬訊號的值可以連續進行變化,在時間和值的幅度上都幾乎沒有限制,基本上可以取任何實數值,所以能通過代表任意值對裝置進行操作。

在這裡插入圖片描述編輯

        但類比電路有諸多的問題:例如控制訊號容易隨時間漂移,難以調節;功耗大;易受噪聲和環境干擾等。生成模擬訊號對於數位電路而言往往需要額外的數位-模擬轉換器。

        數位電路在任何時刻,其輸出只可能為ON和OFF兩種狀態,所以數位資訊丟失能力弱,抗干擾能力強。

(2)如何用數位訊號表示模擬訊號

      在這裡插入圖片描述編輯

模擬訊號數位化一般需要三個步驟:取樣、量化和編碼。

1 取樣:按時間間隔進行取樣。如上圖,每 1s 進行一次取樣(取樣的頻率被稱為取樣率)。

2 量化:因為模擬訊號本質上是一連串連續的值,我們可以對這些值進行等級劃分(量化的等級),這樣步驟一的採集到的樣品就可以被劃分到不同的等級。

3 編碼:步驟二中的不同等級可以表示不同的編碼(如果該取樣時間段內,波的面積小於二分之一,則認為是0,大於則是1)。則連續的模擬訊號最終可以轉化 0101 的數位訊號。

綜上,不難得出,隨著取樣率和量化等級的增加,轉換後的數位訊號的曲線也就越能貼近模擬訊號的曲線(對比上圖的原曲線和黃色曲線)。

(3)PWM技術

        PWM技術是一種對模擬訊號電平的數位編碼方法,通過使用高解析度計數器(調變頻率)調變方波佔空比,從而實現對一個模擬訊號的電平進行編碼。

        佔空比(Duty Ratio,Duty Cycle)表示在一個週期內,工作時間與總時間的比值。

        方波範例見下圖上往下數第二行

編輯

        其最大的優點是從處理器(CPS種抽象為控制器)到被控物件之間的所有訊號都是數位形式的,無需再進行數模轉換過程;而且對噪聲的抗干擾能力也大大增強(噪聲只有在強到足以將邏輯值改變時,才可能對數位訊號產生實質的影響),這也是PWM在通訊等訊號傳輸行業得到大量應用的主要原因。

        模擬訊號能否使用PWM進行編碼調變,僅依賴頻寬,這即意味著只要有足夠的頻寬,任何模擬訊號值均可以採用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

實驗步驟:

  1. 通過地面無線電控制器建立伺服控制。
  2. 注入塊波形從 -30 dBm 開始,增量為 1 dBm
  3. 檢測成功攻擊的最小 Vp(即地面控制器無法控制伺服旋轉)。

攻擊原理:

(1)攻擊手段

        塊攻擊的攻擊波是一個頻率為fa的連續波訊號,如下圖的黑色連續波,然後電纜裡面傳輸的是藍色框框的PWM波,這連續波能夠和PWM耦合,經過包絡檢波器產生感應電壓,阻止伺服電機服務,從而干擾無人機的飛行。

編輯

(2)攻擊機理

        這個訊號能夠在受害者的PWM電路中感應出一個電壓,從而阻止伺服系統檢測到上升沿和下降沿。

問:為什麼能夠在PWM電路中感應出一個電壓?為什麼感應出電壓就能阻止伺服系統?攻擊波和PWM波之間是如何作用的?

編輯

        第一個問題為什麼能感應出電壓,依據是法律第感應定律,即直於導體迴路的時變磁場會在導體的端子處產生感應電壓,通過傳入的電磁波耦合產生電壓。         

        如圖,從左至右,分別為耦合攻擊波形、保護二極體、修正後的波形和低通濾波器、PWM輸入到電機處。

        文章說到,保護二極體和低通濾波器中的電容Cv和Rv能夠在原理上等價為「envelope detector」,又名包絡檢波器。

        這玩意是用來幹什麼的呢?包絡檢波器(英語:envelope detector)是以高頻訊號為輸入訊號並提供原始訊號的包絡(英語:Envelope (waves))的一種電子線路。電路中的電容器會在上升沿充電,並在訊號下降時通過電阻器緩慢釋放電荷。串聯的二極體將輸入訊號整流,只在正輸入端比負輸入端電位高的時候允許電流流過。

        那麼就好解釋了:

1、通過PWM電纜耦合的攻擊波形由二極體整流,僅留下正週期(水平座標軸上的波)。

2、在第一個整流週期中,電容器被充電到電壓峰值。

3、 然而,由於攻擊波形的高頻/低週期性質和並聯r-c電路的相對較高的時間常數,電容器不能在週期之間放電 。

4、此外,包括二極體和Rv,Cv在內的整個電路只不過是一個包絡檢測器,在早期的無線電中廣泛用作AM解調器 。

5、攻擊成功的很大原因是二極體的整流,因為整流引入了攻擊者的低頻成分,即envelope。

6、實驗觀察到Futaba和HiTec伺服控制器板由二極體保護組成,這是成功控制這些伺服系統的原因。        

 

(3)攻擊效率

        攻擊的效率取決於頻率(fa)和與受害者共振頻率(fv)。攻擊者可以使用受害者的共振頻率來增加攻擊距離。下一大節討論檢測受害共振的分析和實驗方法。

(4)實驗結果

編輯      第二行第一列對應的是上一張實驗圖中伺服電機的各組成電機,可以觀察到,所有伺服模型都可以用不同的攻擊功率(VP)來阻塞。

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釐米塊攻擊。

        一些觀察結果如下:

  1. 無論天線大小如何,完全控制都需要比塊攻擊更多的功率。
  2. 大型天線比較小的天線所需的功率要少得多。
  3. 對於在da = 1m處的完全控制,對於大型和小型天線,所需功率分別為611W和3.3kW。但是,如果塊的攻擊距離為2m,則對於大型和小型天線,所需功率分別為532W和1.38kW。
  4. 大型天線在近場中產生高磁場的能力是一種已知現象。對於經顱磁刺激 (TMS) 應用,其中磁場刺激大腦的特定區域,較大的環是優選的,以更好地 「穿透」 到大腦內層 。

        為了增加攻擊距離,增加天線空間,超材料-人造磁導體,其功能為磁反射器,可以用來提高場功率3dB,降低攻擊能力,保護追蹤器從自己的攻擊場。