999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于攻擊反饋模型的SQL注入漏洞滲透測試方法

2023-07-07 06:57:38朱靜雯
計算機應用與軟件 2023年6期
關鍵詞:頁面分析檢測

劉 磊 許 靜* 朱靜雯 陳 亮 李 潔

1(南開大學人工智能學院 天津 300350) 2(南開大學軟件學院 天津 300350) 3(國網天津市電力公司電力科學研究院 天津 300384)

0 引 言

SQL注入漏洞(SQLIV:SQL Injection Vulnerability)多年以來被列為危害最嚴重的Web安全漏洞之一[1],它可能會導致諸如信息泄露或認證繞過[2]等多種嚴重的Web安全問題。滲透測試由于其高效、易用等特點,已成為最為重要的SQLIV測試技術之一。它是一種黑盒動態測試技術,其是在實際攻擊發生之前通過測試者的模擬攻擊來檢測Web應用漏洞[3]。

傳統的SQL注入漏洞主要是將Web頁面響應中顯示的數據庫或系統報錯信息作為判定標志來進行識別的,然而近年來涌現出了多種新型的基于推斷的SQL注入漏洞,其主要又包括基于反饋頁面相似度分析和基于頁面響應時間分析的SQL注入漏洞。它們須通過不同的模擬攻擊策略及頁面反饋信息推斷的方法來進行識別,因此其測試的復雜性和難度隨之急劇增加[3-4]。由于黑盒滲透測試是通過分析模擬攻擊測試HTTP請求的響應反饋來檢測漏洞,不同測試用例及其特定響應反饋之間具有較為復雜的攻擊反饋規律,因而可能造成傳統基于<測試用例(Test Case),預測結果(Test Oracle)>鍵值對及用例庫枚舉測試的滲透測試手段的覆蓋度和準確性的不足,尤其體現在較高的漏報(FN:False Negative)和誤報(FP:False Positive)方面[4]。

以往的研究多集中在通過提高對測試響應的分析能力來提高SQLIV滲透測試的覆蓋率和準確度[3,5-6]。其中動靜態檢測相結合的技術可以通過白盒方式分析和修改源代碼或后臺服務器設置來增強對反饋響應的分析能力[6-7],但是其對于源代碼的依賴極大地限制了它在許多不能訪問到后臺服務或源代碼的實際場景中的應用。許多黑盒滲透測試方法采用經驗錯誤模式或特征提取技術來進行反饋響應的分析,這些方法通常將測試用例或測試模式作為外部條件因素進行考慮,往往采用測試用例順序枚舉的方式進行測試[8-10]。然而這種傳統的枚舉式黑盒滲透測試方法已難以應對日益增加的測試響應反饋規律的復雜性。與此同時,隨著測試用例和響應反饋之間對應規則模型的不斷增多,極大地增加了測試整體的規模,也帶來了覆蓋度、準確性和測試效率之間的權衡問題[3,11]。

針對上文所述的基于推斷的新型SQL注入漏洞以及傳統滲透測試方法對其測試的準確度及效率不佳的問題,提出一種基于攻擊樹[12]及反饋分析的攻擊反饋模型AFM(Attack Feedback Model)和滲透測試框架AFTF(Attacking Feedback Testing Framework)。該方法通過自底向上的反饋信息流以進行啟發式的動態SQL注入漏洞滲透測試,從而解決攻擊反饋推斷分析過程中的攻擊策略模擬和反饋時序分析的問題。該模型由多個基于反饋的測試階段FT Stage(Feedback based Test Stage)所構成的攻擊樹,其每一階段包含一系列基于攻擊子樹的反饋測試單元FT Unit(Feedback based Test Unit)。每個反饋測試單元是由模擬攻擊測試及其反饋構成的攻擊樹模型,對應于某個具體類型的SQL注入漏洞滲透測試,其用于進行底層的HTTP測試請求和響應的執行和分析。

1 基本背景與定義

SQL注入漏洞是通過對基于數據庫交互的Web應用程序的輸入進行篡改而引發的,當經過攻擊者惡意編輯過的SQL子句被注入到SQL查詢并被傳輸到后臺數據庫時,就會造成SQL注入漏洞[5-6]。SQL注入漏洞可以存在于URL參數(GET方法)、網頁表單輸入(POST方法)、HTTP Cookie或Header參數中。

假設某網站頁面鏈接中存在SQL注入漏洞“HTTP://www.URL.com/test?customer=Geng&id=123 AND 1=1--”,其注入點位于URL中的參數“id=123”中,測試用例(注入有效負載)為“AND 1=1--”,而其最終傳輸到后臺數據庫的SQL查詢為:“ SELECT * FROM Costumers WHERE customer=Geng AND id=123 AND 1=1--”。原始的SQL查詢沒有包含測試用例“AND 1=1--”的部分。因為重言式子句“AND 1=1--”不能更改SQL語句的邏輯,顯然注入的SQL查詢邏輯與原始查詢邏輯相同。如果我們將測試用例更改為“AND 1=2--”,HTTP響應將會因矛盾子句“AND 1=2--”引起的邏輯變化而發生變化。通過對HTTP響應相似性變化的觀察,我們可以得知該注入點是否存在SQLIV。

滲透測試是在實際應用中最為常見的SQL注入漏洞黑盒動態測試技術之一,其主要是通過模擬攻擊者的思路和輸入來對SQL注入漏洞進行測試。由于缺少后臺系統和數據庫的詳細信息,滲透測試通過分析模擬攻擊測試的HTTP響應反饋來發現該注入點是否存在SQLIV。從測試反饋分析方法及手段的角度來看,主要可以將SQL注入漏洞的檢測分為基于頁面相似度、基于數據庫錯誤和基于頁面反饋時間這三種類型[5]:

1) 基于反饋頁面相似度(Similarity-Based):分析目標SQL查詢的邏輯變化導致測試反饋頁面的相似度變化。

2) 基于反饋的數據庫錯誤(Error-Based):分析滲透測試中由于違反SQL語法而導致測試反饋頁面包含數據庫報錯。

3) 基于反饋時間延遲(Time-Based):分析由于注入的時間延遲指令或后臺計算指令導致的頁面反饋時間延遲。

上述三種類型主要是基于SQL注入漏洞攻擊或測試過程中的反饋信息分析方式進行定義的。類型1)定義的是基于相似度分析的SQL注入漏洞,在對這種漏洞進行判斷識別的時候一般以原始頁面與測試反饋頁面的相似度變化情況為參照進行分析。類型2)的SQL注入漏洞在進行漏洞判斷的時候,是以反饋頁面信息中的數據庫錯誤為標志進行分析判斷的。類型3)的漏洞在測試過程中通過發送時間延遲的SQL命令并分析測試反饋的返回時間的延遲情況來判斷是否存在相應的漏洞。其中,類型2)是早期最為經典的SQL注入漏洞反饋分析方法,而類型1)和類型3)是基于推斷的漏洞判定方法,其發生頻率不斷增加,且相應的漏洞種類也演變得越來越豐富和多樣,因而給SQL注入漏洞的滲透測試帶來了巨大的挑戰。以上述三種反饋分析技術為基礎,本文提出了基于攻擊反饋模型AFM(Attacking Feedback Model)的SQL注入漏洞滲透測試方法,首先我們對基于攻擊反饋的滲透測試策略進行了總結分析,引入了6個符號以描述基本的測試反饋狀態,如表1所示。符號“EOR”(ERROR)和“NEOR”(NO ERROR)是基于數據庫報錯的反饋分析標志,例如對字符型注入點注入轉義字符“′”可能造成形如“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ″Geng″”的數據庫報錯。這個錯誤不但暴露了該SQL注入漏洞,而且還泄露了數據庫類型MySQL和關鍵詞“Geng”。利用這些竊取到的敏感信息,攻擊者可以進一步實施更為準確并且危害更大的攻擊,因而其經常被作為信息收集和判斷注入點的重要手段。

表1 SQLIV滲透測試響應反饋符號定義

符號“SIMI”(SIMILAR)和“CHG”(CHANGE)是基于響應頁面相似性的反饋分析標志。基于頁面相似度的SQL注入漏洞是根據注入后的反饋頁面與原始頁面是否相似來判斷是否是一個漏洞。例如,當注入形如“AND 1=1”的重言式時,測試反饋響應與原始反饋響應相似,其反饋標志為“SIMI”;而當注入“AND 1=2”的矛盾式時,反饋頁面分析結果為不相似,其反饋標志位“CHG”。基于反饋頁面相似度的SQL注入漏洞也被稱為“SQL盲注入漏洞”。

符號“DLY”和“NDLY”是基于響應時間的反饋分析標志。基于頁面反饋時間的SQL注入漏洞是根據注入后的頁面響應時間是否延遲來進行判斷的。例如當注入形如“SLEEP(n)”的注入語句時,頁面響應時間會有n秒的反饋延遲,該類型漏洞也被稱為“時間延遲注入漏洞”。

本文還引入了兩個符號“V”(Vulnerability)和“NV”(No Vulnerability)來表示測試單元和測試階段的中間檢測結果。“V”表示該測試單元或測階段檢測出SQL注入漏洞,“NV”表示無證據表明在這個測試單元或測試階段存在SQL注入漏洞。

2 攻擊反饋模型

2.1 基于攻擊反饋的測試單元

在SQLIV滲透測試中,可以通過使用一系列預先定義好的測試模式來識別漏洞,這些測試模式可能包括多個測試用例(有效載荷)及其對應反饋的組合,如“AND 1=1→SIMI”和“AND 1=2→CHG”的鍵值對模式。傳統的SQLIV滲透測試模式多通過專家經驗總結得來,采用基于順序枚舉的方式進行滲透測試,但這種測試往往并不充分,不適用于具有復雜測試序列或時序的情況。

在本文中,我們定義了基于攻擊反饋的測試單元AFT-Unit來描述SQLIV滲透測試的不同種類和模式,其可以用于描述和分析測試用例及其反饋響應的復雜規律性,如圖1所示。本文基于攻擊樹的攻擊邏輯及反饋分析路徑給出了六種通用的攻擊反饋測試單元的示例,其包含了常見的SQL注入漏洞判定路徑與三種反饋分析方式的組合信息。每個測試單元是一個基于攻擊反饋決策的二叉攻擊樹,其中每個節點(除葉子節點之外)代表一個測試用例,樹的每條邊代表對于其父節點的某種反饋響應,葉節點代表該測試單元的中間檢測結果。葉節點包括“V”和“NV”,其也作為整個攻擊反饋模型AFM中的反饋響應符號。某個到葉節點的路徑表示導致某種中間檢測結果的所有測試用例及其反饋響應的組合,如圖1中測試單元S2中的“S20→SIMI→S21→CHG→V”表示某個基于反饋頁面相似度方式下基于數字計算的SQL注入漏洞檢測過程路徑。

圖1給出了反饋測試單元的舉例,包括基于報錯的反饋測試單元(FT-Unit S0和FT-Unit S1),基于頁面相似度的反饋測試單元(FT-Unit S2和FT-Unit S3)和基于時間延遲的反饋測試單元(FT-Unit S4和FT-Unit S5)。例如,FT-Unit S3表示基于相似性重言式的測試單元,其包括測試用例“AND 1=1--”(S30)和“AND 1=2--”(S31和S32),并且其有兩條不同的測試路徑可以檢測出SQL注入漏洞,通過葉節點“V”(Vulnerability)來表示。并且本文在反饋測試單元FT-Unit的基礎上引入了基于攻擊反饋的測試階段(FT-Stage:Feedback based Test Stage)來表示包含一系列同類型測試單元的某個測試階段,如圖2所示。每個反饋測試階段都包含多個具有相似檢測方式和測試用例變體的測試單元,這里規定測試階段中的測試單元按照順序來執行。

圖2 基于攻擊樹的攻擊反饋模型AFM(Attacking Feedback Model)

2.2 基于反饋的攻擊樹模型

本文攻擊反饋測試單元FT-Unit所組成的反饋測試階段FT-Stage基礎上,構建了SQLIV滲透測試整體的攻擊反饋模型(AFM:Attacking Feedback Model),如圖3所示。

圖3 整體測試框架

本質上,攻擊反饋模型是基于反饋測試階段的攻擊樹模型,其包括每個測試階段FT-Stage的執行和每階段響應反饋結果構成的路徑,及其最終的測試結果信息。在攻擊樹模型AFM中,每個節點(不包括葉節點)表示一個特定的測試階段,每一條邊表示前一個測試階段得到的響應反饋,每個葉節點表示對于一個注入點進行滲透測試的最終測試結果。

對于該模型攻擊樹中的反饋邊,我們將其分為兩類:主動反饋(包括EOR、CHG、LAG和V)和被動反饋(包括NEOR、SIMI、NLAG和NV)。主動反饋對應的邊意味著其父節點對應的階段至少有一個特定的測試單元包含該測試反饋結果。被動反饋對應的邊表示在前一個測試階段沒有發生該階段對應的主動反饋。攻擊反饋模型的每個測試階段都包含一組具有相同特征或功能的反饋測試單元,這些測試單元順序執行,當出現主動反饋結果,或執行完所有測試單元時結束該測試階段(此時若未出現該階段特定的主動反饋,則該測試階段反饋結果為對應的被動反饋),如圖2右上角子圖所示。

攻擊反饋模型有三個預測試階段,包括“隨機字符串預測試階段”、“轉義字符預測試階段”和“基于相似度的預測試階段”,其決定了該模型應該進行哪種類型反饋測試階段。不同的測試階段以及其特定的反饋會引發相應的測試策略。最終,每條路徑均包含對于整個測試的最終測試結果的葉節點。我們可以對每個被測注入點采用該模型進行測試,從而在目標Web站點中有效地檢測SQL注入漏洞。

2.3 基于攻擊反饋模型的測試框架

基于攻擊反饋模型,我們建立了其啟發式的SQL注入漏洞測試框架,其可以通過收集和分析測試攻擊反饋信息,并利用這些信息指導下階段信息。基于攻擊反饋模型的整體測試框架如圖3所示,包括三個層次:基于攻擊樹的反饋測試框架(AFT-Framework:Attacking Feedback based Test Framework)、用于執行測試的攻擊反饋測試階段(FT-Stage:Feedback based Test Stage)和基于攻擊子樹的攻擊反饋測試單元(FT-Unit:Feedback based Test Unit)。

基于攻擊樹的攻擊反饋模型對應于最上層的測試框架AFT-Framework,其中攻擊反饋測試模型決策模塊用于控制整個框架的測試過程,基于攻擊樹模型和攻擊反饋分析進行反饋測試階段FT-Stage的篩選,調用測試階段的執行模塊,并進行每個測試階段的反饋結果分析,并根據上一階段的反饋結果對下一階段采用的測試階段和測試策略進行選擇和控制。

從圖3中各模塊的整體關系來講,攻擊反饋測試框架三層之間是由左至右逐層循環調用執行更為細粒度的測試,并在獲得細粒度的反饋信息后從右至左逐層反饋至上層模塊進行綜合運算和分析的過程。該測試框架利用攻擊樹模型選擇出當前的反饋測試階段FT-Stage,每個反饋測試階段FT-Stage用于對某個測試階段所包含的攻擊反饋測試單元FT-Unit集合進行控制,其枚舉執行集合中的測試單元。當某個測試單元執行后出現主動反饋結果時,或者集合中所有測試單元執行完畢,則停止該測試階段的測試,如圖2和圖3所示。測試單元執行模塊則是對每個反饋測試單元FT-Unit進行控制和實施,首先通過攻擊反饋測試單元控制模塊進行攻擊子樹的分析,篩選出當前的測試用例進行注入語句拼接合成,并發送HTTP請求和接收HTTP響應,最終進行響應反饋分析,其反饋分析結果返回至單元控制模塊后用于指導下一次用于測試用例的篩選和執行。

該攻擊反饋測試框架可對基于攻擊樹的攻擊反饋模型進行具體的實施和應用,進行逐層次的攻擊反饋信息和控制信息傳遞,從而實現一種反饋信息流自底向上的啟發式動態滲透測試過程,在提交測試覆蓋度和準確度的基礎上降低了測試冗余度,從而提高整體的測試效率。

3 實驗及結果分析

本文基于攻擊反饋測試框架開發了其原型測試工具,該工具基于“Visual Studio 2010 +.net 3.5+C#”環境進行開發,對攻擊反饋測試模型進行了實現。該原型工具可以對目標測試網站中的URL頁面包含的注入點進行SQL注入漏洞檢測,這些注入點在實驗之前由第三方的爬蟲工具進行抓取。我們同時選取了兩種第三方SQL注入滲透測試工具進行比較實驗,包括WVS Acunetix[13]和IBM Security Appscan[14]。Acunetix和Appscan是兩款著名的商用Web應用安全測試工具,它們是目前具有代表性的兩款商用滲透測試工具。本文將這兩款測試工具表示為工具A和工具B(沒有特定的順序),并且設置為其最高級別檢測模式進行測試。

為了進行實驗對比分析,本文基于開源Web應用程序漏洞掃描器評估項目Wavsep(The Web Application Vulnerability Scanner Evaluation Project)[15]進行擴展,開發了用于實驗的目標漏洞測試系統VulPoc(Vulnerability Proof of Concept)。VulPoc可被用于評價Web應用漏洞檢測工具的綜合檢測能力,基于“PHP 5+MySQL 5”開發,包含7 215個URL,以及6種類型的158個植入的SQL注入漏洞,其中122個漏洞來源于Wavsep項目,另外36個漏洞由多名專業Web安全專家進行開發和植入,VulPoc的詳細信息如表2所示。

表2 目標測試系統VulPoc詳細信息

為了全面評價SQL注入漏洞的測試能力,本文從以下兩個方面展開實驗:準確度(Accuracy)和效率(Efficiency)。檢測的準確度可從召回率R和誤報FP情況來進行評估。對于測試效率,我們是采用測試過程中的HTTP請求數量(HTTP Requests)作為評估指標。之所以采用該指標,是由于在實際的SQL注入漏洞滲透測試過程中的網絡延遲和Web應用負載限制等方面原因,對整體測試效率和時間影響最大的是其所發送的HTTP請求數量,因而可通過平均HTTP請求數(AHR:Average HTTP Requests)來進行測試效率的評估。

召回率R描述了SQL注入漏洞滲透測試工具的檢測覆蓋度情況,其可通過式(1)來表示。其中,RC是召回漏洞數量,VUL是被測系統中實際存在的漏洞。

(1)

誤報FP(False Positives)表述的是檢測工具掃描出的假陽性漏洞,即錯誤的掃描結果,其可通過誤報率FPR(False Positive Rate)來描述,其表示在所有掃描結果中誤報所占的比例,如式(2)所示。其中,FP為誤報結果數。

(2)

對于檢測工具誤報水平的評估,還可通過檢測每條URL的時候出現誤報的概率FPP(False Positive Probability)來衡量。

(3)

表3給出了本文對照實驗的詳細結果數據,其中AFM表示本文所述方法所開發的原型系統,Tool A和Tool B分別表示的是WVS Acunetix和IBM Security Appscan(出于商業保護的目的,這里Tool A和Tool B與兩個工具名稱之間沒有特定的對應順序)。可以看到,本文提出的攻擊反饋模型AFM檢測出的有效召回漏洞數量RC_Num數量為153,高于工具A和工具B的132和126個,誤報結果數為6,而工具A和工具B的誤報數分別為37和22。

表3 實驗結果數據詳細信息

圖4是在表2基礎上得到的柱狀分析圖,其中包括召回率RCR、誤報率FPR、誤報概率FPP、平均HTTP請求數AHR(Average HTTP Requests)的對比分析信息。圖4顯示出本文所述方法在植入漏洞的被測目標系統中的測試召回率RCR為96.8%,誤報率FPR為3.8%,相較對比工具而言具有更高的召回率、更低的誤報率,更進一步說明了本文所述模型的準確性更高。

圖4 實驗對比分析結果圖

同時,AFM模型具有更低的誤報概率FPP=0.8‰及更低的平均HTTP請求數AHR=88,而這兩項指標在對比工具中工具則最高達到了5.1‰和298。具有更低的誤報概率和更低的HTTP請求數顯示出在大數據量的URL測試環境下,AFM模型在測試每條URL的過程中產生的誤報較低,同時其測試效率更高,更加適用于當前實際應用中Web應用系統規模和復雜度都越來越大的情況。

4 結 語

本文提出了一種基于攻擊反饋模型AFM的Web應用系統SQL注入漏洞自動化滲透測試方法,通過自底向上的反饋信息流實現了一種啟發式的動態滲透測試方法。在攻擊反饋分析的基礎上建立整個測試模型的反饋測試單元FT-Unit,同時設計了基于反饋測試單元枚舉的反饋測試階段FT-Stage,最終在此基礎上提出了基于攻擊樹的攻擊反饋模型AFM,并設計了整體應用的測試框架AFTF,從而實現了一種快速有效的Web應用系統啟發式滲透測試模型。本文建立了基于攻擊反饋測試框架AFTF的實驗原型系統,并通過對比實驗給出了其在目標測試系統上的實驗對比分析結果。實驗結果表明,本文所述方法可在保證較高的測試效率前提下,有效提高Web應用系統中SQL注入漏洞滲透測試的準確度,具有較高的召回率和較低的誤報率。

猜你喜歡
頁面分析檢測
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
隱蔽失效適航要求符合性驗證分析
電力系統不平衡分析
電子制作(2018年18期)2018-11-14 01:48:24
電力系統及其自動化發展趨勢分析
小波變換在PCB缺陷檢測中的應用
同一Word文檔 縱橫頁面并存
主站蜘蛛池模板: 国产伦精品一区二区三区视频优播 | 国产国产人成免费视频77777| 亚洲一道AV无码午夜福利| 国产女人在线观看| 国产成人h在线观看网站站| 亚洲人成网站色7777| 色婷婷久久| 久操线在视频在线观看| 久久成人18免费| 亚洲大学生视频在线播放| 中文字幕av无码不卡免费| a级毛片免费网站| 久久久久青草大香线综合精品| 日本国产精品一区久久久| 亚洲六月丁香六月婷婷蜜芽| 精品久久久久久中文字幕女| 福利小视频在线播放| 午夜日b视频| 偷拍久久网| 国产精品视频系列专区| 美女被操91视频| 怡红院美国分院一区二区| 免费人成黄页在线观看国产| 国产免费高清无需播放器| 操美女免费网站| 欧美视频在线播放观看免费福利资源| 亚洲经典在线中文字幕| 久久久久人妻一区精品色奶水 | 99re经典视频在线| 欧美激情第一欧美在线| 激情综合婷婷丁香五月尤物| 五月婷婷精品| 视频国产精品丝袜第一页| 久久人搡人人玩人妻精品| 国产精品人人做人人爽人人添| 欧美成人手机在线观看网址| 国产精品成人不卡在线观看| 91热爆在线| 免费国产小视频在线观看| 亚洲最大福利网站| 91香蕉国产亚洲一二三区| 日韩视频精品在线| 亚洲 欧美 偷自乱 图片| 亚洲久悠悠色悠在线播放| 最新国产在线| 久久夜色精品| 最新国产麻豆aⅴ精品无| 日韩在线欧美在线| 久久国产亚洲欧美日韩精品| 99久久精品免费看国产免费软件| 71pao成人国产永久免费视频| 久久午夜夜伦鲁鲁片不卡| 亚洲国产综合精品一区| 国产一区二区三区夜色| 日日噜噜夜夜狠狠视频| 在线一级毛片| 日韩精品一区二区深田咏美 | 午夜免费小视频| 美女免费精品高清毛片在线视| 久久久久免费看成人影片 | 精品无码一区二区三区电影| 免费看黄片一区二区三区| 免费一看一级毛片| 亚洲日韩AV无码精品| 国产微拍精品| 污污网站在线观看| 中文字幕2区| www欧美在线观看| 欧美日韩在线成人| 91麻豆久久久| 久久特级毛片| 国产剧情伊人| 成人欧美日韩| 国产精品99一区不卡| 国产网站黄| 99这里只有精品免费视频| 亚洲精品色AV无码看| 黄色一及毛片| 99热这里只有免费国产精品| 亚洲精品无码日韩国产不卡| 中文字幕亚洲电影| 91无码国产视频|