【編者按】工業(yè)機(jī)器人是智能工廠制造過程自動(dòng)化的核心,是支持汽車、飛機(jī)、加工食品、藥品等各類產(chǎn)品制造的最重要部件。隨著在后新冠疫情時(shí)代實(shí)現(xiàn)無人制造,能夠高精度重復(fù)執(zhí)行指定動(dòng)作的工業(yè)機(jī)器人的重要性也重新受到關(guān)注。然而,工業(yè)機(jī)器人是使用幾十年前設(shè)計(jì)的語言編程的。Trend Micro自2017年以來一直在對(duì)智能工廠進(jìn)行網(wǎng)絡(luò)安全研究,發(fā)現(xiàn)了定義工業(yè)機(jī)器人行為的“任務(wù)程序”漏洞以及“編程語言”中的設(shè)計(jì)缺陷。這些語言是幾十年前設(shè)計(jì)的遺留語言,但仍是一項(xiàng)在現(xiàn)代智能工廠中使用的技術(shù)。對(duì)此,Trend Micro從短期到長期的角度,分析了遺留語言中涉及的設(shè)計(jì)安全風(fēng)險(xiǎn),以及所有工業(yè)機(jī)器人用戶應(yīng)該采取的風(fēng)險(xiǎn)緩解措施。
一、用于移動(dòng)工業(yè)機(jī)器人編程語言的特殊性
( 一 )工業(yè)機(jī)器人支持工廠自動(dòng)化
工業(yè)機(jī)器人是一種代替人類在工廠內(nèi)進(jìn)行裝配、運(yùn)輸、加工等工作的機(jī)械設(shè)備。在當(dāng)今世界,滿足全球商業(yè)規(guī)模的生產(chǎn)已司空見慣。工業(yè)機(jī)器人是制造過程自動(dòng)化的基礎(chǔ),它可以重復(fù)執(zhí)行精確的工作并復(fù)制靈活的運(yùn)動(dòng)。
圖1 工業(yè)機(jī)器人
即使在新冠疫情大流行的情況下,對(duì)工業(yè)機(jī)器人的需求也在顯著增加。據(jù)《財(cái)富商業(yè)洞察》報(bào)告,2019年,全球工業(yè)機(jī)器人市場規(guī)模約為218.3億美元,預(yù)計(jì)到2027年將擴(kuò)大到664.8億美元。這一需求增加的原因是由于主要生產(chǎn)基地亞洲國家的勞動(dòng)力成本飆升,以及為了提高生產(chǎn)率而不斷投資于自動(dòng)化。此外,新冠疫情大流行帶來的實(shí)現(xiàn)最小或無身體接觸和無人服務(wù)的社會(huì)需求,也被認(rèn)為是對(duì)工業(yè)機(jī)器人需求不斷增長的主要驅(qū)動(dòng)力。工業(yè)機(jī)器人在制造過程自動(dòng)化中發(fā)揮著核心作用,在后新冠疫情時(shí)代將變得更加重要。
( 二 ) 工業(yè)機(jī)器人的運(yùn)動(dòng)以編程方式定義
從數(shù)字技術(shù)的角度來分析工業(yè)機(jī)器人。工業(yè)機(jī)器人是應(yīng)用于制造業(yè)的復(fù)雜信息物理系統(tǒng),是智能制造系統(tǒng)的關(guān)鍵組成部分。當(dāng)人們聽到機(jī)器人這個(gè)詞時(shí),通常首先會(huì)想到的是機(jī)械臂一樣的執(zhí)行器部分,但執(zhí)行器部分不是獨(dú)立運(yùn)動(dòng)的,它的運(yùn)動(dòng)由程序定義并由控制器控制。因此,工業(yè)機(jī)器人在放置后不會(huì)立即按預(yù)期運(yùn)動(dòng),而是按程序進(jìn)行所需的運(yùn)動(dòng)??梢哉f,工業(yè)機(jī)器人是一臺(tái)具有物理操作部分的大型計(jì)算機(jī)。
圖2 工業(yè)機(jī)器人運(yùn)動(dòng)機(jī)制
( 三 ) 自動(dòng)化程序用專有語言編寫
趨勢科技(Trend Micro)在與米蘭理工大學(xué)的聯(lián)合研究中,發(fā)現(xiàn)重工業(yè)巨頭ABB的一個(gè)應(yīng)用程序存在漏洞。該應(yīng)用程序是用ABB自己的編程語言編寫的,研究人員對(duì)此并不熟悉。驅(qū)動(dòng)工業(yè)機(jī)器人的自動(dòng)化程序使用的語言與用于創(chuàng)建網(wǎng)站和移動(dòng)應(yīng)用程序的主流編程語言完全不同。定義工業(yè)機(jī)器人自動(dòng)化行為的“任務(wù)程序”通常由領(lǐng)域?qū)<沂褂锰囟ㄓ诿總€(gè)機(jī)器人制造商的編程語言編寫。此外,每個(gè)機(jī)器人制造商都創(chuàng)建了特定于制造商的生態(tài)系統(tǒng),該生態(tài)系統(tǒng)只使用自己的編程語言、編程環(huán)境甚至工具。
例如,圖3是一個(gè)用大型重工業(yè)公司Kuka的原始語言“KRL”編寫的簡單代碼示例。在此例中,工業(yè)機(jī)器臂被指示在兩個(gè)點(diǎn)(位置1和位置2)之間移動(dòng)。圖4還顯示了為ABB平臺(tái)編寫的拾取放置程序??梢钥吹絻烧呤褂弥煌恼Z言結(jié)構(gòu)。
圖3 Kuka KRL在兩點(diǎn)之間循環(huán)移動(dòng)工業(yè)機(jī)器人手臂10次
圖4 ABB拾取放置程序仿真環(huán)境
在此研究項(xiàng)目中,研究人員的調(diào)查目標(biāo)是工業(yè)機(jī)器人領(lǐng)域的八家領(lǐng)先企業(yè)的平臺(tái),目標(biāo)制造商是ABB、Comau、Denso Wave、FANUC、川崎重工、Kuka、三菱電機(jī)和通用機(jī)器人。
在本研究中,Trend Micro不僅使用了包括自動(dòng)化邏輯在內(nèi)的任務(wù)程序分析等實(shí)證驗(yàn)證方法,還參考了8大工業(yè)機(jī)器人平臺(tái)的技術(shù)文件,分析了來自11個(gè)在線論壇的信息,從非技術(shù)的角度,對(duì)20名工業(yè)機(jī)器人領(lǐng)域的專家進(jìn)行了訪談。目的是強(qiáng)制考慮非技術(shù)問題,如行業(yè)特征和開發(fā)文化,這超越了特定程序的漏洞分析。因此,除了提高控制流程工程師的安全意識(shí)外,通過重新設(shè)計(jì)平臺(tái)和執(zhí)行重大升級(jí),可以更容易、更有效地修復(fù)漏洞。
技術(shù)本身是“遺留”的事實(shí)并不意味著它馬上就有安全漏洞。然而,每種技術(shù)的安全需求和開發(fā)過程都必須隨著環(huán)境變化帶來的威脅而變化。當(dāng)根據(jù)幾十年前的常識(shí)開發(fā)的技術(shù)被納入今天的智能工廠時(shí)會(huì)發(fā)生什么?本研究通過對(duì)現(xiàn)有編程語言的結(jié)構(gòu)分析,闡明了網(wǎng)絡(luò)安全在工業(yè)領(lǐng)域的當(dāng)前定位。
圖5 研究方法概述
二、利用任務(wù)程序漏洞的三種攻擊場景
( 一 ) 三種攻擊場景
Trend Micro驗(yàn)證了公共代碼庫(GitHub和在線社區(qū))提供的大約100個(gè)任務(wù)程序,可以確認(rèn)大多數(shù)代碼中存在“輸入值驗(yàn)證錯(cuò)誤”、“缺乏身份驗(yàn)證功能”和“遠(yuǎn)程代碼執(zhí)行”等漏洞。利用這些漏洞的三種攻擊場景包括:
1、通過網(wǎng)絡(luò)改變機(jī)器人操作:通過利用動(dòng)作服務(wù)器的有缺陷的輸入值驗(yàn)證和通過網(wǎng)絡(luò)傳輸無效的坐標(biāo)值數(shù)據(jù),使機(jī)器人執(zhí)行非預(yù)期的操作。
工業(yè)機(jī)器人的運(yùn)動(dòng)是以編程方式定義的,并將值輸入到控制器。這使得機(jī)器人可以通過網(wǎng)絡(luò)接收坐標(biāo)信息,從而調(diào)節(jié)機(jī)器人的運(yùn)動(dòng)。因此,為了確保物理安全,機(jī)器人的輸入必須始終完整。通常,為工業(yè)機(jī)器人設(shè)置安全保護(hù)區(qū)域,并且工業(yè)機(jī)器人的最大操作限制在該區(qū)域內(nèi)。因此,如果安全區(qū)域設(shè)置正確,區(qū)域外坐標(biāo)的輸入將無效。另一方面,在為安全區(qū)域的“內(nèi)部”指定無效坐標(biāo)的情況下,必須通過機(jī)器人的輸入值驗(yàn)證和門禁控制功能來確保輸入的完整性。
然而,在此次調(diào)查的程序中發(fā)現(xiàn)了“有缺陷的接入認(rèn)證”和“有缺陷的輸入值驗(yàn)證”。換言之,該任務(wù)程序不被配置為僅從特定伙伴接收命令,不判斷輸入坐標(biāo)信息的有效性,并且僅基于接收的數(shù)據(jù)來確定機(jī)器人的運(yùn)動(dòng)。通過利用這些漏洞,攻擊者可以偽造網(wǎng)絡(luò)數(shù)據(jù)包并隨意移動(dòng)目標(biāo)機(jī)器人。這種攻擊可能會(huì)影響制造質(zhì)量,并由于意外的機(jī)器人移動(dòng)而造成制造過程中的延遲。如果安全區(qū)配置不正確,造成的破壞會(huì)更嚴(yán)重。
以這種方式定義網(wǎng)絡(luò)行為的程序通常被用作運(yùn)動(dòng)服務(wù)器任務(wù)程序,用于驅(qū)動(dòng)聯(lián)網(wǎng)的工業(yè)機(jī)器人。大型項(xiàng)目,如ROS-Industrial軟件,廣泛使用運(yùn)動(dòng)服務(wù)器來提供各種OEM工業(yè)機(jī)器人通用的供應(yīng)商接口。
通常,有適當(dāng)?shù)木W(wǎng)絡(luò)級(jí)保護(hù),例如IP地址或MAC地址過濾,并且保證工業(yè)機(jī)器人僅從指定的控制器接收坐標(biāo)值。然而,如果任務(wù)程序沒有除上述網(wǎng)絡(luò)級(jí)別保護(hù)之外的機(jī)制來驗(yàn)證源,或者如果任務(wù)程序受到輸入值驗(yàn)證漏洞的影響,則只要接收到的坐標(biāo)值來自有效的IP地址或MAC地址,即使源被欺騙,它也將被自動(dòng)信任。無論哪種情況,這都使侵入本地網(wǎng)絡(luò)上的攻擊者很容易執(zhí)行攻擊方案。因此,攻擊者可以簡單地發(fā)送任意坐標(biāo),工業(yè)機(jī)器人將被相應(yīng)地驅(qū)動(dòng),從而導(dǎo)致產(chǎn)品質(zhì)量差,制造過程中出現(xiàn)延誤或停頓。此外,配置不當(dāng)?shù)陌踩珔^(qū)域可能會(huì)導(dǎo)致更嚴(yán)重的物理損壞。
2、通過機(jī)器人竊取信息:通過利用任務(wù)程序中的漏洞發(fā)起路徑遍歷攻擊來竊取機(jī)密信息。
此攻擊方案利用Web服務(wù)器上的任務(wù)程序中的路徑遍歷漏洞,執(zhí)行該程序以顯示制造商提供的工業(yè)機(jī)器人控制器上的坐標(biāo)信息。在這項(xiàng)研究中發(fā)現(xiàn)的程序是一款應(yīng)用程序,可以通過“ABB-Robot Apps Robot Studio”使用,并在工業(yè)機(jī)器人上作為網(wǎng)絡(luò)服務(wù)器運(yùn)行。它是用ABB自己的語言Rapid實(shí)現(xiàn)的。利用此漏洞,網(wǎng)絡(luò)上的攻擊者可以在工業(yè)機(jī)器人上創(chuàng)建包含潛在敏感數(shù)據(jù)的文件,如包含工業(yè)機(jī)器人操作時(shí)的坐標(biāo)信息的日志文件,并使用工業(yè)機(jī)器人的控制器泄露該文件。機(jī)密工業(yè)信息在地下市場上以非常高的價(jià)格交易,是網(wǎng)絡(luò)犯罪分子的主要目標(biāo)之一。
路徑遍歷是一種攻擊方法和漏洞,在該攻擊方法和漏洞中,有人試圖訪問不應(yīng)通過利用漏洞進(jìn)行訪問的目錄。此攻擊利用遵循樹結(jié)構(gòu)中指令的服務(wù)器規(guī)范,但在大多數(shù)情況下,存在允許開發(fā)人員意外訪問的代碼。
在注重安全的軟件開發(fā)中,總是假設(shè)“外部輸入是不可靠的”。因此,有必要事先驗(yàn)證服務(wù)器端的輸入值,以便不會(huì)通過開發(fā)人員意想不到的輸入執(zhí)行未經(jīng)授權(quán)的訪問。
3、生成有針對(duì)性、自傳播的惡意軟件:利用編程語言固有的網(wǎng)絡(luò)通信功能和代碼動(dòng)態(tài)加載功能,使任務(wù)程序充當(dāng)從外部來源接收惡意程序的下載器。此外,利用任務(wù)程序中有缺陷的輸入值驗(yàn)證來使工業(yè)機(jī)器人執(zhí)行與無效外部輸入相對(duì)應(yīng)的功能。通過這些組合,生成并執(zhí)行以用于工業(yè)機(jī)器人的編程語言編寫的自傳播惡意軟件。
因此,雖然工業(yè)機(jī)器人及其自動(dòng)化技術(shù)與運(yùn)行在Windows服務(wù)器上的傳統(tǒng)Web應(yīng)用程序完全不同,但也存在一些眾所周知的漏洞類型,如路徑遍歷和代碼注入,這意味著組織可能會(huì)感染病毒,也可能會(huì)成為惡意軟件的目標(biāo)。
( 二 ) 攻擊造成的損害
下圖展示了研究中所展示的攻擊場景和攻擊的影響。
圖6 三種攻擊場景及其影響
通過利用研究中確定的任務(wù)程序中的漏洞,網(wǎng)絡(luò)攻擊者可以物理破壞生產(chǎn)線,竊取機(jī)密信息,甚至竊取金錢。
如上所述,這些測試中使用的漏洞是在GitHub和在線社區(qū)的代碼中發(fā)現(xiàn)的。其中一些代碼是從新手程序員使用的手冊(cè)和編程參考等技術(shù)資料中摘錄的。此外,之前的研究表明,開源代碼中的漏洞會(huì)傳播并最終影響產(chǎn)品。因此,假設(shè)攻擊中的場景可以在制造車間重現(xiàn)。
三、機(jī)器人語言中的基本安全隱患
( 一 ) 基本安全風(fēng)險(xiǎn)
工業(yè)機(jī)器人的任務(wù)程序是用“幾十年前設(shè)計(jì)的專有語言”編寫的。從安全角度看,20年前的封閉工廠環(huán)境和現(xiàn)代智能技術(shù)創(chuàng)新環(huán)境是完全不同的。因此,編程語言發(fā)展時(shí)的安全標(biāo)準(zhǔn)很可能不符合今天的標(biāo)準(zhǔn)?;谶@一假設(shè),趨勢科技在本次調(diào)查中,分析了工業(yè)機(jī)器人行業(yè)八大廠商共100個(gè)用編程語言編寫的任務(wù)程序,試圖確定“語言設(shè)計(jì)本身的安全風(fēng)險(xiǎn)”。結(jié)果發(fā)現(xiàn),工業(yè)機(jī)器人的編程語言存在技術(shù)安全風(fēng)險(xiǎn),無需任何權(quán)限確認(rèn)即可無條件使用系統(tǒng)的基本功能。問題的實(shí)質(zhì)是,驅(qū)動(dòng)機(jī)器人所需的功能已經(jīng)實(shí)現(xiàn),但沒有機(jī)制來防止這些功能被惡意使用。
編程語言的規(guī)范高度依賴于平臺(tái)。工業(yè)機(jī)器人是一個(gè)復(fù)雜的網(wǎng)絡(luò)物理系統(tǒng),其中程序、控制器和驅(qū)動(dòng)部分密切協(xié)調(diào)工作。因此,不僅僅是編程語言的問題,更是平臺(tái)機(jī)器人控制器端的問題。
幾十年前,當(dāng)工業(yè)機(jī)器人的編程語言被設(shè)計(jì)出來時(shí),智能工廠的概念還不存在,封閉的工廠環(huán)境是常態(tài)。因此,該設(shè)計(jì)沒有考慮到來自外部位置的主動(dòng)攻擊者,也就不足為奇了。相比之下,智能手機(jī)等現(xiàn)代設(shè)計(jì)的系統(tǒng)在安全設(shè)計(jì)上假定了惡意攻擊。例如,在為Android開發(fā)應(yīng)用程序并用Java編程時(shí),需要一個(gè)明確的權(quán)限請(qǐng)求來訪問應(yīng)用程序本身沙箱之外的資源。因此,即使惡意開發(fā)者將包含惡意軟件的應(yīng)用偷偷植入手機(jī)應(yīng)用商店,也必須申請(qǐng)?jiān)S可才能使用惡意軟件操作應(yīng)用所需的麥克風(fēng)、網(wǎng)絡(luò)和其他系統(tǒng)資源。
這樣的權(quán)限設(shè)置對(duì)于工業(yè)機(jī)器人也是必要的。不過,目前對(duì)工業(yè)自動(dòng)化平臺(tái)還沒有這樣的要求,所有資源都是“扁平化”接入,任務(wù)程序可以使用超出其應(yīng)有權(quán)限范圍的低級(jí)資源。
工業(yè)機(jī)器人編程語言被用來定義機(jī)器人的運(yùn)動(dòng),但是軟件本身有更多的功能。這次研究的制造商專有編程語言不僅支持普通計(jì)算系統(tǒng)中的文件系統(tǒng)概念,而且還具有函數(shù)指針和動(dòng)態(tài)代碼讀取等功能。通過充分利用這些基本功能,甚至可以在機(jī)器人平臺(tái)上編寫惡意軟件。
( 二 ) 專有語言特有的安全風(fēng)險(xiǎn)
由于每種機(jī)器人語言的“獨(dú)特性”,也存在著安全風(fēng)險(xiǎn)。對(duì)于常見的編程語言,如C、C++、C#、Java、PHP、Python等,有一些代碼檢查器,例如靜態(tài)程序分析工具,可以檢測不安全的模式。另一方面,由于沒有針對(duì)每家公司的機(jī)器人編程語言的此類工具,安全檢查將很難實(shí)現(xiàn)自動(dòng)化。
工業(yè)機(jī)器人編程語言不像主流操作系統(tǒng)那樣基于通用的運(yùn)行或體系結(jié)構(gòu),而是基于每個(gè)制造商的平臺(tái),如機(jī)器人控制器等。出于這個(gè)原因,每個(gè)機(jī)器人供應(yīng)商還必須準(zhǔn)備其自己的專有編程語言和程序執(zhí)行運(yùn)行時(shí)所基于的環(huán)境。有基于實(shí)時(shí)操作系統(tǒng)(如RTOS)的編程語言和環(huán)境,但通常它們不是標(biāo)準(zhǔn)化的。此外,每種語言都有自己的語義,用來判斷源代碼中使用的變量和語句是否正常工作的標(biāo)準(zhǔn),這些語義可能與通用編程語言非常不同。事實(shí)上,在此次調(diào)查的一些語言沒有字符串操作或密碼操作等功能。
此外,這些類型的特征往往會(huì)限制用戶的選擇。由于工業(yè)機(jī)器人的編程環(huán)境是無法輕易替代的,因此用戶糾正這些設(shè)計(jì)缺陷并不容易,也不實(shí)用。此外,每家公司的語言不僅是當(dāng)前工業(yè)自動(dòng)化的核心,而且有很強(qiáng)的技術(shù)限定,這不可避免地增加了轉(zhuǎn)移到其他平臺(tái)的成本。因此,很有可能用戶將不得不選擇接受其使用機(jī)器人平臺(tái)的安全風(fēng)險(xiǎn)。
支持制造業(yè)的核心技術(shù)仍然存在網(wǎng)絡(luò)安全風(fēng)險(xiǎn)。這就是智能工廠面臨的現(xiàn)代困境。
四、以整個(gè)生態(tài)系統(tǒng)的“設(shè)計(jì)安全”為目標(biāo)
工廠環(huán)境傳統(tǒng)上是“封閉的”網(wǎng)絡(luò)空間。在這種環(huán)境中,只有在那里工作的人才會(huì)接觸工廠的設(shè)備,而不需要考慮與外界的網(wǎng)絡(luò)通信及其影響。作為本實(shí)證研究對(duì)象的工業(yè)機(jī)器人也是在同樣的前提下設(shè)計(jì)的。
然而,在當(dāng)今世界,即使在工廠環(huán)境中,網(wǎng)絡(luò)連接也在不斷發(fā)展。為了提高生產(chǎn)率和降低不良率,并在新冠疫情大流行期間保持員工安全和業(yè)務(wù)連續(xù)性,使用數(shù)字技術(shù)的智能制造流程將成為行業(yè)標(biāo)準(zhǔn)。同時(shí),工廠也將面臨著網(wǎng)絡(luò)攻擊的風(fēng)險(xiǎn)。軟件在智能工廠中無處不在,并與網(wǎng)絡(luò)相連。此外,不僅是用戶公司,還有系統(tǒng)集成商、顧問、工業(yè)機(jī)器人制造商等,都以一種復(fù)雜的方式參與了這類軟件的開發(fā)和供應(yīng)。因此,實(shí)現(xiàn)安全智慧工廠需要整個(gè)生態(tài)系統(tǒng)的努力。對(duì)于每個(gè)用戶、集成商和制造商來說,“制作安全的軟件”,從而“保證軟件的安全”是非常重要的。
( 一 ) 從短期到長期的角度實(shí)施風(fēng)險(xiǎn)緩解措施
本系列中提出的安全問題深深植根于工業(yè)機(jī)器人的基本技術(shù),使得制造商很難立即用另一種技術(shù)取代它或進(jìn)行糾正。因此,除了將保護(hù)現(xiàn)有環(huán)境作為一項(xiàng)短期措施外,建議涉及工業(yè)機(jī)器人的利益攸關(guān)方應(yīng)逐步和系統(tǒng)地實(shí)施風(fēng)險(xiǎn)緩解措施,將未來的智能作為一項(xiàng)中長期措施。下圖顯示了趨勢科技推薦的特定于涉眾的循序漸進(jìn)的風(fēng)險(xiǎn)緩解措施。為了讓智能工廠更安全,現(xiàn)場工程師、系統(tǒng)集成商和工業(yè)機(jī)器人制造商實(shí)施各自的安全措施是很重要的。
圖7 風(fēng)險(xiǎn)緩解措施
1、短期措施
實(shí)施短期措施的關(guān)鍵參與者是現(xiàn)場的控制過程工程師和實(shí)際編寫、實(shí)施和操作任務(wù)程序的系統(tǒng)集成商。用戶端的現(xiàn)場工程師必須確保執(zhí)行網(wǎng)絡(luò)分段,以減少工業(yè)機(jī)器人的任務(wù)程序被濫用時(shí)造成的危害。該操作可以顯著降低網(wǎng)絡(luò)相關(guān)的安全風(fēng)險(xiǎn)。除了這些基本的安全措施外,還建議對(duì)網(wǎng)絡(luò)和端點(diǎn)進(jìn)行保護(hù),以將容易受到惡意代碼攻擊或感染惡意代碼的風(fēng)險(xiǎn)降至最低。此外安全的編碼實(shí)踐對(duì)用戶來說也是必不可少的。如果是與系統(tǒng)集成商一起進(jìn)行開發(fā),請(qǐng)嘗試與他們共享類似的安全策略。源代碼審查、錯(cuò)誤修復(fù)和創(chuàng)建適當(dāng)?shù)脑创a控制過程都是基本和有效的措施。
2、中期措施
除了上述短期措施外,工業(yè)機(jī)器人編程語言的安全庫可以作為中期措施,以保護(hù)新環(huán)境。例如,安全庫包括加密庫。在這個(gè)階段,關(guān)鍵的參與者是系統(tǒng)集成商和工業(yè)機(jī)器人制造商。通過在高級(jí)開發(fā)中實(shí)現(xiàn)這樣的安全措施,現(xiàn)場開發(fā)人員可以輕松實(shí)現(xiàn)輸入值驗(yàn)證和身份驗(yàn)證功能,而無需花費(fèi)時(shí)間添加新的流程。
此外,系統(tǒng)集成商和工業(yè)機(jī)器人制造商應(yīng)該實(shí)現(xiàn)運(yùn)動(dòng)服務(wù)器參考。通過實(shí)現(xiàn)這樣的引用,開發(fā)人員不必逐個(gè)檢查運(yùn)動(dòng)數(shù)據(jù)處理代碼中的缺陷。這種參考實(shí)現(xiàn)的典型例子是三菱電機(jī)的本機(jī)運(yùn)動(dòng)服務(wù)器和Kuka的EKI。此外,作為針對(duì)源代碼評(píng)審中發(fā)現(xiàn)的漏洞對(duì)策,系統(tǒng)集成商應(yīng)該考慮為可能包含漏洞的任務(wù)程序提供主動(dòng)補(bǔ)丁。
3、長期措施
在未來,制造商的努力對(duì)于確??删幊坦I(yè)機(jī)器人的設(shè)計(jì)安全是至關(guān)重要的。例如,在一個(gè)工業(yè)機(jī)器人平臺(tái)控制器中,將安全功能如身份驗(yàn)證、訪問控制、加密等,整合到編程語言中是至關(guān)重要的。工業(yè)機(jī)器人控制器中的運(yùn)行,必須實(shí)現(xiàn)細(xì)粒度的特權(quán)分離,以利用授權(quán)系統(tǒng)。減少漏洞和惡意代碼影響的一種有效方法是將函數(shù)的執(zhí)行限制在特權(quán)指令上。最重要的是,開發(fā)者還需要讓其他人提前知道這些使用限制。
最后,代碼簽名是確保工業(yè)機(jī)器的代碼不被篡改的唯一方法。代碼簽名并非易事,但使用此方法可以確保代碼與原始開發(fā)人員編寫的代碼完全相同。在工廠設(shè)備中實(shí)施代碼簽名還有很長的路要走,但如果市場需求繼續(xù)推動(dòng)有利于集成和靈活性的創(chuàng)新,應(yīng)該可以在更短的周期內(nèi)實(shí)現(xiàn)更動(dòng)態(tài)的自動(dòng)化代碼實(shí)施。這應(yīng)該會(huì)加快開發(fā)速度,減少手動(dòng)檢查程序所花費(fèi)的時(shí)間。安全編寫的任務(wù)程序也減少了創(chuàng)建漏洞的機(jī)會(huì)。這反過來又降低了可編程工業(yè)機(jī)器暴露于外部攻擊的風(fēng)險(xiǎn)。事實(shí)上,已經(jīng)有許多針對(duì)通用編程語言的安全意識(shí)編碼準(zhǔn)則。隨著IT和OT集成的進(jìn)展,在未來十年,工業(yè)工程行業(yè)可能會(huì)面臨與IT軟件行業(yè)今天所面臨的相同的挑戰(zhàn)。
( 二 ) 以整個(gè)生態(tài)系統(tǒng)的“設(shè)計(jì)安全”為目標(biāo)
隨著制造商采用更多智能工廠技術(shù),其互聯(lián)性使他們面臨更多的網(wǎng)絡(luò)攻擊,防備缺口日益突出。工廠環(huán)境中的網(wǎng)絡(luò)安全措施正在轉(zhuǎn)變。至少在10年內(nèi),承擔(dān)與外部世界網(wǎng)絡(luò)連接的智能工廠將變得司空見慣。屆時(shí),工業(yè)自動(dòng)化行業(yè)很可能面臨與現(xiàn)代IT軟件行業(yè)同樣的挑戰(zhàn)。
通過本系列的四個(gè)部分,從網(wǎng)絡(luò)安全的角度分析了工業(yè)機(jī)器人的任務(wù)程序和編程語言,闡明了現(xiàn)代工業(yè)機(jī)器人面臨的問題。此時(shí),盡管很難采取所有可能的措施來解決調(diào)查中確定的安全問題,但制造商、集成商和用戶可以共同努力將這些風(fēng)險(xiǎn)降低到可以接受的水平。
( 三 ) 在智能工廠中建立網(wǎng)絡(luò)彈性的方法
● 制造企業(yè)應(yīng)投資于一項(xiàng)全面的網(wǎng)絡(luò)管理計(jì)劃,該計(jì)劃擴(kuò)展到整個(gè)企業(yè)(IT和OT),以識(shí)別、保護(hù)、響應(yīng)和從網(wǎng)絡(luò)攻擊中恢復(fù);
● 執(zhí)行網(wǎng)絡(luò)安全成熟度評(píng)估:評(píng)估應(yīng)包括OT環(huán)境和業(yè)務(wù)網(wǎng)絡(luò),并應(yīng)包括先進(jìn)制造網(wǎng)絡(luò)風(fēng)險(xiǎn);
● 建立一個(gè)考慮OT的正式網(wǎng)絡(luò)安全治理計(jì)劃:該計(jì)劃應(yīng)提供一致性,并推廣到全球制造地點(diǎn);
● 根據(jù)由此產(chǎn)生的風(fēng)險(xiǎn)狀況確定行動(dòng)的優(yōu)先順序:使用網(wǎng)絡(luò)安全成熟度評(píng)估的結(jié)果來創(chuàng)建可與執(zhí)行領(lǐng)導(dǎo)層共享的戰(zhàn)略和路線圖;
● 內(nèi)置安全性:由于許多智能工廠仍處于規(guī)劃和早期階段,現(xiàn)在是將這些項(xiàng)目與網(wǎng)絡(luò)風(fēng)險(xiǎn)計(jì)劃相協(xié)調(diào)的時(shí)候了。
智能工廠的安全性需要大量的規(guī)劃,最好從設(shè)計(jì)階段開始。制造商必須從一開始就為智能工廠需要的大量數(shù)據(jù)做好準(zhǔn)備。這意味著要事先計(jì)劃使用的設(shè)備類型,評(píng)估要采用的通信協(xié)議,甚至準(zhǔn)備好要遵循的違規(guī)相關(guān)的標(biāo)準(zhǔn)操作程序(sop),以及其他考慮事項(xiàng)。制造商還必須與專家合作,保護(hù)和捍衛(wèi)設(shè)備、網(wǎng)絡(luò)、數(shù)據(jù)以及驅(qū)動(dòng)物聯(lián)網(wǎng)智能制造系統(tǒng)的軟件解決方案和應(yīng)用程序。
智能制造的潛力是巨大的,不應(yīng)受到安全疑慮的阻礙。在創(chuàng)建或改造智能工廠時(shí),行業(yè)領(lǐng)導(dǎo)者必須建立信任。解決方案必須經(jīng)過仔細(xì)、精確的選擇和認(rèn)可,才能獲得優(yōu)異的性能。由于制造設(shè)備的生命周期很長,因此選擇的解決方案必須具有內(nèi)置的靈活性和先進(jìn)的更新解決方案,以防止當(dāng)前和未來的威脅,這一點(diǎn)是至關(guān)重要的。
參考資料:
【1】https://www.trendmicro.com/us/iot-security/news/6719/The_security_dilemma_of_smart_factories_Part_1_Specificity_of_the_programming_languages_used_to_move_industrial_robots
【2】https://www.trendmicro.com/us/iot-security/news/6762/The_security_dilemma_of_smart_factories_Part_2_Three_attack_scenarios_that_exploit_task_program_vulnerabilities
【3】https://www.trendmicro.com/us/iot-security/news/6788/The_Security_dilemma_of_smart_factories_Part_3_Fundamental_security_risks_in_robot_languages
【4】https://www.trendmicro.com/us/iot-security/news/6797/The_dilemma_of_smart_factories_Part_4_Aiming_for_security_by_design_for_the_entire_ecosystem
【5】https://iiot-world.com/ics-security/cybersecurity/security-threats-and-risks-in-smart-factories/
來源:關(guān)鍵基礎(chǔ)設(shè)施安全應(yīng)急響應(yīng)中心 作者 | 天地和興工業(yè)網(wǎng)絡(luò)安全研究院