吳亞鳳(中國勞動關系學院,北京 100048)
當今的SCADA(Supervisory Control And Data Acquisition)系統已經成為電力、石化、市政、管網、交通運輸等各個領域的控制神經中樞,它運行的安全與否直接決定了其被控裝置能否正常運行。而隨著2010年10月發生在伊朗核電站的“震網”(Stuxnet)病毒事件,以往被認為SCADA系統是專用系統難于受外部侵入的觀念被打破,SCADA信息安全問題被推向了有史以來最為嚴峻的地步,工信部隨后發451號通知,明確提出工業控制系統信息安全面臨的嚴峻形勢,要求加強工業控制系統信息安全管理工作。
在IEC62443中針對工業控制系統對信息安全的定義是[1]:保護系統所采取的措施;由建立和維護保護系統的措施所得到的系統狀態;能夠免于對系統資源的非授權訪問和非授權或意外的變更、破壞或者損失;基于計算機系統的能力,能夠保證非授權人員和系統既無法修改軟件及其數據也無法訪問系統功能,卻保證授權人員和系統不被阻止;防止對工業控制系統的非法或有害入侵,或者干擾其正確和計劃的操作。
針對SCADA系統的信息安全防范內容就是防止有意或者無意、非授權的對系統進行訪問、修改或者破壞。
一個最基本的SCADA系統一般由以下幾個部分組成:
數據服務器:它為SCADA系統提供各種數據服務,包括:實時數據庫和實時數據服務、歷史數據服務、報警管理服務、日志服務、用戶和授權管理等。
客戶監控站:它提供給操作人員一個人機交互的界面(HM I),使得操作人員在其上完成對現場被控對象的各種監視和操作任務。
通訊站(前端機):通訊站是SCADA與現場單元之間的交互接口,按照其協議不同,又可分為很多種類。
其他站點:包括計算站、WEB服務站、移動接入設備(如手持終端、便攜機、ipad)等。
現場單元:指的是直接與被控物理裝置連接的設備單元,包括但不限于:可編程邏輯控制器(PLC)、集散控制系統(DCS)、遠程測控終端(RTU)、智能電子設備(IED)等。
網絡:SCADA系統的網絡是最為復雜的,一般包括:連接各個現場設備的現場總線網絡,連接數據服務器、通訊站與現場設備的控制網絡,連接SCADA系統的各類服務器、監控站、工程師站和打印機等節點的系統網絡,連接其他站點(如手持終端、便攜機、ipad)的遠程接入網絡,以及用于連接企業上層管控系統(如MES、ERP)的管理網絡。
在一些比較大型的SCADA系統中,又有分級的概念,如城鐵SCADA系統中分為變電所、車站、控制中心三級。在上一級上可以監控下一級的全部設備,在上一級系統里有下一級的全部數據庫以及各項服務。
早期的SCADA系統一般是由設備制造商封閉開發的,它有如下特點:采用專有通訊網絡、專有操作系統、甚至專有的操作站硬件、專用的存儲設備與存儲介質、不使用通用以太網、沒有Internet的接入等特點,從信息安全的角度來看,這個系統是“本質安全”的。
隨著計算機技術、互聯網的飛速發展,SCADA系統越來越多地采用了大量通用IT技術和設備,表現出如下特點:采用通用的計算機硬件設備,以太網無處不在、無線設備與無線網絡接入、遠程配置與遠程控制、Windows和Linux通用操作系統的使用、通用基礎軟件(數據庫軟件、Office軟件)、商務供應訂單系統在線連接等,從網絡安全的角度來看,這一系統“有巨大的挑戰,很容易被利用”,并且采用的是通用設備與通用技術,其技術更容易被人掌握。
但是SCADA系統與通用IT系統在信息安全方面還有很多差異點,如表1所示[2]。

表1 SCADA與IT系統的信息安全差異
這些差異點就造成SCADA系統信息安全防護技術和管理理念與IT系統是不盡相同的,不能套用IT系統的防范手段。
現在SCADA系統由于其開放性的設計,采用了大量IT技術與通用IT設備,使得SCADA系統不再是一個封閉的系統,這些變化包括:
采用通用IT硬件,包括:服務器/計算機、交換機、網卡、顯示器、輸入/輸出設備、標準以太網等。
采用通用的軟件,如數據庫軟件、Office軟件、Windows操作系統、TCP/IP協議、OPC技術等。
惡意入侵:來自界外有意識的侵入,以竊取和破壞為目的。
“兩網融合”和SCADA系統開放接口造成的安全沖擊,給系統帶來巨大的風險。
高級系統應用功能,例如:遠程配置與維護管理、生產制造執行系統(MES)連接、商務現場供應(訂單批量配方生成)。
復雜的網絡構架,如廣域網接入、工業無線網絡、異構網絡等。
設備故障:設備故障帶來的主要是“無意性”的安全風險,會導致系統信息可用性降低、甚至喪失,最終導致系統癱瘓,對被控裝置帶來災難性的后果。
SCADA系統的上述特點與變化,決定了它會存在以下的信息安全風險:
第一類信息安全風險,可稱之為狹義的信息安全風險,是通用計算機網絡信息安全,是與常規IT系統相同的,但防范手段會有差異,包括:
黑客入侵類:信息竊取、篡改、破壞;
病毒類:蠕蟲(資源消耗)、破壞(拒絕服務)、木馬(信息竊取);
系統漏洞:包括操作系統漏洞、平臺軟件漏洞(如數據庫軟件)、SCADA軟件本身漏洞。
功能異常類:如設備損壞導致系統癱瘓、異常保護(回路環風暴);
第二類信息安全風險,可稱之為SCADA特有的信息安全風險,包括:
數據自然損壞:由于SCADA系統運行環境復雜,干擾源多、雜、強等特點,系統數據在傳輸、加工、存儲等環節極易出錯,導致系統可用性問題;
時序失序和實時性:SCADA系統是工業控制系統,它對系統響應的實時性要求非常高,不同于常規IT系統,且動作執行的時序性要求也高,當前的多任務操作系統、防病毒軟件會對它帶來風險。
人為失誤和人為破壞:SCADA系統的高可靠性要求系統能盡可能地防范人為失誤以及人為破壞,如二次確認功能。
對于SCADA系統而言,信息安全一般至少要實現以下三個目標:
可用性:保證系統在任何外界環境下,能不喪失原有設計的各項功能;
正確性:包含信息的完整性和準確性;
保密性:包括信息不被未經授權的人獲取、刪除、篡改、冒充等。
SCADA系統信息安全首要考慮的是所有系統部件的可用性。正確性則在第二位,保密性通常都在最后考慮。因為目前的SCADA系統的通訊數據都是原始格式,需要配合有關使用環境進行分析才能獲取其價值。而系統的可用性則直接影響到企業生產,生產線停機或者誤動作都可能導致巨大經濟損失,甚至是人員生命危險和環境的破壞。
目前,越來越多的人關注SCADA系統的信息安全防范工作,也從不同角度給出了許多信息安全防護建議,如建立工業控制系統安全管理體系[3],工業控制SCADA系統的安全防護體系[4]等。其基本思想是從宏觀和整體角度,給出SCADA系統從外層到里層的防護手段,包括:
隔離措施:防火墻技術、VPN技術、網關等;
防病毒軟件的監控和安裝;
計算機的安全策略的實施;
基于操作系統的身份驗證;
系統安全漏洞自動更新;
安全管理和安全服務措施。
但是以上的這些角度都是延續傳統IT系統的信息安全防護技術與思想,面對SCADA這種工業控制系統所特有的一些要求,上述手段不全面、有效性差,也難于實施,甚至有些手段會帶來負面效應(如常規的防病毒技術)。
從對SCADA系統信息安全風險分析和防護手段分析來看:SCADA信息安全可以分為兩類:一類是上述基于IT系統的信息安全防護技術,另一類是基于SCADA系統特性的防護技術,本文稱之為SCADA內部信息安全的保護技術,即針對SCADA系統的特點以及它對信息安全的特殊要求,做特殊的防護設計,它主要是在SCADA系統設計時實現的,期望接近或者達到SCADA系統“本質安全”的目標。
因此,常規的信息安全防護手段作為SCADA系統的第一層防護,它強調的是系統外部信息安全,保證SCADA系統運行環境的安全,例如:系統和網絡的隔離、操作系統的安全漏洞、進入系統的安全策略等,本文不對這部分內容做詳細介紹。第二層防護是提高SCADA系統本身對外部攻擊、侵入、破壞等的抵御能力,增強SCADA系統的信息安全度。
SCADA系統內部信息安全是在產品設計過程中完成的,這與外部信息安全防護技術不同,是一種“設計出來的安全功能”,它能對外界侵入、訪問、數據篡改、干擾有天然的保護。安全保護技術包括以下幾個方面:
(1)專用軟、硬件技術
最早期的SCADA系統是封閉的,全部軟、硬件都由產品制造商提供或者開發,因此產品對信息安全具有最高級別的控制能力,系統對外表現為封閉和本質安全。后來隨著IT技術的發展以及產品開發、制造成本的壓力,開放和集成是必由之路。但是開放意味著安全風險增大,失去天然安全屏障。
因此,提出一種“深度集成”的理念,借助與現代高度發達的CPU技術,要求系統所集成的產品開源、可編程或者可二次開發。借此達到硬件開放集成,固件或者軟件專用化,降低產品成本和開發成本,不降低系統開放性,提高系統安全性的目的。與網絡相關的有如下幾個方面:
接管操作系統的某些功能,如監視可移動設備的接入,開發定制網卡驅動,監視網卡數據,對其數據包進行過濾和檢查;
二次開發專用交換機:目前某些交換機支持二次開發,可以對其固件進行修改,使得合法的報文放行、合法的端口放行,所謂合法就是SCADA系統使用的報文或者端口,其他的一律阻止。
(2)內部防病毒技術
通用防病毒技術對SCADA系統是不滿足的,它版本升級快,病毒庫需要隨時升級,每個版本與SCADA系統的兼容性無法保證,防病毒軟件從機制上不能滿足實時性和時序性要求,會造成SCADA系統數據交換的延遲、失序等問題。
在SCADA系統內部,可以采用如下方式對各種類型的病毒進行防范:
白名單技術:SCADA系統只接受自己能識別的訪問,不能識別的訪問一律拋棄;計算機系統上只放行系統識別的端口、任務、進程,其他的一律禁止;
簽名:在訪問系統時需要簽名認證,驗證身份是否合法,保證訪問的合法性;
對異常數據包進行過濾,例如異常的數據包類型,異常的訪問流量(如DOS攻擊)。
(3)數據合法性保護
目的是保證SCADA系統訪問、存儲、使用的數據是合法的,這些數據可能是來源于SCADA系統內部,也可能來源于外部,但是都必須通過合法性驗證之后,才能被使用;另外在生產這些數據時,也要保證數據的合法性。數據合法性保護包括:
數據的合法性加工、數據校驗以驗證其合法性;
編譯技術:對代碼合法性進行判斷,采用簽名與驗證技術;
運算執行保護:控制運算的合法性判斷,漏洞保護(溢出、死循環、除零)、任務最大時間限制等。
(4)數據搬運/傳輸保護
SCADA系統的運行環境往往是惡劣的,有電磁干擾、腐蝕等,其網絡是復雜的,如有線網、無線網、異構網絡,以及網絡地域分布廣泛,其網絡拓撲結構多變,節點設備種類多。這就使得數據在網絡以及SCADA系統內部傳輸過程中,非常容易發生錯位、失序、丟失、被竊取、被偽裝、篡改等各種風險。為了解決數據在搬運和傳輸過程中的問題,一般可以采取如下的一些技術:
加密傳輸(防竊取、防偽裝、防篡改);
校驗與糾錯(防失效、錯位、丟失與不完整);
內存數據硬件校驗ECC;
存儲器數據讀、寫CRC校驗;
內部總線數據傳輸奇偶校驗或者CRC校驗。一般來講,各種通訊協議都會在各層、各個環節進行校驗,但是這種校驗是局部的,可以防范局部異常。作為SCADA系統設計而言,對數據的保護應該是基于結果的校驗,即數據校驗制作在數據源頭執行,數據檢驗檢查在數據使用者完成,可以保證在數據搬運/傳輸的全過程中是無差錯的。
(5)數據冗余技術
為了保證系統訪問/數據的合法性與完整性,數據冗余技術是一種較好的設計思想,它是利用數據的冗余信息來保護自己。一般的方法是:
位冗余(如:BOOL類型數據采用55AA編碼技術),這可以有效地解決數據的“位變”難題。
數據質量位,數據質量位代表了該數據的質量狀況,可以檢測、傳遞數據的質量,避免系統使用錯誤的數據。
數據縮略圖:在對數據有較高要求的場合,可以使用數據縮略圖的形式對數據進行驗證與保護。
隨著SCADA系統的應用日益廣泛,它的信息安全問題已經成為系統能否長期穩定可靠運行的主要問題,從對其應用的電力、冶金、建材、化工、市政、交通等各個行業的影響來說,也是關系國計民生的大事。因此,對SCADA系統信息安全的研究工作是非常重要的。
[1] IEC 62443-2010,工控網絡與系統信息安全標準[S].
[2]徐金偉.工業領域基礎設施SCADA系統簡介[J]. 計算機安全,2012,(01):4-8.
[3]張帥.工業控制系統安全風險分析[J].信息安全與通信保密,2012,(03):15-19.
[4]余勇,等.工業控制SCADA系統的信息安全防護體系研究[J].理論研究,2012,(05):74-76.