![]() |
東莞市廣聯自動化科技有限公司
主營產品: HYDAC壓力開關,BURKERT電磁閥,WAUKEE流量計,ATOS油泵,德國REXROTH電磁換向閥,BERNSTEIN傳感器 |

聯系電話
![]() |
東莞市廣聯自動化科技有限公司
主營產品: HYDAC壓力開關,BURKERT電磁閥,WAUKEE流量計,ATOS油泵,德國REXROTH電磁換向閥,BERNSTEIN傳感器 |
聯系電話
2016-9-22 閱讀(940)
隨著“互聯網+制造”的工業4.0概念的提出,獨立、隔離的傳統工控領域迎來了新的大數據互聯時代。與此同時,工控安全的問題,也隨著互聯,被更廣泛的暴露在了Internet中。在Shodan、ZoomEye等搜索中,可以很容易的搜索到真實工控現場工控設備的IP地址,并且可以利用組態軟件訪問到對應的設備。近幾年來,越來越多的工控設備被暴露在了互聯網上。
在Black Hat2011,Dillon Beresford等人在他們的報告《Exploiting Siemens Simatic S7 PLCs》中演示了如何通過西門子S7Comm協議的權限缺失漏洞來遠程操作PLC。在Black Hat2015,Johannes Klick 等在他們的報告《Internet-facing PLCs – A New Back Orifice》中演示攻擊者如何通過現貨,來發現內網中更多的PLC設備。本文將展示的是一種新型的PLC蠕蟲病毒,該病毒可以不借助上位PC機,僅通過PLC之間進行互相傳播。該病毒的實現思路,適用于多個廠家的PLC設備,并且可以在一定規則范圍內相互進行傳播。本文采用西門子PLC舉例進行說明。
西門子PLC簡介
PLC全稱為Programmable Logic Controller,即可編程邏輯控制器,是一種采用一類可編程的存儲器,用于其內部存儲程序,執行邏輯運算、順序控制、定時、計數與算術操作等面向用戶的指令,并通過數字或模擬式輸入/輸出控制各種類型的機械或生產過程。西門子作為PLC*zui高的PLC設備廠家,其產品系列主要包括S7-200、S7-300、S7-400、S7-1200、S7-1500等。其中S7-200、S7-300、S7-400系列的PLC采用早期的西門子私有協議S7Comm進行通信。S7Comm協議已被研究者*掌握,并且在github上可以下載到該協議的插件。S7-1200系列固件版本為V3.0以下的PLC采用西門子新一代的S7Comm-Plus協議進行通信。該協議采用了一些特殊編碼規范,并且做了抗重放攻擊的防護。但是其安全防護仍然較弱,已被基本。S7-1200系列固件版本為V3.0以上,以及S7-1500系列的PLC,采用了的S7Comm-Plus協議,該協議對比之前S7Comm-Plus協議,采用了加密算法,目前仍未被研究透徹。
西門子PLC通過Step7以及WinCC軟件進行組態,目前版本為TIA Portal V13。其中使用Step7進行下位機組態,WinCC進行上位機組態。
在Step7組態軟件中,用戶通過編寫POU程序塊來完成工業現場的控制以及工藝流程的實現。西門子POU程序塊包括:
OB(Organization Block ):組織塊,為用戶程序的入口程序塊
FB(Function Block):功能函數塊,實現一些封裝好的函數功能
FC(Function):函數塊,為用戶編寫的程序
DB(Data Block):數據塊,用來存放全局變量
SFB(System Function Block):系統功能函數庫,系統內部封裝的函數塊
SFC(System Function):系統函數庫,系統內部封裝的函數
Step7程序塊的組態語言包括LD(梯形圖),FBD(功能塊圖)、SCL(結構化控制語言)、STL(語句列表)。
西門子PLC在進行程序下裝的過程中,首先會在下裝前停止PLC的運算,下裝程序完成后再重新啟動PLC。
病毒的實現
對于病毒的實現流程,首先選擇IP嘗試建立連接,如果連接建立成功,則檢查目標PLC是否已被感染。如連接未建立成功,或目標PLC已被感染,則選擇新IP重新嘗試建立連接。如目標PLC未被感染,則停止目標PLC,下裝病毒程序,zui后重新啟動目標PLC。