本發明涉及工業控制安全領域技術領域,特別涉及一種工業控制系統中工業控制協議的安全防護方法。
背景技術:
由于工業控制系統設計之初是一個與外界物理隔離的系統,因此傳統的工業控制協議沒有考慮信息安全和網絡安全的問題。隨著標準網絡和互聯網技術在工業控制系統的廣泛應用,工業控制系統的安全威脅正日益加劇,現有的防火墻技術只能部分解決安全問題,比如訪問控制列表(Access Control List)就不能解決無序數據包的問題;狀態檢測防火墻(SPI)只關心報文的前后關聯性,對于那些合規,有關聯性但對控制設備和執行設備有害的命令并不能阻止;再有深度包解析的防火墻盡管能夠對應用數據包的內容進行解析,但是完全解碼并在應用協議級別分析每個數據包需要額外的處理能力,深度包解析技術隱含著巨大的處理能力的消耗和突出的網絡延時,在典型的工業控制系統對實時性的要求很高,因此使用全方位的深度包解析的應用場景并不普遍,這些外在的防護手段具有明顯的局限性。
技術實現要素:
為此,本發明提供了一種工業控制系統中工業控制協議的安全防護方法,用于解決在控制系統中的控制設備在外界干擾或自身出現問題時發送不符合正常操作流程的操作指令,導致控制設備或執行設備功能喪失所造成的危險等問題。
為實現本發明的目的,本發明所采用的技術方案如下:
1.當配置控制設備時,在工業控制協議棧中對控制設備支持的所有工業控制協議的控制指令進行安全選項的預定義,預定義的內容是根據正常的操作流程,控制設備功能要求和控制設備安全對控制指令執行的限制,現場執行設備的功能要求和設備安全對控制指令執行的限制。
2.當一個控制系統中的上位機發送一條控制指令到控制設備時,控制設備首先會進行工業控制協議一致性檢查,當滿足協議一致性要求之后,控制設備會根據控制指令安全選項預先設置決定是否執行該條控制指令,若該控制指令不符合安全設置,控制設備放棄執行該控制指令,反之,執行該控制指令。
本發明的有益效果:本發明能夠使工業控制協議在接收到外界錯誤指令的時候保證控制設備自身和控制設備所控制的執行設備的安全;這樣既可以避免內部人員的誤操作,也可以有效阻止外部各種針對控制設備及執行設備為目標的攻擊行為,提高工業控制系統的安全防護效果。
附圖說明
圖1是本發明在工業控制系統中工業控制協議安全方法實現方法示意圖;
圖2是具有代表性的控制設備、人機界面和上位機組成的示意圖;
圖3是具有代表性的控制設備實現控制指令處理的流程圖;
圖4是本發明在控制設備實現控制指令安全防護方法的流程圖;
圖5是本發明在人機界面中配置控制指令列表的示意圖;
圖6是本發明安全防護方法流程示意圖。
附圖標記:
1-人機界面, 2-上位機,
3-控制設備, 4-執行設備,
100-工業控制環境, 200-通信接口,
202-處理器, 204-用戶界面,
300-工業控制協議, 302-應用程序接口,
304-輸入信息, 306-輸出控制指令。
具體實施方式
下面結合附圖對本發明的較佳實施例進行詳細闡述,參考標號是指本發明中的組件、技術,以便本發明的優點和特征在適合的環境下實現能更易于被理解。下面的描述是對本發明的具體實施例的描述,并且與權利要求相關的其它沒有明確說明的具體實現也屬于本發明保護的范圍。
本發明提出了一個通過與預定義的控制流程行為模式比較的方法來決定是否執行/告警/阻斷控制指令的安全防護方法,區別于網絡防火墻的安全防護方法,并且這種方法還有效的解決了設備的處理能力不足和網絡延時造成的影響。
在圖1表示工業控制系統環境100中,上位機2與控制設備3之間通過工業控制協議300進行通信。控制設備3和人機界面1之間存在一個應用程序接口302,使用者通過人機界面1和應用程序接口302對工業控制協議300中的每個控制指令安全操作進行設置,控制設備3根據應用程序接口302中的設置決定是否執行從工業控制協議300中接收到的控制指令,執行設備4通過控制設備3的輸出控制指令306受控于上位機2,同時執行設備4通過控制設備3的輸入信息304反饋現場測量信息,比如溫度、壓力、轉速等等。
圖2是控制設備3,上位機2和人機界面1的組成的通用結構示意圖,它們的基本組成是通信接口200,處理器202和用戶界面204。其中通信接口200通過特定的通信協議與外界通信,處理器202負責所有設備的計算和管理,用戶界面204提供顯示狀態和配置界面的功能。
一般典型的工業控制協議執行的流程在圖3中描述,一個控制設備3通過工業控制協議300接收到上位機2控制指令時的處理流程,如步驟S31上位機2發送控制指令給控制設備3,控制設備3進行步驟S32首先檢查收到的指令是否符合工業控制協議300的規范,若符合,如步驟S33執行控制指令,并進行步驟S34向上位機發送響應信息和數據,返回準備接收新控制指令的狀態;若不符合,進行步驟S35控制設備3向上位機2發送出錯信息,返回準備接收新控制指令。
在實現本發明的工業控制協議的安全實現機制的第一步是在人機界面1設備上為所有工業控制協議300中的每個控制指令預定義安全設置。圖5是人機界面1的設置實施例的示意圖。操作員根據操作流程,控制設備和現場設備的不同要求進行設置。設置信息通過人機界面1和控制設備3之間的應用程序接口302傳達給控制設備3。應用程序接口302傳輸包括所有工業控制協議中包含的控制指令列表、安全設置選項、時間選項、條件選項和其它選項。其中控制指令包括所有控制設備3使用或支持的所有特定工業控制協議的控制指令:控制指令1,控制指令2,……,控制指令N;安全設置:允許;特定時間段允許;特定條件允許;特定時間+特定條件允許;禁止;以及各種符合邏輯的組合。時間選項包括:永遠有效,永不有效,和指定時間段。時間選項也可以根據需要包括日期或星期等條件。條件選項主要指在某種特定條件比如:現場執行設備4對控制設備3的輸入信息304的測量參數處于某個值時,允許或禁止該指令;其它條件是指控制指令不僅要符合控制協議的一致性要求,但是其中的數據或地址也要符合控制設備的寄存器映射規則或范圍等等控制設備3的自身條件因素,才能允許該控制指令執行等等。這里的時間選項,條件選項和其它選項可以是各種情況的組合,上述說明并不限制本發明的專利范圍。圖5的呈現形式并非用戶界面唯一選擇,用于工業控制協議安全設置的預定義用戶界面只要包括控制指令列表和控制指令安全預設以及預設值條件的特征都包括在本發明的范圍以內。
控制設備3通過工業控制協議預定義API應用程序接口302得到在人機界面1上預定義的安全設置之后,本發明的工業控制協議的安全實現機制流程的一個實施例在圖4中進行了描述,如步驟S41處于運行之中的控制設備3準備通過工業控制協議接收來自上位機2的控制指令,當控制設備3接收到一個控制指令時如步驟S42首先判斷控制指令是否符合正在使用的工業控制協議300的規定,如果不符合,如步驟S47控制設備3進行出錯處理并返回錯誤代碼給上位機2;如果從上位機2接收到的控制指令符合正在使用的工業控制協議300的規定,如步驟S43控制設備3將通過應用程序接口302檢查該控制指令的安全操作選項,如步驟S44判斷是否允許執行控制指令,如步驟S45若符合運行要求的控制指令將被執行,并進行步驟S46返回工業控制協議300規定的操作碼和數據響應;若應用程序接口302中該控制指令的安全操作選項為屏蔽/放棄,如步驟S48控制設備3放棄該控制指令的操作并返回初始接收控制指令狀態。
一種工業控制系統中工業控制協議的安全防護方法,該方法的流程示意圖如圖6所示,通過人機界面在工業控制協議棧中預先設定控制指令的執行條件如步驟S61所示,接下來如步驟S62所示上位機發送控制指令到控制設備,并對控制指令的執行條件進行判斷,最后進行步驟S63所示判斷符合執行條件后,控制指令發送到執行設備,若不符合執行條件則控制指令不發送到執行設備。實現安全防護方法的系統包括控制設備、上位機、人機界面和執行設備;上位機和控制設備之間,控制設備與執行設備之間通過通信網絡連接。通過操作人員在控制設備中進行控制協議的預定義設定,并對所有通過上位機發出的控制指令必須在控制設備中進行預定義判斷比較,只有合法指令才能通過并被發送到執行設備,進而實現對工業控制系統中工業控制協議的安全防護,避免工業控制系統遭遇到非法入侵,造成工業控制設備和執行設備的損壞,在原有的網絡防火墻安全防護基礎上,增加了根據用戶特定需求的安全防護方法,提升工業控制系統的安全效果。
工業控制協議棧的軟件中包括一個應用程序API接口,該應用程序API接口提供所有工業控制協議中定義的控制指令的執行配置列表,執行配置列表中的每個控制指令都有對應的權限設置,權限設置選項包括但不限于:執行、放棄,對執行配置列表中的控制指令的權限進行設置,為用戶提供權限選擇,方便用戶根據實際工業現場的控制需求進行特定的設定,擴大本安全防護方法的適用范圍。
工業控制協議棧的接口與人機界面中的圖形用戶接口相連,并且在圖形用戶接口,操作員能夠根據控制設備的正常操作規程通過圖形用戶界面設置選擇相關的控制設備對于接收到的命令處理方法,即執行或放棄,通過人機界面,方便遠程控制端工程師通過遠程實現對工業控制系統安全防護方法的定制設定和啟用。
在上述的控制指令安全防護限定方法的基礎上,進一步對于控制命令執行的設置能夠根據時間標簽來進行設定,需要在特定的時間點或時間段才允許執行或放棄一個或多個控制指令,進一步工業控制系統的安全防護效果。
工業控制協議棧的軟件中包括一個應用程序接口(例如API接口),應用程序接口提供所有交互命令的執行配置列表,使得執行配置列表中的每個控制指令都有對應的權限設置,權限設置選項包括但不限于:執行、放棄和特定的規定有效時段,進一步增加安全防護等級。其中,規定有效時段包括永遠有效,永不有效,以及具體的時間段有效的定義。
對于控制指令的執行的設置能夠以滿足特定的條件選項或條件選項的組合來決定執行或放棄一個或多個控制指令,其中,條件選項是與控制設備自身相關要求控制指令符合工業控制協議一致性要求,但相關的數據部分會造成控制指令執行出錯的情況;條件選項包括但不限于協議寄存器大小限定、協議長度定義限定、寄存器地址匹配限定。
工業控制協議棧的軟件實現中包括一個應用程序接口,應用程序接口提供所有交互命令的執行配置列表,列表中的每個控制指令都有對應的權限設置,權限設置選項包括但不限于:執行,執行的條件選項;放棄,放棄的條件選項。
另一實施例,基于上述安全防護方法,控制命令的執行設置還能夠根據執行設備的測量值或執行設備的信息作為決定執行或放棄一個或多個命令的限定條件,即控制指令的執行與否,還需要根據現場執行設備的狀態信息進一步判斷決定,避免因錯誤的操作指令對執行設備造成不良影響;并且,工業控制協議棧的軟件中包括一個應用程序接口,應用程序接口提供所有交互命令的執行配置列表,執行配置列表中的每個控制指令都有對應的權限設置,權限設置選項包括但不限于以下含義:執行,執行的條件選項;放棄,放棄的條件選項。
以上所述僅為本發明的實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護范圍內。
應該注意的是,上述實施例對本發明進行說明而不是對本發明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包括”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。