梁 懌,李佳鵬,王洪鈞,趙愷鋒,姚 東,秦 華
(國家管網(wǎng)集團聯(lián)合管道有限責任公司 西氣東輸分公司,上海 200122)
隨著物聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能、云計算等前沿技術(shù)的迅猛發(fā)展,在油氣管道領(lǐng)域以智慧管道作為發(fā)展方向已經(jīng)成為全行業(yè)的共識。智慧管道的著力點之一就是利用數(shù)字化系統(tǒng)生成的海量數(shù)據(jù)進行智能分析和決策,以指導管道的全生命周期管理。目前,雖然天然氣管網(wǎng)在各個層面建立了不同的輔助管理系統(tǒng),包括:實現(xiàn)遠控智能分輸?shù)腟CADA系統(tǒng)[1-2],管理供應鏈的ERP系統(tǒng),管理管道巡護員的GPS巡線系統(tǒng)等,并且對單一系統(tǒng)有了非常深入的挖掘和使用,但各系統(tǒng)互相獨立,數(shù)據(jù)呈分散化態(tài)勢,決策還是得依賴于管理人員的經(jīng)驗。只有完成對數(shù)據(jù)的匯總?cè)诤?,讓一維化的數(shù)據(jù)變得立體化,才能進一步實現(xiàn)智能化分析。數(shù)據(jù)湖[3-5]就是打破各系統(tǒng)間壁壘,讓各信息孤島的數(shù)據(jù)進行有機整合的手段,可以說數(shù)據(jù)湖就是智慧管道的基礎(chǔ)。建設(shè)數(shù)據(jù)湖的關(guān)鍵點在于:各系統(tǒng)的網(wǎng)絡載體不一致,分別位于工控網(wǎng)、信息網(wǎng)以及互聯(lián)網(wǎng)中,而為了保護網(wǎng)絡安全,3種網(wǎng)絡在設(shè)計時是互相獨立的,如何在不危害網(wǎng)絡安全的前提下實現(xiàn)對數(shù)據(jù)的融合是首要解決的問題。為了推進智慧管道建設(shè),選取西氣東輸作為試點,提出了基于絕對單向技術(shù)的方案,建設(shè)了數(shù)據(jù)湖。
工控網(wǎng)用于連接工藝設(shè)備,以實現(xiàn)對生產(chǎn)的遠程監(jiān)控與安全保護。工控網(wǎng)在3種網(wǎng)絡中的安全等級最高,其與信息網(wǎng)、因特網(wǎng)沒有物理或邏輯上的連接。信息網(wǎng)是中國石油集團的辦公內(nèi)網(wǎng),是承載中石油辦公通信與業(yè)務流轉(zhuǎn)的網(wǎng)絡,信息網(wǎng)與互聯(lián)網(wǎng)通過代理服務器進行連接,即所有從信息網(wǎng)發(fā)出至互聯(lián)網(wǎng)的報文將經(jīng)代理服務器中轉(zhuǎn)后才能到達目的地。西氣東輸數(shù)據(jù)湖位于信息網(wǎng)中,位于信息網(wǎng)和互聯(lián)網(wǎng)中的系統(tǒng)很容易就能將數(shù)據(jù)傳送至湖中,但位于工控網(wǎng)中的數(shù)據(jù)則由于缺少數(shù)據(jù)通道而無法到達數(shù)據(jù)湖。
(1)網(wǎng)絡的數(shù)據(jù)入口越多,網(wǎng)絡的安全性越低。
(2)建立由高安全等級網(wǎng)絡向低安全等級網(wǎng)絡的絕對物理單向數(shù)據(jù)通道時,不會降低高安全等級網(wǎng)絡本身的安全性[6-8];
(3)區(qū)域只有在物理和邏輯上不可達才是安全的。若數(shù)據(jù)可達,那么無論設(shè)置了多少安全設(shè)備,采用了多少層的中間轉(zhuǎn)發(fā),也只能降低危險,而不能徹底消除危險,因為只要是正常數(shù)據(jù)能夠到達的區(qū)域,惡意數(shù)據(jù)同樣能夠到達[9-10]。
信息網(wǎng)設(shè)備與工控網(wǎng)設(shè)備處于兩個完全隔離的“孤島”上,兩張網(wǎng)絡間沒有任何數(shù)據(jù)可達的通路。若在兩張網(wǎng)間建立雙向的數(shù)據(jù)通道,則等同于信息網(wǎng)與工控網(wǎng)合并成了一張網(wǎng)絡,工控網(wǎng)的安全等級將降低至與信息網(wǎng)一致,這是絕對不允許的。既要建立數(shù)據(jù)通道,又不能影響工控網(wǎng)的安全性,最好的方式是建立從工控網(wǎng)到信息網(wǎng)的單向連接[11-13],即數(shù)據(jù)只能從工控網(wǎng)出發(fā)到達信息網(wǎng),而不能反向通行。
單向連接分為邏輯單向和物理單向兩種方式(表1)。邏輯單向是在數(shù)據(jù)通道上設(shè)置防火墻或具有配置功能的網(wǎng)閘,然后通過設(shè)置安全策略來丟棄反向報文,以保證數(shù)據(jù)的單向通行。物理單向是直接對物理層載體進行限制,即切斷反向傳輸?shù)木€纜,僅保留允許方向的線纜。物理單向也稱作絕對單向。
表1 物理單向與邏輯單向的區(qū)別
總體看來,邏輯單向易實現(xiàn),但安全性低;物理單向?qū)崿F(xiàn)困難,但安全性高。為了保障數(shù)據(jù)通道的安全性,西氣東輸數(shù)據(jù)湖選用了基于以太網(wǎng)的物理單向方案。方案以雙絞線作為物理層載體,但僅保留了工控網(wǎng)側(cè)的Tx端和信息網(wǎng)側(cè)的Rx端,剪斷工控網(wǎng)側(cè)的Rx端和信息網(wǎng)側(cè)的Tx端。同時,為了適應單向物理載體,還在信息網(wǎng)和工控網(wǎng)內(nèi)設(shè)置了通信代理,用于實現(xiàn)與網(wǎng)內(nèi)設(shè)備的雙向通信及網(wǎng)間的單向傳輸(圖1)。
圖1 信息網(wǎng)與工控網(wǎng)數(shù)據(jù)通道示意圖
根據(jù)TCP/IP對等模型,網(wǎng)絡通信由下往上分別由物理層、鏈路層、網(wǎng)絡層、傳輸層和應用層組成。物理層、鏈路層、網(wǎng)絡層和傳輸層統(tǒng)稱為下四層,用于實現(xiàn)端到端的通信,由網(wǎng)絡設(shè)備及附屬協(xié)議來實現(xiàn)。應用層用于傳輸具體數(shù)據(jù),由終端的軟件來實現(xiàn)。
由于物理層載體由雙向變更為單向,所以在其之上的鏈路層、網(wǎng)絡層和傳輸層協(xié)議也需要進行適應性的調(diào)整。
(1)鏈路層上對ARP協(xié)議的工作方式進行了調(diào)整。默認的ARP學習過程需要本端發(fā)出ARP Request,然后對端反饋ARP Reply后才能完成,由于物理載體僅能單向通行,所以ARP Reply報文無法返回本端。因此,在工控網(wǎng)側(cè)的服務器上人工指定了信息網(wǎng)側(cè)服務器IP與MAC地址的映射關(guān)系,以跳過ARP學習階段。
(2)網(wǎng)絡層的IP協(xié)議可以正常工作,但其附屬的ICMP協(xié)議將會失效。ICMP用于網(wǎng)絡通信的故障診斷,其要求基于雙向載體或至少能在數(shù)據(jù)流的逆向方向通信,因此在服務器上禁用了ICMP協(xié)議,以減少無用的數(shù)據(jù)包。
(3)傳輸層是應用層協(xié)議的載體,有TCP Socket和UDP Socket兩種。目前幾乎所有的工業(yè)應用層協(xié)議,包括Modbus TCP,IEC 104,OPC,CIP等是基于TCP Socket實現(xiàn)的。基于TCP Socket的應用層協(xié)議的可靠性更強,本端應用層協(xié)議在進行數(shù)據(jù)傳輸時,TCP協(xié)議會對每個報文打上標識,對端在接收到報文也將反饋TCP Ack表示已經(jīng)收到該報文,然后本端根據(jù)TCP Ack來識別傳輸過程中是否發(fā)生了報文丟失等異常情況,并自動采取相應的彌補措施,如進行重傳等,以確保每個報文都成功送達。但是TCP Socket要基于雙向可達的物理層載體來實現(xiàn),而UDP Socket則可以在單向載體上完成數(shù)據(jù)傳輸[14],因此需要將工業(yè)應用層協(xié)議由TCP Socket遷移至UDP Socket。
為了適應單向鏈路,在數(shù)據(jù)湖上設(shè)計了基于UDP的私有單向傳輸應用層協(xié)議IUTP(Industrial Unidirectional Transmission Protocol)。協(xié)議報文由Header(表2),Data和Checksum 3部分構(gòu)成。
表2 IUTP Header結(jié)構(gòu)
Data用于裝載實際發(fā)送的數(shù)據(jù),最大長度為1 465 Bytes。若超過1 465 Bytes會引起數(shù)據(jù)分片,進而造成傳輸效率降低。Checksum是基于CRC-16算法的校驗和,占用2 Bytes,用于對Header和Data的完整性進行校驗,若在數(shù)據(jù)傳輸過程中IUTP報文發(fā)生了字符丟失或變更,接收端能夠憑借Checksum識別發(fā)現(xiàn),然后丟棄錯誤報文。
應用層對傳輸機制進行了優(yōu)化,用于解決傳輸層遷移至UDP后數(shù)據(jù)傳輸可靠性不足的問題。數(shù)據(jù)湖在傳輸過程中對Reed-Solomon算法[15-18]進行了簡化和改良,在保證高刷新率的同時對原始數(shù)據(jù)插入了糾錯數(shù)據(jù),若在傳輸過程中發(fā)生數(shù)據(jù)丟失,則接收端服務器能夠利用糾錯冗余數(shù)據(jù)對已丟失的數(shù)據(jù)包進行恢復。
(1)
式中:D1,D2,…,Dn表示切割后的原始數(shù)據(jù),n表示切割的數(shù)量,m表示最多允許丟失的數(shù)據(jù)包數(shù)量,C1,C2,…,Cm表示插入的糾錯冗余數(shù)據(jù)包。
假設(shè)在在數(shù)據(jù)傳輸過程中D2和C1數(shù)據(jù)塊丟失,則可通過逆矩陣恢復獲取原始數(shù)據(jù)。
(2)
工控網(wǎng)與信息網(wǎng)的單向通信部署完畢后,還對兩臺服務器設(shè)置了相應的安全策略[19-21],包括:
(1)通過軟件防火墻阻塞了除單向傳輸協(xié)議外的所有端口;
(2)在工控網(wǎng)側(cè)服務器上啟用了應用層加密/解密協(xié)議。數(shù)據(jù)離開工控網(wǎng)側(cè)服務器前進行數(shù)據(jù)加密,數(shù)據(jù)穿越單向鏈路到達信息網(wǎng)側(cè)服務器后,再進行數(shù)據(jù)解密;
(3)在服務器上部署了基于白名單的安全軟件。白名單軟件在服務器投用之初進行一次深度掃描,然后基于系統(tǒng)運行的進程形成白名單列表。白名單軟件根據(jù)列表進行“非白即黑”的決策,即僅允許列表中的進程運行,列表之外的其他程序一律禁止。
數(shù)據(jù)湖投用之前,西氣東輸開展了對單向傳輸?shù)目煽啃詼y試。測試內(nèi)容是對單向傳輸設(shè)置不同的刷新速率,然后查看傳輸丟包率(圖2)。單次測試運行的周期為72 h。測試結(jié)果顯示:當數(shù)據(jù)傳輸周期大于或等于1.8 s時,丟包率低于10-5。
圖2 不同刷新率下數(shù)據(jù)傳輸?shù)膩G包率
數(shù)據(jù)湖投用之前,西氣東輸組織公司內(nèi)外專家開展了2次滲透測試,測試均在真實環(huán)境下進行。測試內(nèi)容包括:(1)提供信息網(wǎng)的接入點,嘗試通過單向數(shù)據(jù)通道打入工控網(wǎng);(2)提供互聯(lián)網(wǎng)的接入點,嘗試通過信息網(wǎng)與互聯(lián)網(wǎng)之間的數(shù)據(jù)通道打入信息網(wǎng);(3)提供工控網(wǎng)側(cè)服務器的全部權(quán)限,嘗試攻擊信息網(wǎng)側(cè)服務器;(4)提供信息網(wǎng)的接入點,嘗試攻擊信息網(wǎng)側(cè)服務器;(5)提供工控網(wǎng)的接入點,嘗試攻擊工控網(wǎng)側(cè)服務器。測試結(jié)果顯示所有的滲透攻擊行為均未成功,表明西氣東輸數(shù)據(jù)湖的單向通信架構(gòu)可以實現(xiàn)在不同網(wǎng)絡之間進行數(shù)據(jù)的安全傳輸。
安全性和可靠性測試通過后,西氣東輸組織對數(shù)據(jù)湖開展了試運行,一期上線2項數(shù)據(jù)分析功能:(1)結(jié)合站場壓縮機啟停情況,站場進出口壓力情況,計量系統(tǒng)流量數(shù)據(jù)以及管道生產(chǎn)管理系統(tǒng)的填報數(shù)據(jù),實時展示西氣東輸入口關(guān)鍵站場的天然氣流向;(2)結(jié)合各站場PLC系統(tǒng)模塊運行狀態(tài),ERP備件調(diào)撥使用情況以及設(shè)備故障庫更新情況,形成模塊壽命統(tǒng)計表。試運行情況顯示:數(shù)據(jù)湖工作穩(wěn)定可靠,未出現(xiàn)宕機、空轉(zhuǎn)等異常情況。
西氣東輸數(shù)據(jù)湖提供了一種設(shè)計方案,讓原本處于信息孤島的不同系統(tǒng)進行了交互,實現(xiàn)了由工控網(wǎng)至信息網(wǎng)的單向數(shù)據(jù)傳輸。相較于系統(tǒng)處于信息孤島時的狀態(tài),新型通信架構(gòu)下工控網(wǎng)的安全性與過去持平,信息網(wǎng)的安全性在理論上略有降低。在通信可靠性方面,由于工控網(wǎng)與信息網(wǎng)的數(shù)據(jù)傳輸為單向鏈路,沒有確認反饋機制,雖然通過改良的Reed-Solomon算法增強了數(shù)據(jù)的糾錯能力,但是在理論上的可靠性仍稍低于基于雙向鏈路的TCP 傳輸。西氣東輸數(shù)據(jù)湖的單向通信架構(gòu),在安全性和功能性之間找到一個較好的平衡點,在盡量不影響網(wǎng)絡安全的前提下,實現(xiàn)了較高可靠性的數(shù)據(jù)傳輸。單向通信架構(gòu)為智慧管網(wǎng)數(shù)據(jù)湖的設(shè)計提供了一個較好的參考范例,值得推廣應用。