基于工控協(xié)議漏洞挖掘用戶自定義方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及基于工控協(xié)議漏洞挖掘用戶自定義方法,屬于工業(yè)控制技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]目前,隨著工業(yè)化與信息化進(jìn)程的不斷交叉融合,越來(lái)越多的信息技術(shù)應(yīng)用到了工業(yè)領(lǐng)域。與此同時(shí),由于工業(yè)控制系統(tǒng)廣泛采用通用軟硬件和網(wǎng)絡(luò)設(shè)施,以及與企業(yè)管理信息系統(tǒng)的集成,導(dǎo)致工業(yè)控制系統(tǒng)越來(lái)越開(kāi)放,并且與企業(yè)內(nèi)網(wǎng),甚至是與互聯(lián)網(wǎng)產(chǎn)生了數(shù)據(jù)交換。所以針對(duì)工業(yè)控制設(shè)備開(kāi)啟了工控漏洞挖掘,針對(duì)工業(yè)控制設(shè)備的漏洞挖掘全球上比較權(quán)威的就是Wurldtech的Achilles,是針對(duì)工業(yè)控制設(shè)備對(duì)工控協(xié)議實(shí)現(xiàn)進(jìn)行漏洞挖掘,但很多工控協(xié)議都是私有協(xié)議對(duì)外并不公開(kāi),所以Achilles漏洞挖掘產(chǎn)品引入了用戶自定義的功能以實(shí)現(xiàn)對(duì)私有協(xié)議的漏洞挖掘?,F(xiàn)有的傳統(tǒng)的技術(shù)方法是,Achilles通過(guò)利用Ruby語(yǔ)言來(lái)讓用戶編程,從而定義一個(gè)私有的工控協(xié)議。在通過(guò)對(duì)此程序的編譯來(lái)生成測(cè)試用例數(shù)據(jù)。具體的實(shí)現(xiàn)方式如下圖,Achilles通過(guò)在Assemble Funct1n中編寫Ruby語(yǔ)句來(lái)完成對(duì)私有協(xié)議的定義,從而生成針對(duì)此協(xié)議的模糊測(cè)試數(shù)據(jù)。
[0003]目前,現(xiàn)有技術(shù)的主要缺點(diǎn)是:
[0004]1、針對(duì)客戶學(xué)習(xí)Ruby語(yǔ)言比較繁瑣,并且易用性不夠好,不是所有用戶都能會(huì)用這種面向?qū)ο蟮恼Z(yǔ)言。
[0005]2、利用Ruby語(yǔ)言來(lái)定義的私有協(xié)議比較復(fù)雜,需要利用很長(zhǎng)的時(shí)間進(jìn)行編程、編譯、問(wèn)題定位,導(dǎo)致用戶體驗(yàn)不夠好。
[0006]3、用Ruby語(yǔ)言來(lái)定義一個(gè)工控私有協(xié)議,其實(shí)就是把大量的工作都提交給用戶來(lái)做,給用戶帶來(lái)很大的不便和麻煩。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的在于提供一種能夠克服上述技術(shù)問(wèn)題的基于工控協(xié)議漏洞挖掘用戶自定義方法,本發(fā)明提供了一個(gè)對(duì)用戶來(lái)說(shuō)易用性更強(qiáng)和操作性更簡(jiǎn)單的定義工控私有協(xié)議的方式,通過(guò)圖形化來(lái)定義一個(gè)完整的協(xié)議,從而獲得一個(gè)完整的協(xié)議結(jié)構(gòu),并相應(yīng)對(duì)此協(xié)議生成一組漏洞挖掘的測(cè)試數(shù)據(jù)。
[0008]本發(fā)明的特點(diǎn)是通過(guò)圖形界面的方式完成了協(xié)議的定義;通過(guò)圖形界面定義協(xié)議的結(jié)構(gòu),從而測(cè)試用例生成模塊獲取協(xié)議結(jié)構(gòu),并生成測(cè)試用例,完成一體化封裝。
[0009]本發(fā)明包括以下步驟:
[0010](1)通過(guò)點(diǎn)擊添加協(xié)議生成一個(gè)協(xié)議名稱,并彈出一個(gè)輸入框和一個(gè)按鈕,所述文本框用來(lái)輸入?yún)f(xié)議名稱,所述按鈕用來(lái)添加協(xié)議字段;
[0011](2)在輸入框中輸入?yún)f(xié)議名稱來(lái)添加一個(gè)新的協(xié)議字段,然后彈出字段名稱輸入框、正確值取值范圍輸入框、字段長(zhǎng)度輸入框,字段名稱輸入框用于添加一個(gè)字段的名稱;正確值取值范圍輸入框用于添加正確值取值范圍;字段長(zhǎng)度輸入框用于添加字段長(zhǎng)度;
[0012](3)有多少個(gè)字段就通過(guò)重復(fù)添加新的協(xié)議字段來(lái)添加此私有協(xié)議的不同字段;
[0013](4)如果此私有工控協(xié)議包含多個(gè)協(xié)議的話則再次點(diǎn)擊添加新的協(xié)議再添加一個(gè)新的協(xié)議頭,并放在之前添加的協(xié)議頭的后面;
[0014](5)最后點(diǎn)擊保存,從而下發(fā)私有協(xié)議的定義,漏洞挖掘測(cè)試數(shù)據(jù)生成模塊來(lái)完成測(cè)試數(shù)據(jù)的生成。
[0015]測(cè)試用例生成模塊通過(guò)從圖形用戶界面(⑶I,即Graphical User Interface)獲得的私有協(xié)議數(shù)據(jù)結(jié)構(gòu)的定義,從而獲得各個(gè)字段的定義、各個(gè)字段的正確取值范圍和各個(gè)字段的長(zhǎng)度,這樣就通過(guò)協(xié)議字段的變換來(lái)生成包含正確和錯(cuò)誤共字段存的協(xié)議數(shù)據(jù),從而完成測(cè)試用例的生成。
[0016]本發(fā)明的優(yōu)點(diǎn)是:
[0017]1、相比通用的利用Ruby編程語(yǔ)言定義協(xié)議的技術(shù)而言易用性更強(qiáng);
[0018]2、對(duì)一種工控協(xié)議定義多個(gè)協(xié)議頭更直接,無(wú)需用戶去花費(fèi)更多的時(shí)間去學(xué)習(xí)其他編程語(yǔ)言。
[0019]3、從私有協(xié)議的定義到測(cè)試數(shù)據(jù)的生成形成一體化過(guò)程,用戶無(wú)需更多的介入,大大節(jié)省了用戶的精力和時(shí)間。
【附圖說(shuō)明】
[0020]圖1是本發(fā)明所述基于工控協(xié)議漏洞挖掘用戶自定義方法的通過(guò)點(diǎn)擊添加協(xié)議生成一個(gè)協(xié)議名稱的示意圖;
[0021]圖2是本發(fā)明所述基于工控協(xié)議漏洞挖掘用戶自定義方法的添加一個(gè)字段的名稱、正確值取值范圍和字段長(zhǎng)度的示意圖;
[0022]圖3是本發(fā)明所述基于工控協(xié)議漏洞挖掘用戶自定義方法的重復(fù)點(diǎn)擊”Add NewField”來(lái)添加此私有協(xié)議的不同字段的示意圖;
[0023]圖4是本發(fā)明所述基于工控協(xié)議漏洞挖掘用戶自定義方法的私有工控協(xié)議包含多個(gè)協(xié)議的操作示意圖;
[0024]圖5是本發(fā)明所述基于工控協(xié)議漏洞挖掘用戶自定義方法的處理工控私有協(xié)議定義的處理方法的示意圖。
【具體實(shí)施方式】
[0025]下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施方式進(jìn)行詳細(xì)描述。本發(fā)明包括以下步驟:
[0026](1)通過(guò)點(diǎn)擊添加協(xié)議生成一個(gè)協(xié)議名稱,并自動(dòng)彈出一個(gè)輸入框和一個(gè)按鈕,文本框用來(lái)輸入?yún)f(xié)議名稱,按鈕用來(lái)添加協(xié)議字段,如圖1所示;
[0027](2)在輸入框中輸入?yún)f(xié)議名稱,如圖2所示:點(diǎn)擊一次”Add New Field”來(lái)添加一個(gè)新的協(xié)議字段,然后彈出NAME、Valid Value,Field Length三個(gè)輸入框,所述三個(gè)輸入框分別用于添加一個(gè)字段的名稱、正確值取值范圍和字段長(zhǎng)度;
[0028](3)有多少個(gè)字段就通過(guò)重復(fù)點(diǎn)擊” Add New Field”來(lái)添加此私有協(xié)議的不同字段,如圖3所示;
[0029](4)如果此私有工控協(xié)議包含多個(gè)協(xié)議的話則再次點(diǎn)擊”Add New Protocol”再添加一個(gè)新的協(xié)議頭,并放在之前添加的協(xié)議頭的后面,如圖4所示;
[0030](5)最后點(diǎn)擊保存,從而下發(fā)私有協(xié)議的定義,漏洞挖掘測(cè)試數(shù)據(jù)生成模塊來(lái)完成測(cè)試數(shù)據(jù)的生成。
[0031]如圖5所示;從⑶I上獲取用戶定義的工控私有協(xié)議結(jié)構(gòu),按位(byte)獲取從而統(tǒng)計(jì)出來(lái)私有協(xié)議的各個(gè)字段的長(zhǎng)度,然后申請(qǐng)同樣大小的內(nèi)存作為此工控協(xié)議頭,然后申請(qǐng)相應(yīng)的報(bào)文負(fù)載,最后通過(guò)對(duì)所有定義的字段來(lái)做正確和錯(cuò)誤值的變換從而形成可交互的工控協(xié)議報(bào)文。
[0032]測(cè)試用例生成模塊通過(guò)從GUI獲得的私有協(xié)議數(shù)據(jù)結(jié)構(gòu)的定義,從而獲得各個(gè)字段的定義、各個(gè)字段的正確取值范圍和各個(gè)字段的長(zhǎng)度,這樣就通過(guò)協(xié)議字段的變換來(lái)生成包含正確和錯(cuò)誤共字段存的協(xié)議數(shù)據(jù),從而完成測(cè)試用例的生成。
[0033]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明公開(kāi)的范圍內(nèi),能夠輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.基于工控協(xié)議漏洞挖掘用戶自定義方法,其特征在于,通過(guò)圖形化來(lái)定義一個(gè)完整的協(xié)議,從而獲得一個(gè)完整的協(xié)議結(jié)構(gòu),并相應(yīng)對(duì)此協(xié)議生成一組漏洞挖掘的測(cè)試數(shù)據(jù),通過(guò)圖形界面的方式完成了協(xié)議的定義;通過(guò)圖形界面定義協(xié)議的結(jié)構(gòu),從而測(cè)試用例生成模塊獲取協(xié)議結(jié)構(gòu),并生成測(cè)試用例,完成一體化封裝。2.根據(jù)權(quán)利要求1所述的基于工控協(xié)議漏洞挖掘用戶自定義方法,其特征在于,包括以下步驟: (1)通過(guò)點(diǎn)擊添加協(xié)議生成一個(gè)協(xié)議名稱,并彈出一個(gè)輸入框和一個(gè)按鈕,所述文本框用來(lái)輸入?yún)f(xié)議名稱,所述按鈕用來(lái)添加協(xié)議字段; (2)在輸入框中輸入?yún)f(xié)議名稱來(lái)添加一個(gè)新的協(xié)議字段,然后彈出字段名稱輸入框、正確值取值范圍輸入框、字段長(zhǎng)度輸入框,字段名稱輸入框用于添加一個(gè)字段的名稱;正確值取值范圍輸入框用于添加正確值取值范圍;字段長(zhǎng)度輸入框用于添加字段長(zhǎng)度; (3)有多少個(gè)字段就通過(guò)重復(fù)添加新的協(xié)議字段來(lái)添加此私有協(xié)議的不同字段; (4)如果此私有工控協(xié)議包含多個(gè)協(xié)議的話則再次點(diǎn)擊添加新的協(xié)議再添加一個(gè)新的協(xié)議頭,并放在之前添加的協(xié)議頭的后面; (5)最后點(diǎn)擊保存,從而下發(fā)私有協(xié)議的定義,漏洞挖掘測(cè)試數(shù)據(jù)生成模塊來(lái)完成測(cè)試數(shù)據(jù)的生成。3.根據(jù)權(quán)利要求1所述的基于工控協(xié)議漏洞挖掘用戶自定義方法,其特征在于,所述測(cè)試用例生成模塊通過(guò)從圖形用戶界面獲得的私有協(xié)議數(shù)據(jù)結(jié)構(gòu)的定義,從而獲得各個(gè)字段的定義、各個(gè)字段的正確取值范圍和各個(gè)字段的長(zhǎng)度,這樣就通過(guò)協(xié)議字段的變換來(lái)生成包含正確和錯(cuò)誤共字段存的協(xié)議數(shù)據(jù),從而完成測(cè)試用例的生成。
【專利摘要】本發(fā)明公開(kāi)了基于工控協(xié)議漏洞挖掘用戶自定義方法,本發(fā)明通過(guò)圖形化來(lái)定義一個(gè)完整的協(xié)議,從而獲得一個(gè)完整的協(xié)議結(jié)構(gòu),并相應(yīng)對(duì)此協(xié)議生成一組漏洞挖掘的測(cè)試數(shù)據(jù),通過(guò)圖形界面的方式完成了協(xié)議的定義;通過(guò)圖形界面定義協(xié)議的結(jié)構(gòu),從而測(cè)試用例生成模塊獲取協(xié)議結(jié)構(gòu),并生成測(cè)試用例,完成一體化封裝;本發(fā)明的優(yōu)點(diǎn)是:1、相比通用的利用Ruby編程語(yǔ)言定義協(xié)議的技術(shù)而言易用性更強(qiáng);2、對(duì)一種工控協(xié)議定義多個(gè)協(xié)議頭更直接,無(wú)需用戶去花費(fèi)更多的時(shí)間去學(xué)習(xí)其他編程語(yǔ)言;3、從私有協(xié)議的定義到測(cè)試數(shù)據(jù)的生成形成一體化過(guò)程,用戶無(wú)需更多的介入,大大節(jié)省了用戶的精力和時(shí)間。
【IPC分類】H04L12/26
【公開(kāi)號(hào)】CN105391595
【申請(qǐng)?zhí)枴緾N201510492939
【發(fā)明人】曾光, 黃敏, 趙宇, 龍國(guó)東
【申請(qǐng)人】天津可信網(wǎng)安科技有限公司
【公開(kāi)日】2016年3月9日
【申請(qǐng)日】2015年8月12日