• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Modbus協(xié)議認(rèn)證漏洞的數(shù)據(jù)包偽造方法研究

      2016-12-12 12:23:21郭政偉向上陳武張林鵬王勇上海電力學(xué)院計算機(jī)科學(xué)與技術(shù)學(xué)院上海201000
      自動化博覽 2016年9期
      關(guān)鍵詞:IP地址校驗漏洞

      郭政偉,向上,陳武,張林鵬,王勇(上海電力學(xué)院計算機(jī)科學(xué)與技術(shù)學(xué)院,上海 201000)

      基于Modbus協(xié)議認(rèn)證漏洞的數(shù)據(jù)包偽造方法研究

      郭政偉,向上,陳武,張林鵬,王勇(上海電力學(xué)院計算機(jī)科學(xué)與技術(shù)學(xué)院,上海 201000)

      Modbus 協(xié)議在工業(yè)控制系統(tǒng)領(lǐng)域應(yīng)用十分廣泛,但是該協(xié)議存在認(rèn)證漏洞,嚴(yán)重威脅著工業(yè)控制系統(tǒng)的安全性。本文提出了基于Modbus協(xié)議認(rèn)證漏洞的Modbus /TCP協(xié)議數(shù)據(jù)包的偽造方法。在Modbus協(xié)議服務(wù)端模擬器Modbus Poll和客戶端模擬器Modbus Slave搭建了Modbus/TCP的實驗環(huán)境,利用偽造數(shù)據(jù)包的方法,實現(xiàn)對任意指定IP地址進(jìn)行攻擊,并且給出了該攻擊方法的防御措施。實驗結(jié)果表明,偽造Modbus/TCP協(xié)議數(shù)據(jù)包的方法嚴(yán)重威脅到當(dāng)前工業(yè)控制系統(tǒng)安全。

      Modbus/TCP協(xié)議;工業(yè)控制網(wǎng)絡(luò)安全;協(xié)議分析;攻擊過程

      1 引言

      2015年12月烏克蘭電力部門遭到BlackEnergy的攻擊,并引起了烏克蘭大規(guī)模的停電事故。由于PROFINET在工業(yè)控制系統(tǒng)的領(lǐng)域廣泛應(yīng)用,數(shù)據(jù)包在以太網(wǎng)介質(zhì)中傳輸[4],再加上Modbus/ TCP協(xié)議原理以及其本身的脆弱性,給工業(yè)控制系統(tǒng)帶來很大的隱患。

      Modbus是一種串行通信協(xié)議標(biāo)準(zhǔn)(規(guī)約),是Modicon(現(xiàn)為施耐德電氣公司的一個品牌)于1979年,為使用可編程邏輯控制器(PLC)通信而發(fā)布的。按照OSI模型分,Modbus是應(yīng)用層報文傳輸協(xié)議,它在連接至不同類型總線或網(wǎng)絡(luò)的設(shè)備之間提供服務(wù)器/客戶機(jī)通信(主機(jī)/從機(jī))。

      現(xiàn)階段研究大部分集中在防御策略的研究,例如:在該領(lǐng)域,主要開展了Modbus/TCP原理及安全性系統(tǒng)的闡述[1],利用攻擊圖的方法定性、定量分析了Modbus協(xié)議的脆弱性[2],設(shè)計了Modbus TCP/IP協(xié)議防火墻[3]等。本文提出了基于Modbus 協(xié)議認(rèn)證漏洞的Modbus/TCP協(xié)議數(shù)據(jù)包的偽造方法。

      2 Modbus協(xié)議漏洞

      Modbus協(xié)議采用服務(wù)器-客戶終端的結(jié)構(gòu),提供了連接不同種總線與網(wǎng)絡(luò)之間工業(yè)設(shè)備的通信,服務(wù)器與客戶機(jī)均可通過操作碼發(fā)送要請求的操作與請求響應(yīng)。

      2.1 Modbus協(xié)議格式

      因為Modbus通信的對象是工業(yè)設(shè)備,設(shè)備的標(biāo)準(zhǔn)不一。所以其定義了一個與基層無關(guān)的數(shù)據(jù)單元PDU解決這個問題。并且協(xié)議通過增加附加地址與差錯校驗域進(jìn)一步增強(qiáng)了它在不同物理通信介質(zhì)上的兼容性。

      實際中無論是主設(shè)備與從設(shè)備在通訊中二層協(xié)議都會選擇ASCII模式或者RTU模式其中一種作為通訊協(xié)議,以此選擇不同模式所需要的不同物理鏈路與接口,而在實驗之中是以以太網(wǎng)幀為基礎(chǔ),傳輸三層協(xié)議TCP/IP,封裝四層Modbus數(shù)據(jù)包達(dá)到目的的。而對實際中的二層協(xié)議通過分析,我們做如下總結(jié):

      (1)ASCII模式

      編碼系統(tǒng):16進(jìn)制,ASCII字符0-9,A-F

      數(shù)據(jù)位:1位起始位,7位數(shù)據(jù),低位先送,奇/偶校驗1位:無奇偶校驗時0位,(LRC)1位帶校驗1停止位;無校驗2停止位錯誤校驗區(qū):縱向冗余校驗。

      表1 ASCII幀

      (2)RTU模式

      編碼系統(tǒng):16進(jìn)制,ASCII字符0-9,A-F

      數(shù)據(jù)位:1起始位,8位數(shù)據(jù),地位先送,奇/偶校驗1位:無奇偶校驗時0位(LRC)1位帶校驗1停止位;無校驗2停止位錯誤校驗區(qū):循環(huán)冗余校驗(CRC)。

      表2 RTU幀

      (3)以太網(wǎng)(TCP/IP)模式

      實驗中使用的是TCP/IP模擬分析軟件,所以用到了傳統(tǒng)以太幀在(TCP/IP)協(xié)議之上封裝Modbus功能碼和數(shù)據(jù)。TCP/IP 模式去除了附加地址和校驗,增加了報文頭。

      2.2 Modbus協(xié)議認(rèn)證漏洞

      協(xié)議安全研究方向主要包括兩種,一是協(xié)議自身的設(shè)計與描述引起的安全問題,另一種是協(xié)議的不正確實現(xiàn)產(chǎn)生的問題。

      目前研究下Modbus協(xié)議的固有問題主要源于其設(shè)計之初只著重考慮了其功能、效率、可靠性和兼容性等方面,從而存在著安全性問題。第一種是協(xié)議安全性問題,例如它缺乏認(rèn)證和授權(quán),沒有加密措施,而且濫用功能碼與無效功能碼的識別。第二種是協(xié)議實現(xiàn)安全性問題,協(xié)議本身存在安全問題,容易導(dǎo)致設(shè)備緩沖區(qū)溢出,還有Modbus在多種基礎(chǔ)通信層中的安全問題等。

      認(rèn)證的目的是保證收到的信息來自合法的用戶,未認(rèn)證用戶向設(shè)備發(fā)送控制命令不會被執(zhí)行。通過上述對Modbus協(xié)議存在的安全問題的闡述,可以看出Modbus協(xié)議通信過程中,沒有任何認(rèn)證方面的相關(guān)定義,攻擊者只需要找到一個合法的地址就可以使用功能碼建立一個Modbus通信會話,從而擾亂整個或者部分控制過程。實際中則可以利用TCP/IP協(xié)議并基于IP地址進(jìn)行主從機(jī)的通信,但是Modbus協(xié)議卻沒有對地址來源進(jìn)行認(rèn)證。也就是說攻擊者可以利用IP地址欺騙或者是其他漏洞達(dá)到同時或間接與服務(wù)端通信的權(quán)利。并且可以仿冒服務(wù)端對客戶終端數(shù)據(jù)進(jìn)行篡改,這樣實際設(shè)備就可能會被第三方惡意控制。

      3 基于認(rèn)證漏洞的數(shù)據(jù)包偽造攻擊測試

      3.1 實驗平臺搭建

      安裝Modbus協(xié)議服務(wù)端模擬器Modbus Poll(可設(shè)置虛擬IP地址,常用請求功能碼,任意大小的內(nèi)存)客戶端模擬器Modbus Slave以及Modbus_RSsim(可讀取協(xié)議數(shù)據(jù)段數(shù)據(jù))。

      配置上述模擬軟件,進(jìn)行常規(guī)通信,設(shè)置IP端口為502。以功能碼01(讀線圈)、03(讀寄存器)、15(寫多個線圈)發(fā)出請求包,此時開啟抓包軟件對數(shù)據(jù)包內(nèi)容進(jìn)行分析。隨后獲得返回響應(yīng)包,讀出其中內(nèi)容,亦對其分析。列舉常用公共功能碼以及特定功能碼內(nèi)容如表3所示。

      表3 公共功能碼分類

      3.2 Modbus公共功能碼定義

      Modbus協(xié)議定義了三種功能碼:

      公共功能碼:被確切定義的、唯一的功能碼,由Modbus-IDA組織確認(rèn)、可進(jìn)行一致性測試且已在MB、IETF和 RFC中歸檔。

      用戶定義的功能碼:用戶無需Modbus-IDA組織的任何批準(zhǔn)就可以選擇和實現(xiàn)的功能碼,但是不能保證被選功能碼的使用是唯一的。

      保留功能碼:某些公司在傳統(tǒng)產(chǎn)品上現(xiàn)行使用的功能碼,不作為公共使用。

      表4 公共功能碼定義

      3.3 偽裝數(shù)據(jù)包

      對數(shù)據(jù)包結(jié)構(gòu)進(jìn)行分析,得出結(jié)果如下:

      15 (0x0F) 一次對多個線圈進(jìn)行改寫數(shù)據(jù)包。

      解釋:

      3.4 Modbus協(xié)議攻擊

      根據(jù)請求響應(yīng)數(shù)據(jù)包結(jié)構(gòu)結(jié)合TCP/IP編寫java模擬攻擊程序

      (1)添加Modbus協(xié)議庫文件jamod.jar,modbus4.jar,seroUtils.jar

      (2)通過協(xié)議數(shù)據(jù)結(jié)構(gòu),編寫socket,將其IP地址設(shè)為Modbus合法地址。攻擊程序核心代碼如下:

      3.5 攻擊結(jié)果分析

      執(zhí)行攻擊程序,將IP、端口號、設(shè)備號、開始序號傳給上述函數(shù),通過對values數(shù)組進(jìn)行修改,以達(dá)到程序運(yùn)行后對攻擊目標(biāo)的寄存器的值的修改,觀察程序發(fā)出包,并對比攻擊前后寄存器內(nèi)容。數(shù)據(jù)包內(nèi)容見表5:

      表5 請求保持寄存器數(shù)據(jù)包

      當(dāng)上述攻擊數(shù)據(jù)包發(fā)出后,可發(fā)現(xiàn)網(wǎng)段內(nèi)所有設(shè)備的內(nèi)存中的值均可返回,并且得到的返回包格式見表6:

      表6 返回保持寄存器數(shù)據(jù)包

      4 總結(jié)與展望

      上述的攻擊結(jié)果表明,普通的Modbus協(xié)議網(wǎng)絡(luò)有著其脆弱性,可以輕易通過偽造數(shù)據(jù)包達(dá)到控制工業(yè)設(shè)備的目的。因此,研究如何增強(qiáng)Modbus TCP/IP協(xié)議的網(wǎng)絡(luò)安全性具有十分重要的現(xiàn)實意義。從目前來看,可以添加一個降低風(fēng)險的模型來提高M(jìn)odbus TCP/IP協(xié)議的安全性[3]。主要功能模塊為:(1)內(nèi)核模塊。該模塊通過直接抓取數(shù)據(jù)包,并對連接的IP地址和物理地址進(jìn)行簡單的檢查認(rèn)證。(2)過濾模塊。該模塊針對Modbus TCP/IP數(shù)據(jù)包文里的線圈或寄存器地址、功能碼和操作使用的數(shù)據(jù)一一在白名單核對,沒找到的一律不能通過,并剔除格式不是Modbus TCP/IP協(xié)議的通訊報文。(3)加解密模塊。使用多重加密的方式來傳輸數(shù)據(jù)。數(shù)據(jù)和加密數(shù)據(jù)的密鑰采用不同的算法。另外,使用TPM(可信計算)模塊也可以達(dá)到數(shù)據(jù)加密傳輸?shù)男Ч⑶倚阅軙鼜?qiáng)。(4)配置模塊。實現(xiàn)整個程序和白名單的配置。(5)日志模塊。該模塊完成對過濾日志的記錄。

      另外,為了構(gòu)建安全穩(wěn)定的工業(yè)控制系統(tǒng),需要研究和設(shè)計一套更全面、更可靠的工業(yè)網(wǎng)絡(luò)控制協(xié)議,防止類似于“烏克蘭電力系統(tǒng)”事件的大規(guī)模工業(yè)事故的發(fā)生?,F(xiàn)階段,為了突破傳統(tǒng)的通訊協(xié)議的局限性,PROFINET已逐漸創(chuàng)新成長為工業(yè)控制領(lǐng)域的新生力量[4]。PROFINET協(xié)議的一個重要特性便是可以同時傳送實時數(shù)據(jù)和標(biāo)準(zhǔn)的TCP/IP數(shù)據(jù)。為了保護(hù)現(xiàn)場數(shù)據(jù)的安全,PROFINET配備了專有的安全機(jī)制,通過專用的安全屏障來使工業(yè)控制系統(tǒng)的安全風(fēng)險降到最低。因此,PROFINET必將成為新一代工業(yè)控制網(wǎng)絡(luò)的通信標(biāo)準(zhǔn)。

      [1] 左衛(wèi), 程永新. Modbus協(xié)議原理及安全性分析[J]. 通信技術(shù), 2013, 46(12): 66 - 69.

      [2] 徐麗娟. 基于攻擊圖的工業(yè)控制網(wǎng)絡(luò)安全隱患分析[D]. 北京郵電大學(xué), 2015.

      [3] 高棟梁. MODBUS TCP/IP協(xié)議防火墻的研究與實現(xiàn)[D]. 北京郵電大學(xué), 2015.

      [4] 張利新, 徐揚(yáng). Profinet在工業(yè)自動控制系統(tǒng)中的應(yīng)用[A]. 全國冶金自動化信息網(wǎng)2016年會論文集[C]. 2016.

      Data Packet Forgery Method of Modbus Protocol based on Authentication Vulnerability

      Modbus protocol is widely used in the field of industrial control system. However, it has authentication vulnerabilities, which seriously threaten the security of industrial control systems. In this paper, we propose a forgery method of Modbus /TCP protocol data packet based on Modbus protocol authentication vulnerability. By building Modbus / TCP experimental environment in the Modbus protocol server simulator Modbus poll and client simulator MODBUS slave and using the forged packet method, we can realize the attack on any of the specified IP address, and meanwhile give the defense measures of these attacks. Experimental results show that forging the TCP/IP Modbus data packet is a serious threat to the current industrial control system security.

      Modbus/TCP protocol; Industrial control network security; Modbus protocol analysis; Attack process

      A

      1003-0492(2016)09-0080-03

      TP393.1

      上??莆胤侥芰ㄔO(shè)項目(15110500700);上海市浦江人才計劃資助(16PJ1433100);上海自然科學(xué)基金(16ZR1436300)

      郭政偉(1994-),男,河南安陽人,本科,就讀于上海電力學(xué)院信息安全系。

      向 上(1994-),男,四川德陽人,本科,就讀于上海電力學(xué)院信息安全系。

      陳 武(1993-),男,湖南郴州人,碩士研究生,現(xiàn)就讀于上海電力學(xué)院計算機(jī)科學(xué)與技術(shù)學(xué)院。

      張林鵬(1991-),男,河北邢臺人,碩士研究生,現(xiàn)就讀于上海電力學(xué)院計算機(jī)科學(xué)與技術(shù)學(xué)院。

      王 勇(1973-),男,河南確山人,教授,現(xiàn)就職于上海電力學(xué)院信息安全系。

      猜你喜歡
      IP地址校驗漏洞
      漏洞
      鐵路遠(yuǎn)動系統(tǒng)幾種組網(wǎng)方式IP地址的申請和設(shè)置
      爐溫均勻性校驗在鑄鍛企業(yè)的應(yīng)用
      基于SNMP的IP地址管理系統(tǒng)開發(fā)與應(yīng)用
      黑龍江電力(2017年1期)2017-05-17 04:25:16
      三明:“兩票制”堵住加價漏洞
      漏洞在哪兒
      兒童時代(2016年6期)2016-09-14 04:54:43
      高鐵急救應(yīng)補(bǔ)齊三漏洞
      大型電動機(jī)高阻抗差動保護(hù)穩(wěn)定校驗研究
      電測與儀表(2015年1期)2015-04-09 12:03:02
      基于加窗插值FFT的PMU校驗方法
      鍋爐安全閥在線校驗不確定度評定
      关岭| 民丰县| 靖宇县| 博客| 察隅县| 雷山县| 松江区| 横山县| 靖宇县| 深泽县| 瑞金市| 宁津县| 屏东市| 怀仁县| 铜陵市| 博爱县| 城口县| 霍邱县| 界首市| 德化县| 新余市| 汤阴县| 武义县| 永城市| 巧家县| 商洛市| 龙川县| 寿宁县| 牙克石市| 屏东县| 东乌珠穆沁旗| 祁连县| 丽水市| 昆明市| 青铜峡市| 甘泉县| 灵川县| 韶关市| 金山区| 中阳县| 宁陕县|