汪建春,胡曉進(jìn)
(江蘇農(nóng)林職業(yè)技術(shù)學(xué)院,江蘇 句容 212400)
智能物聯(lián)網(wǎng)(IoT)設(shè)備的先進(jìn)功能已使其在工業(yè)自動(dòng)化系統(tǒng)中得到廣泛應(yīng)用,從而迅速推進(jìn)了可重構(gòu)制造系統(tǒng)(Reconfigurable manufacturing systems,RMS)的發(fā)展[1,2]。第四次工業(yè)革命的興起,開(kāi)啟了高度定制制造的新時(shí)代。制造資源高度模塊化,為適應(yīng)動(dòng)態(tài)市場(chǎng)需求提供了必要的靈活性[3],可重構(gòu)制造系統(tǒng)支持有效的結(jié)構(gòu)和功能更改,可以在停機(jī)時(shí)間很短的情況下進(jìn)行個(gè)性化配置。RMS的基礎(chǔ)是由智能工業(yè)物聯(lián)網(wǎng)(IoT)控制器控制的模塊[4]。IoT端點(diǎn)是異構(gòu)的,其部署環(huán)境根據(jù)流程需求和RMS的當(dāng)前配置而動(dòng)態(tài)變化。RMS的無(wú)縫重新配置、集成和可靠功能要求組件高度自治,必須能夠使用兼容協(xié)議(可集成性)彼此無(wú)障礙通信、交換與底層控制相關(guān)的信息,并以不同方式交互。
分布式控制體系結(jié)構(gòu)支持可重構(gòu)性,新一代的智能制造資源不僅必須利用功能所需的組件(如傳感器和執(zhí)行器)[5],而且還須利用具有IoT功能控制器的固有計(jì)算和通信功能,以實(shí)現(xiàn)更高水平的自動(dòng)化。通過(guò)控制分配,可將對(duì)特定物理資源進(jìn)行控制的細(xì)粒度細(xì)節(jié)與資源協(xié)調(diào)問(wèn)題解耦[6],而資源協(xié)調(diào)問(wèn)題只需要關(guān)心制造資源的性能即可。Rashid等[7]提出了一種基于模型的CPS攻擊仿真方法,但是不支持正式驗(yàn)證,并根據(jù)具體攻擊實(shí)現(xiàn)得到了試驗(yàn)結(jié)果。李慶鑫等[8]對(duì)工業(yè)CPS控制器進(jìn)行了正式安全評(píng)估,但分析仍然局限于功能模型級(jí)別的高級(jí)漏洞。金志剛等[9]提出了在特定攻擊模型下的無(wú)線物聯(lián)網(wǎng)通信的全面正式安全分析,但未考慮對(duì)底層物理過(guò)程控制質(zhì)量的影響。
為了能夠建立安全的RMS,本研究引入了有效的技術(shù),用于對(duì)部署在支持IoT的本地控制器(LC)上的分布式控制應(yīng)用程序進(jìn)行系統(tǒng)安全分析,并且通過(guò)添加適當(dāng)?shù)陌踩珯C(jī)制來(lái)解決檢測(cè)到的漏洞,利用安全分析的結(jié)果來(lái)改善存在攻擊時(shí)的自動(dòng)化性能和安全保證。
新一代分布式自動(dòng)化系統(tǒng)的網(wǎng)絡(luò)性質(zhì)使它們?nèi)菀资艿骄W(wǎng)絡(luò)的攻擊,類(lèi)似于其他網(wǎng)絡(luò)物理系統(tǒng)領(lǐng)域中報(bào)告的安全漏洞。例如,一個(gè)對(duì)手可能會(huì)注入錯(cuò)誤事件,延遲或拒絕對(duì)合法控制器的網(wǎng)絡(luò)訪問(wèn),或操縱通過(guò)不安全的通信通道發(fā)送的控制命令[10]。在分布式順序控制系統(tǒng)中,提供安全保證至關(guān)重要,在該系統(tǒng)中,其進(jìn)度直接受到通信不可用性的影響。本研究提出的靈活分布式自動(dòng)化方法如圖1所示。在大部分物聯(lián)網(wǎng)系統(tǒng)中,組件之間的協(xié)調(diào)是基于離散事件的。雖然在物聯(lián)網(wǎng)框架下使用了大量的正式建模框架,但工業(yè)自動(dòng)化系統(tǒng)通常基于GRAFCET(IEC 60848)/SFC(IEC 61131-3)控制設(shè)計(jì)。本研究聚焦使用CIPN(Control Interpreted Petri Nets)描述的IoT控制器的安全分析,該控制器可以直接開(kāi)發(fā)或者使用現(xiàn)有的集中式順序自動(dòng)化設(shè)計(jì)的分發(fā)方法自動(dòng)派生[11],允許在IoT支持的智能控制器上部署遺留控制應(yīng)用程序。
圖1 基于彈性IoT的靈活分布式自動(dòng)化方法
TPN通過(guò)引入定時(shí)轉(zhuǎn)換來(lái)擴(kuò)展PN。在TPN中,每個(gè)轉(zhuǎn)換的特征都是間隔或,其中t f和是轉(zhuǎn)換觸發(fā)時(shí)間的下限和上限,可以為零或無(wú)窮大,TPN支持不確定性,有助于使用確定性或隨機(jī)模型無(wú)法準(zhǔn)確完成的攻擊建模。
將CIPNi(i=1,…,N)表示的形式化分布式控制規(guī)范轉(zhuǎn)換為T(mén)PN兼容模型使用工廠模型和安全感知通信信道模型,能夠在建模對(duì)抗性的影響下對(duì)系統(tǒng)級(jí)的安全特性進(jìn)行推理。由于CIPN和TPN都起源于PNS,從CIPNi(i=1,…,N)控制器模型到的轉(zhuǎn)換,所有轉(zhuǎn)換都是直接的,即:
通過(guò)發(fā)出I/O API調(diào)用來(lái)處理驅(qū)動(dòng)和轉(zhuǎn)換處理感知;
通過(guò)共享信道處理傳輸,并使用API調(diào)用處理通信信號(hào)的接收[分別為send(destination,signal)和signal=value];
調(diào)用其他平臺(tái)相關(guān)API的位置,如請(qǐng)求執(zhí)行延遲。
這些轉(zhuǎn)換直接依賴于實(shí)現(xiàn)控制器底層平臺(tái)的CIPN結(jié)構(gòu),必須為捕獲以下內(nèi)容的網(wǎng)絡(luò)顯式地建模[12]:①與工廠之間的交互;②與通信信道之間的交互;③基于已發(fā)布命令(如變量更新、執(zhí)行延遲)更改運(yùn)行時(shí)環(huán)境。
由于CIPN的形式已被自動(dòng)化設(shè)計(jì)普遍采用,因此假設(shè)可以使用基于PN的(即CIPN或TPN)工廠模型,pick&place站的位置如圖2所示。在到達(dá)時(shí)間上有一個(gè)下限,位置p&p_Init表示站點(diǎn)的初始狀態(tài),來(lái)自該位置的令牌流受控制器模型的LC1對(duì)應(yīng)命令限制。在TPN形式上,標(biāo)記相關(guān)的保護(hù)函數(shù)可用于限制工廠模型中的狀態(tài)變化(即令牌流),即用標(biāo)記相關(guān)的函數(shù)評(píng)估控制器的狀態(tài),并返回參數(shù)位置內(nèi)的當(dāng)前令牌數(shù)量[13]。一旦LC2的模型將其令牌觸發(fā)了pick&place過(guò)程,即LC2從特定的傳送帶啟動(dòng)它,則站的令牌將轉(zhuǎn)換為傳送帶1(或2)有待處理的工件。
圖2 物理設(shè)置
CIPN的執(zhí)行路徑可以定義為標(biāo)記序列,其中由于觸發(fā)轉(zhuǎn)換而導(dǎo)致標(biāo)記發(fā)生變化,每個(gè)標(biāo)記都與一組動(dòng)作相關(guān)聯(lián),每個(gè)轉(zhuǎn)換的觸發(fā)都受一組條件限制。在TPN模型中,路徑的特征是具有相似的序列加上轉(zhuǎn)換時(shí)序。在TPN模型中維持CIPN控制器執(zhí)行路徑即可,目標(biāo)是源(集中)和目標(biāo)(分布式)控制模型的操作等價(jià)性[14]。
通過(guò)對(duì)已開(kāi)發(fā)的安全感知TPN模型的組合,得到一個(gè)安全感知閉環(huán)系統(tǒng)模型,用于驗(yàn)證系統(tǒng)級(jí)安全性和攻擊時(shí)的QoC特性。TPN分析工具允許驗(yàn)證形式屬性,這些形式屬性指定為線性時(shí)序邏輯(LTL)、計(jì)算樹(shù)邏輯(CTL)或定時(shí)CTL(TCTL)公式。使用工具Romeo來(lái)驗(yàn)證基于TCTL,如傳統(tǒng)安全性和活動(dòng)性。此外,由于包含了工廠模型,可以指定與領(lǐng)域相關(guān)的工廠狀態(tài)屬性,這些屬性對(duì)于功能安全性和QoC評(píng)估至關(guān)重要。本研究考慮的屬性包括:
屬性1:傳送帶1上的工件永遠(yuǎn)不會(huì)觸發(fā)傳送帶2的pick操作;
屬性2:在任何傳送帶上檢測(cè)到的工件最終都被拾??;
屬性3:在輸送機(jī)監(jiān)視器等待進(jìn)來(lái)的工件(即在Pcm_Init處)時(shí),pick&place沒(méi)有開(kāi)始循環(huán)。
在存在攻擊的情況下,使用Romeo工具驗(yàn)證這些屬性,因?yàn)楣粽吣軌蛟谌我鈺r(shí)間改變LC之間的預(yù)期交互。從試驗(yàn)測(cè)量或直接從網(wǎng)絡(luò)規(guī)格中獲得傳輸時(shí)間和時(shí)間的界限。此外,從所使用收發(fā)器的規(guī)格中獲得與收發(fā)器有關(guān)的時(shí)間,如在空閑信道評(píng)估期間的退避時(shí)間。
關(guān)于驗(yàn)證的可伸縮性,在系統(tǒng)模型中,一個(gè)正常的pick&place循環(huán)[15,16](所有攻擊都被禁用)包含了約35個(gè)轉(zhuǎn)換,數(shù)量約為模型中狀態(tài)數(shù)的數(shù)量。除了在工廠模型中時(shí)間誘發(fā)的不確定性外,模型的復(fù)雜性還會(huì)隨著不確定性攻擊選擇的增加而增加。然而,在所有情況下,Romeo工具在具有Inteli7-8086K CPU和64 GB內(nèi)存的工作站上,只需不到1 s的時(shí)間就可以找到違反屬性的執(zhí)行路徑。
在系統(tǒng)漏洞修復(fù)方向,攻擊行為可能會(huì)嚴(yán)重影響基于IoT的分布式工業(yè)自動(dòng)化系統(tǒng)的性能。為了解決這些問(wèn)題,有必要添加某些安全機(jī)制,討論安全機(jī)制對(duì)系統(tǒng)模型和相關(guān)屬性可驗(yàn)證性的影響。
1)檢測(cè)拒絕服務(wù)攻擊:分組和確認(rèn)(ACK)丟失在無(wú)線通信中很常見(jiàn),因此通常在此類(lèi)設(shè)置中使用ACK和重傳機(jī)制。例如,在收發(fā)器設(shè)置中禁用ACK請(qǐng)求,不會(huì)在數(shù)據(jù)鏈路層上嘗試重傳。對(duì)于兩個(gè)隔離的收發(fā)器,相當(dāng)于約99%的單向數(shù)據(jù)包成功率。因此,當(dāng)啟用ACK請(qǐng)求時(shí),最多執(zhí)行3次數(shù)據(jù)鏈路層重傳,在單個(gè)工業(yè)機(jī)器運(yùn)行的情況下,除了3個(gè)低層協(xié)議提供的重傳外,不需要應(yīng)用層重傳。為了提高網(wǎng)絡(luò)利用率,模擬了通過(guò)同一無(wú)線信道通信的其他機(jī)器數(shù)目;單向數(shù)據(jù)包的成功率約為98%。因此,兩次應(yīng)用層重傳足以實(shí)現(xiàn)可靠的事件交換,從而確保正確的操作。協(xié)議提供的重試是在短時(shí)間內(nèi)進(jìn)行的,而應(yīng)用層重傳則會(huì)產(chǎn)生較大的延遲,通道很可能在短時(shí)間內(nèi)持續(xù)忙碌,如被其他合法的傳輸占用。然而,對(duì)手可能會(huì)反復(fù)拒絕對(duì)合法控制器的網(wǎng)絡(luò)訪問(wèn),從而阻止系統(tǒng)運(yùn)行。因此,除非使用單獨(dú)的安全通道檢測(cè)到DoS攻擊并停止系統(tǒng)(或采取其他預(yù)防措施),否則建模的系統(tǒng)不滿足屬性2。
從操作角度來(lái)看,每個(gè)LC都可以在聲明受到攻擊之前實(shí)施有限數(shù)量的連續(xù)應(yīng)用層重傳。為了從建模角度解決這個(gè)問(wèn)題,當(dāng)應(yīng)用層重傳用盡時(shí),添加了發(fā)射器模型轉(zhuǎn)換到其他位置。如果將DoS攻擊限制為4個(gè)連續(xù)的通道訪問(wèn)拒絕,則可以滿足屬性2。如果沒(méi)有安全的通信通道或無(wú)法將DoS攻擊與網(wǎng)絡(luò)隔離,則可能無(wú)法立即緊急停止機(jī)器。
2)網(wǎng)絡(luò)流認(rèn)證:確保網(wǎng)絡(luò)流完整性的傳統(tǒng)加密技術(shù)依賴于使用消息認(rèn)證碼(Message Authentication Codes,MAC)對(duì)數(shù)據(jù)包進(jìn)行簽名,并可用于防御欺騙攻擊。在這種設(shè)置下,LC之間的每一次傳輸都由發(fā)送方使用密鑰簽名,并且簽名由接收方驗(yàn)證。因此,攻擊者無(wú)法篡改消息有效負(fù)載,否則會(huì)被檢測(cè)到。
從建模的角度來(lái)看,可將引入身份驗(yàn)證建模為在控制器模型中接收轉(zhuǎn)換的附加條件,在該轉(zhuǎn)換中,將接收到的有效負(fù)載與所需值進(jìn)行比較,即將有效負(fù)載的MAC部分與攻擊者無(wú)法更改(在修改的情況下)或生成(在欺騙攻擊的情況下)的秘鑰值進(jìn)行比較。驗(yàn)證傳輸不會(huì)影響ACK,因?yàn)樵趯AC添加到數(shù)據(jù)包有效負(fù)載的同時(shí),數(shù)據(jù)鏈路層負(fù)責(zé)ACK數(shù)據(jù)包。此外,攻擊者可能會(huì)竊聽(tīng)未加密的序列號(hào),該序列號(hào)是數(shù)據(jù)包幀的一部分,因此,可以代表不活動(dòng)的LC生成有效的ACK。同時(shí),即使使用認(rèn)證,也可能錯(cuò)誤地確認(rèn)了未送達(dá)的傳輸,這是數(shù)據(jù)鏈路層ACK已知的缺點(diǎn),可以通過(guò)應(yīng)用層ACK來(lái)緩解,所提出的建模技術(shù)可以用于對(duì)附加的已實(shí)現(xiàn)協(xié)議進(jìn)行建模。
考慮重構(gòu)工業(yè)氣動(dòng)機(jī)械手的完整物理實(shí)現(xiàn),該機(jī)械手具有以分布式方式控制的可變數(shù)量的模塊,每個(gè)模塊有一個(gè)本地控制器,本節(jié)展示了提出的框架在多種模塊配置(即2-DOF、3-DOF)上的有效性。
2自由度配置的氣動(dòng)工業(yè)機(jī)械手如圖3a所示。兩個(gè)雙作用氣缸(A和B)提供了平移自由度,而氣動(dòng)夾爪(C)提供工件的操作方式。所有的驅(qū)動(dòng)命令都是通過(guò)更新電子信號(hào)x p,x∈{a,b,c}發(fā)出的,該信號(hào)可以激活單穩(wěn)雙控氣動(dòng)閥門(mén),信號(hào)用x表示,而氣缸用X表示。氣缸A和氣缸B有兩個(gè)接近開(kāi)關(guān),可以感應(yīng)位置(即完全收回、完全伸出)。對(duì)應(yīng)于完全收回(原始)位置的信號(hào)表示為x0,而完全伸出(結(jié)束)位置的信號(hào)表示為x1。此外,系統(tǒng)還包含一個(gè)啟動(dòng)開(kāi)關(guān),其相應(yīng)信號(hào)由s t表示。
圖3 氣動(dòng)機(jī)械手配置
初始狀態(tài)下,氣缸A和B完全收回,并且氣動(dòng)夾爪C松開(kāi)。在這種狀態(tài)下,機(jī)械手已準(zhǔn)備好開(kāi)始其工作周期。通過(guò)按下啟動(dòng)開(kāi)關(guān)(s t=1)啟動(dòng)機(jī)械手的初始工作周期,完成后為全自動(dòng)操作。首先,氣缸B朝著工件pick位置延伸(驅(qū)動(dòng)命令bp=1),一旦氣缸B到達(dá)其末端位置(b1=1),則氣動(dòng)夾爪C抓?。╟p=1)??刂破鰾等待500 ms抓緊零件,然后氣缸B縮回(命令bp=0所致),一旦到達(dá)原始位置(b0=1),氣缸A伸出(命令ap=1),到達(dá)終點(diǎn)位置(a1=1)后,氣缸B向放置位置延伸(命令bp=1)。一旦到達(dá)其最終位置(b1=1),抓爪C釋放工件(命令cp=0)。500 ms后,氣缸B收回(bp=0,然后b0=1),之后氣缸A收回(ap=0,然后a0=1)。機(jī)械手返回初始狀態(tài),并自動(dòng)執(zhí)行下一個(gè)循環(huán)。
氣缸被建模為兩個(gè)狀態(tài)工廠模型,伸出和收回時(shí)間從試驗(yàn)測(cè)量獲得。圖4為所使用低成本ARM Cortex-M3控制器配備符合IEEE802.15.4標(biāo)準(zhǔn)收發(fā)器的10 000條消息的Tx-Rx和Rx-Ack時(shí)間延遲。
圖4 在支持IEEE 802.15.4的LC平臺(tái)上測(cè)量Tx-Rx和Rx-Ack時(shí)間
3自由度(3-DOF)工業(yè)氣動(dòng)機(jī)械手配置如圖3b所示。氣缸C提供的附加旋轉(zhuǎn)自由度會(huì)引入附加LC,并增加LC協(xié)調(diào)的復(fù)雜性。將工件浸入帶有清潔液的水池中,然后將其返回到pick位置,以供另一臺(tái)機(jī)器進(jìn)行進(jìn)一步處理,可以使用該配置來(lái)處理噴涂的工件。
圖3c顯示了該配置的物理設(shè)置以及具有相應(yīng)IEEE 802.15.4收發(fā)器的低成本基于ARM Cortex-M3的LC。盡管這些模型比2-DOF情況更復(fù)雜,但它們?cè)谡Z(yǔ)義上相似的。圖5a所示為事件時(shí)間,即對(duì)于一個(gè)樣本在“拾取-浸泡-搖動(dòng)-返回”運(yùn)行過(guò)程中,所有感測(cè)和驅(qū)動(dòng)信號(hào)的狀態(tài)。
攻擊者可以在工件返回到返回位置之前發(fā)送釋放工件的命令。圖5b顯示了在一個(gè)采樣周期運(yùn)行中獲取的信號(hào)時(shí)序,在該采樣周期中,會(huì)存惡意注入釋放夾爪的命令而釋放夾具,從而使工件掉落,這可能會(huì)對(duì)工件或機(jī)械手造成損壞。如果對(duì)傳輸進(jìn)行了驗(yàn)證,并相應(yīng)地調(diào)整了模型,則可以緩解此漏洞。通過(guò)包括IoT控制器完全兼容的mbed TLS(安全套接層)來(lái)應(yīng)用軟件安全補(bǔ)丁,在一個(gè)傳輸信號(hào)上簽署128位消息驗(yàn)證代碼,在使用的低成本基于ARM Cortex-M3的LC計(jì)算開(kāi)銷(xiāo)為100μs,在提供安全保證的同時(shí),相對(duì)于機(jī)械手的工作周期幾乎可以忽略。
從模型的角度來(lái)看,DoS攻擊不會(huì)造成死鎖,在物理過(guò)程停滯的同時(shí),網(wǎng)絡(luò)過(guò)程實(shí)際上是動(dòng)態(tài)鎖定的。圖5c顯示在一個(gè)示例運(yùn)行中獲取的信號(hào)定時(shí),通過(guò)在攻擊者的收發(fā)器上啟用載波傳輸來(lái)啟動(dòng)DoS,以便從浸泡池中拾取工件后阻塞消息。無(wú)線控制節(jié)點(diǎn)可以跟蹤不成功的介質(zhì)訪問(wèn)嘗試,并在檢測(cè)到DoS攻擊時(shí)立即停止操作。
圖5 驅(qū)動(dòng)信號(hào)
本研究開(kāi)發(fā)了一個(gè)框架來(lái)分析基于CIPN的分布式順序控制系統(tǒng)的安全性。由于在存在攻擊時(shí)CIPN不支持對(duì)形式安全屬性的驗(yàn)證,因此將控制器模型轉(zhuǎn)換為T(mén)PN,從而通過(guò)支持不確定的定時(shí)轉(zhuǎn)換以及轉(zhuǎn)換之間的不確定性選擇來(lái)固有地支持此驗(yàn)證,討論了如何將基于網(wǎng)絡(luò)的攻擊者的模型集成到非確定性的通信渠道模型中,并驗(yàn)證了存在攻擊時(shí)違反安全性的行為。此外,運(yùn)用驗(yàn)證結(jié)果來(lái)查明控制軟件實(shí)施中的漏洞,并提出安全補(bǔ)丁以減輕這些漏洞對(duì)控制性能的影響。