• 
    

    
    

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

      基于模糊測(cè)試的嵌入式設(shè)備協(xié)議漏洞挖掘及分析

      2020-01-07 01:54:18劉晉兵
      山西電力 2019年6期
      關(guān)鍵詞:測(cè)試用例測(cè)試數(shù)據(jù)報(bào)文

      劉晉兵, 景 峰

      (1.大唐太原第二熱電廠,山西 太原 030041;2.國(guó)網(wǎng)山西省電力公司,山西 太原 030001)

      0 引言

      電廠及電力監(jiān)控系統(tǒng)廣泛采用各類嵌入式設(shè)備,如測(cè)控裝置、保護(hù)裝置、計(jì)量裝置等。嵌入式設(shè)備大多采用通用硬件芯片、開源操作系統(tǒng)、通用協(xié)議開發(fā),設(shè)備廠商在追求設(shè)備功能、性能及易用性的同時(shí),忽略了設(shè)備本體的信息安全設(shè)計(jì)與實(shí)現(xiàn)。另外,越來越多的設(shè)備漏洞被公之于眾,嵌入式設(shè)備本體的信息安全逐漸受到公眾的關(guān)注,如震網(wǎng)病毒(Stuxnet) 利用了西門子PLC 控制器設(shè)備漏洞及SCADA 程序漏洞進(jìn)行攻擊。隨著兩化融合、智能電廠及智能電網(wǎng)的建設(shè),對(duì)協(xié)議實(shí)現(xiàn)的安全性和健壯性進(jìn)行測(cè)試就顯得非常重要,對(duì)電力行業(yè)的工控通信協(xié)議進(jìn)行漏洞挖掘顯得越發(fā)重要。

      此次模糊測(cè)試的目標(biāo)是電力行業(yè)嵌入式設(shè)備的通信協(xié)議。針對(duì)此類嵌入式設(shè)備的模糊測(cè)試定義為“通過向應(yīng)用提供非預(yù)期的輸入并監(jiān)控輸出中的異常來發(fā)現(xiàn)被測(cè)設(shè)備故障的方法”。模糊測(cè)試數(shù)據(jù)以自動(dòng)化的方式生成向被測(cè)設(shè)備提供非預(yù)期的輸入。

      1 模糊測(cè)試原理

      模糊測(cè)試Fuzzing 采用黑盒測(cè)試的思想,通過應(yīng)用程序輸入大量非預(yù)期的數(shù)據(jù),在輸入的同時(shí)監(jiān)控輸出中的異常。將Fuzzing 測(cè)試定義為通過向應(yīng)用提供非預(yù)期的輸入并監(jiān)控輸出中的異常來發(fā)現(xiàn)軟件故障的方法。即Fuzzing 測(cè)試?yán)米詣?dòng)化或是半自動(dòng)化的方法重復(fù)地向應(yīng)用提供輸入。

      運(yùn)用Fuzzing 測(cè)試的原理,設(shè)計(jì)編譯測(cè)試用例構(gòu)造變異報(bào)文,檢查工控協(xié)議實(shí)現(xiàn)的缺陷。構(gòu)建完整、可擴(kuò)展的動(dòng)態(tài)隨機(jī)分析測(cè)試框架,監(jiān)控測(cè)試目標(biāo),管理測(cè)試結(jié)果。數(shù)據(jù)生成方法也就是協(xié)議模型化,數(shù)據(jù)生成要自動(dòng)化,要考慮被測(cè)設(shè)備容易出現(xiàn)什么錯(cuò)誤,而不是簡(jiǎn)單地隨機(jī)生成,通過這樣的結(jié)合來生成測(cè)試數(shù)據(jù)。

      當(dāng)對(duì)某些協(xié)議的值字段進(jìn)行Fuzzing 測(cè)試時(shí),在每個(gè)測(cè)試用例中必須計(jì)算并更新這個(gè)多字節(jié)的長(zhǎng)度字段。否則,如果通信數(shù)據(jù)被檢測(cè)為違反協(xié)議規(guī)范,測(cè)試用例就面臨著被廢棄的風(fēng)險(xiǎn)。大多數(shù)開源框架提供了生成偽隨機(jī)數(shù)據(jù)的方法,好的框架甚至?xí)粋€(gè)啟發(fā)式攻擊的列表,啟發(fā)式攻擊會(huì)導(dǎo)致軟件出現(xiàn)錯(cuò)誤的數(shù)據(jù)序列。

      錯(cuò)誤檢測(cè)在Fuzzing 測(cè)試中扮演著重要的角色,在最簡(jiǎn)單的層面上,如果目標(biāo)應(yīng)用不能接受新連接,F(xiàn)uzzing 測(cè)試器能夠檢測(cè)到它的目標(biāo)可能已經(jīng)出錯(cuò)了。更高級(jí)的錯(cuò)誤檢測(cè)通常需要借助調(diào)試器的幫助,高級(jí)的Fuzzing 測(cè)試框架應(yīng)該允許模糊測(cè)試器直接與附著在目標(biāo)應(yīng)用上的調(diào)試器通信,甚至是自帶定制的調(diào)試器。

      2 嵌入式設(shè)備漏洞挖掘技術(shù)的實(shí)現(xiàn)

      2.1 模糊測(cè)試數(shù)據(jù)

      一般情況會(huì)認(rèn)為Fuzzing 測(cè)試和邊界值分析方法是很類似的,但不同的是,F(xiàn)uzzing 測(cè)試過程中不僅僅關(guān)注邊界值,同時(shí)還關(guān)注任何能夠觸發(fā)未定義或者不安全行為的輸入,因此針對(duì)電廠及電力系統(tǒng)中的通信協(xié)議,研發(fā)重點(diǎn)在測(cè)試方法和如何生成Fuzzing 測(cè)試數(shù)據(jù)上。通常測(cè)試數(shù)據(jù)的生成分為兩種:一是基于變異的測(cè)試生成器。對(duì)已有的樣本進(jìn)行變異等操作,實(shí)現(xiàn)測(cè)試用例的生成。二是基于生成的模糊測(cè)試生成器。通過為被測(cè)設(shè)備使用的協(xié)議格式和交互邏輯進(jìn)行建模,從而用此模型來生成輸入并據(jù)此創(chuàng)建測(cè)試用例。

      2.2 測(cè)試流程

      測(cè)試方法是決定漏洞挖掘是否有效的決定性因素,測(cè)試流程包含幾個(gè)基本階段,圖1 為Fuzzing系統(tǒng)測(cè)試框架圖。

      圖1 模糊系統(tǒng)測(cè)試框架圖

      2.2.1 確定測(cè)試目標(biāo)

      有了明確的測(cè)試目標(biāo)后,才能決定使用的模糊測(cè)試工具或方法。

      2.2.2 確定輸入向量

      輸入向量是模糊測(cè)試的關(guān)鍵,如果不能預(yù)期輸入值,模糊測(cè)試的作用就會(huì)受到很大的局限。

      2.2.3 生成模糊測(cè)試數(shù)據(jù)

      一旦識(shí)別出輸入向量,就可以依據(jù)輸入向量產(chǎn)生模糊測(cè)試數(shù)據(jù)。數(shù)據(jù)通過自動(dòng)化過程來生成,可以使用預(yù)先確定的值、使用基于存在的數(shù)據(jù)通過變異生成的值或者使用動(dòng)態(tài)生成的值。

      2.2.4 執(zhí)行模糊測(cè)試數(shù)據(jù)

      該步驟緊接上一個(gè)步驟,一般會(huì)向被測(cè)目標(biāo)發(fā)送數(shù)據(jù)包、打開文件或者執(zhí)行被測(cè)應(yīng)用。

      2.2.5 監(jiān)視異常

      一個(gè)重要但經(jīng)常容易被忽略的步驟是對(duì)異常和錯(cuò)誤進(jìn)行監(jiān)控。模糊測(cè)試需要根據(jù)被測(cè)應(yīng)用和所決定采用的模糊測(cè)試類型來設(shè)置各種形式的監(jiān)控。

      2.2.6 漏洞是否可能被利用的判斷

      對(duì)在模糊測(cè)試中發(fā)現(xiàn)的錯(cuò)誤,依據(jù)審計(jì)情況,判定該錯(cuò)誤是否構(gòu)成可被利用的安全漏洞,這個(gè)過程通常采用人工過程實(shí)現(xiàn)。

      2.3 漏洞挖掘測(cè)試用例分析

      Fuzzing 漏洞挖掘測(cè)試數(shù)據(jù)的生成包括預(yù)生成、隨機(jī)生成、手工協(xié)議變異等,使用多種漏洞挖掘測(cè)試用例可顯著提升漏洞挖掘效率,但在選擇測(cè)試用例過程中,需考慮效率問題。

      a) 預(yù)生成測(cè)試用例。首先研究設(shè)備給定的或特定的協(xié)議規(guī)約,理解協(xié)議規(guī)約支持的數(shù)據(jù)結(jié)構(gòu)和輸入值的范圍,生成用于測(cè)試邊界條件或者是違反規(guī)約的測(cè)試用例。預(yù)生成測(cè)試用例存在固有的局限性,該過程缺乏隨機(jī)輸入生成,用例被執(zhí)行完,測(cè)試即結(jié)束。

      b) 隨機(jī)生成用例。隨機(jī)方法主要被用來快速地識(shí)別并判斷目標(biāo)應(yīng)用中是否有非常糟糕的代碼,通過向目標(biāo)應(yīng)用發(fā)送偽隨機(jī)數(shù)據(jù),獲取測(cè)試結(jié)果。

      c) 手工協(xié)議測(cè)試。手工協(xié)議測(cè)試不需要自動(dòng)化模糊測(cè)試器,在此,測(cè)試者就是模糊測(cè)試器。加載了目標(biāo)應(yīng)用后,測(cè)試者通過輸入不正確的數(shù)據(jù),嘗試誘發(fā)設(shè)備或應(yīng)用的一些不正常行為。該方法依賴于分析者能否在安全審計(jì)中充分發(fā)揮自己的經(jīng)驗(yàn)。

      d) 強(qiáng)制性測(cè)試。強(qiáng)制性測(cè)試是指模糊測(cè)試器從一個(gè)有效的協(xié)議樣本或數(shù)據(jù)格式樣本開始,持續(xù)不斷地打亂數(shù)據(jù)包中的每個(gè)字節(jié)(byte)、字(word)、雙字(dword) 或者是字符串(string)。這種方式幾乎不要求對(duì)應(yīng)用進(jìn)行研究,實(shí)現(xiàn)一個(gè)基礎(chǔ)的強(qiáng)制性模糊測(cè)試器也是相對(duì)直接的,強(qiáng)制性模糊測(cè)試器只需要修改數(shù)據(jù)并將其發(fā)送給被測(cè)應(yīng)用。

      這種方法相對(duì)比較低效,因?yàn)樵S多CPU 周期會(huì)被浪費(fèi)在生成完全不可解析的數(shù)據(jù)上,其優(yōu)點(diǎn)主要為:整個(gè)測(cè)試的過程可以完全自動(dòng)化實(shí)現(xiàn),使用強(qiáng)制模糊測(cè)試方法其代碼覆蓋依賴于一致的合法數(shù)據(jù)包。

      e) 自動(dòng)協(xié)議生成測(cè)試。自動(dòng)協(xié)議生成測(cè)試是一種更高級(jí)的強(qiáng)制性測(cè)試方法。在對(duì)被測(cè)應(yīng)用進(jìn)行深入研究,理解和解釋協(xié)議規(guī)約的前提下,創(chuàng)建一個(gè)描述協(xié)議規(guī)約如何工作的語(yǔ)法。測(cè)試者識(shí)別數(shù)據(jù)包中的靜態(tài)部分和動(dòng)態(tài)部分,動(dòng)態(tài)部分可以被模糊化變量替代。通過動(dòng)態(tài)分析包含了靜態(tài)和動(dòng)態(tài)部分的模板,生成測(cè)試數(shù)據(jù),將結(jié)果數(shù)據(jù)包發(fā)送給被測(cè)應(yīng)用。在此,對(duì)電力通信協(xié)議的組成與規(guī)范了解得越多,就越能在模糊測(cè)試中關(guān)注那些易引發(fā)異常的協(xié)議中的部分。

      由存在潛在危險(xiǎn)的模糊字符串和模糊數(shù)據(jù)組成的集合又被稱為模糊探值。為了保證測(cè)試數(shù)據(jù)的易用性,抽象協(xié)議的數(shù)學(xué)模型和生成數(shù)據(jù)的自動(dòng)化尤為重要。相對(duì)自動(dòng)化生成模糊測(cè)試數(shù)據(jù),協(xié)議數(shù)學(xué)模型的抽象就是根本。

      解決如何生成數(shù)據(jù)的問題是解決方案的一部分,同樣重要的問題是“生成什么數(shù)據(jù)”。如果在協(xié)議字段中去遍歷的話效率不僅低下,發(fā)現(xiàn)問題的概率同樣無從保證。因此,不能測(cè)試整個(gè)協(xié)議所有字段的數(shù)值空間,而是應(yīng)該選擇其具有代表性的一些數(shù)值并且找到對(duì)協(xié)議實(shí)現(xiàn)邏輯有影響的區(qū)間段來生成測(cè)試數(shù)據(jù)。

      f) 代理模糊測(cè)試。在典型的基于網(wǎng)絡(luò)的客戶端—服務(wù)器模型中,客戶端和服務(wù)器之間會(huì)直接進(jìn)行通信。正如其名稱所暗示的,代理模糊測(cè)試器在客戶端和服務(wù)器之間的連接上充當(dāng)中繼。為了有效地完成這一任務(wù),客戶端和服務(wù)器必須被手工配置為指向代理服務(wù)器。也就是說,客戶端把代理當(dāng)作服務(wù)器,而服務(wù)器把代理當(dāng)作客戶端。

      目前,對(duì)代理模糊測(cè)試的改進(jìn)方向是為了讓其更“聰明”,使用啟發(fā)式規(guī)則輔助進(jìn)行自動(dòng)字段檢測(cè)和數(shù)據(jù)變異是其中的一種方法??梢詰?yīng)用啟發(fā)式規(guī)則將識(shí)別出來的數(shù)據(jù)進(jìn)行進(jìn)一步的處理。

      3 設(shè)備漏洞挖掘測(cè)試

      3.1 某PLC 設(shè)備

      3.1.1 測(cè)試過程

      PLC 的DO 上連接一些指示燈,并讓指示燈處于常亮狀態(tài)。然后把測(cè)試設(shè)備和被測(cè)設(shè)備通過網(wǎng)線直連或者中間通過一個(gè)交換機(jī)相連。按測(cè)試環(huán)境里面的配置搭建好環(huán)境,等監(jiān)視器都正常工作后開始給被測(cè)設(shè)備發(fā)送Modbus 語(yǔ)法測(cè)試數(shù)據(jù)包,當(dāng)測(cè)試進(jìn)行一段時(shí)間后,原來常亮的指示燈熄滅。設(shè)備采用linux_kernel:2.6.x 內(nèi)核,對(duì)外提供telnet、ftp、modbus 等公開服務(wù)。

      設(shè)備在收到0x01 功能碼,起始地址為0,線圈數(shù)量為0 的modbus/tcp 數(shù)據(jù)包時(shí),協(xié)議棧會(huì)短時(shí)間崩潰,等通信恢復(fù)后modbus 服務(wù)一直處于對(duì)外拒絕服務(wù)狀態(tài)。設(shè)備在收到負(fù)載為Ethernet type 跳變的Ethernet 報(bào)文,設(shè)備出現(xiàn)ICMP 回應(yīng)延遲、對(duì)外拒絕服務(wù)現(xiàn)象。

      3.1.2 問題分析

      設(shè)備在收到測(cè)試報(bào)文的時(shí)候ARP、ICMP、TCP端口監(jiān)視器全部停止工作,說明協(xié)議棧已崩潰。在測(cè)試停止后觀察事件日志可以發(fā)現(xiàn)在測(cè)試過程中23、100、502 端口異常,稍后23、100 恢復(fù)正常,502(modbus) 服務(wù)一直未恢復(fù),需要下電重啟才能恢復(fù)。

      設(shè)備在進(jìn)行Ethernet 語(yǔ)法測(cè)試時(shí)出現(xiàn)ICMP 響應(yīng)延遲,對(duì)外拒絕服務(wù)等問題。分析詳細(xì)報(bào)文,報(bào)文對(duì)Ethernet type 進(jìn)行跳變(見圖2)。

      在發(fā)電及電力系統(tǒng)現(xiàn)場(chǎng),存在著很多這樣的PLC,它們的功能各異,執(zhí)行著不同的邏輯,但是一旦黑客入侵到PLC 所在的網(wǎng)絡(luò),并且有足夠的時(shí)間展開攻擊,就有可能把PLC 原有的邏輯打亂,從而破壞電力生產(chǎn),進(jìn)而造成經(jīng)濟(jì)和其他方面的損失。

      3.2 MMS 的TPKT 測(cè)試某保護(hù)裝置

      3.2.1 測(cè)試過程

      加電后通過光電轉(zhuǎn)換模塊把光信號(hào)轉(zhuǎn)換成電信號(hào),然后直接連接到測(cè)試設(shè)備,或者中間通過交換機(jī)相連。

      設(shè)備按測(cè)試方案的方式進(jìn)行連接,等到所有監(jiān)視器都正常后,開始給設(shè)備發(fā)送MMS 協(xié)議的TPKT數(shù)據(jù)段語(yǔ)法測(cè)試,當(dāng)測(cè)試進(jìn)行幾分鐘以后,ARP 和ICMP 監(jiān)視器出現(xiàn)異常,網(wǎng)絡(luò)中斷,TCP 監(jiān)視器對(duì)102 端口的監(jiān)視出現(xiàn)異常,102 端口關(guān)閉。停止測(cè)試后上述失敗不能自動(dòng)消失。

      圖2 Ethernet type 跳變測(cè)試用例監(jiān)視

      3.2.2 問題分析

      TPKT 協(xié)議處于TCP 協(xié)議之上,主要傳輸應(yīng)用層負(fù)載,例如遠(yuǎn)程桌面協(xié)議就是靠TPKT 協(xié)議來支撐。在電力設(shè)備中,基于MMS 協(xié)議的數(shù)據(jù)使用TPKT 來傳輸通信的負(fù)載。對(duì)問題報(bào)文結(jié)合MMS 協(xié)議進(jìn)行分析。

      a) 發(fā)送報(bào)文的TPKT 的length 字段超出緩存的長(zhǎng)度,即造成內(nèi)存溢出,導(dǎo)致設(shè)備宕機(jī)。

      b) 當(dāng)測(cè)試中組裝了正確的協(xié)議頭,但是協(xié)議負(fù)載填充的數(shù)據(jù)不符合MMS 協(xié)議規(guī)約,而設(shè)備無法處理此類報(bào)文,該缺陷可能導(dǎo)致協(xié)議棧崩潰。

      通過上面的論述可以證明,MMS 的TPKT 語(yǔ)法測(cè)試可以讓該型號(hào)的變壓器保護(hù)設(shè)備出現(xiàn)網(wǎng)絡(luò)中斷無法對(duì)外提供服務(wù)的問題。由此可見,該型號(hào)變壓器保護(hù)設(shè)備對(duì)MMS 協(xié)議的實(shí)現(xiàn)有著一定的缺陷,這種缺陷可以導(dǎo)致設(shè)備對(duì)外拒絕服務(wù),從而使得設(shè)備失效,而這種缺陷如果出現(xiàn)在網(wǎng)絡(luò)中是很危險(xiǎn)的,這種漏洞如果讓黑客入侵設(shè)備所在網(wǎng)絡(luò)后進(jìn)行利用,會(huì)導(dǎo)致設(shè)備癱瘓,進(jìn)而影響電力設(shè)備的安全。而這種漏洞的根源往往是因?yàn)楣I(yè)設(shè)備對(duì)協(xié)議棧的實(shí)現(xiàn)只考慮了功能方面,卻忽略了協(xié)議棧的健壯性,進(jìn)而使得人為設(shè)計(jì)的非法的或者畸形的數(shù)據(jù)包可能導(dǎo)致協(xié)議棧不能正確處理而致使協(xié)議棧崩潰,進(jìn)而使得工業(yè)現(xiàn)場(chǎng)的設(shè)備處于危險(xiǎn)境地。

      4 結(jié)束語(yǔ)

      本文通過構(gòu)建Fuzzing 測(cè)試用例,對(duì)電力行業(yè)工業(yè)控制系統(tǒng)普遍使用的PLC 及保護(hù)裝置開展漏洞挖掘,發(fā)現(xiàn)其中存在的系統(tǒng)漏洞,并給出設(shè)備存在協(xié)議漏洞的分析過程。

      猜你喜歡
      測(cè)試用例測(cè)試數(shù)據(jù)報(bào)文
      基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
      汽車電器(2022年9期)2022-11-07 02:16:24
      基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
      CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
      淺析反駁類報(bào)文要點(diǎn)
      測(cè)試數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      基于混合遺傳算法的回歸測(cè)試用例集最小化研究
      基于自適應(yīng)粒子群優(yōu)化算法的測(cè)試數(shù)據(jù)擴(kuò)增方法
      ATS與列車通信報(bào)文分析
      空間co-location挖掘模式在學(xué)生體能測(cè)試數(shù)據(jù)中的應(yīng)用
      體育科技(2016年2期)2016-02-28 17:06:21
      基于依賴結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)
      徐闻县| 上蔡县| 中阳县| 金坛市| 庄河市| 平阴县| 北碚区| 汝南县| 鸡东县| 抚州市| 合江县| 绿春县| 嘉峪关市| 普安县| 马尔康县| 太白县| 吴旗县| 高陵县| 镇康县| 攀枝花市| 农安县| 本溪市| 沁源县| 永年县| 金秀| 亚东县| 米易县| 通许县| 玛曲县| 新巴尔虎右旗| 辽阳市| 都兰县| 溆浦县| 白银市| 隆子县| 井冈山市| 金阳县| 莆田市| 阿克苏市| 富顺县| 永川市|