《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > PLC鑰匙開關(guān)監(jiān)控確保關(guān)鍵系統(tǒng)更安全

PLC鑰匙開關(guān)監(jiān)控確保關(guān)鍵系統(tǒng)更安全

2021-08-28
來源: 網(wǎng)絡(luò)安全應(yīng)急技術(shù)國家工程實驗室
關(guān)鍵詞: PLC鑰匙

  可編程邏輯控制器(PLC)的鑰匙開關(guān)或許不為人熟知,但其對IT/OT安全有重要的意義。不同品牌的PLC鑰匙開關(guān)擁有不同的位置,用來進(jìn)行不同的操作和場景設(shè)置。當(dāng)鑰匙開關(guān)位于權(quán)限較高的位置時,面臨被攻擊的風(fēng)險就越高。因此保持對鑰匙開關(guān)位置的監(jiān)控是必要的,當(dāng)PLC鑰匙開關(guān)在操作過程中脫離正常狀態(tài)時,監(jiān)控系統(tǒng)將發(fā)出警報提示操作人員。本文將首先介紹PLC鑰匙開關(guān)處于不同位置時,各種模式的差別,之后簡單介紹PLC鑰匙開關(guān)狀態(tài)檢測,接下來以Allen Bradley PLC為例,介紹其鑰匙開關(guān)邏輯檢測,最后介紹使用RSLinx和預(yù)定義屬性的鑰匙開關(guān)功能。本文編譯自Dragos 今年8月發(fā)布的一篇博客,在文章末尾將附上原文鏈接。

  可編程邏輯控制器(PLC)和安全儀表系統(tǒng)(SIS)控制器歷來包括一個外部開關(guān),它們通常以鑰匙的形式存在,用于執(zhí)行維護(hù)和故障排除。對于維護(hù)這些系統(tǒng)的自動化工程師和技術(shù)人員來說,鑰匙開關(guān)已變得司空見慣,因為這些開關(guān)會影響底層流程,他們清楚其在整個設(shè)備操作中的重要性。

  然而,除了控制系統(tǒng)和自動化支持人員之外,這些開關(guān)的位置對于操作人員來說相對未知或在很大程度上沒有考慮。這個情況一直持續(xù)到2017年,當(dāng)時XENOTIME活動小組破壞了施耐德電氣的Triconex SIS控制器。TRISIS惡意軟件之所以能部署到SIS控制器,是因為控制器的鑰匙開關(guān)處于“程序”模式,允許從受感染的工程工作站上傳和下載項目文件。如果鑰匙開關(guān)處于“運(yùn)行”模式,則TRISIS惡意軟件攻擊不會成功。

  鑰匙開關(guān)位置的細(xì)微差別

  在Triconix TriStation手冊中,Triconix使用四種不同的鑰匙開關(guān)位置,以允許不同的操作模式和不同的場景設(shè)置。

  運(yùn)行:具有只讀功能的正常操作。主處理器執(zhí)行先前加載的控制程序。拒絕通過TriStation、Modbus主站或外部主機(jī)修改程序變量的嘗試。但是,控制程序可能會調(diào)用門控訪問功能,以在指定的時間窗口內(nèi)啟用外部主機(jī)寫入。

  程序:用于程序加載和檢出。允許從TriStation平臺控制Tricon系統(tǒng),包括全部下載和下載更改。它還允許外部主機(jī)寫入程序變量。

  停止:停止讀取輸入,強(qiáng)制非保留數(shù)字和模擬輸出為0,并停止控制程序。(保留輸出會保留鑰匙開關(guān)轉(zhuǎn)到STOP位置之前的值。)STOP設(shè)置可用于安裝和維護(hù)過程相關(guān)設(shè)備,但不是Tricon服務(wù)所必需的。

  遠(yuǎn)程:允許TriStation和外部主機(jī)寫入程序變量。(不允許通過TriStation下載全部和下載更改。)不允許修改程序邏輯。

  了解Triconix控制器的細(xì)微差別有助于了解在正常操作期間應(yīng)使用哪些位置。例如,“遠(yuǎn)程”并不意味著可以上傳或下載項目文件,但控制器會接受來自外部源的程序?qū)懭?,這可能會被濫用。

  其他控制器制造商,例如Rockwell,在Logix系列PLC上也使用鑰匙開關(guān)。Control LogixPLC鑰匙開關(guān)具有三個物理位置,但總共有五種操作模式。關(guān)鍵開關(guān)位置包括“運(yùn)行”、“遠(yuǎn)程”和“程序”。在“遠(yuǎn)程”位置,在工程工作站上使用Rockwell Studio的人員可以將模式更改為“遠(yuǎn)程運(yùn)行”、“遠(yuǎn)程程序”或“遠(yuǎn)程測試”。

  Rockwell提供的這些設(shè)置的詳細(xì)信息如下:

  運(yùn)行模式:控制器正在主動控制過程/機(jī)器。在運(yùn)行模式下,無法在Logix Designer應(yīng)用程序中編輯項目。

  遠(yuǎn)程運(yùn)行模式:此模式與運(yùn)行模式相同,但可以在線編輯項目并通過Logix Designer應(yīng)用程序更改控制器模式。

  遠(yuǎn)程程序模式:此模式的功能類似于程序模式,但可以通過Logix Designer應(yīng)用程序更改控制器模式。

  遠(yuǎn)程測試模式:此控制器模式執(zhí)行代碼,但不控制I/O??梢酝ㄟ^Logix Designer應(yīng)用程序在線編輯項目并更改控制器模式。輸出模塊被命令進(jìn)入它們的程序模式狀態(tài)(開、關(guān)或保持)。

  程序模式:此控制器模式不執(zhí)行代碼或控制I/O,但可以進(jìn)行編輯操作。輸出模塊被命令進(jìn)入它們的最后狀態(tài)(開、關(guān)或保持)。在此位置,無法通過Logix Designer應(yīng)用程序更改控制器模式。

  同樣,如Rockwell文檔中所述:“將鑰匙開關(guān)從”運(yùn)行“移動到”遠(yuǎn)程“會使控制器處于遠(yuǎn)程運(yùn)行模式,而將開關(guān)從”程序“移動到”遠(yuǎn)程“會使控制器處于遠(yuǎn)程程序模式。不能單獨通過鑰匙開關(guān)選擇遠(yuǎn)程測試模式,它只能通過Logix Designer應(yīng)用程序使用?!睂τ诓皇煜さ讓硬僮?、從程序切換到遠(yuǎn)程并期望PLC代碼自動執(zhí)行的技術(shù)人員來說,這個小細(xì)節(jié)會引起很多混亂。必須將密鑰更改為“運(yùn)行”,然后返回到“遠(yuǎn)程”以執(zhí)行代碼,而無需通過Logix Designer登錄并手動更改模式。

  PLC鑰匙開關(guān)狀態(tài)檢測

  一些供應(yīng)商通過公開的邏輯指令利用PLC數(shù)據(jù)采集已有一段時間,就像Rockwell PLC的情況一樣,它通過模式變量檢測鑰匙開關(guān)的狀態(tài)。

  工程師必須從項目軟件的設(shè)計開始就包含邏輯,以便在發(fā)生特定操作(例如鑰匙開關(guān)的位置轉(zhuǎn)換)時通知操作人員。如果操作員可以在HMI上監(jiān)控這些操作,他們就可以立即通知相關(guān)人員有人可能正在修改PLC邏輯。將操作作為檢測的一部分有助于在將邏輯下載到PLC之前預(yù)測響應(yīng)和動作。

  在PLC上創(chuàng)建檢測邏輯的另一個優(yōu)點是所有資源都直接從CPU集成。無需使用項目已有的額外資源,如新界面或特殊軟件。該檢測邏輯不復(fù)雜,不會對PLC的性能、測試和開發(fā)造成任何問題。

  在創(chuàng)建這些檢測功能時,工程師應(yīng)考慮將它們嵌入到功能塊中并添加特殊的安全例程。這樣塊密碼保護(hù)可以增強(qiáng)塊的完整性。以Rockwell為例,其PLC運(yùn)行時邏輯無法被操縱。

  Allen Bradley PLC鑰匙開關(guān)邏輯檢測

  Allen Bradley PLC能夠通過提供大量內(nèi)部狀態(tài)數(shù)據(jù)來監(jiān)控控制器的運(yùn)行狀況。需要一條獲取系統(tǒng)值(GSV)指令才能從控制器中提取信息并創(chuàng)建控制器設(shè)備對象的狀態(tài)位組合,以反映鑰匙開關(guān)的位置。

  在HMI端將警報配置為自清除或保留。警報設(shè)置和配置應(yīng)與運(yùn)營團(tuán)隊討論,并根據(jù)底層流程的必要性進(jìn)行評估,因為并非所有警報都是關(guān)鍵的或能夠?qū)е铝鞒掏V埂?/p>

  該功能的目的是將被視為警報的相關(guān)狀態(tài)發(fā)送到HMI,以及檢測鑰匙處于運(yùn)行位置時的運(yùn)行狀態(tài),如圖1所示。

  圖1 PLC運(yùn)行模式邏輯檢測

  值得一提的是不要因額外的警報/信息而導(dǎo)致HMI上的警報疲勞將操作忽略。帶有相關(guān)信息的警報越少,操作端的響應(yīng)就越好。根據(jù)邏輯提出的警告有:

  程序:這意味著PLC執(zhí)行已停止,PLC編輯功能可用。當(dāng)處于遠(yuǎn)程程序模式時,狀態(tài)也會升高。無論是哪種狀態(tài),都有可能改變邏輯的風(fēng)險。圖2顯示了程序模式邏輯狀態(tài)檢測。

  圖2 PLC程序模式邏輯檢測

  遠(yuǎn)程:這意味著PLC正在運(yùn)行,具有遠(yuǎn)程在線編輯或下載功能。這種狀態(tài)是最容易受到攻擊的,因為PLC可以控制實時操作,并且系統(tǒng)可能會在沒有任何通知的情況下發(fā)生中斷。圖3顯示了遠(yuǎn)程模式的邏輯檢測。

  圖3 PLC遠(yuǎn)程模式邏輯檢測

  但任何邏輯都可以被篡改和禁用。這就存在一個問題:Add On(封裝代碼的功能塊)可以被攻擊者停用嗎?也許是的。然而,通知這個潛在的惡意活動的操作的一個方法是使用添加的參數(shù)將EnableIn作為警報。如果進(jìn)程和操作允許,該參數(shù)還可用于鎖定其他設(shè)備。對于這種情況,不需要額外的邏輯,因為標(biāo)簽是嵌入式邏輯的一部分。

  圖4 功能塊不可用,HMI上的警報檢測

  使用RSLinx和預(yù)定義屬性的鑰匙開關(guān)功能

  Allen Bradley還使用了預(yù)定義屬性的診斷變量,這些屬性被識別為@。這些標(biāo)簽通過RSLinx來檢測PLC的狀態(tài)。但是,在實現(xiàn)上也存在差異,例如,如果不使用Factory Talk,PLC邏輯和HMI就會發(fā)生變化。圖5顯示了RSLinx從PLC獲得的預(yù)定義屬性的列表。

  圖5 帶有PLC預(yù)定義屬性列表的RSLInx幫助頁面

  如果與HMI的連接是FactoryTalk,則它們之間的通信直接通過Factory TalkLinx完成,標(biāo)簽位于PLC的診斷標(biāo)簽上。另一方面,如果HMI的品牌與Rockwell不同,則必須使用DDE或OPC經(jīng)典(OPCDA)通信主題通過OPC服務(wù)器(例如RSLinx classic)建立此連接。例如,如果正在使用Wonderware Intouch HMI,則需要DDE主題進(jìn)行連接。但是,不建議將RSLinx classic用于具有大量數(shù)據(jù)傳輸?shù)膽?yīng)用程序。

  例如,@Mode是預(yù)定義屬性,可用于以字符串格式顯示多狀態(tài)鑰匙開關(guān)狀態(tài)。這迫使用戶通過開發(fā)腳本和/或宏在HMI端創(chuàng)建自定義代碼,在檢測到遠(yuǎn)程和程序模式時生成警報。從工程和安全角度來看,應(yīng)盡量減少在HMI上使用代碼。HMI項目中的腳本和宏比PLC邏輯更容易訪問,而且它們也更容易從內(nèi)部實體進(jìn)行操作,這樣就不會在系統(tǒng)上發(fā)出警報。

  圖6顯示了從Wonderware客戶端HMI監(jiān)控鑰匙開關(guān)。PLC邏輯和RSLinx預(yù)定義屬性的組合用于生成警報和狀態(tài)。此外,還利用預(yù)定義屬性來使用字符值顯示鑰匙的位置。在此示例中,警報配置為自清除,Wonderware Intouch和PLC之間的通信使用DDE主題完成。

  圖6 HMI遠(yuǎn)程模式狀態(tài)檢測示例

  圖7是使用PLC邏輯和Factory talk Client HMI上的預(yù)定義屬性來監(jiān)控鑰匙開關(guān)的示例。在此示例中,通信是使用Factory Talk Linx本地完成的,并且警報配置為保持性。

  圖7 HMI程序模式狀態(tài)檢測示例

  結(jié)論

  在未建立鑰匙開關(guān)監(jiān)控時,開發(fā)PLC程序的技術(shù)人員和工程師必須意識到存在的風(fēng)險。工程師應(yīng)該了解PLC及其通信可以帶來的內(nèi)在能力,以幫助安全運(yùn)營中心(SOC)團(tuán)隊對鑰匙狀態(tài)的監(jiān)控,以及使用普渡模型的1級和2級設(shè)備工廠車間的運(yùn)營。這樣操作人員可以隨時了解他們的關(guān)鍵設(shè)備狀態(tài),而不必等待IT/OT SOC團(tuán)隊通知他們。如果操作人員知道工廠維護(hù)窗口的狀態(tài),當(dāng)關(guān)鍵的PLC鑰匙開關(guān)在操作過程中脫離正常狀態(tài)時,他們可以預(yù)測操作并向事件響應(yīng)團(tuán)隊發(fā)出警報。

  盡管存在多種檢測選項,它們看起來很容易實現(xiàn),但工程師必須始終分析利弊,并在可能的情況下嘗試實現(xiàn)PLC中的功能,這一點至關(guān)重要。此外,這些功能應(yīng)該應(yīng)用在與控制程序分開的專用安全程序中。在PLC中擁有這些功能避免了對PLC外部(例如HMI內(nèi)部)的附加通信軟件和邏輯開發(fā)的依賴。




電子技術(shù)圖片.png

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。