[發明專利]基于序列生成對抗網絡的DNP3協議模糊測試方法有效
| 申請號: | 202010982882.1 | 申請日: | 2020-09-18 |
| 公開(公告)號: | CN112104525B | 公開(公告)日: | 2021-07-30 |
| 發明(設計)人: | 于振華;王浩蘆;劉穎;王丹;葉鷗;趙禹博 | 申請(專利權)人: | 西安科技大學 |
| 主分類號: | H04L12/26 | 分類號: | H04L12/26;H04L29/06;G06N3/04;G06N3/08 |
| 代理公司: | 西安眾星藍圖知識產權代理有限公司 61234 | 代理人: | 張倩 |
| 地址: | 710054 *** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 序列 生成 對抗 網絡 dnp3 協議 模糊 測試 方法 | ||
1.基于序列生成對抗網絡的DNP3協議模糊測試方法,其特征在于,該方法包括以下步驟:
步驟一、構建DNP3協議樣本數據庫:利用公開的DNP3協議樣本數據集和人工采集的DNP3工控系統中的多個隨機DNP3協議樣本數據構建DNP3協議樣本數據庫;
步驟二、DNP3協議樣本數據預處理:根據DNP3協議格式對DNP3協議樣本數據庫中DNP3協議樣本數據進行提取,并按字段分離DNP3協議樣本數據,再通過進制轉換的構造方法對DNP3協議樣本數據進行預處理;
步驟三、預處理后的DNP3協議樣本數據變異:使用字符填充、數值位翻轉或數值取反的方法對預處理后的DNP3協議樣本數據進行變異;
步驟四、生成初級測試用例,過程如下:
步驟401、將預處理且變異后的DNP3協議樣本數據作為訓練數據,輸入至序列生成對抗網絡SeqGAN中的LSTM生成器,學習訓練數據的一維序列特征;
步驟402、LSTM生成器生成的數據輸入至嵌入層,得到數據的二維陣列,再將數據的二維陣列輸入到CNN判別器,獲取數據的真偽值;其中,所述LSTM生成器為步驟401訓練的LSTM生成器;
步驟403、選取交叉熵作為CNN判別器的損失函數,將數據的真偽值帶入至損失函數,計算數據損失目標函數,將數據損失目標函數計算的值送入Adam優化器,對步驟401中的序列生成對抗網絡SeqGAN中的LSTM生成器的權重參數集合和步驟402中的CNN判別器的權重參數集合交替進行更新,進而得到優化后的LSTM生成器和CNN判別器;
步驟404、調取新的訓練數據,循環步驟401至步驟403,直至數據損失目標函數計算的值小于數據損失目標函數計算的值的閾值,此時,得到LSTM生成器各個權重參數訓練結果,并確定最終訓練完成的LSTM生成器;
步驟405、利用訓練完成的LSTM生成器自動生成多個初級測試用例;
步驟五、測試用例相似度對比去冗余:
根據公式計算第i個初級測試用例stri和第j個初級測試用例strj之間的相似度si,j,其中,edit()為編輯函數,edit(stri,strj)為將第i個初級測試用例stri變換為第j個初級測試用例strj所用的步數,len()為字段長度函數,max()為最大值函數,i和j均為初級測試用例編號且i≠j;
當si,j≥Δ時,說明第i個初級測試用例stri和第j個初級測試用例strj相似,隨機去除第i個初級測試用例stri和第j個初級測試用例strj中的任意一個初級測試用例,將保留的初級測試用例視為種子測試用例,并存儲在種子測試用例集中,其中,Δ為相似度閾值;
當si,j<Δ時,說明第i個初級測試用例stri和第j個初級測試用例strj不相似,將第i個初級測試用例stri和第j個初級測試用例strj均視為種子測試用例,并存儲在種子測試用例集中;
步驟六、種子測試用例變異:對種子測試用例集內的種子測試用例進行變異,選取種子測試用例中隨機數量長度的字段作為變異字段,使用邊界值變異、字符填充、數值位翻轉或數值取反方式對變異字段進行變異,完成種子測試用例的隨機變異,將種子測試用例集內的種子測試用例和變異后的種子測試用例集中存儲,得到測試用例集;
步驟七、DNP3協議模糊測試:將測試用例集中的測試用例輸入至DNP3工控系統中進行DNP3協議模糊測試,若測試用例未引起DNP3協議異常,則該測試用例為正常測試用例,進而該測試用例未測試出DNP3協議漏洞;
若測試用例引起DNP3協議異常,則該測試用例為預異常測試用例,進而該測試用例測試出DNP3協議存在漏洞風險,執行步驟八;
步驟八、漏洞驗證:將步驟七中的預異常測試用例再次輸入至DNP3工控系統中進行DNP3協議模糊測試,若該預異常測試用例未引起DNP3協議異常,將該預異常測試用例更改為正常測試用例;
若該預異常測試用例再次引起DNP3協議異常,該預異常測試用例確定為異常測試用例,并記錄該異常測試用例及其引起的漏洞;
步驟九、異常測試用例的調試及監控:利用調試工具檢測異常測試用例,并追蹤異常測試用例在DNP3工控系統中的運行信息和棧幀信息,分析并記錄漏洞觸發原因;
異常測試用例調試過程中同時通過監控包方式、進程監控方式和日志記錄方式對異常測試用例和DNP3工控系統進行監控。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安科技大學,未經西安科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010982882.1/1.html,轉載請聲明來源鉆瓜專利網。





