劉夢(mèng)琪 彭輝水 黃旺 中車株洲電力機(jī)車研究所有限公司
模糊控制的特點(diǎn)是適用范圍廣且對(duì)時(shí)變負(fù)載具有一定的魯棒性,它不依賴于被控對(duì)象的數(shù)學(xué)模型,適用于非線性系統(tǒng)的控制中。
模糊控制基本原理主要包括如下四部分:
(1)模糊化。簡單來說就是將清晰量轉(zhuǎn)化為模糊集,根據(jù)一定的轉(zhuǎn)換規(guī)則,將選定的模糊控制輸入轉(zhuǎn)換為系統(tǒng)能夠識(shí)別的模糊量,具體包括以下三步:
第一,對(duì)輸入進(jìn)行處理,使其滿足模糊控制的要求;
第二,將第一步處理后的輸入進(jìn)行尺度變換;
第三,確定各輸入的模糊語言取值及對(duì)應(yīng)隸屬度函數(shù)。
(2)規(guī)則庫。模糊規(guī)則庫的作用是存放全部控制規(guī)則,為下一步的模糊推理提供語言控制規(guī)則。這些規(guī)則通過專家知識(shí)和使用人員經(jīng)驗(yàn)總結(jié)得出,是一種根據(jù)人的直覺推理的語言表達(dá)形式。
(3)模糊推理。主要實(shí)現(xiàn)基于模糊規(guī)則和推理合成規(guī)則,從輸入到輸出模糊集的映射,這是模糊邏輯控制器的核心,它將基于模糊概念和推理模糊控制作用,應(yīng)用模糊關(guān)系和推理規(guī)則模仿人類做出決定。
(4)解模糊。主要是將推理得到的控制量轉(zhuǎn)化為最終的輸出。
模糊測(cè)試是一種自動(dòng)化或半自動(dòng)化的漏洞挖掘技術(shù),多用于安全性測(cè)試,通過將非預(yù)期的數(shù)據(jù)插入目標(biāo)軟件程序的輸入中,并監(jiān)測(cè)目標(biāo)程序的異常以識(shí)別未知的軟件漏洞。模糊測(cè)試方法通常分為3 種:白盒,用于測(cè)試源代碼或反匯編代碼;黑盒,則無需審查源代碼;以及灰盒,與黑盒相近,但將先前得到的結(jié)果數(shù)據(jù)作為反饋。模糊測(cè)試可以通過事先對(duì)目標(biāo)程序進(jìn)行研究,將得到的經(jīng)驗(yàn)和知識(shí)轉(zhuǎn)化為更高效的模糊器(Fuzzer)。它充分利用了機(jī)器隨機(jī)生成和發(fā)送數(shù)據(jù)的能力,同時(shí)試圖引入使用人員的相關(guān)經(jīng)驗(yàn)。
模糊測(cè)試會(huì)根據(jù)各種因素如目標(biāo)系統(tǒng)、需要測(cè)試的數(shù)據(jù)格式等的不同而使用不同的方法,但模糊測(cè)試的過程基本由以下幾個(gè)步驟組成:
(1)確定測(cè)試對(duì)象和輸入向量
不確定目標(biāo)程序則無法決定決定具體的模糊測(cè)試工具或方法。從安全角度考慮,被利用的漏洞幾乎都是由于應(yīng)用程序接收未過濾非法數(shù)據(jù)或校驗(yàn)確認(rèn)的用戶輸入所引起的。無法定位輸入源將對(duì)模糊測(cè)試產(chǎn)生嚴(yán)重影響,因此確定輸入向量集對(duì)模糊測(cè)試而言至關(guān)重要。目標(biāo)程序能夠接收的數(shù)據(jù)都屬于輸入向量,包括文件、環(huán)境變量和命令行參數(shù)等,這些都是可能的模糊測(cè)試變量。
(2)生成模糊測(cè)試數(shù)據(jù)。確定輸入向量后,可以生成模糊測(cè)試數(shù)據(jù)。在實(shí)際測(cè)試中,會(huì)根據(jù)目標(biāo)程序的不同,選擇對(duì)應(yīng)的測(cè)試數(shù)據(jù)生成方式,可以采用對(duì)數(shù)據(jù)樣本進(jìn)行變異或根據(jù)協(xié)議動(dòng)態(tài)生成等方式,自動(dòng)化生成大量的模糊測(cè)試數(shù)據(jù)。
(3)執(zhí)行模糊測(cè)試數(shù)據(jù)。這一步與上一步生成模糊測(cè)試數(shù)據(jù)同時(shí)進(jìn)行,也需要使用自動(dòng)化的工具來執(zhí)行,執(zhí)行過程一般包括啟動(dòng)目標(biāo)程序、發(fā)送測(cè)試數(shù)據(jù)到目標(biāo)程序等。

圖2 典型的模糊測(cè)試流程
(4)監(jiān)測(cè)異常。在模糊測(cè)試過程中,如果失去了對(duì)異常的監(jiān)測(cè),最終即使確定出現(xiàn)異常,也無法判斷異常產(chǎn)生的原因,追蹤引發(fā)目標(biāo)程序異常的源測(cè)試數(shù)據(jù)。監(jiān)測(cè)方式不必依賴目標(biāo)應(yīng)用程序和模糊測(cè)試方法。
(5)確定可利用性。雖然該步驟不屬于模糊測(cè)試的必要流程,但根據(jù)軟件測(cè)試的最終目的,監(jiān)測(cè)到異常后,需要確定所發(fā)現(xiàn)的異常能否被進(jìn)一步利用。不管采用什么類型的模糊測(cè)試,該步驟一般由具備豐富的安全領(lǐng)域?qū)I(yè)知識(shí)和相關(guān)的經(jīng)驗(yàn)的人員手動(dòng)完成。
除了確定可利用性外,在模糊測(cè)試中,都應(yīng)該考慮到上述其他階段。各階段的順序和側(cè)重點(diǎn)會(huì)根據(jù)測(cè)試人員的最終目標(biāo)而不同。盡管模糊測(cè)試功能強(qiáng)大,但不說明它能發(fā)現(xiàn)目標(biāo)軟件中所有的錯(cuò)誤。
一個(gè)典型的模糊測(cè)試的流程如圖1 所示:
模糊測(cè)試的執(zhí)行過程可以簡單描述為:通過隨機(jī)或半隨機(jī)的方式生成輸入數(shù)據(jù);將數(shù)據(jù)輸入目標(biāo)程序;檢測(cè)被測(cè)系統(tǒng)的狀態(tài)是否正常;監(jiān)控目標(biāo)程序的狀態(tài)判斷是否存在漏洞。
(1) 模糊測(cè)試與云計(jì)算
9 年前一篇研究文章中提出了“云端模糊測(cè)試將徹底改變安全測(cè)試”,模糊測(cè)試軟件可利用大量可用基礎(chǔ)設(shè)施并行執(zhí)行不同測(cè)試,因此模糊測(cè)試十分適用于云計(jì)算,將安全測(cè)試托管在云端,簡化了從每個(gè)應(yīng)用收集信息、推送更新、驅(qū)動(dòng)未來開發(fā)改進(jìn)的過程,也減少了人力物力的投入,甚至可以依靠自動(dòng)向代碼提交不良輸入來發(fā)現(xiàn)軟件漏洞。
(2)模糊測(cè)試與神經(jīng)網(wǎng)絡(luò)
因?yàn)槿斯ぶ悄艿牟粩喟l(fā)展,神經(jīng)網(wǎng)絡(luò)可以令模糊測(cè)試工具變得更加高效。模糊測(cè)試工具可以通過持續(xù)的模糊測(cè)試訓(xùn)練,學(xué)習(xí)模糊測(cè)試變異的類型或要應(yīng)用的策略等。為了具備足夠的訓(xùn)練數(shù)據(jù),產(chǎn)生足夠的模式,運(yùn)用大量的輸入-輸出樣本矢量對(duì)對(duì)模糊測(cè)試工具進(jìn)行訓(xùn)練。在發(fā)現(xiàn)漏洞之后,通過神經(jīng)網(wǎng)絡(luò)確認(rèn)漏洞是否值得利用,以及是否會(huì)被利用。模糊測(cè)試本身采用傳統(tǒng)自動(dòng)化方法加人工監(jiān)督的方式進(jìn)行。
(3)模糊控制用于自動(dòng)化測(cè)試判據(jù)
伴隨著模糊控制技術(shù)的發(fā)展和完善,模糊測(cè)試在測(cè)試用例的需求被不斷滿足,但從軟件測(cè)試的流程來看,測(cè)試用例僅僅只測(cè)試流程的一部分,還有一個(gè)重要的項(xiàng)點(diǎn)是測(cè)試結(jié)果。一般而言,可以根據(jù)需求中給定的范圍判斷測(cè)試結(jié)果是否通過。但在一些情況下,尤其是處于邊界情況時(shí),更多的需要測(cè)試人員與設(shè)計(jì)人員進(jìn)行溝通,人為確定結(jié)論。同時(shí),當(dāng)結(jié)果有特殊波動(dòng),但總體或平均值仍在允許范圍內(nèi)時(shí),也存在判斷失誤的可能性。在測(cè)試結(jié)論上如果能帶入模糊控制理論,配合神經(jīng)網(wǎng)絡(luò)算法模型,能更好地改善因邊界點(diǎn)等問題所造成的測(cè)試判據(jù)有誤的情況。
(4)模糊測(cè)試結(jié)合其他安全方法
模糊測(cè)試技術(shù)在未來有可能會(huì)結(jié)合其他多種軟件漏洞發(fā)掘分析方法。例如當(dāng)模糊測(cè)試無法確保足夠的代碼覆蓋時(shí),可以考慮將代碼審查同模糊測(cè)試相結(jié)合,把代碼覆蓋作為一種度量手段來確定模糊測(cè)試的完成程度。還可以考慮另一種混合分析的方法。首先對(duì)源代碼進(jìn)行自動(dòng)化評(píng)審,這種典型的白盒測(cè)試通常會(huì)發(fā)現(xiàn)大量的潛在的漏洞,但是可能產(chǎn)生誤報(bào),因?yàn)樗谶\(yùn)行時(shí)不能確認(rèn)結(jié)果的最終形式。這時(shí)可以利用靜態(tài)掃描的結(jié)果來幫助生成模糊測(cè)試用例,協(xié)助在動(dòng)態(tài)模糊測(cè)試階段中證明或反駁那些潛在的漏洞。
本文對(duì)模糊控制的發(fā)展歷程進(jìn)行了簡要的介紹,并在此基礎(chǔ)上分析了模糊測(cè)試的研究現(xiàn)狀與典型應(yīng)用,同時(shí)展望了未來模糊控制在測(cè)試上的發(fā)展方向。模糊測(cè)試概念的提出已經(jīng)有些年頭了,也得到了一定的重視與發(fā)展。但其執(zhí)行相當(dāng)困難,很難擁有合適的資源,對(duì)一般的公司企業(yè)沒有太大吸引力。人工智能(AI)或神經(jīng)網(wǎng)絡(luò)逐步進(jìn)入傳統(tǒng)模糊測(cè)試技術(shù),造就了查找目標(biāo)程序或系統(tǒng)漏洞的強(qiáng)大工具,企業(yè)和軟件供應(yīng)商可以通過模糊測(cè)試更容易地找出系統(tǒng)中的潛在可利用漏洞。通過深入研究,模糊測(cè)試技術(shù)極有可能成為未來混合型軟件測(cè)試中一個(gè)重要的組成部分。