徐元清, 卓蔚
(上海煙草集團有限責任公司 信息中心, 上海 200082)
工業控制系統(ICS),是指用于操作、控制、輔助自動化工業生產運行、過程控制與監控的由各種自動化控制組件(包括設備、系統、網絡以及控制器)的集合[1,2]。工業控制系統主要包括監控和數據采集系統(SCADA),分布式控制系統(DCS)和可編程邏輯控制器(PLC)。在我國的煙草行業中已經廣泛使用到各類工業控制系統,其中主要的是SCADA和PLC兩類。這些工業控制系統的網絡結構主要分為管理協同層、生產執行層、過程監控層、現場控制層和現場設備層[3]。管理協同層和生產執行層組成管理網,過程監控層、現場控制層和現場設備層組成工控網,兩網之間存在較多的信息交互,聯系緊密。從業務角度考慮,管理網和工控網必須互聯,以交換命令和數據;但從安全角度考慮,管理網網絡復雜,并和互聯網相連,兩網互聯造成了管理網風險引入工控網。所以,信息技術在推動工業化快速發展的過程中,也給工業系統的安全運行帶來了巨大的風險。
近年來,隨著兩化融合的不斷推進,工業互聯網深入發展,傳統的互聯網與工業網不斷的加速對接和融合,工業網的安全問題也引起了更加廣泛的關注和研究[4]。對工控系統網絡安全防護體系的研究和分析已經成為當今社會關注的重點之一[5]。然而,現有的工業安全防護系統都是針對過程監控層及以上的信息技術網絡部分,以及從信息網絡到工控網絡之間的邊界部分。從現場控制層和現場設備層所在的操作技術網絡來看,各種可編程邏輯控制器(PLC)以及某些現場設備,以及工控交換機都存在著傳統的網絡通信端口和模塊,同時這些設備本身存在的漏洞和威脅,都沒有在現有工控安全解決方案的監控范圍之內,很容易因為攻擊而嚴重威脅工控系統的安全性。另外,工控網絡中經常需要從管理層的ERP(企業資源規劃)和MES(制造執行系統)向監控中心下發指令,以及從監控中心向 PLC 下發邏輯組態工程文件,該文件編譯成功后即可運行。實際運用中這些指令和文件在下發過程中有可能遭到篡改或替換,導致文件編譯失敗或無法運行,嚴重時被植入惡意指令,后果不堪設想。同時,現場設備采集到的數據也需要向數據中心發送,保證這些數據的安全性和完備性也是非常重要而且必須的。而傳統工控安全解決方案在工業大數據的應用背景下,越來越不能滿足工業現場的安全需求。
基于工業現場的安全需求,以及工業現場設備、傳感器和控制器的廣泛分布并互聯的特點,本論文提出了基于區塊鏈技術的工業安全解決方案。區塊鏈作為一個在數字貨幣中廣泛使用的新技術,由于其去信任、去中心化、集體維護、可靠數據庫等特點[6],在工控安全領域,從設備安全接入的身份認證,增強指令、文件和數據完整性以及防篡改等方面來看,應用潛力很大。將區塊鏈技術引入工控網安全應用中,將是一個非常具有前景的研究方向。目前,區塊鏈在物聯網中的應用已經引起了廣泛的關注[7-9],在工業互聯網以及工控系統中的應用還有待進一步的研究。
區塊鏈的概念在2008年由中本聰第一次提出[10],在隨后的幾年中,成為了電子貨幣的核心組成部分。簡單來說,區塊鏈是指通過去中心化和去信任的方式集體維護一個可靠數據庫的技術方案。該技術方案讓參與系統中的任意多個節點,把一段時間系統內全部信息交流的數據,通過密碼學相關算法計算和記錄到一個數據塊,并且生成該數據塊的指紋用于鏈接下個數據塊和校驗,系統所有參與節點來共同認定記錄是否為真。
區塊鏈最主要的四個特征包括去中心化、去信任、集體維護、可靠數據庫。去中心化保證了任意節點之間的權利和義務都是均等的,且任一個節點的損壞或者失去都會不影響整個系統的運作。因此也可以認為區塊鏈系統具有極好的健壯性。去信任保證了參與整個系統中的每個節點之間進行數據交換是無需互相信任的,整個系統的運作規則是公開透明的,因此在系統指定的規則范圍和時間范圍內,節點之間是不能也無法欺騙其它節點。集體維護是指系統中的數據塊由整個系統中所有具有維護功能的節點來共同維護的,而這些具有維護功能的節點是任何人都可以參與的。可靠數據庫是指整個系統將通過分布式數據庫的形式,讓每個參與節點都能獲得一份完整數據庫的拷貝。除非能夠同時控制整個系統中超過51%的節點,否則單個節點上對數據庫的修改是無效的,也無法影響其他節點上的數據內容,從而保證在節點之間交換的信息的不可篡改。
區塊鏈的概念首次在中本聰的論文《比特幣白皮書:一種點對點的電子現金系統》中提出,因此可以把比特幣看成區塊鏈的首個在金融支付領域中的應用。隨著區塊鏈技術的進一步發展,它在除了數字貨幣和金融以外的其他領域也都有了廣泛的應用和探索。在萬物互聯的時代,區塊鏈技術未來在工控網絡也具有廣闊的發展前景。工控網絡相對比較封閉,通常處于企業內部網絡運行,在企業內部建立小范圍的私有區塊鏈平臺比較適合。私有區塊鏈的成員共同建立有關成員資格,訪問權和參與權的規則,包括授予和終止此類權利的標準。 私有區塊鏈通常將實施和執行此類規則的責任委托給管理員,并可授權管理員修改規則以應對不斷變化的條件。 除了成員資格,訪問和參與權限之外,還可以劃分網絡上的數據的訪問權限,以防止參與者有意或無意地訪問其他參與者的敏感商業和客戶數據。
圖1是物流車間原料庫的網絡拓撲圖。管理網主要體現在圖1中的“服務器機房”標簽位置處,部署了服務器及磁盤陣列、核心交換機等IT設備。工業網包含了廠區內的中控室、現場工業設備等,其關鍵節點為中控室內的工業交換機。該工業交換機連接了主PLC、從PLC及盲節點服務器等,往下一級為現場人機交互接口HMI及其他工業設備。
從層級上來看,工業交換機往下層級主要采用工業協議,往上層級主要采用互聯網協議(TCP/IP)。原料庫整體網絡結構具有較為明顯的層級劃分,是典型的工業網絡環境,從網絡安全的角度來看,缺少必要的邊界隔離及訪問控制等措施,也缺少必要的網絡安全監控手段。
為了提高工控系統的安全性,如圖1和圖2所示。
處于工控網內的各級服務器,交換機,PLC,甚至底層設備都可以作為參與節點接入區塊鏈網絡。區塊鏈網絡是個輕量級的網絡,在進階精簡指令集機器架構ARM(嵌入式系統芯片)上也可以運行。對于具有足夠計算和存儲能力的服務器、控制器和智能設備等,可以直接接入網絡,在上面運行區塊鏈相關協議。對于計算能力較弱或不方便直接修改的設備,可以用運行區塊鏈協議的智能網關等作為代理,接入區塊鏈網絡。由于網絡由參與節點共同維護,區塊鏈網絡具有高度的可擴展性,在實施中可以根據實際需求進行組網,例如,當管理層節點和工控層節點之間不能直接連接時,可以在各區內部分別組網。
區塊鏈網絡是一個分散的點對點網絡,因此它對故障具有彈性,沒有單點故障。區塊鏈本身在參與方達成共識后,無法更改或刪除曾經記錄在區塊鏈上的交易。區塊鏈網絡中的所有交易都受到強加密的保護,而且透明性使其安全且可審計。這些特點都使其在工控安全中得到廣泛的應用成為可能。下文討論并給出區塊鏈在工控系統中可能的應用場景。
工控網絡中經常需要從監控中心的工程師站向 PLC 下發邏輯組態工程文件,該文件編譯成功后即可運行。實際運用中可能遇到文件在下發過程中遭到篡改或替換,導致文件無法運行,嚴重時被植入惡意指令,后果不堪設想。
為保證邏輯組態工程文件發布的正確性,可以建立工控網絡區塊鏈文件發布系統用于存儲邏輯組態工程文件,該系統包括2層結構,底層由區塊鏈數據庫構建,上層是面向用戶的工控網絡區塊鏈平臺。如圖3所示。
用戶向區塊鏈平臺管理員申請發布邏輯組態工程文件,管理員審批通過后可將邏輯組態工程文件編譯后的文件的相關信息形成發布摘要信息存儲到區塊鏈上。發布摘要信息包括存儲發布方A(監控中心)和接收方B(PLC)的地址,發布文件的哈希值等,并由區塊鏈各節點共同蓋上時間戳。發布摘要信息可以根據發布單號進行查詢。PLC下載邏輯組態工程文件后,根據發布單號將編譯后的文件哈希值和區塊鏈上的數據進行比較,如果不一致,說明文件遭到篡改并向監控中心報警。

圖1 物流車間網絡拓撲圖

圖2 工控系統區塊鏈網絡示意圖

圖3 工控網絡區塊鏈文件發布系統
通過邏輯組態工程文件區塊鏈發布技術,實現了邏輯組態工控文件一旦發布就無法被篡改。攻擊者即使在接收端修改組態文件,也會由于驗證無法通過從而無法運行達到保護目的。該技術解決了傳統邏輯組態工程文件易被第三方修改的問題。
除了邏輯組態工程文件,從管理層發往控制層的指令文件,以及從現場設備傳往數據中心的相關數據,都可以通過區塊鏈技術進行安全的分享和保護,防止被第三方篡改。
不同于傳統的工控安全采取的檢測和監控可能受到的身份接入的攻擊,區塊鏈技術關注的是預防而不是檢測。對于區塊鏈網絡而言,每個接入請求都要經過整個系統里節點的共識來進行認證。因此,即使是單個節點或部分節點受到攻擊,整個系統的共識會阻止其他節點乃至整個系統被黑客攻擊,因此可以實現持續連接。比如,被攻擊的節點試圖輸入錯誤的密碼和用戶名,那么區塊鏈的共識機制會拒絕該請求并且自我修復,不妨礙整個系統的正常連接和運行。因此,區塊鏈技術涵蓋了傳統的工控安全系統提供的安全接入的部分功能,但傳統工控安全系統更多的是檢測此類行為而不是預防。
今天的工業正在經歷轉型變革,在現在的工業系統中,設備,人員和應用程序有更多的合作,共同交換數據,做出決策并采取行動。基于區塊鏈的身份驗證和身份管理可實現任意應用程序級的安全性和訪問控制。管理員能夠立即為設備,應用程序和人員創建安全組和策略,以實現安全的協作和數據交換。
對于煙草生產的工控系統而言,區塊鏈技術不僅可以用于管理層的服務器,工程師站,數據中心,人機界面(HMI)等處的身份接入的認證,還可以直接用于現場智能設備和控制器的接入認證。隨著工業互聯網和工業云的發展,設備越來越智能化,數據和連接逐漸地向智能設備遷移,越來越多的智能設備以及PLC等可以直接接入到工控系統中。這樣的擴展可以提高效率以及生產力等,但是同時也給整個公司的工業系統帶來了安全挑戰。在這種情況下,區塊鏈的分布式架構非常適合提供智能設備標識、身份驗證和無縫的安全數據傳輸。
在基于區塊鏈的系統中,當用戶嘗試接入系統或訪問受保護應用程序時,會收到來自受保護對象的身份驗證請求。用戶將驗證請求數據是否合法,受保護的應用是否是他們期望的對象。這可以通過使用公鑰加密來完成。受保護的對象對請求進行簽名,然后通過區塊鏈對其進行公開驗證。在驗證此請求后,用戶創建響應,發送登錄信息并對其進行簽名,然后將其發送回受保護對象上的指定路由。這個請求將使用受保護對象上的公鑰加密來驗證,驗證通過后用戶將登錄。這個過程并不局限于某個應用或設備。如果用戶不想使用特定應用來登錄,則用戶可以使用其公鑰生成自己的簽名并以表單形式提交,然后區塊鏈網絡將對其進行驗證,如圖4所示。

圖4 工控網絡區塊鏈身份認證
本論文基于區塊鏈技術,對煙草行業工業控制系統安全防護體系進行了升級設計,彌補了傳統工控安全體系在工業控制系統(ICS)尤其是在操作技術領域的不足,為確保工控系統的穩定可靠運行和信息安全提供有力支撐和全面保障。區塊鏈技術在工控系統安全領域的應用目前還處于起步階段,本論文提出的安全防護體系的設計,未來在行業內具有一定的推廣價值,在行業內可以起到應用示范的作用,可以進一步推動區塊鏈新技術在其它行業的工控安全系統的深入研究和應用實踐。