楊泓彬++于浩
【摘 要】 為使工業從業人員提高工控系統信息安全防范意識,加強工控設備信息安全防護措施,本文將針對一套鍋爐控制系統中的可編程控制器西門子S7-300進行相關網絡攻擊測試,通過利用了S7-300 PLC與上位機編程軟件STEP7間通信過程中身份認證機制不完善的脆弱點,以重放攻擊的形式人為控制PLC開關機。通過實例證明,網絡攻擊可以在工控系統中輕松實現,借此希望引起相關從業人員人員的重視。
【關鍵詞】 鍋爐 可編程控制器 重放攻擊 脆弱性
鍋爐作為一種重要的工業生產設備,在化工、發電以及人們的日常生活中起著至關重要的作用。近幾年,隨著對工業生產要求的不斷提高,鍋爐作為工業過程中重要的上游動力設備,也正向著大容量、多參數、高效率的方向快速進步。因此,保證鍋爐的運行安全,意義重大。
但隨著計算機技術、通信技術和控制技術的發展,傳統的控制領域已向網絡化方向高速發展。尤其以“震網”病毒為首的幾起工控信息安全事件的發生,使得工控系統安全得到了國家有關部門的高度重視。為引起相關從業人員對工控信息安全的重視,本文通過對基于西門子S7-300可編程邏輯控制器(Programmable Logic Controller,PLC)的鍋爐控制系統進行針對性的模擬網絡攻擊,來分析PLC這一常見的控制器的安全隱患,并模擬工控系統信息安全脆弱性可能帶來的危害。
1 鍋爐控制系統(如圖1)
1.1 鍋爐控制系統介紹
鍋爐系統(包括爐膛、油箱和水箱)作為被控對象,由西門子S7-300PLC等現場工業控制器采集鍋爐系統的所有數字量、模擬量信號,完成對鍋爐系統的閉環控制。同時,在該控制系統中,工業監控服務器通過工業以太網與現場控制器通訊,監控鍋爐的運行狀態和修改運行參數。
本系統的控制器主要由西門子S7-300 PLC、ABB AC-500 PLC及北京安控Super32-L RTU組成。其中,S7-300 PLC將對鍋爐主體完成全部的控制功能,包括對鍋爐進水量、進油量、汽包水位和壓力等的控制;安控Super32-L RTU完成對水箱的控制功能,通過讀取水箱內部實時水位作出補水、告警等功能;ABB AC-500 PLC完成對油箱的控制功能,通過對其油箱內部實時油位作出進油、告警等功能。
鍋爐控制系統網絡結構圖如圖2所示。
1.2 控制系統軟件設計(如圖3)
在本文介紹的控制系統中,西門子S7-300 PLC負責了對鍋爐燃燒狀態的控制,我們將對其進行基于網絡的信息安全攻擊測試,因此,S7-300 PLC是我們研究的重點。
S7-300是德國西門子公司生產的可編程控制器(PLC)系列產品之一,在國內外各工業領域都有廣泛的應用。其中,在我國的水利、煉化等領域的關鍵控制系統中更是起到了核心控制器的作用。S7-300系列PLC采用了模塊化結構設計,各種單獨模塊之間可進行廣泛組合和擴展,包括導軌、電源模塊、CPU模塊、接口模塊、信號模塊、功能模塊等,在提升其技術開放性的同時也帶來了一定的安全隱患。現在,越來越多的控制方案會選擇將PLC與從設備或現場儀表的通信通過現場總線、與上位機系統的通信通過工業以太網進行,這便使得通過以太網對PLC等工業控制設備進行攻擊成為可能。
在本系統中,S7-300 PLC主要負責鍋爐本體控制方案的實現。其對鍋爐本體的控制可分為:(1)對汽包水位的PID控制;(2)對汽包壓力的PID控制;(3)對緊急停車及復位的控制;(4)對鍋爐燃燒、停爐的時序控制,所有控制的狀態由S7-300 PLC通過工業以太網傳送到上位機的WINCC監控界面中。
控制方案的軟件實現由西門子編程軟件STEP7完成,西門子STEP7是用于SIMATIC S7系列PLC創建可編程邏輯控制程序的標準軟件。用戶程序由用戶在STEP7中生成,然后將其下載到PLC中,用戶程序可包含處理用戶特定的自動化任務所需要的所有功能。
2 網絡攻擊
2.1 攻擊原理
本節將介紹鍋爐控制系統中對西門S7-300 PLC的模擬網絡攻擊,筆者將通過對完全面向市場開放的工控軟硬件進行試驗分析,獲取可被利用的通信數據,從而在鍋爐控制系統中進行重放攻擊,使之造成一定的惡意破壞效果。
重放攻擊(Replay Attacks)是指攻擊者發送一個目的主機已接收過的包,來達到欺騙系統的目的。這種攻擊會不斷惡意或欺詐性地重復一個有效的數據傳輸,重放攻擊可以由發起者,也可以由攔截并重發該數據的敵方進行。在本實驗中,攻擊者利用網絡監聽或者模擬環境重現獲取相應的認證憑據,之后再把它重新發給通信雙方,即使兩者通信中關鍵數據進行了加密,但是仍防止不了重放攻擊發生。
2.2 攻擊環境
本文中,鍋爐控制系統的核心控制器S7-300 PLC的IP地址為192.168.0.9,其余設備IP地址分配如表1所示。對于攻擊者而言,IP地址可以通過入侵到工廠網絡后進行嗅探發現,亦可通過社會工程學手段間接獲取。實際環境中,攻擊者甚至可以無需知曉IP地址,在發起網絡攻擊時對所有可能是控制設備的IP地址進行無差別的試探攻擊來達到目的。本文在介紹攻擊過程前設定一個攻擊者已掌握目標控制系統所處網絡環境的前提,即筆者事先已掌握了鍋爐控制系統內各設備的網絡參數。
2.3 攻擊過程
2.3.1 復現攻擊場景
S7-300 PLC及STEP7編程軟件為市面上可輕易獲得的工控軟硬件,筆者預先在實驗室對PLC與上位機軟件通信的環境進行模擬,抓取影響關鍵操作、可重放的網絡數據流。筆者發現STEP7在為S7-300 PLC下裝組態時會強制令PLC的CPU進入停止狀態,即狀態由RUN MODE切換至STOP MODE。筆者多次試驗上述操作,確認這段TCP會話數據流沒有采用身份認證措施。因此,若能夠偽裝成控制系統內的上位機重放這段會話,就有可能產生將PLC“關機”的效果。endprint
2.3.2 攻擊準備
攻擊者編寫用于重放該段網絡數據流的腳本工具,于實驗室環境中對PLC進行重放攻擊,成功實現了“遠程關閉PLC”這一行為。如圖4所示,TCP協議所承載的應用層數據未采用相應的認證措施,任何與PLC進行這段TCP會話的設備均可使PLC停止工作。
2.3.3 攻擊實施
實際情況中,攻擊者需要將所編寫的“惡意代碼”帶入到工控系統的網絡中。筆者制作含有所編寫的攻擊腳本的小型便攜式設備,從物理上接近控制系統直接通過接入以太網將惡意代碼植入到網絡中。惡意代碼開始運作后,第一步要獲取與S7-300 PLC的“通信權”,如果該PLC在組態編程時設定了訪問控制列表,則可以對整個工控網絡進行ARP欺騙,將自己偽裝成處于該訪問控制列表中的主機。與PLC可建立TCP連接后,直接重放實驗室中獲得的TCP數據流。
2.3.4 攻擊后果
與實驗室試驗的結果相同,鍋爐控制系統中的S7-300 PLC受到網絡攻擊后,其運行狀態從RUN MODE切換至STOP MODE,上位機WINCC監控畫面丟失了所有S7-300 PLC的監控數據響應,S7-300 PLC對于爐膛內部的閉環控制也瞬間停止,爐膛內部水位、溫度等參數處于不可控的狀態。
由于本次模擬攻擊是在受控環境中實施的,攻擊發生后及時為PLC重啟,未產生任何物理破壞與財產損失。在實際工況中,即使發生了針對鍋爐控制系統的網絡攻擊,由于聯鎖保護裝置的存在,產生極其嚴重的破壞的可能性較低,但因為停工可能會造成一定程度上的財產損失。
2.4 結論分析
本文所進行的模擬攻擊利用了S7-300 PLC與上位機編程軟件STEP7間通信過程中身份認證機制不完善的脆弱點,以重放攻擊的形式令PLC工作停止。使用同樣的手段,筆者也能使PLC從“停止”模式切換至“運行”模式或“清除”模式,致使PLC工作異常。
經筆者驗證,除了西門子S7系列PLC有此類問題存在,對于其他廠商的控制器也能通過這種手段經由網絡進行攻擊。產生此類問題的根源是設備廠商在研制承載于以太網的設備間通訊協議時,沒有很完整地考慮協議的安全性。因此,其脆弱性可以說是由設備自身帶來的。一個有效地防范此類脆弱性帶來的危害的辦法是:不影響工控系統可用性的前提下,在系統網絡上采取針對網絡數據流量的審計、監控措施,在攻擊的初期階段即及時發現異常嗅探、ARP欺騙等行為的發生,在攻擊發生時采用“白名單”策略過濾異常工控協議數據,保證整個控制系統穩定運行。
3 結語
本文對基于西門子S7-300 PLC鍋爐控制系統進行了分析,提出了一種針對PLC的網絡攻擊手段,并詳述了攻擊過程以及產生的后果。此類網絡攻擊可以對多種關鍵基礎設施中的各類PLC產生效果,對實際工況造成一定的影響。因此,本文的研究工作為工業控制系統的信息安全研究提供了一種思路和方法,同時也旨在引起相應業內人士的重視和思考。
參考文獻:
[1]王亞迪.基于Matlab/RTW的鍋爐控制系統硬件在環設計[D].上海:華東理工大學,2013.
[2]廖常初.S7-300/400 PLC應用技術[M].北京:機械工業出版社,2005:8.
[3]溫彥文,吳春生.可編程控制器(PLC)在鍋爐自動控制系統中的應用與實踐[J].北京:中國科技縱橫,2010
[4]周強泰.鍋爐原理[M].北京:中國電力出版社,2009:9.endprint
2.3.2 攻擊準備
攻擊者編寫用于重放該段網絡數據流的腳本工具,于實驗室環境中對PLC進行重放攻擊,成功實現了“遠程關閉PLC”這一行為。如圖4所示,TCP協議所承載的應用層數據未采用相應的認證措施,任何與PLC進行這段TCP會話的設備均可使PLC停止工作。
2.3.3 攻擊實施
實際情況中,攻擊者需要將所編寫的“惡意代碼”帶入到工控系統的網絡中。筆者制作含有所編寫的攻擊腳本的小型便攜式設備,從物理上接近控制系統直接通過接入以太網將惡意代碼植入到網絡中。惡意代碼開始運作后,第一步要獲取與S7-300 PLC的“通信權”,如果該PLC在組態編程時設定了訪問控制列表,則可以對整個工控網絡進行ARP欺騙,將自己偽裝成處于該訪問控制列表中的主機。與PLC可建立TCP連接后,直接重放實驗室中獲得的TCP數據流。
2.3.4 攻擊后果
與實驗室試驗的結果相同,鍋爐控制系統中的S7-300 PLC受到網絡攻擊后,其運行狀態從RUN MODE切換至STOP MODE,上位機WINCC監控畫面丟失了所有S7-300 PLC的監控數據響應,S7-300 PLC對于爐膛內部的閉環控制也瞬間停止,爐膛內部水位、溫度等參數處于不可控的狀態。
由于本次模擬攻擊是在受控環境中實施的,攻擊發生后及時為PLC重啟,未產生任何物理破壞與財產損失。在實際工況中,即使發生了針對鍋爐控制系統的網絡攻擊,由于聯鎖保護裝置的存在,產生極其嚴重的破壞的可能性較低,但因為停工可能會造成一定程度上的財產損失。
2.4 結論分析
本文所進行的模擬攻擊利用了S7-300 PLC與上位機編程軟件STEP7間通信過程中身份認證機制不完善的脆弱點,以重放攻擊的形式令PLC工作停止。使用同樣的手段,筆者也能使PLC從“停止”模式切換至“運行”模式或“清除”模式,致使PLC工作異常。
經筆者驗證,除了西門子S7系列PLC有此類問題存在,對于其他廠商的控制器也能通過這種手段經由網絡進行攻擊。產生此類問題的根源是設備廠商在研制承載于以太網的設備間通訊協議時,沒有很完整地考慮協議的安全性。因此,其脆弱性可以說是由設備自身帶來的。一個有效地防范此類脆弱性帶來的危害的辦法是:不影響工控系統可用性的前提下,在系統網絡上采取針對網絡數據流量的審計、監控措施,在攻擊的初期階段即及時發現異常嗅探、ARP欺騙等行為的發生,在攻擊發生時采用“白名單”策略過濾異常工控協議數據,保證整個控制系統穩定運行。
3 結語
本文對基于西門子S7-300 PLC鍋爐控制系統進行了分析,提出了一種針對PLC的網絡攻擊手段,并詳述了攻擊過程以及產生的后果。此類網絡攻擊可以對多種關鍵基礎設施中的各類PLC產生效果,對實際工況造成一定的影響。因此,本文的研究工作為工業控制系統的信息安全研究提供了一種思路和方法,同時也旨在引起相應業內人士的重視和思考。
參考文獻:
[1]王亞迪.基于Matlab/RTW的鍋爐控制系統硬件在環設計[D].上海:華東理工大學,2013.
[2]廖常初.S7-300/400 PLC應用技術[M].北京:機械工業出版社,2005:8.
[3]溫彥文,吳春生.可編程控制器(PLC)在鍋爐自動控制系統中的應用與實踐[J].北京:中國科技縱橫,2010
[4]周強泰.鍋爐原理[M].北京:中國電力出版社,2009:9.endprint
2.3.2 攻擊準備
攻擊者編寫用于重放該段網絡數據流的腳本工具,于實驗室環境中對PLC進行重放攻擊,成功實現了“遠程關閉PLC”這一行為。如圖4所示,TCP協議所承載的應用層數據未采用相應的認證措施,任何與PLC進行這段TCP會話的設備均可使PLC停止工作。
2.3.3 攻擊實施
實際情況中,攻擊者需要將所編寫的“惡意代碼”帶入到工控系統的網絡中。筆者制作含有所編寫的攻擊腳本的小型便攜式設備,從物理上接近控制系統直接通過接入以太網將惡意代碼植入到網絡中。惡意代碼開始運作后,第一步要獲取與S7-300 PLC的“通信權”,如果該PLC在組態編程時設定了訪問控制列表,則可以對整個工控網絡進行ARP欺騙,將自己偽裝成處于該訪問控制列表中的主機。與PLC可建立TCP連接后,直接重放實驗室中獲得的TCP數據流。
2.3.4 攻擊后果
與實驗室試驗的結果相同,鍋爐控制系統中的S7-300 PLC受到網絡攻擊后,其運行狀態從RUN MODE切換至STOP MODE,上位機WINCC監控畫面丟失了所有S7-300 PLC的監控數據響應,S7-300 PLC對于爐膛內部的閉環控制也瞬間停止,爐膛內部水位、溫度等參數處于不可控的狀態。
由于本次模擬攻擊是在受控環境中實施的,攻擊發生后及時為PLC重啟,未產生任何物理破壞與財產損失。在實際工況中,即使發生了針對鍋爐控制系統的網絡攻擊,由于聯鎖保護裝置的存在,產生極其嚴重的破壞的可能性較低,但因為停工可能會造成一定程度上的財產損失。
2.4 結論分析
本文所進行的模擬攻擊利用了S7-300 PLC與上位機編程軟件STEP7間通信過程中身份認證機制不完善的脆弱點,以重放攻擊的形式令PLC工作停止。使用同樣的手段,筆者也能使PLC從“停止”模式切換至“運行”模式或“清除”模式,致使PLC工作異常。
經筆者驗證,除了西門子S7系列PLC有此類問題存在,對于其他廠商的控制器也能通過這種手段經由網絡進行攻擊。產生此類問題的根源是設備廠商在研制承載于以太網的設備間通訊協議時,沒有很完整地考慮協議的安全性。因此,其脆弱性可以說是由設備自身帶來的。一個有效地防范此類脆弱性帶來的危害的辦法是:不影響工控系統可用性的前提下,在系統網絡上采取針對網絡數據流量的審計、監控措施,在攻擊的初期階段即及時發現異常嗅探、ARP欺騙等行為的發生,在攻擊發生時采用“白名單”策略過濾異常工控協議數據,保證整個控制系統穩定運行。
3 結語
本文對基于西門子S7-300 PLC鍋爐控制系統進行了分析,提出了一種針對PLC的網絡攻擊手段,并詳述了攻擊過程以及產生的后果。此類網絡攻擊可以對多種關鍵基礎設施中的各類PLC產生效果,對實際工況造成一定的影響。因此,本文的研究工作為工業控制系統的信息安全研究提供了一種思路和方法,同時也旨在引起相應業內人士的重視和思考。
參考文獻:
[1]王亞迪.基于Matlab/RTW的鍋爐控制系統硬件在環設計[D].上海:華東理工大學,2013.
[2]廖常初.S7-300/400 PLC應用技術[M].北京:機械工業出版社,2005:8.
[3]溫彥文,吳春生.可編程控制器(PLC)在鍋爐自動控制系統中的應用與實踐[J].北京:中國科技縱橫,2010
[4]周強泰.鍋爐原理[M].北京:中國電力出版社,2009:9.endprint