計算機 可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn) 品的形式。
[0118] 本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程 圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一 流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計算 機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理 器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生 用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能 的裝置。
[0119] 這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特 定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指 令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或 多個方框中指定的功能。
[0120] 這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計 算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或 其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖 一個方框或多個方框中指定的功能的步驟。
[0121] 盡管已描述了本發(fā)明的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造 性概念,則可對這些實施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu) 選實施例以及落入本發(fā)明范圍的所有變更和修改。
[0122] 顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明實施例進行各種改動和變型而不脫離本發(fā) 明實施例的精神和范圍。這樣,倘若本發(fā)明實施例的這些修改和變型屬于本發(fā)明權(quán)利要求 及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【主權(quán)項】
1. 一種檢測SQL注入漏洞的方法,其特征在于,包括: 確定待測目標,并根據(jù)選定的延時矩陣中包含的第一延時指示和第二延時指示,分別 生成第一 SQL攻擊向量和第二SQL攻擊向量; 針對待測目標,依次發(fā)送第一 SQL攻擊向量和第二SQL攻擊向量,并記錄響應(yīng)矩陣,所 述響應(yīng)矩陣中分別記錄有對應(yīng)第一 SQL攻擊向量的第一響應(yīng)時間,以及對應(yīng)第二SQL攻擊 向量的第二響應(yīng)時間; 計算所述延時矩陣和所述響應(yīng)矩陣的相似度,確定所述相似度達到設(shè)定閾值時,判定 存在時間型SQL注入漏洞。2. 如權(quán)利要求1所述的方法,其特征在于,所述第一延時指示和第二延時指示中,直接 記錄了需要執(zhí)行的延時時長,或者,記錄了表示特征表達式重復(fù)執(zhí)行次數(shù)的影響因子,以間 接指示延時時長。3. 如權(quán)利要求1所述的方法,其特征在于,針對待測目標,依次發(fā)送第一 SQL攻擊向量 和第二SQL攻擊向量,包括: 基于所述待測目標表征的目標鏈接以及待檢測對象,以及基于所述第一 SQL攻擊向量 和第二SQL攻擊向量,分別生成第一攻擊請求和第二攻擊請求; 依次向所述待測目標發(fā)送所述第一攻擊請求和第二攻擊請求,其中,在接收到所述第 一攻擊請求的響應(yīng)時,再發(fā)送所述第二攻擊請求。4. 如權(quán)利要求1、2或3所述的方法,其特征在于,記錄所述響應(yīng)矩陣之后,在計算所述 延時矩陣和所述響應(yīng)矩陣的相似度之前,進一步包括: 將所述第二響應(yīng)時間與所述第二延時指示表征的延時時長進行比較,若確定所述第二 響應(yīng)時間為所述第二延時指示表征的延時時長的整數(shù)倍,則判定能夠執(zhí)行相似度判斷;其 中,第二延時指示對應(yīng)的延時時長大于第一延時指示對應(yīng)的延時時長。5. 如權(quán)利要求4所述的方法,其特征在于,進一步包括: 若確定所述第二響應(yīng)時間不為所述第二延時指示表征的延時時長的整數(shù)倍,則判定不 存在時間型SQL注入漏洞。6. 如權(quán)利要求1、2或3所述的方法,其特征在于,計算所述延時矩陣和所述響應(yīng)矩陣的 相似度,包括: 采用以下公式計算所述延時矩陣和響應(yīng)矩陣的相似度: 、 / v / \ *S \ / 其中,t。表示第一延時指示,t i表示第二延時指示,r。表示對應(yīng)第一 SQL攻擊向量記錄 的第一響應(yīng)時間,ri表示對應(yīng)第二SQL攻擊向量記錄的第二響應(yīng)時間。7. -種檢測SQL注入漏洞的裝置,其特征在于,包括: 生成單元,用于確定待測目標,并根據(jù)選定的延時矩陣中包含的第一延時指示和第二 延時指示,分別生成第一 SQL攻擊向量和第二SQL攻擊向量 通信單元,用于針對待測目標,依次發(fā)送第一 SQL攻擊向量和第二SQL攻擊向量,并記 錄響應(yīng)矩陣,所述響應(yīng)矩陣中分別記錄有對應(yīng)第一 SQL攻擊向量的第一響應(yīng)時間,以及對 應(yīng)第二SQL攻擊向量的第二響應(yīng)時間; 判定單元,用于計算所述延時矩陣和所述響應(yīng)矩陣的相似度,確定所述相似度達到設(shè) 定閾值時,判定存在時間型SQL注入漏洞。8. 如權(quán)利要求7所述的裝置,其特征在于,所述生成單元選定的所述第一延時指示和 第二延時指示中,直接記錄了需要執(zhí)行的延時時長,或者,記錄了表示特征表達式重復(fù)執(zhí)行 次數(shù)的影響因子,以間接指示延時時長。9. 如權(quán)利要求7所述的裝置,其特征在于,針對待測目標,依次發(fā)送第一 SQL攻擊向量 和第二SQL攻擊向量時,所述通信單元用于: 基于所述待測目標表征的目標鏈接以及待檢測對象,以及基于所述第一 SQL攻擊向量 和第二SQL攻擊向量,分別生成第一攻擊請求和第二攻擊請求; 依次向所待測目標發(fā)送所述第一攻擊請求和第二攻擊請求,其中,在接收到所述第一 攻擊請求的響應(yīng)時,再發(fā)送所述第二攻擊請求。10. 如權(quán)利要求7、8或9所述的裝置,其特征在于,記錄所述響應(yīng)矩陣之后,在計算所述 延時矩陣和所述響應(yīng)矩陣的相似度之前,所述判定單元進一步用于: 將所述第二響應(yīng)時間與所述第二延時指示表征的延時時長進行比較,若確定所述第二 響應(yīng)時間為所述第二延時指示表征的延時時長的整數(shù)倍,則判定能夠執(zhí)行相似度判斷;其 中,第二延時指示對應(yīng)的延時時長大于第一延時指示對應(yīng)的延時時長。11. 如權(quán)利要求10所述的裝置,其特征在于,所述判定單元進一步用于: 若確定所述第二響應(yīng)時間不為所述第二延時指示表征的延時時長的整數(shù)倍,則判定不 存在時間型SQL注入漏洞。12. 如權(quán)利要求7、8或9所述的裝置,其特征在于,計算所述延時矩陣和所述響應(yīng)矩陣 的相似度時,所述判定單元用于: 采用以下公式計算所述延時矩陣和響應(yīng)矩陣的相似度:其中,t。表示第一延時指示,t i表示第二延時指示,r。表示對應(yīng)第一 SQL攻擊向量記錄 的第一響應(yīng)時間,ri表示對應(yīng)第二SQL攻擊向量記錄的第二響應(yīng)時間。
【專利摘要】本發(fā)明公開了一種檢測SQL注入漏洞的方法及裝置,用于提高漏洞的檢測準確率,以及降低檢測時web應(yīng)用漏洞掃描系統(tǒng)的運行負荷。該方法為:根據(jù)實際的響應(yīng)時間和攻擊向量中期望的延時時間所計算出的相似度進行漏洞存在與否的判定。由于在相近時刻內(nèi)響應(yīng)時間受到的網(wǎng)絡(luò)影響基本一致,在計算期望的延時時間和實際的響應(yīng)時間的相似度時,相近的變化幅度不會對相似度的計算結(jié)果造成決定性的影響,所以不會影響漏洞存在判定的準確性。因此,可以保證在不同的網(wǎng)絡(luò)情況及不同的目標環(huán)境下,程序能夠快速準確的檢測出基于時間的SQL注入漏洞,同時,也有效降低了判定SQL注入漏洞給web應(yīng)用漏洞掃描系統(tǒng)帶來的運行負荷。
【IPC分類】H04L29/06, H04L29/08
【公開號】CN105072095
【申請?zhí)枴緾N201510428942
【發(fā)明人】田杰, 李菲, 鄧永凱
【申請人】北京神州綠盟信息安全科技股份有限公司, 北京神州綠盟科技有限公司
【公開日】2015年11月18日
【申請日】2015年7月20日