[發明專利]一種產生測試用例的方法及裝置無效
| 申請號: | 200910143822.4 | 申請日: | 2009-05-31 |
| 公開(公告)號: | CN101902367A | 公開(公告)日: | 2010-12-01 |
| 發明(設計)人: | 唐文 | 申請(專利權)人: | 西門子(中國)有限公司 |
| 主分類號: | H04L12/26 | 分類號: | H04L12/26;H04L29/06 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100102 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 產生 測試 方法 裝置 | ||
技術領域
本發明涉及軟件安全性測試技術領域,特別涉及一種產生測試用例的方法及裝置。
背景技術
軟件(包括:應用程序、協議等)的安全性測試實際上是在軟件輸入空間中的一種探測。軟件的輸入空間由該軟件的所有可能的輸入、或所有可能的輸入的組合構成。窮舉是驗證軟件行為正確性的一種最極端的方法,然而,窮舉對大部分案例來說不具備可操作性,因為通常情況下,軟件程序的輸入空間非常巨大,甚至可能是無窮大。相比于窮舉的方法來說,模糊測試(Fuzz?Testing)作為一種隨機樣本方法,是一種更具可行性的黑盒測試方法。
模糊測試是一種軟件測試技術,該技術構造一些隨機或半隨機的數據(稱為fuzz,以下稱為模糊數據)作為被測試軟件程序的輸入,并觀察被測試軟件程序的工作狀況。模糊測試是檢查程序容錯性的一種重要的測試手段。如果被測軟件程序出錯(例如:崩潰了或導致內置的斷言驗證代碼為假),就表明檢測出了缺陷。用于產生fuzz數據的程序稱為模糊測試器(Fuzzers),模糊測試器是進行滲透測試或其它測試的有效工具。
作為一種黑盒測試工具,模糊測試通常用于大型軟件開發項目。模糊測試被認為能夠提高軟件的安全性,這是因為:模糊測試總是能檢測出一些測試人員未能發現的缺陷,這些缺陷往往會被軟件測試工程師所忽略。目前,最常用的模糊測試是基于字符的,基于字符的模糊測試提供隨機數據流(從文件或其它數據流中提供,例如:從套接字中提供)作為被測軟件程序的輸入,基于字符的模糊測試正廣泛應用于協議或網絡服務器的安全性測試。
雖然模糊測試具有上述種種優勢,然而,當模糊測試的測試對象為協議(當然也包括對應于協議的應用或產品等)時,采用任意的輸入作為測試用例就稍顯不夠了。這是因為:在進行協議測試時,交互的報文(或消息)必須符合相應的協議規范,因此,一次完整、有效的模糊測試需要基于協議規范進行,而非基于任意的隨機輸入進行。
協議規范定義了通信雙方之間所交互的報文之間的關系、以及報文的格式,例如:哪個/哪些響應報文是對應于給定輸入報文的。因此,只有輸入適當的報文序列才能使協議產品進入隨后的相應狀態,而只有進入了這些狀態,才有可能對這些狀態下協議產品的行為進行測試。在不理解協議規范的相關知識的情況下,模糊測試只能采用任意的輸入作為第一個報文來測試協議產品的初始狀態,因此,這種模糊測試無法完整、有效地評估協議產品的安全性。
發明內容
有鑒于此,本發明實施例提供一種產生測試用例的方法,以在無需理解協議規范的相關知識的情況下,完整、有效地評估協議產品的安全性。
本發明實施例還提供一種產生測試用例的裝置,以在無需理解協議規范的相關知識的情況下,完整、有效地評估協議產品的安全性。
本發明實施例提供的一種產生測試用例的方法,用于對協議進行模糊測試,包括:
A、采用協議分析器抓取并記錄協議雙方之間交互的報文;
B、采用協議分析器對所述記錄的報文進行解析,得到報文的各個字段;
C、根據各個字段的類型,以相應類型的模糊數據填充所述字段得到測試報文。
較佳地,所述協議雙方為:客戶端和服務器;
在所述A之后可以進一步包括:將所述記錄的報文中由客戶端發送給服務器的報文按照發送的先后次序進行排列,得到第一合法報文序列;
所述B為:對所述第一合法報文序列中的報文進行解析,得到所述第一合法報文序列中各個報文的各個字段;
所述C為:根據所述第一合法報文序列中各個報文的各個字段的類型,依次以相應類型的模糊數據填充所述字段得到對應的測試報文,并依次以所述得到的每一個測試報文替換所述第一合法報文序列中的對應報文得到對應的報文序列,將所述得到的報文序列作為測試報文序列。
進一步地,該方法可以包括:預先設置需要進行模糊化的字段的類型,所述類型至少為一種;并針對每一種類型設置相應的模糊數據;
所述C可以包括:
C1、將所述第一合法報文序列中的第一個報文作為當前報文,將當前報文的第一個字段作為當前字段,將從所述第一合法報文序列中的第一個報文開始至當前報文為止的報文序列作為當前合法報文序列;
C2、判斷所述預先設置的需要進行模糊化的字段的類型中是否存在與當前字段的類型相同的類型,若不存在,繼續執行C3,若存在,繼續執行C4;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西門子(中國)有限公司,未經西門子(中國)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910143822.4/2.html,轉載請聲明來源鉆瓜專利網。





