两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于程序分析的JAVA模糊測試方法與流程

文檔序號:40639654發(fā)布日期:2025-01-10 18:45閱讀:7來源:國知局
一種基于程序分析的JAVA模糊測試方法與流程

本發(fā)明實施例涉及網(wǎng)絡信息安全,特別是涉及一種基于程序分析的java模糊測試方法。


背景技術(shù):

1、現(xiàn)有針對java的模糊測試方法在系統(tǒng)級測試時,大部分代碼的運行覆蓋率偏低,且無法在較短時間內(nèi)通過模糊測試方式提高。存在測試時間充足的情況下,對被測目標測試覆蓋率偏低的問題。

2、公開號為cn118427830a、名稱為“基于模糊測試的java反序列化漏洞挖掘方法、設備及介質(zhì)”的發(fā)明專利,公開了基于模糊測試的java反序列化漏洞挖掘方法,所述方法包括:通過雙向追蹤污點分析技術(shù),分別將java反序列化入口函數(shù)與危險函數(shù)作為起點進行搜索,查找潛在漏洞調(diào)用鏈,并獲取對應執(zhí)行路徑中的函數(shù)信息;基于trustrank算法的函數(shù)權(quán)值分配策略,確定對應的函數(shù)類型,并計算每種函數(shù)類型對應的trustrank權(quán)重系數(shù),以按照trustrank權(quán)重系數(shù)由高到低的順序?qū)瘮?shù)進行排序;所述函數(shù)類型包括危險函數(shù)、路徑函數(shù)、可疑函數(shù)及分支函數(shù);基于所述函數(shù)調(diào)用信息以及對應的trustrank權(quán)重系數(shù),并通過灰盒模糊測試,對所述漏洞調(diào)用鏈進行模糊測試,以確定所述漏洞調(diào)用鏈對應的有效性,完成對java反序列化漏洞的挖掘。然而該方法較為復雜,測試效率不高。

3、因此,有必要提供一種基于程序分析的java模糊測試方法,以解決上述問題。


技術(shù)實現(xiàn)思路

1、本發(fā)明提供一種基于程序分析的java模糊測試方法,通過程序分析可以獲得的接口參數(shù)以及接口調(diào)用順序的測試用例數(shù)據(jù),可以大幅增加模糊測試較難探索到的業(yè)務邏輯,從而增加被測對象的覆蓋率,基于覆蓋率的提升,模糊測試探索到的路徑增多,又可以促使更多的未逾期缺陷被發(fā)現(xiàn)。

2、本發(fā)明實施例提供一種基于程序分析的java模糊測試方法,包括:

3、獲取被測程序的二進制文件包;

4、對所述二進制文件包進行ast解析;

5、解析所述二進制文件包的語法樹的各層節(jié)點,獲得所有類、所有方法下的所有條件分支;

6、通過所述各層節(jié)點調(diào)用的反向推導,解析所述二進制文件包各分支判斷參數(shù)的調(diào)用鏈路關(guān)系;

7、判斷所述調(diào)用鏈路關(guān)系是單接口調(diào)用或跨接口調(diào)用。

8、優(yōu)選地,當所述調(diào)用鏈路關(guān)系是單接口調(diào)用時,對所述單接口進行魔數(shù)解析,判斷所述魔數(shù)是常量或配置文件字段;

9、當所述魔數(shù)是常量字段時,將常量映射至接口變量;

10、當所述魔數(shù)是配置文件字段時,將對應變量映射至所述配置文件字段。

11、優(yōu)選地,還包括:

12、生成單接口的測試數(shù)據(jù)與變更指定配置文件字段的調(diào)用方式。

13、優(yōu)選地,還包括:

14、當所述調(diào)用鏈路關(guān)系是跨接口調(diào)用時,對接口關(guān)系進行解析;

15、通過二進制反編譯方法所述二進制文件包反編譯出程序源代碼;

16、對所述源代碼中包含的java代碼文件以及各類xml資源包文件進行解析。

17、優(yōu)選地,判斷所述源代碼中是否有sql操作;

18、當所述源代碼中有sql操作時,則通過解析將對所述sql操作的方式、字段映射至接口,將解析出來的緩存操作與接口的關(guān)系存入接口關(guān)系分析池中;

19、當所述源代碼中沒有sql操作時,則判斷所述源代碼中是否有緩存操作。

20、優(yōu)選地,所述判斷所述源代碼中是否有緩存操作包括:

21、當所述源代碼中有緩存操作時,則通過解析將對緩存操作的方式、字段映射至接口,將解析出來的緩存操作與接口的關(guān)系存入所述接口關(guān)系分析池中;

22、當所述源代碼中沒有緩存操作時,則判斷所述源代碼中是否有文件操作。

23、優(yōu)選地,所述判斷所述源代碼中是否有文件操作包括:

24、當所述源代碼中有文件操作時,則通過解析將對文件操作的方式、字段映射至接口,將解析出來的文件操作與接口的關(guān)系存入所述接口關(guān)系分析池中;

25、當所述源代碼中沒有文件操作時,則判斷所述源代碼中是否有消息操作。

26、優(yōu)選地,所述判斷所述源代碼中是否有消息操作包括:

27、當所述源代碼中有消息操作時,則通過解析將對消息操作的方式、字段映射至接口,將解析出來的消息操作與接口的關(guān)系存入所述接口關(guān)系分析池中;

28、當所述源代碼中沒有消息操作時,則對所述接口關(guān)系分析池中保存的接口關(guān)系數(shù)據(jù)進行動態(tài)運行探索。

29、優(yōu)選地,還包括對所述接口關(guān)系分析池中保存的接口關(guān)系數(shù)據(jù)進行動態(tài)運行探索;

30、使用路徑探索算法對接口調(diào)用關(guān)系的所有組合進行廣度優(yōu)先的探索生成;

31、將生成的接口調(diào)用關(guān)系、接口測試數(shù)據(jù)與配置步驟進行運行測試并收集運行覆蓋率。

32、優(yōu)選地,還包括以下步驟:

33、如果該接口調(diào)用關(guān)系、接口測試數(shù)據(jù)與配置步驟有產(chǎn)生新的路徑,則為有效的測試用例;

34、如果未產(chǎn)生新的路徑,則繼續(xù)通過算法生成新的測試用例進行測試,直至對接口關(guān)系分析池完成探索;

35、輸出所有有效的測試用例。

36、與現(xiàn)有技術(shù)相比,本發(fā)明實施例的技術(shù)方案具有以下有益效果:

37、本發(fā)明實施例提供的一種基于程序分析的java模糊測試方法,包括:獲取被測程序的二進制文件包;對所述二進制文件包進行ast解析;解析所述二進制文件包的語法樹的各層節(jié)點,獲得所有類、所有方法下的所有條件分支;通過所述各層節(jié)點調(diào)用的反向推導,解析所述二進制文件包各分支判斷參數(shù)的調(diào)用鏈路關(guān)系;判斷所述調(diào)用鏈路關(guān)系是單接口調(diào)用或跨接口調(diào)用,通過程序分析可以獲得的接口參數(shù)以及接口調(diào)用順序的測試用例數(shù)據(jù),可以大幅增加模糊測試較難探索到的業(yè)務邏輯,從而增加被測對象的覆蓋率,基于覆蓋率的提升,模糊測試探索到的路徑增多,又可以促使更多的未逾期缺陷被發(fā)現(xiàn)。



技術(shù)特征:

1.一種基于程序分析的java模糊測試方法,其特征在于,包括:

2.根據(jù)權(quán)利要求1所述的基于程序分析的java模糊測試方法,其特征在于,當所述調(diào)用鏈路關(guān)系是單接口調(diào)用時,對所述單接口進行魔數(shù)解析,判斷所述魔數(shù)是常量或配置文件字段;

3.根據(jù)權(quán)利要求2所述的基于程序分析的java模糊測試方法,其特征在于,還包括:

4.根據(jù)權(quán)利要求3所述的基于程序分析的java模糊測試方法,其特征在于,還包括:

5.根據(jù)權(quán)利要求4所述的基于程序分析的java模糊測試方法,其特征在于,判斷所述源代碼中是否有sql操作;

6.根據(jù)權(quán)利要求5所述的基于程序分析的java模糊測試方法,其特征在于,所述判斷所述源代碼中是否有緩存操作包括:

7.根據(jù)權(quán)利要求5所述的基于程序分析的java模糊測試方法,其特征在于,所述判斷所述源代碼中是否有文件操作包括:

8.根據(jù)權(quán)利要求7所述的基于程序分析的java模糊測試方法,其特征在于,所述判斷所述源代碼中是否有消息操作包括:

9.根據(jù)權(quán)利要求5-8任一項所述的基于程序分析的java模糊測試方法,其特征在于,還包括對所述接口關(guān)系分析池中保存的接口關(guān)系數(shù)據(jù)進行動態(tài)運行探索;

10.根據(jù)權(quán)利要求9所述的基于程序分析的java模糊測試方法,其特征在于,還包括以下步驟:


技術(shù)總結(jié)
本發(fā)明提供一種基于程序分析的JAVA模糊測試方法,包括:獲取被測程序的二進制文件包;對所述二進制文件包進行AST解析;解析所述二進制文件包的語法樹的各層節(jié)點,獲得所有類、所有方法下的所有條件分支;通過所述各層節(jié)點調(diào)用的反向推導,解析所述二進制文件包各分支判斷參數(shù)的調(diào)用鏈路關(guān)系;判斷所述調(diào)用鏈路關(guān)系是單接口調(diào)用或跨接口調(diào)用。本發(fā)明提供的基于程序分析的JAVA模糊測試方法,通過程序分析可以獲得的接口參數(shù)以及接口調(diào)用順序的測試用例數(shù)據(jù),可以大幅增加模糊測試較難探索到的業(yè)務邏輯,從而增加被測對象的覆蓋率,基于覆蓋率的提升,模糊測試探索到的路徑增多,又可以促使更多的未逾期缺陷被發(fā)現(xiàn)。

技術(shù)研發(fā)人員:強愷旻,任杰,汪毅,戚鵬博
受保護的技術(shù)使用者:上海安般信息科技有限公司
技術(shù)研發(fā)日:
技術(shù)公布日:2025/1/9
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
崇仁县| 交口县| 乐清市| 随州市| 积石山| 娱乐| 海林市| 咸丰县| 昌都县| 元氏县| 扬中市| 德化县| 南城县| 泰宁县| 霍山县| 平原县| 淮滨县| 九江市| 从江县| 河源市| 新宁县| 潼南县| 义马市| 盱眙县| 容城县| 留坝县| 鄢陵县| 巢湖市| 尉犁县| 鲜城| 屏南县| 泰兴市| 三江| 康定县| 宁陵县| 江源县| 靖边县| 吉首市| 鄢陵县| 文山县| 济宁市|