












摘 要:模糊測試是目前比較流行的網絡協議漏洞挖掘技術之一,但是存在現有網絡協議模糊器對字段間的關聯性探索不足的問題。為此,提出了一種基于字段信息和覆蓋率反饋的模糊測試方法。該方法通過兩個參數定量表示協議數據模型中不同字段的關系和每一個字段本身的影響力,并利用覆蓋率信息持續學習更新,從而指導模糊測試向更高效的方向變異。基于該方法實現了基于字段信息和覆蓋率反饋的模糊測試模糊器FMFuzzer(FieldMessagebasedFuzzer),并與模糊器Boofuzz和PAVFuzz進行了對比實驗。實驗結果顯示,在3種網絡協議上,FMFuzzer的代碼覆蓋率模糊器Boofuzz和PAVFuzz分別平均提升了10.97%和6.63%,證明了本方法的有效性。
關鍵詞:網絡協議漏洞挖掘;灰盒模糊測試;協議字段信息;代碼覆蓋率
中圖分類號:TP393 文獻標志碼:A
0 引言(Introduction)
計算機網絡支撐數字社會發展的基礎,掌控著資源和信息的流通命脈,一旦網絡通信出現故障,將給國家和社會的穩定發展帶來極其嚴重的風險[1]。網絡協議明確定義了不同實體之間進行網絡通信的規范,而如何在我們所應用的網絡協議實現中找到并修復安全缺陷,是每一位安全工作者都會面臨的挑戰[2]。
模糊測試[3]作為自動化漏洞發現領域中的佼佼者,憑借其易使用、效率高及誤報率低等優勢,在學術界和工業界都得到了廣泛的應用和研究[4]。早期用于網絡服務的模糊測試工具主要采用黑盒式模式[5],雖然黑盒模糊測試的適用性較強,但由于在測試過程中缺乏待測對象的內部反饋,其測試過程是相對盲目的,導致代碼覆蓋率和漏洞發現效率有限。近年來,結合代碼覆蓋率[6]反饋的灰盒模糊測試方法越來越流行[7],針對協議字段信息對模糊測試效率的影響,本文提出了一種結合代碼覆蓋率反饋的新型灰盒模糊測試方法,并通過實驗驗證了本方法的有效性。
1 相關工作與動機(Relatedworksandmotivation)
在網絡協議模糊測試技術的發展初期[8],主要存在兩種不同的基本測試思路[9]。采用這兩種不同基本測試思路的方法,并各自采用不同的策略生成模糊測試用例,展現出各自獨有的特點。
基于變異的灰盒模糊測試方法,如AFLNET[10] 和StateAFL[11],在測試過程中會依據代碼覆蓋率的反饋來指導測試用例的生成。這種方法旨在提高測試用例的效率,使其覆蓋更多的運行代碼。但早期的灰盒模糊測試方法都是基于AFL(AmericanFuzzyLop)工具進行的,而AFL在生成測試用例時采用的是隨機突變的方式,這種方式在協議模糊測試領域存在一定的局限性,這是因為基于變異的方法很可能會破壞協議報文的結構,使其被待測程序直接拋棄而無法進入運行的流程。因此,這種方式產生的測試用例大多數都是無效的。
在基于語法生成的黑盒模糊測試中,例如Sulley、BooFuzz和Peach等,采用了一種有效的策略解決了基于變異的方法中測試用例結構被破壞的問題。該方法只需測試人員在測試前定義協議報文的結構,并人工劃分字段,就能針對特定字段進行變異。通過這種方法生成的測試用例在很大程度上不會破壞報文的整體結構。然而,黑盒模糊測試方法缺乏對覆蓋率等待測對象內部信息的指導,導致對協議實體程序的覆蓋率相對較低。
為了解決上述兩種方式存在的不足,研究者們在基于語法生成的黑盒模糊測試工具的基礎上進行了改進,通過引入覆蓋信息反饋來指導模糊測試變異的過程。在該研究領域具有代表性的成果有基于經典黑盒工具Peach提出的Peach*[12]、PAVFuzz[13]與基于框架Fuzzowski提出的EPF(Evolutionary,Protocol-aware,andcoverage-guidednetworkFuzzer)[14]等,它們都致力于研究如何更有效地利用覆蓋信息引導變異的方向。通過與Boofuzz、Peach等傳統黑盒模糊工具進行對比實驗,大部分結果均顯示,引入覆蓋率信息反饋的模糊測試工具取得了更優的表現,證明了利用覆蓋信息指導模糊測試的有效性。
在對現有基于語法生成的灰盒協議模糊測試方法進行研究時發現,除了不同協議狀態模型的兩個字段之間具有關系(如PAVFuzz[13]的研究)之外;在同一協議狀態模型中,某些字段之間也存在某種關系。這種關系表明,當多個字段組合變異時,可能會觸發單個字段單獨變異時所觸發不到的分支。同時,LUO等[15]通過對代碼的靜態分析指出,對同一個協議中的不同功能碼應該分配不同的變異策略來提高模糊測試效率,對重要性不同的字段也應該分配不同的變異能量,給一些重要的字段(如數據字段)更多的變異能量,以提高模糊測試的效率。
本文提出了基于字段信息和覆蓋率反饋的模糊測試方法。具體來說,該方法用參數表定量表示一個數據模型中不同字段的關系和每一個字段本身的影響力,并通過覆蓋率信息持續學習更新該參數表,以指導模糊測試向更高效的方向變異,從而實現更高的覆蓋率。本文主要貢獻總結如下:①提出了一種基于覆蓋率反饋的字段信息學習機制,根據分支覆蓋信息進行關系學習,動態地學習到同一數據模型中可變字段之間的關系和每個字段的影響力因子,并且以關系表的形式定量描述這種關系;②采用了字段組合選擇策略,在關系表和影響因子的指導下,讓關系比較密切的字段和重要性高的字段盡可能多地組合變異,并給影響因子更高的字段分配更多的變異能量;③實現了基于字段信息和覆蓋率反饋的模糊測試方法FMFuzzer的原型系統,并在幾個真實的協議上對其進行了簡要的評估。初步結果表明,與現有網絡模糊器相比,FMFuzzer能達到更高的代碼覆蓋率并獲得更好的模糊測試效果。
2 詳細設計(Detaileddesign)
2.1 總體概述
FMFuzzer系統的整體流程如圖1所示。首先,系統獲取當前所測試協議的協議規范,并捕獲真實通信報文,將其解析為協議狀態模型,其中每個協議狀態的通信報文按照字段分塊。定義好協議通信模型后,將目標源碼通過AFL的LLVM(LowLevelVirtualMachine)編譯器進行插樁、編譯生成可執行程序。其次,初始化每個協議狀態模型的字段關系表和字段影響因子。再次,遍歷定義好的協議狀態模型中的每一個狀態,根據當前狀態每個字段影響因子的不同,為該字段分配不同的變異能量;遍歷協議當前狀態的每一個字段,將其作為主字段,并根據字段關系表中各個字段與主字段的關系因子的大小與其本身的字段影響因子的大小,隨機選取若干個字段作為組合變異字段一起進行變異,直至分配給該字段的變異能量耗盡。最后,在變異的過程中,如果覆蓋率增加,則進入關系學習模塊,將每一個被選取的組合變異字段單獨與主字段進行變異,確定該字段是否對覆蓋率的增加有貢獻,并據此動態地調整該字段與主字段的關系因子與該字段本身的影響因子。
在所有協議狀態模型的每個字段都進行變異并耗盡當前變異能量后,本輪模糊測試結束,開啟下一輪的變異。下一輪的變異將采用更新后字段影響因子為當前字段分配新的變異能量。
FMFuzzer主要由3個重要模塊構成。①字段信息初始化模塊。該模塊負責初始化每個協議狀態模型的字段關系表和字段影響因子,字段信息表通過當前模型中所有字段的兩兩組合變異,并依據變異后的覆蓋率大小來進行初始化;字段影響因子由該字段與其他字段的關系因子綜合定義。②字段選擇變異模塊。該模塊負責變異報文,首先遍歷所有的協議狀態模型,根據字段影響因子為每個字段設置當前輪測試的變異能量;其次遍歷所有字段,綜合考慮當前協議狀態模型下主字段和其他字段的關系因子與字段影響因子,隨機選取若干個字段作為組合變異字段,并與主字段一同進行變異,生成變異后的測試用例。③字段信息學習與更新模塊。該模塊負責每輪測試結束后依據覆蓋率反饋信息更新字段關系表和字段影響因子,達到啟發式變異的效果。FMFuzzer會將字段間關系與字段本身的重要性定量表示出來,并在模糊測試開啟前進行初始化,隨著模糊測試的每一輪進行,字段關系表和字段影響因子會隨著覆蓋率信息不斷學習和更新,從而指導整個模糊測試的流程不斷向高覆蓋率的方向變異,提高模糊測試的效率。
為了更清晰地展示字段關系表和字段影響因子,圖2給出了每個協議狀態模型的字段數據存儲結構,對于每個協議狀態模型modeli,在定義時會依據協議規范將其劃分為若干字段,變異時也是以字段為單位進行的。每個協議狀態模型,都對應一張Con_table表(表示字段之間的關系因子),以及一張Impact_factor表(表示字段本身的影響因子)。Con_table表會以三元組(fieldi,fieldj,CF)的數組格式存儲,CF 代表兩個字段間關系量化后的數據。Impact_factor表會以字典{fieldi:IF}的格式存儲,IF 代表字段本身的影響因子。
2.2 字段信息初始化模塊
在協議模型定義完成之后、模糊測試開始之前,系統會初始化協議每一個狀態模型的字段關系表和字段影響因子,用于指導模糊測試的變異。
首先,遍歷定義好的協議狀態模型,對于每一個協議狀態模型,取其中的兩個字段(fieldi,fieldj),如果這兩個字段的關系因子還沒有被初始化,則僅將這兩個字段作為可變異字段發送1000個變異報文,獲取代碼分支覆蓋率,并根據覆蓋率大小初始化這兩個字段的關系因子CF。代碼覆蓋率越高,代表這兩個字段的初始關系因子也越高。計算出關系因子后,以三元組(fieldi,fieldj,CF)的形式填入Con_table表。若當前協議狀態模型有n 個字段,則字段的兩兩變異將進行C2n次,直至表格除了對角線都被初始化為止。
在初始化完成后,使用公式(1)將字段間關系因子進行調整,使其均勻分布在0~10,方便之后根據實時覆蓋率信息進行更新和調整,其中Con_table(i,n)表示第i 個字段與其他n-1個字段間的關系因子。
在初始化字段影響因子時,遍歷定義好的協議狀態模型,對于每一個協議狀態模型,遍歷其所有字段fieldi,將其在Con_table表中所有相關項的平均值作為其初始影響因子,初始影響因子的計算方法如公式(2)所示:
字段信息初始化完成后,每個協議狀態模型都獲得了一張字段關系表和字段影響因子,這使得在模糊測試初始,變異就能有比較好的引導。雖然初始化階段需要額外的時間開銷,但是對于一種協議,只需要初始化一次,就能記錄下每個字段的信息且可以重復使用,在測試不同的協議實現時沿用這些信息,對于總體的模糊測試效率的提升具有積極的作用。
2.3 字段選擇變異模塊
該模塊負責生成變異報文,其核心功能為選定當前模糊測試階段的協議狀態模型后,遍歷模型的所有可變字段,依據其字段影響因子分配本輪的變異能量,并且利用該字段對應的關系表,計算其他可變字段與其組合變異的概率,然后從中選擇若干個字段一同變異,并與主字段進行有利于覆蓋率增長的組合變異,從而提高模糊測試的效率。
字段選擇變異模塊的輸入為當前正在變異的協議狀態模型mi。首先,遍歷該狀態的所有字段,將當前字段作為主字段,根據當前字段的影響因子分配變異能量,能量分配如公式(3)所示,由于字段影響因子CF 服從(0~10)上的均勻分布,所以使用均勻分布的概率公式,其中initialEnergy 為初始能量,一般由測試人員根據實際測試環境決定。
根據主字段的字段關系表和字段影響因子,計算出其他每個字段被一起組合變異的概率,將變異后的測試用例發送給目標,如果當前的報文觸發了新的分支覆蓋,主字段的字段關系表和字段影響因子會進行學習更新,使得下一輪的模糊測試能朝著覆蓋率更高的方向進行,并且重置當前的變異能量為初始值,使得當前主字段能進行更充分的變異測試。在當前字段的變異能量耗盡后,對當前協議狀態模型的所有字段都進行相同的操作,在遍歷完所有協議狀態模型后,將使用新的字段關系表和字段影響因子開始下一輪的模糊測試。
字段選擇變異模塊的核心流程在于組合變異字段的選擇。在選擇組合變異字段時,系統會綜合考慮當前主字段的字段關系表和其他字段的字段影響因子,據此計算出每個字段被選擇的概率。值得注意的是,對于組合變異的字段數量不做限制,這一設計旨在能最大限度地擴展變異范圍,使模糊測試能盡可能地覆蓋到更多的代碼。字段選擇流程如圖3所示。
組合變異字段的選擇會基于當前狀態模型mi 對應的字段關系表Con_tablei 與字段影響因子Impact_factori 計算出每個字段被選擇的概率,并儲存在概率數組fieldProb[]中,若當前主字段為fieldi,第j 個字段被選擇的概率如公式(4)所示。由于Con_tablei 與Impact_factori 都屬于在0~10上的均勻分布,所以計算出的概率值一定在0~1,其中α 為兩個參數的權重,代表本次模糊測試分別對Con_tablei 和Impact_factori的重視程度,其值默認為0.5,表示字段間關系和字段影響因子擁有相同的權重。
2.4 字段信息學習與更新模塊
字段信息學習與更新模塊負責動態更新當前協議狀態模型的字段關系表和字段影響因子,使得模糊測試朝著高覆蓋率的方向進行。字段信息學習與更新算法如表1所示。
算法1給出了字段信息學習與更新模塊的算法流程。如果當前變異的報文有新的分支覆蓋,則會進入字段信息學習與更新模塊。首先,獲取當前變異報文的主字段和組合變異字段(算法1中的第1行);其次,對于每一個組合變異字段,都會單獨與主字段進行測試,各字段單獨組合驗證如圖4所示。通過單獨組合驗證,系統判斷該組合變異字段是否與主字段有關聯性,并評估其字段影響力,據此對字段關系表和字段影響因子進行相應的調整。
具體來說,首先,取原始協議狀態模型,僅對主字段進行變異并發送給待測設備,獲得其分支覆蓋率Cov0(算法1第2~3 行);其次,遍歷每一個被選擇的組合變異字段,分別將其單獨變異以及與主字段組合變異,得到對應的報文Packeti 與Packeti*;最后,將其發送給待測設備,獲得單獨變異的覆蓋率Covi 與組合變異的覆蓋率Covi*(算法1第5~8行)。
根據覆蓋率的差異,算法會更新字段關系表和字段影響因子,若Cov0≠Covi*,則證明字段的組合變異能產生不同代碼覆蓋分支,組合變異字段對測試用例存在一定的影響;此時,算法會相應地更新字段影響因子,若有組合變異字段的測試用例達到的覆蓋率更大,則增大該字段的影響因子,反之則減小(算法1第9~11行)。影響因子的更新學習方法如公式(5)所示,并確保更新后影響因子的值依舊保持在0~10。
若Cov0∪Covi≠Covi*,則證明組合變異達到了單獨變異所達不到的分支,主字段與組合變異字段存在一定的聯系且有益于覆蓋率的增加,更新字段關系表,可以提高這兩個字段的關系因子,并同時提高這兩個字段的影響因子,使其在下一輪模糊變異中能分配到更多的能量(算法1第12~14行),字段關系表和影響因子更新方法如公式(6)所示:
3 實驗驗證(Experimentalverification)
為了驗證本方法的有效性,我們在RTSP、DNS和FTP協議上進行了對比實驗。具體而言,本方法在基于語法生成的黑盒協議模糊器BooFuzz上引入了字段間關系表、字段影響因子及分支覆蓋信息反饋,使用并擴展了BooFuzz的變異引擎進行字段變異,實現了FMFuzzer的原型系統。在實驗中,選擇了兩個指標衡量本方法的性能,分別是分支覆蓋數和觸發新分支的測試用例數量。為確保實驗結果的可靠性,我們對每組實驗均重復進行了三次,并取平均值作為最終結果,以消除隨機因素的影響。
3.1 實驗設計
實驗環境設置如下:FMFuzzer運行環境為IntelCorei5-4750CPU @3.20GHz ×4,內存7.6 GB,操作系統為Ubuntu18.04。
本實驗以基于本方法實現的模糊器FMFuzzer作為實驗組。由于FMFuzzer 是基于BooFuzz 實現的,所以選擇BooFuzz與PAVFuzz作為對照組。其中,開源的PAVFuzz只能在Windows操作系統上運行,因此我們在Ubuntu系統上復現了PAVFuzz 的核心思想作為對照組。FMFuzzer 與BooFuzz、PAVFuzz一樣,都是基于語法生成的模糊測試工具,其不同之處在于FMFuzzer引入了字段組合變異和覆蓋率信息反饋,以BooFuzz和PAVFuzz作為對照組進行對比可以檢驗使用本方法引導模糊測試的有效性。
本文選擇了RTSP協議、DNS協議和FTP協議進行實驗,并分別使用了Live555、Dnsmasq、LightFTP作為這些協議的實體程序。這些協議實體程序都是網絡上使用范圍比較廣的協議實現,經常被作為各個工作的實驗對象,具有實際的測試價值。
為了評估本方法的實際效果,本文采用了以下2個實驗評測指標:①總分支覆蓋數量,是指模糊器在實驗運行的時間內能覆蓋的總代碼分支數量,也是本方法實現的基礎,用于引導模糊測試的進行,也可以反映模糊器對待測協議實現代碼的探索程度,是在協議模糊測試領域獲得廣泛認可的通用指標,能覆蓋更多的程序分支,代表模糊器的探索能力較強,有更大的概率能挖掘出潛在漏洞;②觸發新分支覆蓋的測試用例數量是指模糊器在實驗運行期間所產生的測試用例中觸發程序新覆蓋分支的測試用例個數,能反映模糊器運行期間產生的測試用例的質量。
3.2 實驗結果
(1)分支覆蓋數對比。實驗組FMFuzzer 與對照組BooFuzz、PAVFuzz在待測程序Live555、Dnsmasq與LightFTP上的分支覆蓋數對比結果如圖5所示。由圖5可知,實驗組FMFuzzer在3個待測程序上覆蓋的分支數量都高于對照組BooFuzz與PAVFuzz。在目標程序Live555上,相較于BooFuzz,FMFuzzer在分支覆蓋數量指標上提升了10.52%,相較于PAVFuzz提升了9.22%;在目標程序Dnsmasq上,相較于BooFuzz,FMFuzzer在分支覆蓋數量指標上提升了11.98%,相較于PAVFuzz提升了7.72%;在目標程序LightFTP上,相較于BooFuzz,FMFuzze在分支覆蓋數量指標上提升了10.42%,相較于對照組PAVFuzz提升了2.95%。
總分支覆蓋數指標的提升證明了本方法的有效性。分支覆蓋數量的提升得益于本方法利用反饋的代碼覆蓋信息持續更新和學習字段關系表和字段影響因子,使變異時字段之間能進行有針對性的組合變異,進而提升了測試用例觸發目標程序新分支的能力。
(2)觸發新分支覆蓋的測試用例數量對比。實驗組FMFuzzer與對照組BooFuzz、PAVFuzz在目標程序上觸發新分支的測試用例數量對比結果如表2所示。在目標程序Live555上,相較于BooFuzz,FMFuzzer在觸發新分支覆蓋的測試用例數量指標上提升了29.51%,相較于PAVFuzz提升了18.53%;在目標程序Dnsmasq上,相較于BooFuzz,FMFuzzer提升了24.03%,相較于PAVFuzz提升了9.80%;在目標程序LightFTP上,相較于BooFuzz,FMFuzzer提升了24.42%,相較于PAVFuzz提升了7.51%。
在相同的測試時間里,FMFuzzer觸發新分支的測試用例數量均多于對照組的BooFuzz與PAVFuzz的數量。此效果得益于FMFuzzer在每一輪模糊測試中根據字段影響因子對每個主字段賦予了動態變化的變異能量,當FMFuzzer認為某個字段的影響因子過小,已經不具備觸發新覆蓋分支的能力時,便快速跳過這個字段,進行其他字段的變異工作,避免了在無用字段上浪費過多的測試時間。且FMFuzzer在模糊測試過程中使用啟發式的思想學習到字段間的關系表和字段影響因子,指導字段朝著覆蓋率增長的方向進行組合變異,提高模糊測試的效率。
4 結論(Conclusion)
針對基于語法生成的灰盒協議模糊測試方法PAVFuzz和Polar在協議字段關系和影響力處理方面的不足,本文提出了一種基于字段信息和覆蓋率反饋的模糊測試方法。該方法用兩個參數定量表示一個數據模型中不同字段的關系和每一個字段本身的影響力,并通過覆蓋率信息不斷學習更新,用于指導模糊測試往更高效的方向變異,達到更高的覆蓋率。基于該方法實現了模糊器FMFuzzer,并進行了實驗評估,對3種應用廣泛的網絡協議進行了測試,并與模糊器BooFuzz和PAVFuzz進行了對比。對比結果顯示,本方法在分支覆蓋數與觸發新分支的測試用例數量指標上都有一定程度的提升,證明了本方法的有效性。
參考文獻(References)
[1]VOLKOVA A,NIEDERMEIER M,BASMADJIAN R,etal.Securitychallengesincontrolnetworkprotocols:asurvey[J].IEEEcommunicationssurveys amp; tutorials,2019,21(1):619-639.
[2]YUGHAR,CHITHRAS.Asurveyontechnologiesandsecurityprotocols:referenceforfuturegenerationIoT[J].Journalofnetwork and computerapplications,2020,169:102763.
[3]LIANGHL,PEIXX,JIAXD,etal.Fuzzing:stateoftheart [J].IEEEtransactionsonreliability,2018,67(3):1199-1218.
[4]任澤眾,鄭晗,張嘉元,等.模糊測試技術綜述[J].計算機研究與發展,2021,58(5):944-963.
[5]ALSAEDIA,ALHUZALIA,BAMASAG O.Black-boxfuzzingapproachestosecurewebapplications:survey[J].Internationaljournalofadvancedcomputerscienceandapplications,2021,12(5):849-855.
[6]HEMMATIH.Howeffectivearecodecoveragecriteria?[C]∥IEEE.ProceedingsoftheIEEE:2015IEEEInternationalConferenceonSoftwareQuality,ReliabilityandSecurity.Piscataway:IEEE,2015:151-156.
[7]MANèSVJM,HANH,HANC,etal.Theart,science,andengineeringoffuzzing:asurvey[J].IEEEtransactionsonsoftwareengineering,2021,47(11):2312-2331.
[8]ZHANGZW,ZHANGHZ,ZHAOJJ,etal.Asurveyonthedevelopmentofnetworkprotocolfuzzingtechniques[J].Electronics,2023,12(13):2904.
[9]LIJ,ZHAOB,ZHANGC.Fuzzing:asurvey[J].Cybersecurity,2018,1:1-13.
[10]PHAM V T,B?HME M,ROYCHOUDHURY A.Aflnet:agreyboxfuzzerfornetworkprotocols[C]∥IEEE.ProceedingsoftheIEEE:2020IEEE13thInternationalConferenceonSoftwareTesting,ValidationandVerification(ICST).Piscataway:IEEE,2020:460-465.
[11]NATELLA R.StateAFL:Greyboxfuzzingforstatefulnetworkservers[J].Empiricalsoftwareengineering,2022,27(7):191.
[12]LUOZX,ZUOFL,SHENYH,etal.ICSprotocolfuzzing:coverageguidedpacketcrackandgeneration[C]∥IEEE.ProceedingsoftheIEEE:202057thACM/IEEEDesign Automation Conference (DAC).Piscataway:IEEE,2020:1-6.
[13]ZUOFL,LUOZX,YUJZ,etal.Pavfuzz:state-sensitivefuzztestingofprotocolsinautonomousvehicles[C]∥IEEE.ProceedingsoftheIEEE:202158thACM/IEEEDesignAutomationConference(DAC).Piscataway:IEEE,2021:823-828.
[14]HELMKER,WINTERE,RADEMACHERM.EPF:anevolutionary,protocol-aware,and coverage-guided networkfuzzingframework[C]∥IEEE.ProceedingsoftheIEEE:202118thInternationalConferenceonPrivacy,SecurityandTrust(PST).Piscataway:IEEE,2021:1-7.
[15]LUOZX,ZUOFL,JIANGY,etal.Polar:functioncodeawarefuzztestingofICSprotocol[J].ACMtransactionsonembeddedcomputingsystems,2019,18(5s):1-22.
作者簡介:
丁森陽(1997-),男(漢族),湖州,碩士生。研究領域:計算機網絡,漏洞挖掘。
徐向華(1965-),男(漢族),杭州,教授,博士。研究領域:計算機網絡,機器學習,物聯網技術。本文通信作者。