国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      安全漏洞檢測方法及裝置的制造方法_3

      文檔序號:9375454閱讀:來源:國知局
      例完全覆蓋待測試程序的程序邏輯,已經(jīng)跑完所有生成 的測試用例,極大的提升自動化挖掘漏洞時測試用例的覆蓋程度,大大的提升發(fā)現(xiàn)漏洞的 數(shù)量。
      [0072] 如圖5所示,該實施例可以通過如下步驟實現(xiàn):
      [0073] 步驟S501 :獲取第一測試用例。
      [0074] 具體地,在開始進(jìn)行自動化漏洞挖掘前,可以將固定的基準(zhǔn)測試用例,作為后續(xù)第 一次執(zhí)行、監(jiān)控、特征匹配和約束求解的輸入來源。在該實施例中,第一次執(zhí)行測試用例時, 可以將預(yù)設(shè)好的測試用例作為第一測試用例。
      [0075] 步驟S502 :在待測試程序中執(zhí)行第一測試用例。
      [0076] 步驟S503 :記錄待測試程序在執(zhí)行第一測試用例的過程中產(chǎn)生的測試信息。
      [0077] 其中,該步驟S503的實現(xiàn)方法與步驟S402和步驟S202的實現(xiàn)方法一致,在此不 再贅述。
      [0078] 步驟S504 :從測試信息的測試指令中提取待測試程序的一個或多個約束表達(dá)式。
      [0079] 其中,該步驟S504的實現(xiàn)方法與步驟S404的實現(xiàn)方法一致,在此不再贅述。
      [0080] 步驟S505 :檢測預(yù)設(shè)約束數(shù)據(jù)集合中是否存在一個或多個約束表達(dá)式。
      [0081] 其中,在預(yù)設(shè)約束數(shù)據(jù)集合中不存在一個或多個約束表達(dá)式中的任意一個約束表 達(dá)式的情況下,執(zhí)行步驟S506 ;在預(yù)設(shè)約束數(shù)據(jù)集合中存在一個或多個約束表達(dá)式中的全 部約束表達(dá)式的情況下,執(zhí)行步驟S507。
      [0082] 具體地,在每一個第一測試用例在待測試程序中完整執(zhí)行完畢之后,均可以在每 個約束時產(chǎn)生一條約束表達(dá)式,從而可以得到一個約束表達(dá)式的集合。檢測該約束表達(dá)式 的集合中的所有約束表達(dá)式是否均存在于預(yù)設(shè)約束數(shù)據(jù)集合,如果該約束表達(dá)式的集合中 的任意一個約束表達(dá)式均存在于預(yù)設(shè)約束數(shù)據(jù)集合,則確定生成的測試用例已經(jīng)覆蓋待測 試程序的所有執(zhí)行邏輯,不再生成新的測試用例,結(jié)束該此安全漏洞檢測的流程;如果該約 束表達(dá)式的集合中的任意一個約束表達(dá)式不存在于預(yù)設(shè)約束數(shù)據(jù)集合,則確定生成的測試 用例沒有完全覆蓋待測試程序的所有執(zhí)行邏輯,生成滿足不存在于預(yù)設(shè)約束數(shù)據(jù)集合的約 束表達(dá)式的新的測試用例(即第二測試用例),繼續(xù)執(zhí)行該第二測試用例,直至得到的約束 表達(dá)式均存在于預(yù)設(shè)約束數(shù)據(jù)集合。
      [0083] 步驟S506 :生成滿足不存在于預(yù)設(shè)約束數(shù)據(jù)集合的約束表達(dá)式的第二測試用例。
      [0084] 具體地,在執(zhí)行步驟S506的同時,可以將該不存在于預(yù)設(shè)約束數(shù)據(jù)集合的約束表 達(dá)式保存入預(yù)設(shè)約束數(shù)據(jù)集合。
      [0085] 在生成第二測試用例之后,將該新生成的第二測試用例作為下一次循環(huán)的第一測 試用例,返回執(zhí)行步驟S502,直至得到的約束表達(dá)式均存在于預(yù)設(shè)約束數(shù)據(jù)集合。
      [0086] 其中,第二生成子模塊413生成滿足不存在于預(yù)設(shè)約束數(shù)據(jù)集合中的約束表達(dá)式 的第二測試用例時可以使用與上述相同的生成方法,即生成取值滿足不存在于預(yù)設(shè)約束數(shù) 據(jù)集合中的約束表達(dá)式的邏輯運(yùn)算關(guān)系的第二測試用例。
      [0087] 通過上述實施例,在這個循環(huán)不停走下去的過程中,測試用例能夠覆蓋待測試程 序中趨近于100 %的代碼邏輯,并能夠挖掘待測試程序中的所有漏洞。
      [0088] 步驟S507 :結(jié)束安全漏洞檢測流程。
      [0089] 如圖6所示的一種可選的上述實施例中,測試信息還可以包括:待測試程序在執(zhí) 行第一測試用例的過程中調(diào)用的應(yīng)用程序編程接口 API的信息,如圖6所示,該實施例可以 包括如下步驟:
      [0090] 步驟S601 :記錄在待測試程序執(zhí)行第一測試用例的過程中產(chǎn)生的測試信息。
      [0091] 步驟S602 :獲取測試信息中待測試程序在執(zhí)行第一測試用例的過程中調(diào)用的應(yīng) 用程序編程接口 API的信息。
      [0092] 其中,調(diào)用的應(yīng)用程序編程接口 API的信息可以包括API的名稱、調(diào)用API的時間 等信息。
      [0093] 步驟S603 :將待測試程序在執(zhí)行第一測試用例的過程中調(diào)用的API與預(yù)設(shè)的危險 API進(jìn)行匹配處理,其中,預(yù)設(shè)的危險API為預(yù)先獲取的用于觸發(fā)安全漏洞的API。
      [0094] 其中,該實施例中進(jìn)行匹配處理時,可以通過待測試程序調(diào)用的API的名稱與預(yù) 設(shè)的危險API的名稱進(jìn)行匹配處理,如果調(diào)用的API中有名稱與預(yù)設(shè)的危險API的名稱 一致的API,則確定匹配到待測試程序調(diào)用的API中存在與預(yù)設(shè)的危險API相匹配的第一 API。
      [0095] 具體地,上述實施例中,調(diào)用預(yù)設(shè)的危險API即可觸發(fā)安全漏洞。
      [0096] 步驟S604 :在待測試程序調(diào)用的API中存在與預(yù)設(shè)的危險API相匹配的第一 API 的情況下,確認(rèn)待測試程序中存在安全漏洞。
      [0097] 其中,在待測試程序調(diào)用的API中不存在與預(yù)設(shè)的危險API相匹配的第一 API的 情況下,確認(rèn)待測試程序中不存在安全漏洞。
      [0098] 步驟S605 :獲取待測試程序調(diào)用第一 API的調(diào)用信息,生成漏洞報告。
      [0099] 具體地,可以從測試信息中提取與調(diào)用該第一 API相關(guān)的調(diào)用信息,使用該調(diào)用 信息生成漏洞報告。
      [0100] 需要說明的是,本發(fā)明上述實施例中確定待測試程序中是否存在安全漏洞的過程 與依據(jù)執(zhí)行邏輯生成第二測試用例的過程可以是并行處理的。
      [0101] 下面結(jié)合附圖7,以在同一客戶端實現(xiàn)上述方法的角度詳細(xì)介紹本發(fā)明,如圖7所 示,可以通過如下步驟實現(xiàn)本發(fā)明的上述實施例:
      [0102] 步驟S701 :獲取當(dāng)前測試用例。
      [0103] 具體地,在開始進(jìn)行自動化漏洞挖掘前,可以將固定的基準(zhǔn)測試用例,作為后續(xù)第 一次執(zhí)行、監(jiān)控、特征匹配和約束求解的輸入來源。
      [0104] 步驟S702 :在待測試程序中執(zhí)行當(dāng)前測試用例。
      [0105] 步驟S703 :記錄待測試程序在執(zhí)行當(dāng)前測試用例的過程中產(chǎn)生的測試信息。
      [0106] 其中,上述步驟S701至步驟S703的實現(xiàn)方法與步驟S501至步驟S503的實現(xiàn)方 法相同,在此不再贅述。
      [0107] 步驟S704 :獲取測試信息中待測試程序在執(zhí)行當(dāng)前測試用例的過程中調(diào)用的應(yīng) 用程序編程接口 API的信息。
      [0108] 其中,調(diào)用的應(yīng)用程序編程接口 API的信息可以包括API的名稱、調(diào)用API的時間 等信息。
      [0109] 步驟S705 :將待測試程序在執(zhí)行當(dāng)前測試用例的過程中調(diào)用的API與預(yù)設(shè)的危險 API進(jìn)行匹配處理,其中,預(yù)設(shè)的危險API為預(yù)先獲取的用于觸發(fā)安全漏洞的API。
      [0110] 步驟S706 :在待測試程序調(diào)用的API中存在與預(yù)設(shè)的危險API相匹配的第一 API 的情況下,確認(rèn)待測試程序中存在安全漏洞。
      [0111] 其中,在待測試程序調(diào)用的API中不存在與預(yù)設(shè)的危險API相匹配的第一 API的 情況下,確認(rèn)待測試程序中不存在安全漏洞。
      [0112] 步驟S707 :獲取待測試程序調(diào)用第一 API的調(diào)用信息,生成漏洞報告。
      [0113] 其中,上述步驟S704至步驟S707的實現(xiàn)方法與步驟S602至步驟S605的實現(xiàn)方 法相同,在此不再贅述。
      [0114] 步驟S708 :從測試信息的測試指令中提取待測試程序的一個或多個約束表達(dá)式。
      [0115] 步驟S709 :檢測預(yù)設(shè)約束數(shù)據(jù)集合中是否存在一個或多個約束表達(dá)式。
      [0116] 其中,在預(yù)設(shè)約束數(shù)據(jù)集合中不存在一個或多個約束表達(dá)式中的任意一個約束表 達(dá)式的情況下,執(zhí)行步驟S710 ;在預(yù)設(shè)約束數(shù)據(jù)集合中存在一個或多個約束表達(dá)式中的全 部約束表達(dá)式的情況下,執(zhí)行步驟S711。
      [0117] 步驟S710:生成滿足不存在于預(yù)設(shè)約束數(shù)據(jù)集合的約束表達(dá)式的下一個的測試 用例。
      [0118] 具體地,在執(zhí)行步驟S710的同時,可以將該不存在于預(yù)設(shè)約束數(shù)據(jù)集合的約束表 達(dá)式保存入預(yù)設(shè)約束數(shù)據(jù)集合。
      [0119] 在生成第二測試用例之后,將該新生成的下一個的測試用例作為下一次循環(huán)的當(dāng) 前測試用例,返回執(zhí)行步驟S702,直至得到的約束表達(dá)式均存在于預(yù)設(shè)約束數(shù)據(jù)集合。
      [0120] 通過上述實施例,在這個循環(huán)不停走下去的過程中,測試用例能夠覆蓋待測試程 序中趨近于100 %的代碼邏輯,并能夠挖掘待測試程序中的所有漏洞。
      [0121] 步驟S711 :結(jié)束安全漏洞檢測流程。
      [0122] 采用本發(fā)明實施例,通過獲取待測試產(chǎn)品的代碼邏輯,匯總成一系列的約束集合, 然后通過數(shù)學(xué)中集合的理論,對這個集合進(jìn)行約束求解,得到滿足產(chǎn)品每個邏輯時約束的 解,并將這些約束的解還原成影響產(chǎn)品代碼邏輯的新的測試用例,在實際應(yīng)用中,代碼覆蓋 率可達(dá)100 %,較傳統(tǒng)黑盒漏洞挖掘模塊提升超過9倍,并且發(fā)現(xiàn)數(shù)量較傳統(tǒng)黑盒漏洞挖掘 模塊提升近3倍,大大提高了安全漏洞的檢測量,有效的減少了待測試安全漏洞的數(shù)量。
      [0123] 上述的約束求解方法,僅是通過執(zhí)行邏輯獲取新的測試用例的一種可用的實現(xiàn)方 法,沒有約束求解系統(tǒng),也通過可以進(jìn)行自動化的漏洞挖掘,不過合理的約束求解方案效果 要好很多。
      [0124] 需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列 的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為 依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知 悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明 所必須的。
      [0125] 通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實施 例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多 情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有 技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲 介質(zhì)(如R0M/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機(jī),計 算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。
      [0126] 實施例2
      [0127] 根據(jù)本發(fā)明實施例,還提供了一種安全漏洞檢測裝置,該裝置可以通過在實施例 中涉及的方法來實現(xiàn),下面對本申請的實施過程進(jìn)行
      當(dāng)前第3頁1 2 3 4 5 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1