本申請涉及測試,更具體的說,是涉及一種內(nèi)核驅動模糊測試樣本的確定方法及相關裝置。
背景技術:
1、模糊測試技術就是模擬用戶輸入的過程,其核心思想在短時間內(nèi)產(chǎn)生大量的隨機樣本輸入到目標程序中,以觸發(fā)內(nèi)存中可能存在的漏洞。隨機模糊測試技術的發(fā)展,領域內(nèi)技術人員發(fā)現(xiàn)過于隨機化的樣本會導致測試效率十分低下,因此如何優(yōu)化模糊測試的樣本,成為領域內(nèi)技術人員關注的重點。
技術實現(xiàn)思路
1、有鑒于此,本申請?zhí)峁┤缦录夹g方案:
2、一種內(nèi)核驅動模糊測試樣本的確定方法,包括:
3、獲得待測試內(nèi)核驅動程序的實時狀態(tài)信息,所述實時狀態(tài)信息能夠表征測試覆蓋數(shù)據(jù);
4、基于所述實時狀態(tài)信息以及預先確定的樣本生成和變異的約束模型生成新的待測樣本并加入待測樣本集;
5、基于所述實時狀態(tài)信息,采用多臂賭博機從所述待測樣本集中選擇出目標測試樣本,所述目標測試樣本為在所述待測樣本集中所有的待測樣本中能夠覆蓋尚未測試到的新的測試路徑的概率最大。
6、可選地,所述獲得待測試內(nèi)核驅動程序的實時狀態(tài)信息,包括:
7、基于ebfp的內(nèi)核調試技術獲得待測試內(nèi)核驅動程序的實時狀態(tài)信息。
8、可選地,所述基于ebfp的內(nèi)核調試技術獲得待測試內(nèi)核驅動程序的實時狀態(tài)信息,包括:
9、確定待測試內(nèi)核驅動程序對應的內(nèi)核函數(shù)的函數(shù)首地址以及所述內(nèi)核函數(shù)包括的各個基本塊的首地址偏移量,所述首地址偏移量表征基本塊的首地址相對于所述函數(shù)首地址的偏移量;
10、基于所述函數(shù)首地址和各個基本塊的所述首地址偏移量分別確定各個基本塊的插樁位置;
11、在所述各個插樁位置加入插樁代碼,所述代碼用于獲得所述插樁位置的運行數(shù)據(jù);
12、基于各個位置的運行數(shù)據(jù)確定所述待測試內(nèi)核驅動程序的實時狀態(tài)信息。
13、可選地,所述約束模型的生成包括:
14、對內(nèi)核驅動程序的接口參數(shù)進行分析,確定內(nèi)核驅動程序的目標參數(shù)以及所述目標參數(shù)的數(shù)據(jù)類型,所述數(shù)據(jù)類型包括結構體類型,所述目標參數(shù)包括具有關聯(lián)性的多個參數(shù);
15、基于多個目標參數(shù)之間的關聯(lián)性以及目標參數(shù)的數(shù)據(jù)類型確定模糊測試樣本生成和變異的約束模型。
16、可選地,所述目標參數(shù)包括第一參數(shù)、第二參數(shù)和第三參數(shù),所述第一參數(shù)為控制打開節(jié)點設備文件的函數(shù)返回的文件描述符,所述第二參數(shù)為內(nèi)核驅動程序對應的命令碼,所述第三參數(shù)為可選參數(shù),其數(shù)據(jù)類型與所述第二參數(shù)對應;
17、所述第一參數(shù)、所述第二參數(shù)和所述第三參數(shù)之間的關聯(lián)性包括:不同的節(jié)點設備分別對應一確定的第一參數(shù);不同的節(jié)點設備的驅動分別對應一確定的第二參數(shù)集合;不同的第二參數(shù)具有不同數(shù)據(jù)類型的第三參數(shù);
18、所述基于所述實時狀態(tài)信息以及預先確定的樣本生成和變異的約束模型生成新的待測樣本并加入待測樣本集,包括:
19、基于所述實時狀態(tài)信息確定需要測試的內(nèi)核驅動程序對應的節(jié)點設備;
20、基于所述節(jié)點設備確定目標第一參數(shù);
21、基于所述第一參數(shù)確定對應的目標第二參數(shù)集合;
22、基于所述第二參數(shù)集合確定目標第三參數(shù)及其數(shù)據(jù)類型;
23、基于所述目標第一參數(shù)、所述目標第二參數(shù)集合以及所述目標第三參數(shù)及其數(shù)據(jù)類型生成新的待測樣本并加入待測樣本集。
24、可選地,所述基于所述實時狀態(tài)信息以及預先確定的樣本生成和變異的約束模型生成新的待測樣本并加入待測樣本集,包括:
25、基于所述實時狀態(tài)信息確定尚未檢測到的內(nèi)核函數(shù)和/或基本塊,所述內(nèi)核函數(shù)和所述基本塊屬于所述待測試內(nèi)核驅動程序;
26、基于所述尚未檢測到的內(nèi)核函數(shù)和/或基本塊以及樣本生成和變異的約束模型生成新的待測樣本并加入待測樣本集,所述約束模型使得生成的待測樣本在被待測試內(nèi)核驅動程序執(zhí)行時能夠覆蓋到所述內(nèi)核函數(shù)和/或基本塊。
27、可選地,基于所述實時狀態(tài)信息,采用多臂賭博機從所述待測樣本集中選擇出目標測試樣本,包括:
28、基于所述實時狀態(tài)信息,采用多臂賭博機的種子選擇算法為所述待測樣本集中沒有分值的待測樣本打分;
29、將所述待測樣本集中分值最高的待測樣本確定為目標測試樣本。
30、可選地,所述多臂賭博機的獎勵為選擇的測試樣本觸發(fā)新的測試路徑,所述新的測試路徑包括之前所有的測試路徑不包括的內(nèi)核函數(shù)和/或基本塊;
31、所述種子選擇算法使得待測樣本集中覆蓋新的測試路徑的待測樣本被選擇的概率更大。
32、本申請還公開了一種內(nèi)核驅動模糊測試樣本的確定裝置,包括:
33、狀態(tài)獲得模塊,用于獲得待測試內(nèi)核驅動程序的實時狀態(tài)信息,所述實時狀態(tài)信息能夠表征測試覆蓋數(shù)據(jù);
34、樣本生成模塊,用于基于所述實時狀態(tài)信息以及預先確定的樣本生成和變異的約束模型生成新的待測樣本并加入待測樣本集;
35、樣本選擇模塊,用于基于所述實時狀態(tài)信息,采用多臂賭博機從所述待測樣本集中選擇出目標測試樣本,所述目標測試樣本為在所述待測樣本集中所有的待測樣本中能夠覆蓋尚未測試到的新的測試路徑的概率最大。
36、進一步地,本申請公開了一種內(nèi)核驅動模糊測試系統(tǒng),包括:
37、樣本生成模塊,用于獲得待測試內(nèi)核驅動程序的實時狀態(tài)信息,所述實時狀態(tài)信息能夠表征測試覆蓋數(shù)據(jù);基于所述實時狀態(tài)信息以及預先確定的樣本生成和變異的約束模型生成新的待測樣本并加入待測樣本集;基于所述實時狀態(tài)信息,采用多臂賭博機從所述待測樣本集中選擇出目標測試樣本,所述目標測試樣本為在所述待測樣本集中所有的待測樣本中能夠覆蓋尚未測試到的新的測試路徑的概率最大;
38、運行測試模塊,用于將所述測試樣本輸入所述待測試內(nèi)核驅動程序并運行。
39、經(jīng)由上述的技術方案可知,本申請實施例公開了一種內(nèi)核驅動模糊測試樣本的生成方法及相關裝置,方法包括:獲得待測試內(nèi)核驅動程序的實時狀態(tài)信息,所述實時狀態(tài)信息能夠表征測試覆蓋數(shù)據(jù);基于所述實時狀態(tài)信息以及預先確定的樣本生成和變異的約束模型生成新的待測樣本并加入待測樣本集;基于所述實時狀態(tài)信息,采用多臂賭博機從所述待測樣本集中選擇出目標測試樣本,所述目標測試樣本為在所述待測樣本集中所有的待測樣本中能夠覆蓋尚未測試到的新的測試路徑的概率最大。上述方案將多臂賭博機和模糊測試結合使用,實現(xiàn)中通過獲得的待測試內(nèi)核驅動程序的實時狀態(tài)信息定向的指導新的待測樣本測試路徑的生成,使得新生成的待測樣本大概率能夠覆蓋到之前尚未覆蓋到的測試路徑,從而整體上提升模糊測試效率。
1.一種內(nèi)核驅動模糊測試樣本的確定方法,其特征在于,包括:
2.根據(jù)權利要求1所述的內(nèi)核驅動模糊測試樣本的確定方法,其特征在于,所述獲得待測試內(nèi)核驅動程序的實時狀態(tài)信息,包括:
3.根據(jù)權利要求2所述的內(nèi)核驅動模糊測試樣本的確定方法,其特征在于,所述基于ebfp的內(nèi)核調試技術獲得待測試內(nèi)核驅動程序的實時狀態(tài)信息,包括:
4.根據(jù)權利要求1所述的內(nèi)核驅動模糊測試樣本的確定方法,其特征在于,所述約束模型的生成包括:
5.根據(jù)權利要求4所述的內(nèi)核驅動模糊測試樣本的確定方法,其特征在于,所述目標參數(shù)包括第一參數(shù)、第二參數(shù)和第三參數(shù),所述第一參數(shù)為控制打開節(jié)點設備文件的函數(shù)返回的文件描述符,所述第二參數(shù)為內(nèi)核驅動程序對應的命令碼,所述第三參數(shù)為可選參數(shù),其數(shù)據(jù)類型與所述第二參數(shù)對應;
6.根據(jù)權利要求1所述的內(nèi)核驅動模糊測試樣本的確定方法,其特征在于,所述基于所述實時狀態(tài)信息以及預先確定的樣本生成和變異的約束模型生成新的待測樣本并加入待測樣本集,包括:
7.根據(jù)權利要求1所述的內(nèi)核驅動模糊測試樣本的確定方法,其特征在于,基于所述實時狀態(tài)信息,采用多臂賭博機從所述待測樣本集中選擇出目標測試樣本,包括:
8.根據(jù)權利要求7所述的內(nèi)核驅動模糊測試樣本的確定方法,其特征在于,所述多臂賭博機的獎勵為選擇的測試樣本觸發(fā)新的測試路徑,所述新的測試路徑包括之前所有的測試路徑不包括的內(nèi)核函數(shù)和/或基本塊;
9.一種內(nèi)核驅動模糊測試樣本的確定裝置,其特征在于,包括:
10.一種內(nèi)核驅動模糊測試系統(tǒng),其特征在于,包括: