楊 鑫,王啟蒙,陸超杰,朱逸廷,陶 松
(1.國核自儀系統(tǒng)工程有限公司,上海 201100;2.烽臺科技(北京)有限公司,北京 100138)
隨著工業(yè)物聯(lián)網(wǎng)(IIoT)的出現(xiàn),傳統(tǒng)的自動化系統(tǒng)景觀正在發(fā)生重大變化。雖然IIoT 提供了緊湊的傳感、開放的網(wǎng)絡(luò)、設(shè)備的無縫連接和對第三方應(yīng)用的支持,但它也開放了傳統(tǒng)的工業(yè)自動化架構(gòu),它被認(rèn)為是工業(yè)4.0 的主要推動者[1]。這意味著傳統(tǒng)的工業(yè)自動化系統(tǒng)具有基于ISA 95 的分層架構(gòu),不同的層在功能上分為不同的組織體系,如現(xiàn)場級控制、監(jiān)督控制、實時優(yōu)化、企業(yè)級層[2]。這種開放使得執(zhí)行工廠范圍的控制成為可能,并有助于跨生產(chǎn)線聚合信息,但它也危及整個系統(tǒng)的安全,因為工廠范圍的信息可跨不同的平臺、硬件和服務(wù)獲得。因此,保護(hù)此類系統(tǒng)勢在必行。在這種情況下,雖然IT 安全更多與信息完整性和對信息完整性的攻擊相關(guān),但運營技術(shù)安全仍處于起步階段[3]。在工業(yè)4.0 體系中,工業(yè)自動化系統(tǒng)需要OT 安全的輕量級安全機制。本文的目標(biāo)是為工業(yè)自動化系統(tǒng)提出一種基于工控的安全機制,構(gòu)建一種輕量級SCADA 系統(tǒng)。
通常,可編程邏輯控制器(PLC)是實施現(xiàn)場級控制動作的主力。SCADA 主要實現(xiàn)工業(yè)現(xiàn)場監(jiān)控和數(shù)據(jù)采集。SCADA 軟件有助于將信息從對象發(fā)送到計算機,并幫助員工分析數(shù)據(jù)以做出重要決策。SCADA 系統(tǒng)主要用于各種復(fù)雜的工業(yè)場景,如電力能源、供熱供水等領(lǐng)域[4-5]。
可編程邏輯控制器(PLC)將從與之相連的設(shè)備獲取輸入,并對數(shù)據(jù)進(jìn)行處理。按照輸入?yún)?shù)中傳遞的指令生成輸出。PLC 將始終監(jiān)控輸入和輸出數(shù)據(jù),并記錄處理時間和數(shù)據(jù),如生產(chǎn)能力、溫度、啟動、停止過程,如果出現(xiàn)故障,將觸發(fā)警報。
分布式控制系統(tǒng)[1](DCS)是一種完全計算機化的控制系統(tǒng),用于處理帶有多個控制回路的工廠。該DCS 將嘗試與具有控制器的系統(tǒng)連接,即集中控制。它可以位于中央控制室或系統(tǒng)內(nèi)部。DCS 的目的主要是降低安裝成本以及數(shù)據(jù)恢復(fù)的成本,并通過建立與工廠的遠(yuǎn)程會話來幫助工廠控制功能的本地化。不僅如此,DCS 系統(tǒng)的設(shè)計思路還幫助行業(yè)創(chuàng)建了具有安全功能的大型系統(tǒng)。它將本地系統(tǒng)和集中式系統(tǒng)集成,大大降低了集成風(fēng)險。如今,SCADA 和DCS 的工作方式相同,但DCS 主要用于系統(tǒng)安全性要求更高且無法遠(yuǎn)程訪問的情況。
遠(yuǎn)程終端單元(RTU)是微處理器,它在DCS 或SCADA 之間建立通信。RTU 主要監(jiān)控傳感器設(shè)備或現(xiàn)場設(shè)備以及發(fā)送到中央監(jiān)控系統(tǒng)的參數(shù),它與軟件連接,通過首選通信協(xié)議接收輸入數(shù)據(jù)和輸出數(shù)據(jù),以了解是否需要排除故障。
人機界面可幫助我們監(jiān)控和顯示系統(tǒng)的狀態(tài)。有許多因素會影響機器的運行,如溫度、壓力、液體的流量等。通過控制方法可查看在控制過程中是否保持理想溫度。HMI 用于控制機器,例如,打開機器中使用的任何電機或電磁閥,通過圖形化的手動開關(guān)完成。也可以在HMI 中監(jiān)控報警趨勢,在大多數(shù)情況下,HMI 與PLC 連接,顯示PLC 數(shù)據(jù)信息,并向PLC 提供輸入[6]。SCADA 體系結(jié)構(gòu)如圖1 所示。
圖1 SCADA 體系結(jié)構(gòu)
該架構(gòu)是SCADA 系統(tǒng)的一般結(jié)構(gòu),其中,SCADA 處于較高層次,現(xiàn)場設(shè)備被視為較低層次。DCS 能夠存儲生成的數(shù)據(jù)。PLC 將作為現(xiàn)場設(shè)備的控制器,遵循ISA 95架構(gòu)[7]。
SCADA 系統(tǒng)[1]是監(jiān)控操作的關(guān)鍵操作機制。該系統(tǒng)實現(xiàn)了完全自動化,通過具有標(biāo)準(zhǔn)協(xié)議的機制遠(yuǎn)程訪問本地控制模塊,從不同位置進(jìn)行在線處理操作。本文描述了安全性在SCADA 系統(tǒng)中的實現(xiàn)。Raspberry Pi 被添加到系統(tǒng)中,執(zhí)行防火墻操作,保護(hù)系統(tǒng)免受咨詢攻擊。
Raspberry Pi 是由Raspberry Pi 基金會在英國開發(fā)的一系列小型單板計算機,旨在促進(jìn)學(xué)校和發(fā)展中國家的基礎(chǔ)計算機科學(xué)教學(xué)。Raspberry Pi 是一種可配置板,尺寸較小,成本較低。我們將為該Raspberry Pi 安裝內(nèi)部操作系統(tǒng),并使用Ubuntu mate 或Raspbian 操作系統(tǒng)來實現(xiàn)所需功能。樹莓派擁有一些特殊的功能,如內(nèi)置防火墻,出于安全目的,它將被激活。防火墻的設(shè)置方式應(yīng)使其能夠監(jiān)控相關(guān)日志。SPE 是使用PN800 協(xié)議運行的系統(tǒng)軟件,而UC 是系統(tǒng)的PLC。如圖2 所示,服務(wù)器將由使用Modbus 協(xié)議的DCS 模擬器組成。
圖2 系統(tǒng)架構(gòu)
SPE 是軟件工具,我們將在其中執(zhí)行PLC 的工程設(shè)計,例如流程應(yīng)該如何運行[6]。它提供了一個平臺,可以管理來自多個來源的數(shù)據(jù),如果在某一點進(jìn)行了更改,那么它會在整個系統(tǒng)中反映這些更改。它還縮短了架構(gòu)準(zhǔn)備時間,并為工程平臺提供了工程、配置、安全、通信、HMI 系統(tǒng)所需的功能。
TWM 作為服務(wù)器工作的模擬器工具,將幫助我們以更快的速度檢索數(shù)據(jù)。該工具還支持使用HMI,可以進(jìn)行多種操作。它還管理系統(tǒng)所需的信息和警報。該模擬器將在Modbus 協(xié)議下工作。
PN800 協(xié)議也稱為SAN(單連接節(jié)點)或DAN(雙連接節(jié)點)。如果存在兩個類似PN800A 和PN800B 的設(shè)備,則該協(xié)議有助于這兩個設(shè)備使用相同的IP 地址通信。PN800協(xié)議使用PRP(并行冗余協(xié)議)技術(shù)。
Modbus 協(xié)議[1]具有請求和響應(yīng)等功能。它支持串行通信技術(shù),可通過雙線傳輸與多個設(shè)備通信。Modbus 連接的設(shè)備不會響應(yīng)請求的開放調(diào)用。設(shè)備會檢查主機的請求,當(dāng)主機的請求錯誤時,從機將發(fā)送異常錯誤。
通過防火墻、IPS[3]和TCPDUMP 等確保SCADA 系統(tǒng)的安全。這種方式有助于防御來自外部世界的攻擊者。
防火墻[5]的實施對于創(chuàng)建安全的系統(tǒng)至關(guān)重要。通常,防火墻有不同的類型,如包過濾、應(yīng)用級防火墻等。
我們采用圖3 所示的應(yīng)用級防火墻,該防火墻使用代理服務(wù)器作為互聯(lián)網(wǎng)和內(nèi)部主機之間的中介連接互聯(lián)網(wǎng)。防火墻的功能是限制網(wǎng)絡(luò)范圍之外的系統(tǒng)訪問。我們將只使用特定的端口和IP 地址從不同的位置訪問系統(tǒng)或工廠。防火墻可幫助我們限制其他人訪問系統(tǒng)。我們在防火墻中實施了具有規(guī)則限制集的IP 表,以幫助我們限制端口。同樣,也可以考慮使用defender 防火墻中的過濾器來限制IP地址[8]。
圖3 應(yīng)用級防火墻
TCP 轉(zhuǎn)儲[2]幫助我們設(shè)置過濾器,以便我們能夠過濾訪問系統(tǒng)所需的所有地址。我們還可以設(shè)置系統(tǒng)的源和目的地,并且可以在帶有特定端口的TCP 轉(zhuǎn)儲中一次使用多個濾波器。
選用的PLC 為SPC700,一般需要一個主機和一個從機。主機可以是圖2 所示的計算機。使用FC222 作為輸入,F(xiàn)C223 作為輸出,F(xiàn)C224 作為數(shù)字輸入,F(xiàn)C225 作為數(shù)字輸出。數(shù)字輸入/輸出將采用0/1 的形式,這將有助于我們指示SPC700 的操作或功能。每個FC 電路將由IP 地址、類型和FC 代碼組成,如圖4 所示。PLC 將執(zhí)行從客戶端到PLC的PN800 協(xié)議,以及從PLC 到服務(wù)器或現(xiàn)場設(shè)備的Modbus協(xié)議??蛻舳耸沁B接到圖5 左側(cè)的客戶端。網(wǎng)關(guān)將連接到多個地址,每個地址都有自己的輸入。有多個串行端口,將客戶端連接到其中一個端口,多個設(shè)備也可以連接到不同端口的PLC。單個DCS 可用于訪問多個帶有分區(qū)的設(shè)備數(shù)據(jù)。
圖4 PLC 流程的內(nèi)部功能
圖5 PLC 網(wǎng)關(guān)結(jié)構(gòu)
從圖6 發(fā)現(xiàn)服務(wù)器在左側(cè),客戶端在右側(cè)。作為服務(wù)器,我們將使用DCS 模擬器,其中包含默認(rèn)數(shù)據(jù),這將有助于檢查訪問系統(tǒng)的數(shù)據(jù)流程和流量[9]。
圖6 客戶端和服務(wù)器連接
客戶端擁有服務(wù)器系統(tǒng)的IP 地址,可以在客戶端短語中指定或配置數(shù)據(jù)類型。輸入將在FCC222 中給出,如圖4所示。輸入在客戶端提及,控制操作傳遞給PLC。PLC 處理輸入,并將地址數(shù)據(jù)發(fā)送給客戶端。最后,安全性[4]是通過為客戶端、PLC 和服務(wù)器等所有設(shè)備分配IP 地址和端口來實現(xiàn)的。我們設(shè)置了fail2ban 來分析通過系統(tǒng)中給定網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)包的日志。為保障安全,將其設(shè)置在PLC 和服務(wù)器之間。如果fail2ban 發(fā)現(xiàn)任何惡意行為,它將在防火墻的過濾器列表中制定規(guī)則,并使防火墻阻止IP 地址,禁止數(shù)據(jù)包進(jìn)入系統(tǒng)。如果在網(wǎng)絡(luò)中檢測到任何惡意行為,我們可以使用該系統(tǒng)觸發(fā)警報。如圖3 所示,在該系統(tǒng)中實現(xiàn)的代理服務(wù)器也將具有一些規(guī)則集[3]。利用這些數(shù)據(jù),后期可以將人工智能(AI)應(yīng)用到SCADA 系統(tǒng)中,這樣可以把一個新的控制點位傳播到SCADA 系統(tǒng),以確保DCS 控制系統(tǒng)的安全[10]。
SCADA 系統(tǒng)主要用于監(jiān)控工業(yè)基礎(chǔ)設(shè)施和過程的系統(tǒng)處理流程。我們已經(jīng)采用了一個更加安全且靈活的工業(yè)應(yīng)用系統(tǒng),該系統(tǒng)可以在工業(yè)互聯(lián)網(wǎng)系統(tǒng)內(nèi)使用。本文給出了SCADA 系統(tǒng)安全因素的更多設(shè)計思路,在單個工作模塊中有不同的安全組件。Raspberry Pi 將執(zhí)行防火墻的操作,并保護(hù)系統(tǒng)免受攻擊。