只要是軟件產(chǎn)品就會(huì )有漏洞,就看你是否去尋找那些漏洞。由于漏洞是普遍而廣泛的存在著(zhù)的,漏洞可能存在于系統層面,也可能存在于軟件層面。大量存在的漏洞,可能一部分被發(fā)現出來(lái)了,成為了公開(kāi)的漏洞信息,需要打補丁。另外一部分則潛伏于我們的系統當中。由于我們每天的操作,都是按正常的固定軌跡去進(jìn)行的,這些大量潛伏的漏洞則很難被發(fā)現出來(lái)。鑒于此,模糊化測試,用于發(fā)現漏洞的思想,慢慢被提出。
大量的系統使用網(wǎng)絡(luò )進(jìn)行相互通信,這些系統也普遍存在著(zhù)潛伏的漏洞。工控漏洞挖掘系統,兼容支持ARP、ICMP、IGMP、IP、IPV6、 LLDP、MODBUS-TCP、TCP、UDP、EDPF-NT+通信協(xié)議。并可以持續集成更多的通信協(xié)議;谝延械拇罅繙y試用例,可以對各種網(wǎng)絡(luò )設備、系統進(jìn)行漏洞挖掘測試,尋找網(wǎng)絡(luò )設備潛伏存在的網(wǎng)絡(luò )通信漏洞。
工業(yè)系統中,由于不存在復雜的互聯(lián)網(wǎng)環(huán)境,很多企業(yè)則存在有僥幸心理,認為自己只要做好了網(wǎng)絡(luò )隔離管控,則不需要太關(guān)心漏洞問(wèn)題。但是,現在發(fā)生越來(lái)越多的針對工業(yè)設備的攻擊事件,表明工控系統的漏洞問(wèn)題并沒(méi)有因為網(wǎng)絡(luò )隔離管控就比互聯(lián)網(wǎng)的少,尤其是工業(yè)系統中各種設備相互信任的關(guān)系,使得漏洞一旦被利用則可以造成巨大的危害。
根據漏洞出現在的工控系統組件的不同,工控安全漏洞可劃分為.
(1)工控設備漏洞
(2)工控網(wǎng)絡(luò )協(xié)議漏洞
(3)工控軟件系統漏洞
(4)工控安全防護設備漏洞
根據是否可能帶來(lái)直接隱患,工控安全漏洞也可劃分為:
(1)SCADA系統軟件漏洞
(2)操作系統安全漏洞
(3)網(wǎng)絡(luò )通信協(xié)議安全漏洞
(4)安全策略和管理流程漏洞
工控漏洞挖掘系統在模糊測試的思想下,針對工業(yè)控制設備和系統進(jìn)行了專(zhuān)門(mén)的優(yōu)化,制定了專(zhuān)門(mén)的測試用例。用于發(fā)現工業(yè)設備系統中潛在的漏洞。
1) 漏洞發(fā)現能力
工控漏洞挖掘系統是目前先進(jìn)的模糊化測試思想的新產(chǎn)品,可以對被測系統進(jìn)行大量的隨機測試。通過(guò)廣撒網(wǎng)的方式,輸入各種非正常的輸入和操作。以此來(lái)探測被測系統潛伏存在的漏洞。
2) 多協(xié)議支持
工控漏洞挖掘系統內置集成了ARP、ICMP、IGMP、IP、IPV6、 LLDP、MODBUS-TCP、TCP、UDP、EDPF-NT+通信協(xié)議的漏洞挖掘功能。對于使用了這些協(xié)議的系統和設備可以進(jìn)行測試。
3) 內置大量測試用例
工控漏洞挖掘系統內置了百萬(wàn)級的模糊化測試用例。這些測試用例,涵蓋了基于這些協(xié)議的大量應用系統場(chǎng)景。使用這些測試用例,即可一點(diǎn)點(diǎn)探索發(fā)現系統存在的未知漏洞。
4) 易用性
工控漏洞挖掘系統使用簡(jiǎn)明直觀(guān)的UI界面,將漏洞挖掘的全過(guò)程,完全展示出來(lái)?梢灾庇^(guān)的看到,發(fā)送了哪些測試數據包,并實(shí)時(shí)探測被測設備或系統是否依舊工作正常。
5) 支持自定義協(xié)議
工控漏洞挖掘系統,提供了自定義協(xié)議的功能,用戶(hù)可以根據自己的需求,自定義網(wǎng)絡(luò )通信協(xié)議,傳入自定義協(xié)議的數據包。并基于此進(jìn)行漏洞挖掘測試。
6) 支持工控協(xié)議
工控漏洞挖掘系統作為一款主要針對工業(yè)系統的漏洞挖掘軟件,支持基于MODBUS-TCP設備的漏洞挖掘。
7) 支持私有協(xié)議
工控漏洞挖掘系統作為一款專(zhuān)門(mén)針對電力系統進(jìn)行優(yōu)化的設備,支持電力EDPF-NT+的私有協(xié)議漏洞挖掘,可以對采用了該私有協(xié)議的設備進(jìn)行測試。
漏洞挖掘的技術(shù)主要是使用模糊測試,由于軟件的漏洞可能是隨機存在的,而應用軟件的執行過(guò)程,通常是按照設定的參數要求輸入輸出,很少有畸變的參數。這導致,漏洞在普通過(guò)程中,極難發(fā)現。而模糊測試,就是將輸入進(jìn)行極大量的隨機,通過(guò)隨機來(lái)探尋被測對象可能的漏洞。這一點(diǎn)區別于常見(jiàn)的漏洞掃描技術(shù)。
網(wǎng)絡(luò )安全漏洞掃描技術(shù)是一種基于Internet遠程檢測目標網(wǎng)絡(luò )或本地主機安全性脆弱點(diǎn)的技術(shù)。漏洞掃描服務(wù)(Vulnerability Scan Service,簡(jiǎn)稱(chēng)VSS)是針對網(wǎng)站進(jìn)行漏洞掃描的一種安全檢測服務(wù),目前提供通用漏洞檢測、漏洞生命周期管理、自定義掃描多項服務(wù)。用戶(hù)新建任務(wù)后,即可人工觸發(fā)掃描任務(wù),檢測出網(wǎng)站的漏洞并給出漏洞修復建議。
通過(guò)網(wǎng)絡(luò )安全漏洞掃描,系統管理員能夠發(fā)現所維護的Web服務(wù)器的各種TCP/IP端口的分配、開(kāi)放的服務(wù)、Web服務(wù)軟件版本和這些服務(wù)及軟件呈現在Internet上的安全漏洞。網(wǎng)絡(luò )安全漏洞掃描技術(shù)也是采用積極的、非破壞性的辦法來(lái)檢驗系統是否有可能被攻擊崩潰。其利用了一系列的腳本模擬對系統進(jìn)行攻擊的行為,并對結果進(jìn)行分析。這種技術(shù)通常被用來(lái)進(jìn)行模擬攻擊實(shí)驗和安全審計。
注:網(wǎng)絡(luò )安全漏洞掃描技術(shù)與防火墻、安全監控系統互相配合就能夠為網(wǎng)絡(luò )提供很高的安全性。
一次完整的網(wǎng)絡(luò )安全漏洞掃描分為三個(gè)階段:
l 第一階段:發(fā)現目標主機或網(wǎng)絡(luò )。
l 第二階段:發(fā)現目標后進(jìn)一步搜集目標信息,包括操作系統類(lèi)型、運行的服務(wù)以及服務(wù)軟件的版本等。如果目標是一個(gè)網(wǎng)絡(luò ),還可以進(jìn)一步發(fā)現該網(wǎng)絡(luò )的拓撲結構、路由設備以及各主機的信息。
l 第三階段:根據搜集到的信息判斷或者進(jìn)一步測試系統是否存在安全漏洞。
網(wǎng)絡(luò )安全漏洞掃描技術(shù)包括有PING掃射(Ping sweep)、操作系統探測(Operating system identification)、如何探測訪(fǎng)問(wèn)控制規則(firewalking)、端口掃描(Port scan)以及漏洞掃描(vulnerability scan)等。這些技術(shù)在網(wǎng)絡(luò )安全漏洞掃描的三個(gè)階段中各有體現。
PING掃描用于網(wǎng)絡(luò )安全漏洞掃描的第一階段,可以幫助我們識別系統是否處于活動(dòng)狀態(tài)。
操作系統探測、如何探測訪(fǎng)問(wèn)控制規則和端口掃描用于網(wǎng)絡(luò )安全漏洞掃描的第二階段,其中操作系統探測顧名思義就是對目標主機運行的操作系統進(jìn)行識別;如何探測訪(fǎng)問(wèn)控制規則用于獲取被防火墻保護的遠端網(wǎng)絡(luò )的資料;而端口掃描是通過(guò)與目標系統的TCP/IP端口連接,并查看該系統處于監聽(tīng)或運行狀態(tài)的服務(wù)。
網(wǎng)絡(luò )安全漏洞掃描第三階段采用的漏洞掃描通常是在端口掃描的基礎上,對得到的信息進(jìn)行相關(guān)處理,進(jìn)而檢測出目標系統存在的安全漏洞。
網(wǎng)絡(luò )安全漏洞掃描技術(shù)的兩大核心技術(shù)就是端口掃描技術(shù)和漏洞掃描技術(shù),這兩種技術(shù)廣泛運用于當前較成熟的網(wǎng)絡(luò )掃描器中。
端口掃描的原理其實(shí)非常簡(jiǎn)單,只是簡(jiǎn)單的利用操作系統提供的connect()系統調用,與目標計算機的端口進(jìn)行連接。如果端口處于偵聽(tīng)狀態(tài),那么connect()能夠成功,否則,這個(gè)端口是不能用的,就是沒(méi)有提供服務(wù)。
端口掃描器只是單純的用來(lái)掃描目標主機的服務(wù)端口和端口相關(guān)信息。這類(lèi)掃描器并不能直接給出可以利用的漏洞,而是給出突破系統相關(guān)的信息,這些信息對于普通人來(lái)說(shuō)是極為平常的,絲毫不能對安全造成威脅,但是一旦到了高手手里,它就成為系統所必須的關(guān)鍵信息。
漏洞掃描工具則更加直接,它檢測掃描目標主機中可能大量已知的漏洞,如果發(fā)現潛在漏洞可能,就報告掃描者。這種掃描器的威脅更大,因為黑客可以直接利用掃描結果進(jìn)行攻擊。
模糊測試(fuzzing),簡(jiǎn)而言之,就是為了出發(fā)新的或不可預見(jiàn)的代碼執行路徑或者過(guò)程,而對程序進(jìn)行異常的,非預期的,甚至是隨機的輸入。因為模糊測試涉及到為目標提供大量的測試樣例,因此,測試的過(guò)程是一個(gè)簡(jiǎn)單的重復勞動(dòng)。需要對測試的進(jìn)行部分自動(dòng)化。
模糊測試可以引用于程序執行本身如在程序中插入,或程序的接口處,如參數或指令接收端。
模糊測試是對其他測試技術(shù)的一個(gè)補充,由模糊測試揭露的問(wèn)題,往往是使用人員,開(kāi)發(fā)人員,甚至一般測試人員都不太可能去構建的測試用例觸發(fā)的。在常規自動(dòng)化測試的過(guò)程中,模糊測試擴大了測試用例的覆蓋范圍,提高了代碼的覆蓋率和測試程度。通過(guò)模糊測試,使用非預期的輸入,通常會(huì )觸發(fā)一些平時(shí)不會(huì )觸發(fā)的執行過(guò)程。
1) 漏洞挖掘與漏洞掃描技術(shù)都是漏洞發(fā)現的方式,只是漏洞挖掘通常目標是未知漏洞,而漏洞掃描主要是針對已知漏洞。
2) 漏洞挖掘和漏洞掃描技術(shù)是相輔相成的技術(shù)。通常漏洞都不會(huì )單獨的存在,而是具有某種聯(lián)系性。比如,如果設備或者系統具有某一個(gè)功能的漏洞,那么該功能相關(guān)的功能,通常也會(huì )有漏洞;蛘,某一個(gè)協(xié)議具有漏洞,那么就意味著(zhù),使用該協(xié)議的所有不同設備都具有該漏洞。這種漏洞的聚集性,使得漏洞挖掘不會(huì )是漫無(wú)目的工作,而是可以基于某些已知漏洞,在已知漏洞的基礎上,再演進(jìn)的去發(fā)現,新的可能具有的漏洞。這就會(huì )大大提高漏洞發(fā)現的能力。
3) 漏洞挖掘與漏洞掃描可以相互作為補充。漏洞掃描,主要技術(shù)是基于已有的漏洞庫,對待測對象進(jìn)行掃描,對未知的漏洞則無(wú)能為力。此時(shí),工控漏洞挖掘系統則可以對未知的漏洞進(jìn)行發(fā)現。在發(fā)現以后的漏洞,即可作為已知漏洞,用于對更多系統的漏洞掃描。
系統主要由測試用例、測試任務(wù)、任務(wù)隊列、任務(wù)管理器、發(fā)包機、流量采集器、被測對象監控器組成。
1) 測試用例
測試用例包含內置和自定義的。內置的測試用例為,系統出廠(chǎng)之前,預添加的測試用例。自定義用例由使用用戶(hù)根據測試需要添加。
2) 測試任務(wù)
測試任務(wù)由操作人員,由前端輸入各個(gè)信息形成。添加以后,測試任務(wù)即可添加到任務(wù)隊列中。
3) 任務(wù)隊列
任務(wù)執行過(guò)程,為了防止相互干擾和影響,需要執行的任務(wù)需要進(jìn)入任務(wù)隊列排隊。
4) 任務(wù)管理器
任務(wù)創(chuàng )建以后,所有的模糊測試任務(wù)都由該管理器進(jìn)行管理。管理任務(wù)的執行過(guò)程,并且接收前端的暫停和停止命令。
5) 發(fā)包機
執行的過(guò)程中,需要進(jìn)行網(wǎng)絡(luò )數據包發(fā)送,發(fā)包的過(guò)程處理,由發(fā)包機模塊完成調用。
6) 流量采集器
發(fā)包過(guò)程中的實(shí)時(shí)通信流量由包采集器進(jìn)行采集,并格式化處理為可查看的格式。
7) 被測對象監控器
測試過(guò)程中,將需要實(shí)時(shí)掌握被測對象的工作狀態(tài),如果發(fā)包以后被測對象工作不正常了,那么被測對象即可能因剛剛的發(fā)包導致了當機,即可將剛剛發(fā)送的數據包保存下來(lái)作為有效的數據包。
系統默認自帶ARP、ICMP、IGMP、IP、IPV6、 LLDP、MODBUS-TCP、TCP、UDP、EDPF-NT+協(xié)議,內置了協(xié)議的模糊測試用例。支持查看這些測試用例的包payload部分。
工控漏洞挖掘系統支持漏洞挖掘的模糊測試任務(wù)創(chuàng )建;谠撀┒礈y試用例,生成模糊測試任務(wù)。
工控漏洞挖掘系統支持自定義協(xié)議的模糊測試,使用自定義協(xié)議用例管理功能,可以錄入自定義協(xié)議的模糊測試數據包。
工控漏洞挖掘系統,支持自定義的模糊測試功能。支持基于IP,TCP,UDP協(xié)議的自定義協(xié)議,創(chuàng )建模糊測試任務(wù)。