Modbus 的RTU、ASCII、TCP傻傻搞不清楚?一文全解讀

18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> PLC基礎入門教程 >> 正文

Modbus 的RTU、ASCII、TCP傻傻搞不清楚?一文全解讀

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2023/3/31

寫(xie) 在麵前

今天來聊一聊Modbus,先看看今天的主要內(nei) 容:

01 術語解讀

02 背景

03 協議原理

04 傳(chuan) 輸方式

05 Modbus RTU與(yu) Modbus ASCII有什麽(me) 區別

06 Modbus TCP及其注意點

07 功能碼作用

08 Modbus協議安全分析



校驗碼:校驗碼通常是一組數字的最後一位,由前麵的數字通過某種運算得出,用以檢驗該組數據的正確性。代碼作為(wei) 數據在向計算機或其它設備進行輸入時,容易產(chan) 生輸入錯誤,為(wei) 了減少這種輸入錯誤,編碼專(zhuan) 家發明了各種校驗檢錯方法,並依據這些方法設置了校驗碼。常用的校驗有:累加和校驗SUM、字節異或校驗XOR、縱向冗餘(yu) 校驗LRC、循環冗餘(yu) 校驗CRC……

離散量輸入:主要用來讀取單個(ge) 位的數據,如IO的狀態;

線圈:開關(guan) 輸出信號,主要用來寫(xie) 入單個(ge) 位的數據,與(yu) 離散量構成組成對位的操作;

輸入寄存器:主要用來讀取16位,也就是兩(liang) 個(ge) 字節的數據;

保持寄存器:主要用來寫(xie) 入16位的數據;

PLC:可編程邏輯控製器,是一種采用一類可編程的存儲(chu) 器,用於(yu) 其內(nei) 部存儲(chu) 程序和執行邏輯運算、順序控製、定時、計數與(yu) 算術操作等麵向用戶的指令,並通過數字或模擬式輸入/輸出控製各種類型的機械或生產(chan) 過程。

串口通信:隨著計算機係統的應用和微機網絡的發展,通信功能越來越顯得重要。這裏所說的通信是指計算機與(yu) 外界的信息交換。因此,通信既包括計算機與(yu) 外部設備之間,也包括計算機和計算機之間的信息交換。由於(yu) 串行通信是在一根傳(chuan) 輸線上一位一位的傳(chuan) 送信息,所用的傳(chuan) 輸線少,並且可以借助現成的電話網進行信息傳(chuan) 送,因此特別適合於(yu) 遠距離傳(chuan) 輸。對於(yu) 那些與(yu) 計算機相距不遠的人-機交換設備和串行存儲(chu) 的外部設備如終端、打印機、邏輯分析儀(yi) 、磁盤等,采用串行方式交換數據也很普遍。在實時控製和管理方麵,采用多台微機處理機組成分級分布控製係統中,各 CPU 之間的通信一般都是串行方式。所以串行接口是微機應用係統常用的接口。許多外設和計算機按串行方式進行通信,這裏所說的串行方式,是指外設與(yu) 接口電路之間的信息傳(chuan) 送方式,實際上CPU 與(yu) 接口之間仍按並行方式工作。

串口:串口是計算機上一種非常通用設備通信的協議,不要與(yu) 通用串行總線Universal Serial Bus(USB)混淆。大多數計算機包含兩(liang) 個(ge) 基於(yu) RS232的串口。串口同時也是儀(yi) 器儀(yi) 表設備通用的通信協議;很多GPIB兼容的設備也帶有RS-232口。同時,串口通信協議也可以用於(yu) 獲取遠程采集設備的數據。

串口通信的概念非常簡單,串口按位(bit)發送和接收字節。盡管比按字節(byte)的並行通信要慢,但是串口可以在使用一根線發送數據的同時用另一根線接收數據。它很簡單並且能夠實現遠距離通信。比如IEEE488定義(yi) 並行通行狀態時,規定設備線總常不得超過20米,並且任意兩(liang) 個(ge) 設備間的長度不得超過2米;而對於(yu) 串口而言,長度可達1200米。 

典型地,串口用於(yu) ASCII碼字符的傳(chuan) 輸。通信使用3根線完成:地線、發送和接收。由於(yu) 串口通信是異步的,端口能夠在一根線上發送數據同時在另一根線上接收數據。其他線用於(yu) 握手,但是不是必須的。串口通信最重要的參數是波特率、數據位、停止位和奇偶校驗。對於(yu) 兩(liang) 個(ge) 進行通行的端口,這些參數必須匹配:

a. 波特率:這是一個(ge) 衡量通信速度的參數。它表示每秒鍾傳(chuan) 送的bit的個(ge) 數。例如300波特表示每秒鍾發送300個(ge) bit。當我們(men) 提到時鍾周期時,我們(men) 就是指波特率。例如如果協議需要4800波特率,那麽(me) 時鍾是4800Hz。這意味著串口通信在數據線上的采樣率為(wei) 4800Hz。通常電話線的波特率為(wei) 14400,28800和36600。波特率可以遠遠大於(yu) 這些值,但是波特率和距離成反比。高波特率常常用於(yu) 放置的很近的儀(yi) 器間的通信,典型的例子就是GPIB設備的通信。
b. 數據位:這是衡量通信中實際數據位的參數。當計算機發送一個(ge) 信息包,實際的數據不會(hui) 是8位的,標準的值是5、7和8位。如何設置取決(jue) 於(yu) 你想傳(chuan) 送的信息。比如,標準的ASCII碼是0~127(7位)。擴展的ASCII碼是0~255(8位)。如果數據使用簡單的文本(標準 ASCII碼),那麽(me) 每個(ge) 數據包使用7位數據。每個(ge) 包是指一個(ge) 字節,包括開始/停止位,數據位和奇偶校驗位。由於(yu) 實際數據位取決(jue) 於(yu) 通信協議的選取,術語“包”指任何通信的情況。
c. 停止位:用於(yu) 表示單個(ge) 包的最後一位。典型的值為(wei) 1,1.5和2位。由於(yu) 數據是在傳(chuan) 輸線上定時的,並且每一個(ge) 設備有其自己的時鍾,很可能在通信中兩(liang) 台設備間出現了小小的不同步。因此停止位不僅(jin) 僅(jin) 是表示傳(chuan) 輸的結束,並且提供計算機校正時鍾同步的機會(hui) 。適用於(yu) 停止位的位數越多,不同時鍾同步的容忍程度越大,但是數據傳(chuan) 輸率同時也越慢。
d. 奇偶校驗位:在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當然沒有校驗位也是可以的。對於(yu) 偶和奇校驗的情況,串口會(hui) 設置校驗位(數據位後麵的一位),用一個(ge) 值確保傳(chuan) 輸的數據有偶個(ge) 或者奇個(ge) 邏輯高位。例如,如果數據是011,那麽(me) 對於(yu) 偶校驗,校驗位為(wei) 0,保證邏輯高的位數是偶數個(ge) 。如果是奇校驗,校驗位位1,這樣就有3個(ge) 邏輯高位。高位和低位不真正的檢查數據,簡單置位邏輯高或者邏輯低校驗。這樣使得接收設備能夠知道一個(ge) 位的狀態,有機會(hui) 判斷是否有噪聲幹擾了通信或者是否傳(chuan) 輸和接收數據是否不同步。


早在1971年,Modicon公司首次推出了Modbus協議,ModbusRTU和Modbus ASCII誕生於(yu) 此。後來施耐德電氣(SchneiderElectric)收購了Modicon公司,並在1997年推出了ModbusTCP協議。2004年,中國國家標準委員會(hui) 正式把Modbus作為(wei) 了國家標準,開啟了Modbus為(wei) 中國工業(ye) 通信做貢獻的時代。

通過此協議,控製器相互之間、控製器經由網絡和其它設備之間可以通信。Modbus協議具有標準、開放,可以支持多種電氣接口,數據幀格式簡單緊湊,數據傳(chuan) 輸量大、實時性好等特點,在工業(ye) 控製係統中得到了廣泛的應用,已經成為(wei) 通用工業(ye) 標準。深入分析Modbus協議實現原理和其安全性對提高工控係統安全性有著重要的現實意義(yi) 。ModbusRTU和ModbusASCII主要用於(yu) 串行通信領域,而ModbusTCP則常用於(yu) 以太網通信。現在,Modbus已經成為(wei) 工業(ye) 領域通信協議標準,並且現在是工業(ye) 電子設備之間相當常用的連接方式。

 


Modbus使用一種簡單的MasterandSlave主從(cong) 協議(客戶機/服務器協議)進行通信。客戶機作為(wei) 主站,向服務器發送請求;服務器(從(cong) 站)接到請求後,對請求進行分析並作出應答。其中使用的通信幀被稱為(wei) 應用數據單元(Application Data Unit,ADU),它包括通信地址段、功能代碼段、數據段和校驗段,如下圖:

 

一般使用上,監控係統(HMI)都為(wei) Master,PLC、電表、儀(yi) 表等都為(wei) Slave,HMI係統一直PollingSlave的各種relayandregister最新數值,然後做顯示及各種邏輯計算及控製調整等處理。

其中,功能代碼段和數據段組合稱為(wei) 協議數據單元(Protocol Data Unit or Protocol Description Unit),PDU)。功能代碼段占用一個(ge) 字節,取值範圍為(wei) 1~255,其中128~255為(wei) 保留值,用於(yu) 異常消息應答報文。1~127為(wei) 功能代碼編號,其中65~72和100~110為(wei) 用戶自定義(yi) 編碼。


Modbus 協議是一種應用層報文傳(chuan) 輸協議,包括ASCII、RTU、TCP三種報文類型,協議本身並沒有定義(yi) 物理層,隻是定義(yi) 了控製器能夠認識和使用的消息結構,而不管它們(men) 是經過何種網絡進行通信的。

Modbus 協議使用串口傳(chuan) 輸時可以選擇RTU或ASCII模式,並規定了消息、數據結構、命令和應答方式並需要對數據進行校驗。ASCII 模式采用LRC校驗,RTU模式采用16 位CRC校驗。通過以太網傳(chuan) 輸時使用TCP,這種模式不使用校驗,因為(wei) TCP協議是一個(ge) 麵向連接的可靠協議。


Modbus是一種應用層協議,它定義(yi) 了與(yu) 基礎網絡無關(guan) 的數據單元(ADU),可以在以太網(TCP/IP)或串行鏈路上(RS232、RS485等)進行通信(以太網ADU和串行ADU略有不同)。在串行鏈路上,Modbus協議有兩(liang) 種傳(chuan) 輸模式——ASCII模式和RTU模式。其中,ASCII是英文“American Standard Code for Information Interchange”的縮寫(xie) ,中文翻譯為(wei) “美國國家信息交換標準編碼”;RTU是英文“ Remote Terminal Unit”的縮寫(xie) ,中文翻譯為(wei) “遠程終端設備”。

首先,讓我們(men) 來看看Modbus的工作原理。

Modbus采用主從(cong) (Master-Salve)通信模式,僅(jin) 有主設備(Master)能對傳(chuan) 輸進行初始化,從(cong) 設備(Slave)根據主設備的請求進行應答。典型的主設備包括現場儀(yi) 表和顯示麵板,典型的從(cong) 設備為(wei) 可編程邏輯控製器(PLC)。

在串行鏈路的主從(cong) 通信中,Modbus主設備可以連接一個(ge) 或N(最大為(wei) 247)個(ge) 從(cong) 設備,主從(cong) 設備之間的通信包括單播模式和廣播模式。

在廣播模式中,Modbus主設備可同時向多個(ge) 從(cong) 設備發送請求(設備地址0用於(yu) 廣播模式),從(cong) 設備對廣播請求不進行響應。

在單播模式中,主設備發送請求至某個(ge) 特定的從(cong) 設備(每個(ge) Modbus從(cong) 設備具有唯一地址),請求的消息幀中會(hui) 包含功能代碼和數據,比如功能代碼“01”用來讀取離散量線圈的狀態。從(cong) 設備接到請求後,進行應答並把消息反饋主設備。

 

在主從(cong) 設備的通信中,可以使用ASCII模式或者RTU模式。在ASCII(AmericanStandard Code for Information Interchange)傳(chuan) 輸模式下,消息幀以英文冒號(“:”,ASCII3A Hex)開始,以回車和換號(CRLF,ASCII 0D and 0A Hex)符號結束,允許的傳(chuan) 輸的字符集為(wei) 十六進製的0~9和A~F;網絡中的從(cong) 設備監視傳(chuan) 輸通路上是否有英文冒號(“:”),如果有的話,就對消息幀進行解碼,查看消息中的地址是否與(yu) 自己的地址相同,如果相同的話,就接收其中的數據;如果不同的話,則不予理會(hui) 。

 

在ASCII模式下,每個(ge) 8位的字節被拆分成兩(liang) 個(ge) ASCII字符進行發送,比如十六進製數0xAF ,會(hui) 被分解成ASCII字符“A”和“F”進行發送,發送的字符量比RTU增加一倍。ASCII模式的好處是允許兩(liang) 個(ge) 字符之間間隔的時間長達1s而不引發通信故障,該模式采用縱向冗餘(yu) 校驗(Longitudinal Redundancy Check ,LRC)) 的方法來檢驗錯誤,

當控製器設為(wei) 在Modbus 網絡上以RTU 模式通信,消息中的每個(ge) 8Bit 字節都包含兩(liang) 個(ge) 4 Bit 的十六進製字符,這種模式沒有開始和結束標記。其優(you) 點是: 在同樣的波特率下,可傳(chuan) 送更多的數據。

在RTU(RemoteTerminal Unit)模式下,每個(ge) 字節可以傳(chuan) 輸兩(liang) 個(ge) 十六進製字符,比如十六進製數0xAF,直接以十六進製0xAF(二進製:10101111)進行發送,因此它的發送密度比ASCII模式高一倍;RTU模式采用循環冗餘(yu) 校驗(CRC),下麵是對RTU模式的總結:

具體(ti) 格式如下圖所示:

 


6.1 主機和從機、服務端和客戶端

【在modbus協議中】

主機發送modbus請求,從(cong) 機根據請求內(nei) 容向主機返回響應。在modbus協議中,主機總是主動方,從(cong) 機總是被動方。

【在網絡應用中】

在網絡應用中存在客戶端和服務器端,客戶端(例如瀏覽器)發送請求到服務器,服務器向客戶端返回內(nei) 容(例如HTML文本)。

【在modbus tcp中】

主機是客戶端,而從(cong) 機是服務器端。千萬(wan) 不要以為(wei) 服務器端重要,主機也重要,所以主機就是服務器端。

6.2 是否可以多主機

    通過前麵的分析,主機為客戶端那麽modbustcp支持多個主機,在一個   局域網中可存在多個主機和多個從機。從機的連接能力(連接主機的數   量)由uIP的最大TCP連接個數決定。

6.3 modbus TCP協議簡述

modbus TCP和modbus RTU基本相同,但是也存在一些區別

a.從(cong) 機地址變得不再重要,多數情況下忽略。從(cong) 某種意義(yi) 上說從(cong) 機地址被IP地址取代

b.CRC校驗變得不再重要,甚至可以忽略。由於(yu) TCP數據包中已經存在校驗,為(wei) 了不重複造輪子,modbus TCP幹脆取消了CRC校驗。

TCP 模式是為(wei) 了讓Modbus 數據順利在以太網上傳(chuan) 輸產(chan) 生的,使用TCP502 端口。該協議物理層,數據鏈路層,網絡層,傳(chuan) 輸層都是基於(yu) TCP 協議,隻在應用層,將Modbus 協議修改後封裝進去; 接收端將該TCP 數據包拆封後,重新獲得原始Modbus 幀,然後按照Modbus 協議規範進行解析,並將返回的數據包重新封裝進TCP 協議中,返回到發送端。與(yu) 串行鏈路傳(chuan) 輸的數據格式不同,TCP 模式去除了附加地址和校驗,增加了報文頭,其具體(ti) 格式如圖4所示。

 

在modbus TCP中包含一個(ge) MBAP頭,該頭包含以下幾個(ge) 部分:

區域 長度 描述 客戶端 服務器
傳輸標誌 2字節 MODBUS 請求和響應傳輸過程中序列號 客戶端生成 應答時複製該值
協議標誌 2字節 Modbus協議默認為0 客戶端生成 應答時複製該值
長度 2字節 剩餘部分的長度 客戶端生成 應答時由服務器端生成
單元標誌 1字節 從機標誌(從機地址) 客戶端生成 應答時複製該值

【注意】

【1】傳(chuan) 輸標誌可理解為(wei) 序列號,防止 MODBUS TCP通信錯位,例如後發生的響應先到了主機,而早發生的響應後到主機

【2】單元標誌可理解為(wei) 從(cong) 機地址,此時已經不再重要

6.4 modbus tcp 和 TCP IP的關係

modbus TCP可以理解為(wei) 發生在TCP上的應用層協議,既然是TCP協議那麽(me) 一個(ge) 完整的MODBUSTCP報文必然包括TCP首部,IP首部和Ethernet首部。


啟動Modbus事務處理的客戶機創建Modbus應用數據單元。功能碼(PDU中的)向服務器指示將執行哪種操作。

用一個(ge) 字節編碼Modbus數據單元的功能碼域。有效範圍是十製製1-255(128-255為(wei) 異常響應保留)。當從(cong) 客戶機向服務器發送報文時,功能碼域通過服務器執行哪種操作。

從(cong) 客戶機向服務器發送的報文數據域包括附加信息,服務器使用這個(ge) 信息執行功能碼定義(yi) 的操作。這個(ge) 域還包括離散項目和寄存器地址、處理項目的數量以及域中的實際數據字節數。

在某種請求中,數據域可以是不存在的,在此情況下服務器不需要任何附加信息。功能碼僅(jin) 說明操作。

功能碼的類型

功能碼主要分為(wei) 有效功能碼、異常功能碼和錯誤功能碼。如果在一個(ge) 正確接收Modbus ADU中,不出現與(yu) 請求Modbus功能有關(guan) 的差錯,那麽(me) 服務器至客戶機的響應數據會(hui) 包含請求中的正常功能碼。如果出現與(yu) 請求Modbus功能有關(guan) 的差錯,那麽(me) 響應數據會(hui) 包含一個(ge) 異常碼和錯誤碼。

例如,客戶機能夠讀一組離散量輸出或輸入的開/關(guan) 狀態,或者用戶能夠讀/寫(xie) 一組寄存器數據內(nei) 容。當服務器對客戶機響應時,它使用功能碼域來指示正常(無差錯)響應或出現某種差錯(稱為(wei) 異常響應)。對於(yu) 一個(ge) 正常響應來說,服務器僅(jin) 對原始功能碼響應,如下圖:

對於(yu) 異常響應,服務器返回一個(ge) 與(yu) 客戶機等同的碼,設置該原始功能碼的最高有效位為(wei) 邏輯1,並加該異常碼後增加錯誤碼,以通知客戶機異常原因。如下圖:

有效功能碼

有效功能碼有二十幾種,但是一般使用上都以1、2、3、4、5、6、15、16等八種最為(wei) 常用,以及另外特殊使用的20、21兩(liang) 種,此為(wei) General Reference Register,絕大部份的Modbus設備並不會(hui) 提供此Register。於(yu) PLC上主要的控製數據有下列四種型式。此八種功能碼就是處理這些控製資料,詳細說明如下各點:

控製數據四種型式:

DI:DigitalInput(數字輸入,離散輸入),一個(ge) 地址一個(ge) 數據位,用戶隻能讀取它的狀態,不能修改。以一個(ge) bit表示 On/Off,用來記錄控製信號的狀態輸入,例如:開關(guan) ,接觸點,馬達運轉,超限switch…等等。於(yu) PLC上被稱為(wei) Input relay、input coil等。

DO:DigitalOutput(數字輸出,線圈輸出),一個(ge) 地址一個(ge) 數據位,用戶可以置位、複位,可以回讀狀態。以一個(ge) bit表示 On/Off,用來輸出控製信號,以激活或停止馬達,警鈴,燈光…等等。於(yu) PLC上被稱為(wei) Output relay、Output coil等。

AI:Analog Input(模擬輸入,輸入寄存器),一個(ge) 地址16位數據,用戶隻能讀,不能修改,,以16 bits integer表示一個(ge) 數值,用來記錄控製信號的數值輸入,例如:溫度、流量、料量、速度、轉速、文件板開度、液位、重量…等等。於(yu) PLC上被稱為(wei) Input register。

AO:AnalogOutput(模擬輸出,保持寄存器),一個(ge) 地址16位數據,用戶可以寫(xie) ,也可以回讀,以16 bits integer表示一個(ge) 數值,用來輸出控製信號的數值,例如:溫度、流量、速度、轉速、文件板開度、飼料量…等等設定值。於(yu) PLC上被稱為(wei) Output register、Holding register。

 


Modbus 協議是典型的工控網協議,研究其安全性對於(yu) 加強工業(ye) 控製網絡的安全性有重要意義(yi) 。一般來說,協議安全性問題可以分為(wei) 兩(liang) 種,一種是協議自身的設計和描述引起的安全問題; 另一種是協議的不正確實現引起的安全問題。Modbus 協議也存在著這兩(liang) 方麵的問題。

8.1Modbus 協議的固有問題

絕大多數工控協議在設計之初,僅(jin) 僅(jin) 考慮了功能實現、提高效率、提高可靠性等方麵,而沒考慮過安全性問題。Modbus 協議也不例外,盡管其已經成為(wei) 事實上的工業(ye) 標準。從(cong) 前麵原理分析可以看出其本身的安全性問題是: 缺乏認證、授權、加密等安全防護機製和功能碼濫用問題。

(1)缺乏認證

認證的目的是保證收到的信息來自合法的用戶,未認證用戶向設備發送控製命令不會(hui) 被執行。在Modbus 協議通信過程中,沒有任何認證方麵的相關(guan) 定義(yi) ,攻擊者隻需要找到一個(ge) 合法的地址就可以使用功能碼就能建立一個(ge) Modbus 通信會(hui) 話,從(cong) 而擾亂(luan) 整個(ge) 或者部分控製過程。

(2)缺乏授權

授權是保證不同的特權操作需要由擁有不同權限的認證用戶來完成,這樣可大大降低誤操作與(yu) 內(nei) 部攻擊的概率。目前,Modbus 協議沒有基於(yu) 角色的訪問控製機製,也沒有對用戶分類,沒有對用戶的權限進行劃分,這會(hui) 導致任意用戶可以執行任意功能。

(3)缺乏加密

加密可以保證通信過程中雙方的信息不被第三方非法獲取。Modbus 協議通信過程中,地址和命令全部采用明文傳(chuan) 輸,因此數據可以很容易的被攻擊者

捕獲和解析,為(wei) 攻擊者提供便利。

(4)功能碼濫用

功能碼是Modbus 協議中的一項重要內(nei) 容,幾乎所有的通信都包含功能碼。目前,功能碼濫用是導致Modbus 網絡異常的一個(ge) 主要因素。例如不合法報文長度,短周期的無用命令,不正確的報文長度,確認異常代碼延遲等都有可能導致拒絕服務攻擊。

8.2協議實現產生的問題

雖然Modbus 協議獲得了廣泛的應用,但是在實現具體(ti) 的工業(ye) 控製係統時,開發者並不具備安全知識或者沒有意識到安全問題。這樣就導致了使用Modbus 協議的係統中可能存在各種各樣的安全漏洞。

(1)設計安全問題

Modbus 係統開發者重點關(guan) 注的是其功能實現問題,安全問題在設計時很少被注意到。設計安全是指設計時充分考慮安全性,解決(jue) Modbus 係統可能出現的各種異常和非法操作等問題。比如在通信過程中,某個(ge) 節點被惡意控製後發出非法數據,就需要考慮這些數據的判別和處理問題。

(2)緩衝(chong) 區溢出漏洞

緩衝(chong) 區溢出是指在向緩衝(chong) 區內(nei) 填充數據時超過了緩衝(chong) 區本身的容量導致溢出的數據覆蓋在合法數據上,這是在軟件開發中最常見也是非常危險的漏洞,可以導致係統崩潰,或者被攻擊者利用來控製係統。Modbus 係統開發者大多不具備安全開發知識,這樣就會(hui) 產(chan) 生很多的緩衝(chong) 區溢出漏洞,一旦被惡意者利用會(hui) 導致嚴(yan) 重的後果。

(3)Modbus TCP 安全問題

目前,Modbus 協議已經可以在通用計算機和通用操作係統上實現,運行於(yu) TCP /IP 之上以滿足發展需要。這樣,TCP /IP 協議自身存在的安全問題不可避免地會(hui) 影響到工控網絡安全。非法網絡數據獲取,中間人,拒絕服務, IP 欺騙,病毒木馬等在IP 互聯網中的常用攻擊手段都會(hui) 影響Modbus 係統安全。

8.3安全建議

目前,Modbus 係統采取的安全防護措施普遍不足,這裏參考信息安全業(ye) 內(nei) 研究並結合工控係統自身的安全問題,提出了一些安全建議,能夠有效地降低工業(ye) 控製係統麵臨(lin) 的威脅。

(1)從(cong) 源頭開始

工控網絡漏洞,很大一部分是其實現過程出現的漏洞。如果從(cong) 源頭開始控製,從(cong) Modbus 係統的需求設計、開發實現、內(nei) 部測試和部署等階段,全生命周期的介入安全手段,融入安全設計、安全編碼以及安全測試等技術,可以極大地消除安全漏洞,降低整個(ge) Modbus 係統的安全風險。

(2)異常行為(wei) 檢測

異常行為(wei) 代表著可能發生威脅,不管是有沒有攻擊者,因此開發針對Modbus 係統的專(zhuan) 用異常行為(wei) 檢測設備可以極大提高工控網絡的安全性。針對Modbus 係統,首先要分析其存在的各種操作行為(wei) ,依據“主體(ti) ,地點,時間,訪問方式,操作,客體(ti) ”等行為(wei) 描述成一個(ge) 六元組模型; 進而分析其行為(wei) 是否屬於(yu) 異常; 最終決(jue) 定采取記錄或者報警等措施。

(3)安全審計

Modbus 的安全審計就是對協議數據進行深度解碼分析,記錄操作的時間、地點、操作者和操作行為(wei) 等關(guan) 鍵信息,實現對Modbus 係統的安全審計日誌記錄和審計功能,從(cong) 而提供安全事件爆發後的時候追查能力。

(4)使用網絡安全設備

使用入侵防禦和防火牆等網絡安全設備。防火牆是一個(ge) 串行設備,通過設置,隻允許特定的地址訪問服務端,禁止外部地址訪問Modbus 服務器,可以有效的防止外部入侵; 入侵防禦設備可以分析Modbus協議的具體(ti) 操作內(nei) 容,有效地檢測並阻止來自內(nei) 部/外部的異常操作和各種滲透攻擊行為(wei) ,對內(nei) 網提供保護功能。

Tags:modbus,RTU,ASCII,TCP  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒有了
  • 相關文章列表
    modbus協議實例講解,功能碼和報文詳解
    Modbus測試工具與控件介紹
    西門子PLC 200smartPLC與第三方進行Modbus TCP通訊
    MODBUS--變頻器\PLC\儀表連不上怎麽辦?送最簡單的軟件搞定問題
    西門子plc Smart 200主從站之間RS485通訊實例_從站主站讀寫程序
    西門子plc之間的通訊_兩台西門子S7-200 SMART PLC如何通過Modbus
    西門子S7-200 Smart plc的Modbus RTU庫通訊輪詢實例
    學習s7-200之間的Modbus通訊_兩個PLC互相通信,主站從站通訊
    西門子PLC S7-200Smart實現Modbus-RTU通信實例 多功能電表 溫控表
    西門子plc S7-200 SMART與丹佛斯變頻器之間Modbus通信
    西門子plc S7-200 SMART與變頻器MODBUS-RTU通信例程
    RS232、RS485標準以及在DB9公頭、母頭上的接線定義_Modbus通訊接
    PLC控製伺服電機運動的完整案例(PLC設置伺服驅動參數)_ 絲杠運
    MODBUS常用功能碼
    Modbus寄存器分類及地址分配表 寄存器分類及說明 寄存器的地址
    西門子plc S7-200smart 與台達變頻器通訊Modbus梯形圖編程實例
    Modbus調試軟件--ModbusPoll、ModbusSlave使用詳解
    modbus poll 使用教程  Modbus通訊
    20種PLC對應Modbus地址表
    西門子plc S7-200SMART通過MODBUS通信控製變頻器啟停如何看電流頻
    西門子plc梯形圖編程實例 西門子200smart與電流表Modbus RTU通訊
    使用西門子plc的Modbus通訊 串口調試助手與S7-200SMART PLC從站通
    Modbus 調試助手的使用(一) Modsim32使用詳解Modbus Poll
    【工具使用】Modsim32軟件使用詳解 串口調試軟件
    什麽是Modbus網關?modbus網關有什麽作用?
    西門子S7-200PLC ModbusTCP通訊,ModScan32使用
    Modbus協議詳解 科普Modbus通訊協議
    Modbus通訊簡單測試—Modscan32使用簡介
    Modbus Scan32模擬軟件使用,Modscan32使用教程
    Modbus協議的數據模型和地址模型
    請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    推薦文章
    最新推薦
    關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁麵
    下到頁底
    晶體管查詢
    51La