郭帥鵬
(河南省陸渾水庫運(yùn)行中心,河南 洛陽 471000)
水利樞紐關(guān)系著中國經(jīng)濟(jì)和社會的快速發(fā)展,是全國重要的基礎(chǔ)設(shè)施。水利樞紐系統(tǒng)主要是實(shí)現(xiàn)水利系統(tǒng)的調(diào)整控制命令、符合調(diào)度、運(yùn)行操作和實(shí)時監(jiān)視等功能。國內(nèi)外學(xué)者對此進(jìn)行大量的研究,王盛等根據(jù)樂昌峽水利樞紐工程安全監(jiān)測設(shè)計成果,研究了樂昌峽水利樞紐安全監(jiān)測系統(tǒng)設(shè)計思路與要點(diǎn);劉兆楠等結(jié)合具體的案例,探討了水利樞紐工程安全監(jiān)測系統(tǒng)的重要性,設(shè)計了水利樞紐工程安全監(jiān)測系統(tǒng);楊軍等設(shè)計了西藏滿拉水利樞紐工程安全監(jiān)測自動化系統(tǒng)改造;李瑞有等設(shè)計了長江三峽水利樞紐建筑物安全監(jiān)測決策支持系統(tǒng),系統(tǒng)主要包括三個面向用戶的功能分系統(tǒng),信息管理分系統(tǒng)?;诖?,文章設(shè)計了水利樞紐系統(tǒng)安全風(fēng)險評估系統(tǒng),系統(tǒng)結(jié)構(gòu)主要由表現(xiàn)層、業(yè)務(wù)層和數(shù)據(jù)支持層組成。
根據(jù)目前水利樞紐系統(tǒng)安全狀況,還存在現(xiàn)場檢測和維護(hù)難的問題,且維護(hù)人員缺少專業(yè)的安全意識和知識,因此,系統(tǒng)實(shí)現(xiàn)的目標(biāo)主要如下。
①為了便于水利樞紐工控維護(hù)人員能夠合理正確地使用此系統(tǒng),需要建立兩盒人幾乎交界面,該界面能夠?qū)崿F(xiàn)用戶的操作日志記錄、用戶的管理、登錄等共功能。
②需要對脆弱性識別的結(jié)果進(jìn)行風(fēng)險評估,對水利樞紐工控系統(tǒng)入侵路徑、待保護(hù)對象、攻擊源劃分不同的安全級別,建立風(fēng)險評估模型,從而進(jìn)行風(fēng)險評估。
③為了能夠評估目標(biāo)工控設(shè)備承受高速率數(shù)據(jù)包和接收的能力,通過畸形工控協(xié)議數(shù)據(jù)包找到系統(tǒng)的漏洞,應(yīng)建立風(fēng)暴測試和脆弱性2種測試類型。
④由于目標(biāo)設(shè)備需要根據(jù)多維測試用例的生成過程需求,對自身狀態(tài)進(jìn)行調(diào)整,及時記錄測點(diǎn)斷點(diǎn)的位置,因此,系統(tǒng)需要具備對測試目標(biāo)設(shè)備的網(wǎng)絡(luò)運(yùn)行監(jiān)控的功能。
⑤根據(jù)目標(biāo)設(shè)備的底層協(xié)議頭部,建立符合通信協(xié)議規(guī)范的數(shù)據(jù)包,并發(fā)送至測試目標(biāo)設(shè)備。系統(tǒng)需要實(shí)現(xiàn)自動執(zhí)行功能。
⑥為了識別深層和潛在漏洞和提高模糊測試,系統(tǒng)需要實(shí)現(xiàn)多維模糊測試自動生成功能。
⑦為了提高系統(tǒng)模糊測試效率,通過已知的協(xié)議規(guī)范生成測試,支持通過源數(shù)據(jù)生成的測試試用例,系統(tǒng)需要實(shí)現(xiàn)對已知的工控協(xié)議規(guī)范導(dǎo)入的功能。
⑧由于水利樞紐工作人員缺乏相關(guān)能力(安全技術(shù)、工控通信協(xié)議知識),需要手動解析工控通信協(xié)議,耗時又費(fèi)力。因此,系統(tǒng)能夠?qū)崿F(xiàn)生成高效的測試試用例的協(xié)議解析腳本,以及工控數(shù)據(jù)的自動解析的功能。
⑨水利樞紐系統(tǒng)需要通過畸形的工控協(xié)議數(shù)據(jù)包來測試工控設(shè)備的健康性。因此,系統(tǒng)要求實(shí)現(xiàn)自動采集功能,能夠生成工控協(xié)議數(shù)據(jù)幀集。
系統(tǒng)主要由表現(xiàn)層、業(yè)務(wù)層和數(shù)據(jù)支持層組成。設(shè)計系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 設(shè)計系統(tǒng)結(jié)構(gòu)圖
2.2.1 客戶段模塊設(shè)計
主要由登錄模塊、設(shè)備管理模塊、測試過程管理模塊、測試資源管理模塊、安全風(fēng)險評估模塊、用戶管理模塊和系統(tǒng)日志模塊組成。
2.2.2 服務(wù)端模塊設(shè)計
主要由數(shù)據(jù)采集模塊、舍爾被掃描模塊、協(xié)議解析模塊、協(xié)議規(guī)范模塊、測試用例生成模塊、測試執(zhí)行器、監(jiān)視器和風(fēng)險評估模塊組成。安全風(fēng)險評估系統(tǒng)服務(wù)端功能模塊實(shí)現(xiàn)關(guān)系如圖2所示。
圖2 安全風(fēng)險評估系統(tǒng)服務(wù)端功能模塊實(shí)現(xiàn)關(guān)系圖
文章重點(diǎn)分析了數(shù)據(jù)采集模塊、設(shè)備掃描模塊、測試執(zhí)行器模塊。
采用jNetPcap庫來實(shí)現(xiàn)數(shù)據(jù)的采集,捕獲工作站、HMI、控制服務(wù)器等控制設(shè)備與工控設(shè)備間的數(shù)據(jù)包。工控協(xié)議數(shù)據(jù)采集實(shí)現(xiàn)流程略。
設(shè)備掃描模塊主要由3 種模式組成:基于UDP 協(xié)議的ICMP 報文不可達(dá)掃描、基于TCP 協(xié)議的端口掃描、基于ICMP數(shù)據(jù)包的在線設(shè)備掃描。設(shè)備掃描模塊實(shí)現(xiàn)流程圖略。
主要是根據(jù)測試的配置信息送發(fā)到目標(biāo)設(shè)備,并實(shí)現(xiàn)功能對工控協(xié)議數(shù)據(jù)幀的協(xié)議進(jìn)行封存。測試執(zhí)行器模塊實(shí)現(xiàn)流程圖略。
系統(tǒng)采用B/S架構(gòu)實(shí)現(xiàn)的,利用MyAQL后端數(shù)據(jù)庫。協(xié)議解析腳本如下:①字段:AnalysisID;描述:協(xié)議解析腳本編號;類型(長度):unsigned int;鍵:是;是否允許為空:否。②字段:SourceDataID;描述:源數(shù)據(jù)編號;類型(長度):unsigned int;鍵:外鍵;是否允許為空:否。③字段:SourceDataSeq;描述:分組序號;類型(長度):unsigned int;鍵:否;是否允許為空:否。④字段:LinkProType;描述:述:數(shù)據(jù)鏈路層協(xié)議類型;類型(長度):varchar(40);鍵:否;是否允許為空:是。⑤字段:NetProType;描述:網(wǎng)絡(luò)層協(xié)議類型;類型(長度):varchar(40);鍵:否;是否允許為空:是。⑥字段:TranProType;描述:傳輸層協(xié)議類型;類型(長度):small int;鍵:否;是否允許為空:是。⑦字段:Port;描述:端口號;類型(長度):unsigned int;鍵:否;是否允許為空:是。⑧字段:Time;描述:協(xié)議解析時間;類型(長度):varchar(40);鍵:否;是否允許為空:否。⑨字段:UserName;描述:用戶名.;類型(長度):varchar(40);鍵:否;是否允許為空:否。⑩字段:UserID;描述:用戶編號;類型(長度):unsigned int;鍵:外鍵;是否允許為空:否。字段:AnalysisScriptPath;描述:存放路徑;類型(長度):varchar(128);鍵:否;是否允許為空:否。
文章使用測試用例表來描述測試執(zhí)行中的案例,系統(tǒng)漏洞信息情況如下。①字段:VulnerID;描述:漏洞編號;類型(長度):unsigned int;鍵:主鍵;是否允許為空:否。②字段:DeviceID;描述:設(shè)備編號;類型(長度):unsigned int;鍵:外鍵;是否允許為空否。③字段:ProTestCaseID;描述:測試用例編號;類型(長度):unsigned int;鍵:外鍵;是否允許為空:否。④字段:ConV ulnerID;描述:預(yù)配置漏洞編號;類型(長度):unsigned int;鍵:外鍵;是否允許為空:否。⑤字段:UserName;描述:用戶名;類型(長度):varchar(40);鍵:否;是否允許為空:否。⑥字段:DiscoverDate;描述:發(fā)現(xiàn)日期;類型(長度):Date;鍵:否;是否允許為空:否。
通過分析了水利樞紐系統(tǒng)安全風(fēng)險評估系統(tǒng)的需要,設(shè)計了水利樞紐系統(tǒng)安全風(fēng)險評估系統(tǒng),主要由表現(xiàn)層、業(yè)務(wù)層和數(shù)據(jù)支持層組成,最后設(shè)計了數(shù)據(jù)庫。水利樞紐系統(tǒng)安全風(fēng)險評估系統(tǒng)的設(shè)計為水利樞紐系統(tǒng)安全提供重要的技術(shù)支持和借鑒。