汪世鵬,解 侖,李連鵬,孟 盛,王志良
北京科技大學(xué)計(jì)算機(jī)與通信工程學(xué)院,北京 100083
工業(yè)機(jī)械臂是一種多輸入多輸出的類人的作業(yè)、高度自主的控制系統(tǒng),廣泛應(yīng)用于醫(yī)療護(hù)理、家庭服務(wù)、工業(yè)制造等領(lǐng)域.近年來(lái),隨著信息物理系統(tǒng)網(wǎng)絡(luò)與互聯(lián)網(wǎng)的融合,機(jī)械臂控制系統(tǒng)的安全暴露于互聯(lián)網(wǎng)中,使得攻擊者攻擊成功的幾率逐年增加.Stuxnet和Duqu惡意病毒已經(jīng)證明了信息物理系統(tǒng)是能夠被攻擊而且造成的后果極其嚴(yán)重[1-2].
攻擊者通常選擇現(xiàn)場(chǎng)總線和機(jī)械臂控制模型作為入侵對(duì)象.機(jī)械臂系統(tǒng)中以太網(wǎng)總線種類很多,常用的有Profinet IO[3-5]、Modbus[6-7]、EtherCAT[8-9]等.相較于其他總線而言,EtherCAT總線實(shí)時(shí)性更高、具有更靈活的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、可無(wú)縫集成現(xiàn)有的總線系統(tǒng).因此,EtherCAT總線在工業(yè)控制領(lǐng)域中備受關(guān)注.然而,該總線缺少像身份認(rèn)證等安全上的保障,Granat等[10]指出EtherCAT總線暴露于DoS/DDoS,中間人攻擊等常見(jiàn)的攻擊.與可達(dá)空間受限的六自由度機(jī)械臂相比,七自由度機(jī)械臂(7-DOF manipulator)能保持末端機(jī)構(gòu)在平面上位置不變的情況下,實(shí)現(xiàn)構(gòu)型的變換,而且七自由度機(jī)械臂在設(shè)計(jì)上和人體手臂的模型相類似,因此具有更好的靈活性[11].
在信息物理攻擊方法及模型研究等方面,隱蔽攻擊(Covert attacks, CA)又稱為錯(cuò)誤數(shù)據(jù)注入攻擊(False data injection attacks, FDI),是一類比較有意義的攻擊方式[12-13].Xie等[14]提出了一種基于錯(cuò)誤數(shù)據(jù)注入的攻擊方法,攻擊者如果獲得了當(dāng)前電力系統(tǒng)相關(guān)配置信息,便有可能注入干擾智能電網(wǎng)狀態(tài)估計(jì)過(guò)程的惡意攻擊包,從而繞開(kāi)系統(tǒng)中已有的不良數(shù)據(jù)檢測(cè)方法.隱蔽攻擊模型的思路是篡改當(dāng)前控制系統(tǒng)的傳感器測(cè)量值,并且使修改后的數(shù)值仍處于合法運(yùn)行范圍之內(nèi),從而避免被標(biāo)準(zhǔn)的入侵檢測(cè)方法檢測(cè)到,實(shí)現(xiàn)對(duì)控制系統(tǒng)的影響.相較于普通攻擊,隱蔽攻擊更難被發(fā)現(xiàn),造成的損失也比其他類型的攻擊更嚴(yán)重.de Sá等[15]提出了一種針對(duì)化工生產(chǎn)過(guò)程的隱蔽攻擊模型,并對(duì)攻擊的影響進(jìn)行了評(píng)估.Krotofil和Larsen[16]提出了一種新的化工過(guò)程仿真模型,并實(shí)施了隱蔽攻擊.Quarta等[17]對(duì)工業(yè)機(jī)器人控制系統(tǒng)進(jìn)行了相關(guān)的分析,提出了一個(gè)攻擊者模型,并將其與工業(yè)機(jī)器人應(yīng)該遵守的最低要求相對(duì)應(yīng):精確感知環(huán)境,執(zhí)行控制邏輯的正確性以及人類操作員的安全性;展示了攻擊者如何利用軟件漏洞等破壞這些需求,從而導(dǎo)致機(jī)器人領(lǐng)域獨(dú)有的嚴(yán)重后果.Lagraa等使用ROS對(duì)機(jī)器人攝像機(jī)進(jìn)行了結(jié)構(gòu)化安全評(píng)估,并使用一些安全漏洞接管了從機(jī)器人攝像機(jī)傳入的視頻流,針對(duì)此提出了一種入侵檢測(cè)系統(tǒng)來(lái)檢測(cè)異常流量[18].Vilches等著重于創(chuàng)建一個(gè)開(kāi)放和免費(fèi)訪問(wèn)的機(jī)器人漏洞評(píng)分系統(tǒng),主要考慮了機(jī)器人技術(shù)當(dāng)中的相關(guān)安全問(wèn)題[19].雖然已經(jīng)有研究人員開(kāi)始關(guān)注機(jī)械臂安全相關(guān)的研究,但是針對(duì)機(jī)械臂控制系統(tǒng)的隱蔽攻擊的文章還很少.因此,研究基于EtherCAT總線的隱蔽攻擊技術(shù)對(duì)提高機(jī)械臂控制系統(tǒng)安全十分必要.
本文提出了一種基于混沌理論的多種群粒子群優(yōu)化的七自由度機(jī)械臂系統(tǒng)PID參數(shù)辨識(shí)算法;然后使用該算法對(duì)EtherCAT總線下的七自由度機(jī)械臂進(jìn)行了系統(tǒng)辨識(shí),得到的參數(shù)作為隱蔽控制器的參數(shù);最后根據(jù)提出的隱蔽攻擊方法展開(kāi)隱蔽攻擊.實(shí)驗(yàn)結(jié)果表明了在七自由度機(jī)械臂上實(shí)施隱蔽攻擊的可行性.本研究的新穎之處在于提出了一種針對(duì)部署在EtherCAT總線上的機(jī)械臂隱蔽攻擊方法并搭建了實(shí)驗(yàn)測(cè)試平臺(tái).作為探索性的研究,對(duì)EtherCAT總線的安全性以及機(jī)械臂控制系統(tǒng)的穩(wěn)定性作出了貢獻(xiàn).
機(jī)械臂運(yùn)動(dòng)規(guī)劃是保障機(jī)械臂在符合設(shè)定的約束以及避障條件下,依據(jù)規(guī)劃的路徑完成位置和姿態(tài)的轉(zhuǎn)換.正向運(yùn)動(dòng)學(xué)通過(guò)機(jī)械臂各個(gè)關(guān)節(jié)的實(shí)際轉(zhuǎn)動(dòng)或伸縮值,求解其末端的位置和姿態(tài);對(duì)應(yīng)的逆運(yùn)動(dòng)學(xué)是已知末端的姿態(tài)和位置,求解各個(gè)關(guān)節(jié)轉(zhuǎn)動(dòng)或伸縮量,通常運(yùn)動(dòng)規(guī)劃都是以逆運(yùn)動(dòng)學(xué)為基礎(chǔ)[20].
Denavit和Hartenberg[21]為了表示機(jī)械臂相鄰連桿間的運(yùn)動(dòng)規(guī)則,針對(duì)各個(gè)關(guān)節(jié)的連桿建立坐標(biāo)系,該坐標(biāo)系被稱為D-H坐標(biāo)系.按照機(jī)械臂連桿和關(guān)節(jié)的分布情況、依據(jù)D-H坐標(biāo)系的創(chuàng)建規(guī)則和各個(gè)連桿的長(zhǎng)度,建立如圖1所示的七自由度機(jī)械臂D-H坐標(biāo)系,可得到如表1所示的機(jī)械臂連桿結(jié)構(gòu)參數(shù).
圖1 七自由度機(jī)械臂D-H坐標(biāo)系Fig.1 7-DOF manipulator D-H coordinate system
坐標(biāo)系{i}相對(duì)于坐標(biāo)系{i-1}的坐標(biāo)變換矩陣如下
已知目標(biāo)位姿(xt,yt,zt,α,β,γ),則建立逆運(yùn)動(dòng)學(xué)求解等式
式(2)中,[nx,ny,nz]T、[ox,oy,oz]T、[ax,ay,az]T為機(jī)械臂末端的俯仰角、偏航角和滾轉(zhuǎn)角,[xt,yt,zt]T為機(jī)械臂末端的位移.依據(jù)所建立的D-H坐標(biāo)系對(duì)七自由度機(jī)械臂逆運(yùn)動(dòng)學(xué)模型求解[22].由于構(gòu)型設(shè)計(jì)上符合存在封閉解的Pieper準(zhǔn)則[23],可求解出各個(gè)關(guān)節(jié)角的解析解方程,得到解析的運(yùn)動(dòng)學(xué)模型.
機(jī)械臂的運(yùn)動(dòng)規(guī)劃需要各個(gè)關(guān)節(jié)的控制器依據(jù)模型的參數(shù)進(jìn)行計(jì)算才能實(shí)施.機(jī)械臂運(yùn)動(dòng)控制是依靠各個(gè)關(guān)節(jié)執(zhí)行器來(lái)達(dá)到目標(biāo)位姿.本文所用機(jī)械臂的關(guān)節(jié)控制器是采用PID進(jìn)行調(diào)節(jié)的.具體PID控制框圖如圖2所示.
圖2中,y表示七自由度機(jī)械臂期望的末端位置,表示七自由度機(jī)械臂期望的末端速度,表示七自由度機(jī)械臂期望的末端加速度;Pd表示規(guī)劃軌跡的期望位置;ωi(i=1···7)表示關(guān)節(jié)位置,i(i=1···7)表示關(guān)節(jié)速度,i(i=1···7)表示關(guān)節(jié)加速度;x、、分別表示七自由度機(jī)械臂末端期望位置、期望速度和期望加速度.
圖2所示關(guān)節(jié)控制器采用三閉環(huán)的位置隨動(dòng)系統(tǒng),位置環(huán)使得各個(gè)關(guān)節(jié)到達(dá)指定的位置,速度環(huán)使得各個(gè)關(guān)節(jié)的速度能夠按照要求的量進(jìn)行轉(zhuǎn)動(dòng),電流環(huán)可以防止速度過(guò)載從而提升系統(tǒng)穩(wěn)定性.
關(guān)節(jié)位置控制器是位置式PID控制器為
式中,O(k)表示第k次的關(guān)節(jié)轉(zhuǎn)動(dòng)輸出,p表示可調(diào)節(jié)的比例系數(shù),TI表示控制器的積分常數(shù),i表示可調(diào)節(jié)的積分系數(shù),Ts表示采樣周期,Td表示微分常數(shù),d表示可調(diào)節(jié)的微分系數(shù),e(k)表示第k次的關(guān)節(jié)轉(zhuǎn)動(dòng)偏差.
表1 機(jī)械臂D-H坐標(biāo)系參數(shù)Table 1 D-H coordinate system parameters of manipulator
圖2 機(jī)械臂PID控制框圖Fig.2 Manipulator PID control block diagram
在對(duì)機(jī)械臂控制系統(tǒng)進(jìn)行隱蔽攻擊時(shí),需要獲得足夠的先驗(yàn)知識(shí),由于通常只能獲取部分機(jī)械臂相關(guān)的知識(shí),在這種情況下是幾乎不能夠?qū)嵤╇[蔽攻擊,因此需要通過(guò)一些措施獲取機(jī)械臂控制系統(tǒng)模型.本文將群智能優(yōu)化算法引入到七自由度PID參數(shù)辨識(shí)過(guò)程中,利用多種群粒子群優(yōu)化系統(tǒng)辨識(shí)算法得到七自由度機(jī)械臂最佳匹配模型參數(shù),并將其應(yīng)用到隱蔽攻擊方法中.
混沌粒子群算法(Chaotic particle swarm optimization,CPSO)[24]以及基本粒子群算法(Particle swarm optimization,PSO)[25]等隨著算法的搜索空間的維度增加其獲取全局最優(yōu)值的效率會(huì)大大降低.多種群粒子群優(yōu)化算法(Multi-swarm particle swarm optimization,MPSO)[26]是在 PSO上進(jìn)化而來(lái)的一種優(yōu)化算法,其核心思想是將種群隨機(jī)劃分成幾個(gè)子群,子群內(nèi)部按照PSO算法的流程進(jìn)行迭代更新,并且子群之間共享信息從而幫助整個(gè)種群更好地尋優(yōu).
多種群粒子群優(yōu)化算法采取的是主從策略,按照種群之間的競(jìng)態(tài)關(guān)系可以將多種群粒子算法分為競(jìng)爭(zhēng)型和合作型.合作型多種群粒子群優(yōu)化算法相對(duì)于競(jìng)爭(zhēng)型而言少了一個(gè)遷移因子.本文采用競(jìng)爭(zhēng)型多種群粒子群算法中主種群的更新策略如下:
式中,1≤i≤n;Xi及Vi為第i次迭代位置與速度;w是慣性權(quán)重,c1,c2,c3是主種群和從種群中粒子的學(xué)習(xí)權(quán)重;r1,r2,r3是主種群和從種群中粒子隨機(jī)真值,取值為0≤r1,r2,r3≤1;分別是主種群的局部最優(yōu)位置和全局最優(yōu)位置;是從種群的全局極值位置;φ是遷移因子,如果從種群中的全局最優(yōu)位置大于主種群中的全局最優(yōu)位置,則 φ=1,如果從種群中的全局最優(yōu)位置和主種群中的全局最優(yōu)位置處于同等水平,則 φ=0.5,如果從種群中的全局最優(yōu)位置低于主種群中的全局最優(yōu)位置,則 φ=0.由從種群和主種群的全局最優(yōu)位置來(lái)搜索整個(gè)種群的最優(yōu).
基于前述機(jī)械臂PID控制模型可知,每個(gè)關(guān)節(jié)都有6個(gè)參數(shù)需要辨識(shí),因此使用多種群粒子群系統(tǒng)辨識(shí)對(duì)七自由度機(jī)械臂進(jìn)行辨識(shí)的參數(shù)為42個(gè).實(shí)現(xiàn)基于多種群粒子群算法的七自由度機(jī)械臂運(yùn)動(dòng)控制模型的系統(tǒng)參數(shù)辨識(shí)方法的詳細(xì)步驟如下:
1)將群體中的n個(gè)粒子隨機(jī)初始化到解空間中.根據(jù)七自由度機(jī)械臂系統(tǒng)模型參數(shù)待辨識(shí)的個(gè)數(shù)設(shè)置粒子的維度為42,并在隨機(jī)初始化粒子的起始位置和起始速度.這些初始化了的粒子構(gòu)成了七自由度機(jī)械臂的系統(tǒng)參數(shù)解集合并設(shè)定好學(xué)習(xí)權(quán)重c1,c2,c3的初始值以及慣性權(quán)重w的初始值等.
2)劃分群體為多個(gè)種群.將種群劃分成多個(gè)群體,群體的個(gè)數(shù)為s,劃分的方式如下:對(duì)所有的粒子進(jìn)行編號(hào),編號(hào)為1的粒子劃分進(jìn)1號(hào)子群體中,2號(hào)粒子劃分進(jìn)2號(hào)子群體中,i號(hào)粒子劃分進(jìn)s號(hào)子群體中,i+1號(hào)粒子被劃分進(jìn)1號(hào)子群體中,以此類推,通過(guò)這種方式將整個(gè)種群劃分成多個(gè)子群.劃分完畢的種群中選擇全局最優(yōu)位置所在的子種群為主群,其余子群為從子群.
3)通過(guò)適應(yīng)度函數(shù)來(lái)計(jì)算每個(gè)子群中粒子對(duì)應(yīng)的適應(yīng)值和更新的學(xué)習(xí)因子c1i,c2i,c3i及權(quán)重wi.
4)主種群更新.主群根據(jù)迭代方程更新群體中粒子的速度和位置,更新公式如下:
5)從子群更新.在更新從子群的時(shí)候采用下面的步驟進(jìn)行.
a)確定從子群參數(shù)的可行域[a,b],設(shè)置混沌算法初始化參數(shù).
b)通過(guò)Logistic映射引入混沌變量,Logistic映射公式為z=μz(1-z),其中,z表示混沌域并且z∈(0,1),μ為L(zhǎng)ogistic參數(shù),取值范圍為μ∈[3.5699456,4].對(duì)于粒子位置向量x映射到Logistic方程定義域上得
c)從子群更新粒子的位置以及速度,使用的方程為
搜索過(guò)程中將混沌序列使用方程
將粒子逆映射到原來(lái)的空間中去.
6)計(jì)算從子群中每個(gè)粒子的適應(yīng)度函數(shù)值.對(duì)這些粒子的位置和粒子歷史最優(yōu)值進(jìn)行比較,如果優(yōu)于的話則更新粒子的主種群以及從種群中的粒子最優(yōu)值,分別得到
7)判斷當(dāng)前位置是否為優(yōu)于全局最優(yōu)值.如果是的話,則將當(dāng)前位置賦給全局最優(yōu)值Pg.
8)判斷迭代是否符合終止要求.將設(shè)定的迭代次數(shù)值和算法當(dāng)前的迭代次數(shù)進(jìn)行比較,如果達(dá)到了則算法終止,否則,算法將跳轉(zhuǎn)到步驟4繼續(xù)執(zhí)行.
七自由度機(jī)械臂的多種群粒子算法系統(tǒng)辨識(shí)的基本流程圖如圖3所示.
本文在工業(yè)以太網(wǎng)EtherCAT總線上搭建了七自由度機(jī)械臂控制和攻擊測(cè)試平臺(tái),該平臺(tái)主要包含了EtherCAT主站、工業(yè)交換機(jī)、EtherCAT從站、七自由度機(jī)械臂以及攻擊者.提出的平臺(tái)中各個(gè)設(shè)備之間的關(guān)系如圖4所示.
圖3 七自由度機(jī)械臂的多種群粒子算法系統(tǒng)辨識(shí)基本流程圖Fig.3 Basic flow chart of MPSO system identification for 7-DOF manipulator
圖4 系統(tǒng)整體架構(gòu)圖Fig.4 System architecture
EtherCAT主站采用EtherCAT主站軟件架構(gòu),在Linux原有的任務(wù)調(diào)度的基礎(chǔ)上移植xenomai,擴(kuò)展Linux操作系統(tǒng)的在嚴(yán)格通信要求上的任務(wù)調(diào)度.采用改進(jìn)的開(kāi)源主站SOME連接EtherCAT從站讀取機(jī)械臂的狀態(tài)信息并向機(jī)械臂控制系統(tǒng)中寫入命令字.
工業(yè)交換機(jī)在工業(yè)控制系統(tǒng)中用于將工業(yè)以太網(wǎng)數(shù)據(jù)轉(zhuǎn)發(fā)到各個(gè)受控對(duì)象,但同時(shí)也提供給攻擊者一種入侵方式.在本文中通過(guò)工業(yè)型交換機(jī)攻擊七自由度機(jī)械臂.
EtherCAT從站主要包含了基于lan9252設(shè)計(jì)的EtherCAT從站多協(xié)議網(wǎng)關(guān)以及插入FC1100 PCI卡的主機(jī)組成的標(biāo)準(zhǔn)EtherCAT從站系統(tǒng).本文中設(shè)計(jì)的EtherCAT從站多協(xié)議網(wǎng)關(guān)用于連接機(jī)械臂等多種實(shí)驗(yàn)設(shè)備,該網(wǎng)關(guān)電路上主要包含了EtherCAT從站專用控制芯片LAN9252、標(biāo)準(zhǔn)以太網(wǎng)接口電路、電源管理電路、STM32的外圍設(shè)備電路及調(diào)試電路等,如圖5所示.
攻擊者由標(biāo)準(zhǔn)計(jì)算機(jī)搭載Kali Linux系統(tǒng),通過(guò)工業(yè)交換機(jī)接入EtherCAT通信網(wǎng)絡(luò)中.EtherCAT協(xié)議在設(shè)計(jì)的時(shí)候并沒(méi)有考慮連接的安全性來(lái)保護(hù)主站和從站之間的通信.因此,很容易受到媒體訪問(wèn)控制(Media access control, MAC)欺騙.本文采用了MAC地址欺騙的方法,由于該方法的實(shí)施效果取決于工業(yè)交換機(jī)整體性能,本文在實(shí)施實(shí)驗(yàn)時(shí)不進(jìn)行相應(yīng)的研究.EtherCAT協(xié)議實(shí)施中間人攻擊的流程如圖6所示.
圖5 EtherCAT從站多協(xié)議網(wǎng)關(guān)硬件結(jié)構(gòu)圖Fig.5 EtherCAT slave multi-protocol gateway hardware structure diagram
圖6 EtherCAT中間人攻擊示意圖Fig.6 EtherCAT man-in-the-middle attack diagram
圖中MAC_S表示EtherCAT從站的MAC地址,MAC_M表示EtherCAT主站的MAC地址,MAC_A表示攻擊者根據(jù)主站和從站通信獲得的主站以及從站偽造地址,根據(jù)欺騙的過(guò)程進(jìn)行修改,Src表示通信過(guò)程中數(shù)據(jù)的源地址,Dst表示通信過(guò)程中數(shù)據(jù)的目的地址,ECAT_P,ECAT_PS,ECAT_PR表示數(shù)據(jù)包中的EtherCAT幀,ECAT_PS_M,ECAT_PR_M表示修改后的EtherCAT幀,oth_表示為了實(shí)施中間人構(gòu)建的其他包.攻擊者采用持續(xù)的發(fā)送數(shù)據(jù)包來(lái)充當(dāng)主站從站來(lái)進(jìn)行數(shù)據(jù)的篡改與轉(zhuǎn)發(fā).
根據(jù)系統(tǒng)整體架構(gòu)搭建的工業(yè)以太網(wǎng)下的七自由度機(jī)械臂平臺(tái)如圖7所示.其中工業(yè)型交換機(jī)是整個(gè)系統(tǒng)的連接樞紐,工作人員通過(guò)工業(yè)型交換機(jī)可以遠(yuǎn)程控制ROS-EtherCAT主站;ROSEtherCAT主站通過(guò)工業(yè)交換機(jī)線性連接FC1100以及4塊EtherCAT從站多協(xié)議網(wǎng)關(guān),構(gòu)成EtherCAT總線通信系統(tǒng),并且有1塊EtherCAT從站多協(xié)議網(wǎng)關(guān)通過(guò)CAN總線連接七自由度機(jī)械臂.攻擊者通過(guò)工業(yè)型交換機(jī)接入整個(gè)通信網(wǎng)絡(luò)中,在圖中并未展示出來(lái).
本文提出的七自由度機(jī)械臂隱蔽攻擊原理如圖8所示.
圖中攻擊者主要通過(guò)對(duì)被攻擊的機(jī)械臂運(yùn)動(dòng)學(xué)模型知識(shí)以及機(jī)械臂關(guān)節(jié)的控制模型知識(shí)構(gòu)建一個(gè)類似于機(jī)械臂控制器的隱蔽控制器,其中隱蔽控制器的參數(shù)通過(guò)前面章節(jié)所提出的基于混沌理論的多種群粒子群的PID參數(shù)辨識(shí)算法獲得.使用構(gòu)造的PID攻擊函數(shù)對(duì)控制器的輸出添加一個(gè)偏差對(duì)機(jī)械臂的各個(gè)關(guān)節(jié)的實(shí)際輸出造成影響,然后對(duì)各個(gè)關(guān)節(jié)的反饋值減去添加偏差應(yīng)該產(chǎn)生的影響值,從而欺騙控制器,讓機(jī)械臂系統(tǒng)認(rèn)為當(dāng)前機(jī)械臂的執(zhí)行已經(jīng)到達(dá)了目標(biāo)位置及姿態(tài),從而完成隱蔽攻擊的目的.機(jī)械臂的運(yùn)動(dòng)規(guī)劃模型主要在攻擊的時(shí)候讓機(jī)械臂的位姿到達(dá)指定的攻擊姿態(tài),達(dá)到預(yù)期的攻擊效果.為各個(gè)關(guān)節(jié)的實(shí)際輸出值,其中n=7,為各個(gè)關(guān)節(jié)的反饋欺騙值,其中n=7.
圖7 七自由度機(jī)械臂系統(tǒng)平臺(tái)Fig.7 7-DOF manipulator system platform
圖8 七自由度機(jī)械臂隱蔽攻擊原理圖Fig.8 7-DOF manipulator covert attack schematic
首先從協(xié)議的角度對(duì)七自由度機(jī)械臂展開(kāi)攻擊,因?yàn)镋therCAT協(xié)議對(duì)于拒絕服務(wù)攻擊(Denial of service, DoS)沒(méi)有任何抵抗措施,因此本文進(jìn)行EtherCAT協(xié)議攻擊的部署相對(duì)簡(jiǎn)單.EtherCAT協(xié)議在部署過(guò)程中,只有主站能夠修改從站的狀態(tài)機(jī)狀態(tài),而EtherCAT從站只有在運(yùn)行狀態(tài)才能進(jìn)行周期性通信過(guò)程,因此對(duì)EtherCAT從站狀態(tài)機(jī)進(jìn)行攻擊會(huì)導(dǎo)致機(jī)械臂無(wú)法進(jìn)行正常工作,這種攻擊很容易被操作人員發(fā)現(xiàn)或者被入侵檢測(cè)系統(tǒng)檢測(cè)到.本文根據(jù)EtherCAT主從通信過(guò)程編寫了一個(gè)可以攻擊同一網(wǎng)段下的任一從站的狀態(tài)機(jī)攻擊程序,攻擊過(guò)程及效果如圖9所示.
圖9 狀態(tài)機(jī)攻擊.(a)狀態(tài)機(jī)攻擊執(zhí)行圖;(b) ROS-EtherCAT 主站狀態(tài)檢測(cè)Fig.9 State machine attack: (a) state machine attack execution diagram;(b) ROS-EtherCAT master status detection
從圖中可以看到攻擊期間,ROS-EtherCAT主站檢測(cè)到了有從站沒(méi)有進(jìn)入運(yùn)行狀態(tài),主站讀取從站中的映射值出現(xiàn)了錯(cuò)誤,當(dāng)停止了狀態(tài)機(jī)攻擊之后,主站將從站的狀態(tài)由錯(cuò)誤狀態(tài)恢復(fù)至正常運(yùn)行狀態(tài),這種攻擊方式可以直接造成機(jī)械臂系統(tǒng)無(wú)法進(jìn)行正常的操作而保持上次正常規(guī)劃執(zhí)行完的位姿,但很容易被操作人員發(fā)現(xiàn).
正弦攻擊具有較好的隱蔽性,一般的入侵檢測(cè)系統(tǒng)很難檢測(cè)到正弦攻擊造成的異常.正弦攻擊的幅度值以及頻率值都能夠改變,對(duì)其進(jìn)行傅里葉變換分析可以發(fā)現(xiàn)其能量分布極其集中,因此能造成更強(qiáng)的攻擊后果,本文在七自由度機(jī)械臂上同樣構(gòu)建了正弦攻擊.正弦攻擊下的效果圖如圖10所示.
從正弦攻擊與正常工作下的機(jī)械臂的速度曲線上可以看到,正弦攻擊下速度出現(xiàn)明顯的頻率變化以及幅度變化,在位置曲線上有明顯的波動(dòng)出現(xiàn),而正常工作下的速度曲線以及位置曲線都很平滑.并且在ROS-EtherCAT主站上可以看到控制系統(tǒng)報(bào)出執(zhí)行出錯(cuò)的重大錯(cuò)誤,機(jī)械臂并未按照正常的軌跡規(guī)劃去執(zhí)行.
由于EtherCAT通信網(wǎng)絡(luò)上有多個(gè)EtherCAT從站設(shè)備,導(dǎo)致數(shù)據(jù)量相比單個(gè)設(shè)備來(lái)說(shuō)要多很多,因此,需要分析數(shù)據(jù)結(jié)構(gòu),找出七自由度機(jī)械臂相應(yīng)數(shù)據(jù),對(duì)于機(jī)械臂數(shù)據(jù)的分析假設(shè)攻擊者已經(jīng)獲得了部分關(guān)于機(jī)械臂控制器的知識(shí),如圖11所示,從抓取的網(wǎng)絡(luò)包中,分析屬于機(jī)械臂的通信數(shù)據(jù),其中紅色方框中為七自由度機(jī)械臂通信時(shí)的一幀數(shù)據(jù).
圖10 正弦攻擊.(a)正常工作下的速度位置曲線;(b)正弦攻擊下的速度位置曲線;(c) ROS-EtherCAT主站狀態(tài)Fig.10 Sinusoidal attack: (a) speed position curve under normal working; (b) speed position curve under sinusoidal attack; (c) ROS-EtherCAT master status
從數(shù)據(jù)的傳輸格式來(lái)看,EtherCAT上傳輸?shù)臄?shù)據(jù)采用的是大端模式,七自由度機(jī)械臂上CAN總線數(shù)據(jù)按照幀格式可以看到數(shù)據(jù)為幀ID,為0x107, 數(shù)據(jù)長(zhǎng)度(Data length count, DLC)為 0x06,接下來(lái)的為數(shù)據(jù)區(qū),數(shù)據(jù)分別為0x05、0x9c、0x34、0x16、0x00、0x00、0x00、0x00.基于圖11(a)分析得到的EtherCAT總線傳輸?shù)臄?shù)據(jù)格式,結(jié)合關(guān)節(jié)控制器內(nèi)存控制表信息(圖11(b)),根據(jù)提出的多種群粒子群的七自由度系統(tǒng)辨識(shí)算法對(duì)七自由度機(jī)械臂系統(tǒng)進(jìn)行參數(shù)辨識(shí).首先,根據(jù)上述得到的傳輸數(shù)據(jù)將群體中的n個(gè)粒子隨機(jī)初始化到解空間,劃分群體為多個(gè)種群,通過(guò)適應(yīng)度函數(shù)來(lái)計(jì)算每個(gè)子群中粒子對(duì)應(yīng)的適應(yīng)值,然后主種群、從子群更新,計(jì)算從子群中每個(gè)粒子的適應(yīng)度函數(shù)值,判斷當(dāng)前位置是否為優(yōu)于全局最優(yōu)值.需要辨識(shí)的參數(shù)有42個(gè),通過(guò)上述過(guò)程得到相應(yīng)的最優(yōu)值.表2列出了關(guān)節(jié)6和關(guān)節(jié)7參數(shù)辨識(shí)結(jié)果,其中位置PID參數(shù)為外環(huán)控制關(guān)鍵參數(shù),速度PID為內(nèi)環(huán)控制關(guān)鍵參數(shù),位置外環(huán)參數(shù)是速度內(nèi)環(huán)的輸入.從真實(shí)值和辨識(shí)值之間的對(duì)比,可以看到本文提出的系統(tǒng)辨識(shí)算法辨識(shí)效果良好.
根據(jù)本文提出的七自由度機(jī)械臂隱蔽攻擊模型,七自由度系統(tǒng)辨識(shí)參數(shù)以及七自由度機(jī)械臂的運(yùn)動(dòng)學(xué)模型構(gòu)建出的攻擊,攻擊函數(shù)采取正弦攻擊函數(shù),攻擊效果如圖12所示.從圖12(a)中可以看到ROS-EtherCAT主站在攻擊者進(jìn)行隱蔽攻擊時(shí)并未檢測(cè)到任何異常,并且認(rèn)為機(jī)械臂已經(jīng)到達(dá)了目標(biāo)位姿,而圖12(b)是機(jī)械臂的真實(shí)位姿狀態(tài),和圖12(a)中顯示的位姿有明顯差異,從而驗(yàn)證了本文提出的七自由度機(jī)械臂隱蔽攻擊技術(shù)的實(shí)施具有良好的隱蔽性,根據(jù)需要造成的破壞大小構(gòu)造出攻擊函數(shù)能夠造成很嚴(yán)重的后果.
從不同的角度對(duì)比上述攻擊,如表3所示.本文提出的七自由度機(jī)械臂隱蔽攻擊技術(shù)在實(shí)施上比較復(fù)雜,但是在保證破壞性的情況下具有較好的隱蔽性.
圖11 七自由度機(jī)械臂通信數(shù)據(jù).(a)通信數(shù)據(jù)格式;(b)機(jī)械臂部分內(nèi)存表信息Fig.11 7-DOF manipulator communication data:(a) communication data format;(b) part of memory table information of the robot arm
表2 部分辨識(shí)值和真實(shí)值Table 2 Partially recognized value and true value
圖12 隱蔽攻擊.(a) ROS-EtherCAT 主站狀態(tài);(b) 機(jī)械臂真實(shí)狀態(tài)Fig.12 Covert attack:(a) ROS-EtherCAT master status;(b) manipulator real state
表3 機(jī)械臂攻擊對(duì)比Table 3 Manipulator attack comparison
本文提出了基于七自由度機(jī)械臂的隱蔽攻擊方法.對(duì)七自由度機(jī)械臂進(jìn)行了運(yùn)動(dòng)學(xué)規(guī)劃建模,并對(duì)粒子群算法進(jìn)行了研究;提出了基于混沌理論的多種群粒子群優(yōu)化的七自由度PID參數(shù)辨識(shí)算法.設(shè)計(jì)了隱蔽攻擊系統(tǒng)架構(gòu)并搭建了實(shí)驗(yàn)平臺(tái),利用所提出的算法對(duì)本文中的機(jī)械臂控制系統(tǒng)的參數(shù)進(jìn)行辨識(shí),使用辨識(shí)的參數(shù)結(jié)合隱蔽攻擊原理進(jìn)行了攻擊實(shí)驗(yàn),并且將所提出的隱蔽攻擊技術(shù)與協(xié)議的狀態(tài)機(jī)攻擊以及傳統(tǒng)的正弦攻擊進(jìn)行了比較.實(shí)驗(yàn)表明所提出的七自由度機(jī)械臂的系統(tǒng)辨識(shí)算法能夠較好的辨識(shí)系統(tǒng)參數(shù),并且能很好的應(yīng)用于機(jī)械臂的隱蔽攻擊中,驗(yàn)證了所提方法的可行性.本文所構(gòu)建的攻擊實(shí)驗(yàn)平臺(tái)為機(jī)械臂的攻防試驗(yàn)提供了物理基礎(chǔ),該平臺(tái)對(duì)于類似研究者有一定的借鑒意義.
值得注意的是,本文在機(jī)械臂的隱蔽攻擊實(shí)驗(yàn)中,仍然存在許多不足:機(jī)械臂的控制中由于傳感器的精度問(wèn)題,導(dǎo)致控制精度不是很高;本文并未對(duì)七自由度機(jī)械臂的動(dòng)力學(xué)進(jìn)行研究,因此提出的基于混沌優(yōu)化多種群粒子群七自由度機(jī)械PID參數(shù)辨識(shí)算法并未對(duì)機(jī)械臂的動(dòng)力學(xué)進(jìn)行辨識(shí).