劉 元1,李紅霞1,權小康2,褚 瑞3
(1.北京廣利核系統工程有限公司,北京 100094;2.北京威努特技術有限公司,北京 100085;3.上海中廣核工程科技有限公司,上海 200241)
工業控制系統等級保護安全設計技術框架[1]體系中第0層、第1層、第2層的邊界通信以及通信網絡之間,工控系統均會使用各類工業協議。針對核電工業控制系統,涉及的工業協議大多屬于私有協議,協議的各種規范和格式屬于核心商密。而網絡安全防護設備如監測審計系統、工業防火墻等需要采取網絡安全措施[2]實現相應的網絡安全功能,需要在工業協議數據分析時對應用層的通信數據進行深度解析,建立應用層通信協議基線,及時識別未知風險。如何既能解決協議保密性又能達到網絡安全設備深度協議解析的目的,通過研究本文給出了一種方法,可實現快速、安全及可靠的通信協議解析。
為應對國內外日益復雜嚴峻的網絡安全形勢,國家及部委相繼出臺網絡安全相關政策法規,要求并指導企業做好國家關鍵信息基礎設施的網絡安全防護工作。結合核電工控系統特點,基于信息安全技術網絡安全等級保護基本要求[3],即“一個中心,三重防護”設計理念,采用程序白名單、外設白名單及網絡通信行為白名單[4]等技術,構建核電工控系統網絡安全的“白環境”,實現核電工控系統積極防御、綜合防范、本質安全[5]的縱深防御體系的建立。
白名單是一種安全結構模型,是合法的程序、IP、通信行為規則等生成的安全列表,白名單上的所有內容都可以建立通信訪問系統資源,而不在白名單上的部分則被拒絕訪問。相對于黑名單而言,白名單強調“確定的安全”,所有的未知都不允許。
網絡通信行為白名單技術是應用于核電工控系統安全通信網絡及安全區域邊界的重要的防護手段。通過網絡通信行為白名單技術,可及時發現不在白名單內的違反協議規約、非法攻擊及異常操作的行為并進行審計和告警,以便電廠及時進行告警處理或應急響應。而核電工控系統私有協議解析技術是實現核電工業協議應用層數據深度解析,建立核電工業協議網絡通信行為白名單的基礎。
核電工控系統網絡通信協議除了標準的工業協議,如Modbus協議、IEC-104協議等,更有許多私有的工業協議。核電工控系統網絡通信協議的多樣性、復雜性與保密性造成了針對工控網絡安全問題而設計的網絡安全防護或審計產品往往無法覆蓋所有的工業協議,網絡安全設備也就無法完成對未知協議通訊的安全防護與審計。如何高效、可靠地解析核電工控系統私有網絡通信協議,并且確保解析過程安全保密是重點要解決的技術問題。
目前,許多網絡安全防護或審計產品都支持使用描述語法方式來實現協議的解析。結合核電工控系統特點,本文重點研究論證一種通過描述語法方式填寫協議解析規則,并采用安全加密技術、協議解碼與熱切換技術來實現私有工業協議安全可靠、快速適配解析的方法。
實現流程如圖1,主要包括4個方面的內容。

圖1 協議解析流程Fig.1 Protocol analysis process
私有協議解析流程包括:①確認通信關鍵字段;②定義協議解析規則;③使用安全加密技術對協議解析規則文件加密;④防護設備使用協議解碼與熱切換技術實現協議解析功能。
前3項由授權人員完成,授權人員通常指私有協議權利方指定相關人員。
私有協議的應用層數據的字段長度、數量、取值范圍根據不同協議承載的業務不同而差異較大。協議解析不需要對所有的字段進行全面深度解析,重點對偽造、篡改后可能造成業務、生產、安全等危害的相關應用層通信數據
字段納入關鍵字段范圍進行深度解析。授權人員需要基于通信協議的應用場景的不同,結合工控系統實際情況利用以上關鍵字段選取原則選擇確認需要深度解析的關鍵字段。然后,確定關鍵字段在整個數據包中的所處位置、字段長度、取值范圍等信息,明確協議解析規則文件所需填寫的內容。
在協議解析規則文件中需要定義及配置的內容包括:待檢測報文的IP地址、端口、傳輸層協議、報文的指紋特征,待檢測應用層報文的提取規則、報文的合法值以及檢測到不符合執行的動作等。
1)定義協議的識別特征。即承載所述協議的報文區別于其他報文的特征,包括MAC地址、IP地址、傳輸層協議、端口。
例如,“傳輸層協議:TCP;端口:1000”的識別特征,按照描述語法方式填寫相應的協議解析規則如圖2。

圖2 定義協議的識別特征Fig.2 Define the identification characteristics of the protocol
2) 定義應用層協議報文提取規則。采用顯式表述方式,即按照“核電私有協議規范”定義的格式,依次定義應用層協議的字段數量、順序、長度、讀寫順序,是否需要協議深度解析。
例如,定義“一個應用層數據包包含4個字段,其中‘CLASS’‘TN’需要深度解析,超過8位的字段都是從小端讀取”,按照描述語法方式填寫相應的協議解析規則如圖3。

圖3 定義應用層協議報文提取規則Fig.3 Define application layer protocol message extraction rules
3)定義應用層協議報文的合法值。對于經檢查符合1)、2)中字段要求的應用層數據包,會進一步進行協議規約檢查。定義每個應用層字段的取值范圍,然后檢查通信數據是否符合規定的協議約束條件,可以及時發現異構偽造的數據包。若出現不符合約束條件規定的異常數據,則執行規約告警動作。
例如,定義“CLASS~TN4個字段取值范圍,檢查出不符合后執行規約告警的動作”,按照描述語法方式填寫相應的協議解析規則如圖4。

圖4 定義應用層協議報文的合法值Fig.4 Define the legal value of the application layer protocol message
4)定義白名單學習內容。按照“核電私有協議規范”定義的語法格式,對符合1)~3)協議規則且需要深度解析的關鍵字段,定義工業協議白名單學習并展示的內容。
例如,定義“源IP、目的IP、CLASS、TN”4個關鍵字段的白名單學習并展示的內容,按照描述語法方式填寫相應的協議解析規則如圖5。

圖5 定義白名單學習內容Fig.5 Define white list learning content
5)完成協議解析規則文件編制。按照描述語法方式填寫1)~4)相應的協議解析規則,編制完成協議解析規則文件,并記錄版本號。
使用指定好的安全加密軟件采用SSL加密技術,采用RSA和SHA512加密算法對協議解析規則文件進行加密。對于編輯好的協議解析規則文件,按照標準的安全加密流程進行安全加密,安全加密軟件自動生成安全加密指定格式(例如:.pkg)的協議解析引擎加密文件。協議解析引擎加密文件可中間傳遞,最終被導入到網絡安全防護設備中使用。傳遞過程中,即使文件被竊取或丟失,也不存在泄密風險,保證了私有協議核心商密的安全可靠。
通過協議解碼規則及協議規則熱切換技術[6]實現協議解析引擎加密文件導入防護設備后,對協議的自動快速更新、識別與解析。
網絡安全防護設備導入協議解析引擎加密文件后需要解決兩個重要問題:一是解析引擎文件的解密及協議內容解碼;二是如何在原有的正在運行的協議解析規則基礎上,實現新的協議解析規則的熱切換,熱切換可避免重啟設備等影響,保證切換過程不影響防護設備的正常防護及審計功能。
3.4.1 文件解密及協議解碼技術的實現
1)協議解析引擎加密文件導入網絡安全防護設備后,設備側的解密軟件對該加密文件解密,并提取其中的協議解析規則內容存放在臨時內存中,供流量解析使用。協議解析引擎加密文件本身依然為加密文件,即使攻擊者成功地攻擊了網絡安全設備并獲取了后臺權限,也依然無法得到協議解析規則文件的明文。
2)網絡安全防護設備讀取臨時內存中協議解析規則內容并使用設備支持的協議解析描述語法方式進行編譯,轉換成程序能夠識別的二進制內容。
具體步驟如下:
步驟1:讀取協議解析規則內容,按照規則描述中指定的語法格式加載規則內容。
步驟2:計算能夠忽略的字段的長度,更新累計偏移量。由于能夠忽略的字段的值不需要解析出來,只需要根據能夠忽略的字段的長度更新累計偏移量,而不用計算能夠忽略的字段的偏移量。
步驟3:計算關鍵字段的偏移量和長度,此處關鍵字段為解析規則文件中描述的需要深度解析的字段。
按照如下公式計算有用的字段的偏移量和長度:

其中,Offset是當前計算的有用字段的偏移量;Offset accumulate是累計偏移量,其初始值為0;length是從協議解析規則文件中讀取的當前計算的關鍵字段的長度。
步驟4:協議解碼轉換。根據步驟3計算的關鍵字段的偏移量和長度,依次解析出關鍵字段、取值范圍等信息,并將解析出的規則信息轉換成設備能夠識別的二進制代碼。當設備接收到報文后,根據加載的二進制代碼對報文內容進行解析處理,實現對接收協議內容的識別和解析。
3.4.2 協議解析規則熱切換技術的實現
解碼后的協議規則存放在臨時內存中,需要將設備正在運行的協議解析規則切換為臨時內存中的協議規則。協議切換的流程步驟如圖6。

圖6 協議解碼規則選擇流程Fig.6 Selection flow of protocol decoding rules
首先,記錄當前正在使用的協議解析規則版本信息,在新協議解析引擎文件導入后記錄新協議解析規則的版本號,通過比較版本號確認是否為新協議導入,并記錄版本號變化開始的流節點時間。tcontinue是由設備結合當前會話老化時間、剩余待處理數據內容計算出的能夠有效保證當前正在解析流量全部解析完畢的時間。當前時間與流節點上記錄的時間差值大于tcontinue時,可以將當前協議解析規則的內容釋放清空,再使用新的協議解析規則進行規則匹配,從而保證解碼內容的完整性和一致性,實現不同版本的協議解析引擎加密文件自動實時切換而不需要重新啟動防護設備。
本文論述的核電私有協議解析技術基于選擇私有協議深度解析的關鍵字段、自定義協議解析規則、使用安全加密技術及協議解碼與熱切換技術,實現了核電工業協議尤其是私有協議在保密情況下的安全可靠、快速及深層解析。這一方法可實現覆蓋核電廠所有工業協議的解析,為建立核電工業協議網絡通信行為白名單提供了技術支撐。
使用工業協議白名單技術的網絡安全監測審計設備及工控防火墻設備已在相關核電基地獲得廣泛應用,實現了核電廠工控系統的安全通信網絡及安全區域邊界的安全防護,有效提升了核電廠工控系統縱深安全防御能力。