亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于擴(kuò)展FSM的Web應(yīng)用安全測試研究

        2018-04-18 11:07:40
        關(guān)鍵詞:模型設(shè)計(jì)

        李 棟

        (上海大學(xué)計(jì)算機(jī)工程與科學(xué)學(xué)院 上海 200072)

        0 引 言

        隨著互聯(lián)網(wǎng)絡(luò)技術(shù)快速發(fā)展和成熟,Web應(yīng)用已經(jīng)滲透到人們現(xiàn)代生活的每一個(gè)角落。開放的互聯(lián)網(wǎng)絡(luò)為基于軟件程序業(yè)務(wù)的發(fā)展提供了極大的便利,但伴隨而來的Web應(yīng)用安全問題也引起了社會(huì)的廣泛關(guān)注。由于編程軟件自身的特點(diǎn)和一些設(shè)計(jì)本身的缺陷,使得信息安全事故頻發(fā)。Web應(yīng)用中HTML5和JavaScript框架等新技術(shù)的使用,使得諸如SQL注入和跨站腳本(XSS)等安全漏洞呈級(jí)數(shù)式的增長,并產(chǎn)生后果嚴(yán)重的攻擊事件。

        文獻(xiàn)[1-3]對(duì)Web應(yīng)用常見的注入型安全漏洞檢測技術(shù)進(jìn)行了分析,同時(shí)對(duì)現(xiàn)行的Web應(yīng)用安全測試方法進(jìn)行了分類總結(jié)。Web應(yīng)用的安全測試可以分為兩類,靜態(tài)分析和動(dòng)態(tài)分析。靜態(tài)分析是一個(gè)白盒的方法,包括了源碼、字節(jié)、對(duì)象代碼掃描器和靜態(tài)分析技術(shù)。靜態(tài)分析可以檢測如緩沖溢出和字符串錯(cuò)誤等誘發(fā)的安全問題。動(dòng)態(tài)分析一般都采用滲透測試的思想,從攻擊者的角度出發(fā),利用軟件中存在的安全漏洞,設(shè)計(jì)攻擊方法,通過對(duì)軟件系統(tǒng)進(jìn)行攻擊來發(fā)現(xiàn)其中存在的安全漏洞??梢杂行z測出諸如SQL注入、XSS、CSRF等導(dǎo)致安全事故頻發(fā)的重要漏洞。動(dòng)態(tài)分析包括基于黑盒的Web應(yīng)用漏洞掃描器,模糊測試技術(shù)和基于模型的安全測試技術(shù)等。

        諸如AppScan等Web應(yīng)用漏洞掃描器可以對(duì)Web系統(tǒng)進(jìn)行自動(dòng)有效的安全漏洞檢測,但是常常會(huì)產(chǎn)生許多正面和負(fù)面的錯(cuò)誤結(jié)果,并且有些測試結(jié)果仍需人工參與才能正常執(zhí)行。

        模糊測試采用了模糊技術(shù),可以隨機(jī)生成大量無效的測試輸入數(shù)據(jù)進(jìn)行安全測試。文獻(xiàn)[4]提出一種通過模糊操作符產(chǎn)生無效信息序列而不是無效輸入數(shù)據(jù)進(jìn)行測試的方法。這種測試方法雖然在提供輸入信息上提供了巨大的便利,但是同樣會(huì)產(chǎn)生許多無用的測試結(jié)果,增加了測試分析的復(fù)雜度。

        基于模型的安全測試通過對(duì)系統(tǒng)中威脅、漏洞、風(fēng)險(xiǎn)等進(jìn)行形式化的抽象建模,從相應(yīng)模型中生成測試用例,驅(qū)動(dòng)Web應(yīng)用的安全測試。抽象的形式化模型可以在系統(tǒng)設(shè)計(jì)初期對(duì)Web應(yīng)用中的安全問題進(jìn)行有效描述,使得設(shè)計(jì)開發(fā)人員對(duì)于Web安全問題的理解更為直觀簡便,而不必去考慮在用戶和Web應(yīng)用在實(shí)現(xiàn)上的交互細(xì)節(jié)。

        本文的工作將基于模型的測試和滲透測試的方法相結(jié)合,根據(jù)抽象的安全有限機(jī)模型對(duì)被測系統(tǒng)建立威脅模型,從中挖掘出Web系統(tǒng)中存在安全漏洞的測試序列,并結(jié)合工程化的方法將抽象的測試序列實(shí)例化,自動(dòng)生成可執(zhí)行的測試用例,提高安全測試的工作效率。最后設(shè)計(jì)了一個(gè)實(shí)驗(yàn),并用開發(fā)的原型工具驗(yàn)證了該方法的可行性和有效性。

        1 相關(guān)工作

        根據(jù)已有的研究現(xiàn)狀,基于模型的安全測試根據(jù)模型的描述對(duì)象可以分為三類[2]:

        1) 基于結(jié)構(gòu)和功能模型的安全測試。結(jié)構(gòu)和功能模型主要關(guān)注安全需求和實(shí)現(xiàn)。比如基于訪問用控制模型的安全測試。

        2) 基于缺陷和漏洞模型的安全測試。這類模型主要從缺陷和漏洞自身出發(fā),針對(duì)某一種特定類型的安全漏洞或缺陷自身的結(jié)構(gòu)特性建立模型。文獻(xiàn)[5]試圖在系統(tǒng)開發(fā)生命周期的早期減少系統(tǒng)中可能存在的SQL注入漏洞,描述了SQL注入漏洞產(chǎn)生的原因,并用威脅建模的方式指導(dǎo)開發(fā)者如何在開發(fā)過程中減少SQL注入漏洞。文獻(xiàn)[6]提出一種基于模型的Web漏洞測試方法。文獻(xiàn)分為兩個(gè)部分,采用行為模型捕捉系統(tǒng)動(dòng)作;用漏洞測試樣式對(duì)漏洞進(jìn)行形式化的描述產(chǎn)生測試目的。最后用測試目的驅(qū)動(dòng)行為模型生成測試用例。漏洞測試樣式包含了漏洞的名稱、描述、行為、實(shí)現(xiàn)條件、涉及變量等。研究對(duì)象是存儲(chǔ)型XSS和反射型XSS漏洞。

        3) 基于威脅、故障和風(fēng)險(xiǎn)模型的安全測試。這類模型用于檢測被測系統(tǒng)在受到攻擊時(shí)會(huì)產(chǎn)生什么樣的錯(cuò)誤,主要關(guān)注Web安全漏洞問題產(chǎn)生的原因和后果。MARBACK[7]等采用AND/OR樹形式化的表示W(wǎng)eb系統(tǒng)可能面臨的威脅。Xu等[8]基于形式化的Petri網(wǎng)對(duì)威脅場景建模產(chǎn)生測試用例,結(jié)合MIM(Model-Implementation Mapping)規(guī)格說明,基于自主開發(fā)的工具,實(shí)現(xiàn)了從抽象測試用例到代碼級(jí)別的可執(zhí)行的安全測試用例。Wang等[9]提出一種模型驅(qū)動(dòng)的安全測試方法,利用UML時(shí)序圖對(duì)違背安全策略的威脅進(jìn)行建模,從威脅模型中提取威脅跡的集合。其中,每條威脅跡對(duì)應(yīng)一個(gè)威脅序列。通過程序插樁的方法,將描述威脅行為的序列轉(zhuǎn)化為測試用例。

        除此之外,文獻(xiàn)[10]提出一種從一個(gè)安全模型出發(fā)的半自動(dòng)化Web安全測試方法。作者假設(shè)存在一個(gè)基于被測系統(tǒng)規(guī)格說明的形式化安全模型,利用這個(gè)模型對(duì)系統(tǒng)中出現(xiàn)的漏洞進(jìn)行建模,使用模型檢測器從模型中輸出由漏洞所引發(fā)的攻擊路徑。最后將這些攻擊路徑實(shí)例化成測試用例并交由測試人員對(duì)這些一一執(zhí)行。這種方法的主要貢獻(xiàn)是提供了一個(gè)在瀏覽器級(jí)別來描述Web應(yīng)用的模型,指導(dǎo)滲透測試者從中找出基于邏輯漏洞所產(chǎn)生的攻擊行為。

        基于對(duì)相關(guān)工作內(nèi)容的深入研究,本文工作有以下幾點(diǎn)不同:

        1) 基于安全有限狀態(tài)機(jī)模型對(duì)Web應(yīng)用中可能存在的安全問題進(jìn)行威脅建模,不僅可以在功能上實(shí)現(xiàn)被測系統(tǒng)的安全需求,同時(shí)可以發(fā)現(xiàn)被測系統(tǒng)的安全漏洞。高度抽象的威脅模型有助于減少安全專家和開發(fā)人員之間的知識(shí)差距,有助于開發(fā)人員在系統(tǒng)設(shè)計(jì)時(shí)提高安全性。

        2) 通過對(duì)安全問題提出的測試方法可以應(yīng)用到Web應(yīng)用開發(fā)的各個(gè)周期,與軟件開發(fā)完成后的安全測試相比,可以節(jié)省測試時(shí)間,提供更好的防御。

        3) 設(shè)計(jì)的原型工具實(shí)現(xiàn)了安全測試用例的自動(dòng)生成,提高測試效率同時(shí)縮減了測試成本。

        2 Web應(yīng)用安全測試的威脅模型

        威脅建模[11]采用滲透測試的思想,從攻擊者的角度出發(fā)來描述軟件系統(tǒng)將要面臨的安全威脅。威脅模型可以為安全測試提供可靠的理論基礎(chǔ)。雖然威脅建模已在軟件的安全開發(fā)上得到了廣泛應(yīng)用,但使用隱式和非形式化的威脅模型的安全測試對(duì)于軟件安全測試的自動(dòng)化產(chǎn)生了很大的局限性[12]。有限狀態(tài)機(jī)(FSM)提供了一個(gè)對(duì)復(fù)雜Web應(yīng)用行為進(jìn)行建模描述的理論基礎(chǔ),采用基于 FSM 的模型來捕捉軟件的行為在實(shí)踐中得到廣泛的認(rèn)同[13]??娀纯鄣萚14]以FSM作為測試模型,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于模型的 Web 應(yīng)用測試系統(tǒng)。本文利用擴(kuò)展的有限狀態(tài)機(jī)S-FSM中的字符和語法對(duì)Web系統(tǒng)的狀態(tài)、遷移和動(dòng)作進(jìn)行充分描述,引入了注入點(diǎn)InP的定義來描述Web中接收的攻擊輸入語句。威脅模型為開發(fā)和測試人員提供了一個(gè)直觀的視角去研究攻擊者如何通過滲透軟件系統(tǒng)并實(shí)現(xiàn)安全威脅的具體過程。通過這種反向的建模方法,使得軟件設(shè)計(jì)人員可以有效地理解Web系統(tǒng)中可能存在的安全隱患,確定系統(tǒng)的安全漏洞。

        2.1 安全有限狀態(tài)機(jī)模型

        定義1安全有限狀態(tài)機(jī)模型(S-FSM)。S-FSM描述為一個(gè)三元組(Q,q0,T)。其中:

        Q={q0,q1,…,qn}:表示非空的有限狀態(tài)集。qi在Web應(yīng)用中表示為網(wǎng)頁。

        q0∈Q是初始狀態(tài),即Web應(yīng)用的起始頁面。

        T表示有限的遷移集合。每條遷移t∈T描述為一個(gè)五元組(qf,G,Act,I,qb),描述了Web應(yīng)用中從一個(gè)網(wǎng)頁到另一個(gè)網(wǎng)頁發(fā)生的狀態(tài)遷移。qf表示當(dāng)前遷移的前狀態(tài),qb表示后狀態(tài)。G表示該遷移上的衛(wèi)視條件集合;Act表示一個(gè)有限的動(dòng)作集;I={Id1,Id2,…,Idn}表示一個(gè)有限輸入集合,例如在網(wǎng)頁中需要輸入的對(duì)話框內(nèi)容等。

        定義2注入點(diǎn)(Injection Point)。InP(type)∈qi,表示網(wǎng)頁中需要輸入的對(duì)話框和地址欄等表單的集合。存在于某個(gè)狀態(tài)qi中,根據(jù)注入點(diǎn)的類型,接收輸入數(shù)據(jù)Id。

        2.2 威脅模型

        定義3攻擊路徑。如果一個(gè)S-FSM所產(chǎn)生的遷移路徑中的終止?fàn)顟B(tài)為attack,則稱這條遷移路徑為攻擊路徑。攻擊路徑的集合記為TC,每一個(gè)TCi=都是一系列遷移的集合。

        定義4威脅模型。對(duì)于一個(gè)S-FSM,M=(Q,q0,T),如果模型中有一到多個(gè)攻擊路徑,則稱這個(gè)有限狀態(tài)機(jī)為威脅模型。

        3 基于SQL注入的威脅模型安全測試用例生成

        圖1描述了一個(gè)簡單的Web應(yīng)用登錄系統(tǒng),當(dāng)用戶打開初始頁面,非注冊用戶需要先進(jìn)入注冊頁面q1,注冊成功后從q12頁面再自動(dòng)跳轉(zhuǎn)到登錄頁面q2。已注冊用戶則直接在登錄頁面q2進(jìn)行登錄,登錄成功后進(jìn)入主頁qm。若登錄失敗需要重新找回密碼,則進(jìn)入q3頁面,設(shè)置新的密碼成功后從q31頁面返回登錄頁面進(jìn)行正常登錄。其中發(fā)現(xiàn)創(chuàng)建賬戶頁面q1、登錄頁面q2和設(shè)置新密碼頁面q3都包含了輸入框,即我們定義的注入點(diǎn),非法用戶可以在注入點(diǎn)輸入攻擊代碼從而使Web應(yīng)用進(jìn)入危險(xiǎn)狀態(tài)Attack。

        根據(jù)圖1中的描述,我們利用S-FSM對(duì)Web登錄系統(tǒng)建立了受到SQL注入攻擊的威脅模型,如圖2所示??梢娫谶w移t3/t5/t6/t8/t10中都包含了注入點(diǎn),不良用戶可以在這些遷移中利用SQL注入的方式,向頁面注入非法的SQL語句條件,完成攻擊。

        圖2 受到SQL注入攻擊的威脅模型

        3.1 生成安全測試序列

        威脅模型建立之后,需要從威脅模型中解析出有效的安全測試序列,即攻擊路徑。基于不同的測試覆蓋準(zhǔn)則,可以從威脅模型中產(chǎn)生不同的安全測試序列。文獻(xiàn)[15]給出了深度優(yōu)先遍歷FSM 產(chǎn)生滿足遷移覆蓋的測試用例集合的算法。本文研究的對(duì)象是安全測試,只需獲得從起始節(jié)點(diǎn)到攻擊節(jié)點(diǎn)的所有遷移序列。因而將原算法中的終止?fàn)顟B(tài)改為Attack狀態(tài),命名為算法1?;谏疃葍?yōu)先算法對(duì)Web應(yīng)用威脅模型中的所有遷移進(jìn)行遍歷,生成從根節(jié)點(diǎn)到攻擊節(jié)點(diǎn)(Attack)的所有遷移序列。

        算法1根據(jù)深度優(yōu)先遍歷產(chǎn)生滿足狀態(tài)遷移覆蓋的測試用例集的算法。

        1)Input:q0∈S-FSM

        2)Begin

        3)bool DFS(Node q0, int d,str tc[ ]= ‘q0’)

        4)for (i = 0,Node nextNode in q0, i++)

        5)if (!visit[nextNode])

        6)visit[nextNode] = true;

        7)while(nextNode!=Attack)do

        8)DFS(nextNode, d+1); }

        9)return true;

        10)tc[i] = tc[i]+″>>″nextNode;

        11)visit[nextNode] = false;

        12)Output tc[i];

        13)End.

        算法1中以待測模型的初始狀態(tài)作為輸入節(jié)點(diǎn)(步驟1),深度優(yōu)先遍歷整個(gè)S-FSM模型。步驟3定義起始節(jié)點(diǎn)為q0,并將根節(jié)點(diǎn)q0加入遍歷序列。步驟4和步驟5利用for循環(huán)遍歷其余節(jié)點(diǎn),若發(fā)現(xiàn)不為空,定義nextNode為true,并判斷nextNode是否為Attack節(jié)點(diǎn),若否則繼續(xù)遍歷,同時(shí)深度加一(步驟8)。直至nextNode為Attack時(shí)遍歷結(jié)束,將遍歷的節(jié)點(diǎn)依次記錄下來加入當(dāng)前攻擊路徑的數(shù)組集合(步驟10)。一次遍歷后將nextNode節(jié)點(diǎn)設(shè)置為false,返回步驟3開始下一輪深度優(yōu)先遍歷(步驟11)。最終輸出所有的遍歷數(shù)組(步驟12)。所得到的數(shù)組集合tc[]即為滿足狀態(tài)遷移條件的安全測試序列集合。

        根據(jù)上文中提到的算法,可以將圖2所示的SQL注入FSM樹中解析得到符合條件的5條遷移序列,即攻擊路徑(如圖3所示)。

        TC1: 。

        TC2:

        TC3: 。

        TC4:

        TC5: < t2, t7, t81, t9, t10(Injection5), Attack>。

        圖3 根據(jù)深度優(yōu)先算法生成的FSM測試樹

        3.2 可執(zhí)行的安全測試用例生成

        前文通過S-FSM模型對(duì)Web應(yīng)用建模并產(chǎn)生了安全測試用例。然而這些測試用例只能給軟件設(shè)計(jì)者提供抽象的理論依據(jù),實(shí)際的開發(fā)過程中則需要可執(zhí)行的測試用例來支持工程進(jìn)展。為了獲得可執(zhí)行的安全測試用例,本文提出一種算法,將從FSM測試樹中生成的安全測試序列對(duì)應(yīng)Web應(yīng)用中的實(shí)際網(wǎng)址、按鍵和表單等進(jìn)行實(shí)例化,結(jié)合基于語法的常見注入攻擊語句作為輸入條件,生成可執(zhí)行的安全測試用例。實(shí)現(xiàn)算法如下。

        算法2可執(zhí)行安全測試用例生成。

        1)Input :TC from S-FSM / URL/ Test Code Str from Attack DataBase

        2)Begin

        3)Test Suite←” ”;

        4)For each AttackPath∈TC;

        5)Append initial code, Preconditions, Postconditions and Help code to AttackPath;

        6)FOR(i= 1 to n) do

        7)For each t∈AttackPath

        8)While InP?t

        //當(dāng)前遷移中不包含注入點(diǎn),則繼續(xù)

        9)Continue;

        10)For(i= 1 to n)do

        11)Check the InP type

        //檢查注入點(diǎn)的類型

        12)Append Idito InP;

        13)End for.

        14)Append AttackPath to Test Suite;

        15)End for.

        16)Output Test Suite

        //輸出可執(zhí)行的測試用例集合

        17)End.

        在算法2中,以算法1中得到的安全測試序列集合TC、待測網(wǎng)站起始地址和攻擊輸入語句作為輸入條件(步驟1),初始化測試用例集為空,并依次遍歷TC中的每一條安全測試序列(步驟3、步驟4)。利用輔助代碼實(shí)例化出當(dāng)前測試序列中狀態(tài)(對(duì)應(yīng)網(wǎng)址)、遷移中的動(dòng)作和衛(wèi)式條件(網(wǎng)頁上對(duì)應(yīng)的按鍵和鏈接、限定條件)、注入點(diǎn)(網(wǎng)頁中的表單和地址欄等),加入該條安全測試序列的實(shí)例化的初始代碼、前后置條件,構(gòu)造出一條可執(zhí)行用例的基本代碼結(jié)構(gòu)(步驟5)。步驟(6-9)依次遍歷安全測試序列中每個(gè)注入點(diǎn),若發(fā)現(xiàn)注入點(diǎn)InP,檢測注入點(diǎn)類型(步驟11),并將從網(wǎng)絡(luò)中搜集出符合該類型的Web漏洞攻擊注入代碼作為輸入,依次加入該條安全測試序列的注入點(diǎn)中(步驟12),生成一條可執(zhí)行的安全測試用例。依次遍歷安全測試序列集合TC中的每一條測試序列,最終輸出基于語義的可執(zhí)行安全測試用例集合(步驟16)。

        4 工具設(shè)計(jì)與實(shí)驗(yàn)

        為了驗(yàn)證基于模型的安全測試生成方法的可行性和有效性,設(shè)計(jì)了一個(gè)原型工具,并使用它對(duì) 一個(gè)開源Web電商網(wǎng)站進(jìn)行了安全測試。圖4為整個(gè)測試生成工具的具體框架。

        圖4 基于S-FSM的Web安全測試工具框架

        4.1 測試平臺(tái)設(shè)計(jì)與待測系統(tǒng)

        為了支持基于S-FSM的安全測試生成方法,用Java語言開發(fā)了一個(gè)原型工具。主要分成4個(gè)模塊。

        4.1.1從模型的規(guī)格說明生成圖形化威脅模型

        本文設(shè)計(jì)的工具是以FSM模型的XML文件作為測試輸入,F(xiàn)SMDesigner是一個(gè)基于C++的有限狀態(tài)機(jī)設(shè)計(jì)工具,可以有效地描述FSM模型中狀態(tài)和遷移。生成的S-FSM模型以XML文件的形式保存,滿足了設(shè)計(jì)需要。如圖5所示。

        圖5 使用FSM Designer描述的威脅模型

        4.1.2解析威脅模型的XML文件以得到安全測試序列

        利用SAX解析器對(duì)FSM模型的XML文檔進(jìn)行解析,設(shè)計(jì)實(shí)現(xiàn)了上文中提出的基于遷移覆蓋深度優(yōu)先算法,生成滿足條件的安全測試序列。如圖6所示,設(shè)計(jì)的測試生成工具包含裝載FSM模型的XML文件、顯示,選擇覆蓋準(zhǔn)則點(diǎn)擊執(zhí)行生成安全測試序列。

        圖6 安全測試序列的生成

        4.1.3生成可執(zhí)行安全測試用例

        一條完整的可執(zhí)行的安全測試用例包含:測試用例的編號(hào)、測試用例的起始條件即前置條件、測試預(yù)期結(jié)果、測試輸入數(shù)據(jù)和安全測試中涉及的各種參數(shù)等。在設(shè)計(jì)的工具中選擇安全測試序列和相應(yīng)的測試數(shù)據(jù),可以生成一條安全測試用例。圖7中生成的是一條包含URL注入的可執(zhí)行安全測試用例,存在于每一個(gè)測試序列中,向URL地址欄注入SQL攻擊語句以達(dá)到非法登錄的目的。

        圖7 可執(zhí)行安全測試用例的生成

        4.1.4執(zhí)行測試用例,并生成測試報(bào)告

        可執(zhí)行的安全測試用例使用 Perl 語言來編寫。生成的可執(zhí)行安全測試用例可以在 Selenium IDE 的 Firefox 擴(kuò)展包來運(yùn)行并得到執(zhí)行結(jié)果。執(zhí)行結(jié)果可以顯示出注入的攻擊語句是否成功侵入待測Web系統(tǒng),與測試的預(yù)期結(jié)果是否一致。如果出錯(cuò)則報(bào)出相應(yīng)的位置并進(jìn)行信息統(tǒng)計(jì)。

        實(shí)驗(yàn)中所使用的測試系統(tǒng) Magento1.1.8 是一個(gè)專業(yè)開源的電子商務(wù)系統(tǒng),采用PHP語言進(jìn)行開發(fā),后臺(tái)使用MYSQL數(shù)據(jù)庫存取數(shù)據(jù)。它的設(shè)計(jì)結(jié)構(gòu)靈活,具有模塊化架構(gòu)體系和豐富的功能。由于Magento1.1.8的結(jié)構(gòu)龐大,實(shí)驗(yàn)中只選取了系統(tǒng)中的登錄模塊和支付模塊進(jìn)行建模測試。為了評(píng)估威脅模型的安全測試的有效性,選擇了OWASP Top10中常見的6種注入型漏洞設(shè)計(jì)攻擊輸入語句,包括SQL注入,跨站點(diǎn)腳本XSS,Xpath注入,LDAP注入,SSI注入和目錄遍歷。使用開發(fā)工具生成了18條攻擊路徑和58個(gè)可執(zhí)行的安全測試用例。

        4.2 結(jié)果分析

        實(shí)驗(yàn)?zāi)康氖球?yàn)證采用基于S-FSM模型生成的安全測試方法能否發(fā)現(xiàn)Web系統(tǒng)中存在的漏洞。為了顯示測試結(jié)果的多樣性,在設(shè)計(jì)輸入代碼時(shí)加入了正常的測試攻擊語句和無效的測試輸入語句。表1展示了實(shí)驗(yàn)中安全測試用例的運(yùn)行結(jié)果。

        表1 實(shí)驗(yàn)結(jié)果

        其中,根據(jù)幾種不同的安全漏洞攻擊方式分別設(shè)計(jì)了包含10條有效輸入和8條無效輸入共計(jì)18條測試輸入數(shù)據(jù),將這些測試數(shù)據(jù)注入相應(yīng)的安全測試序列中攻擊得到了58條可執(zhí)行的安全測試用例。為了驗(yàn)證所得到結(jié)果的有效性,分別將這58條測試用例一一執(zhí)行,并將分析結(jié)果匯總到圖8所示的柱狀圖中。圖8中四條不同灰度的柱子分別代表了安全測試用例數(shù)、根據(jù)有效輸入得到的安全測試用例數(shù)、可以正確執(zhí)行的安全測試用例數(shù)和發(fā)現(xiàn)威脅的安全測試用例數(shù)。所有6種攻擊方式得到的數(shù)據(jù)結(jié)果可以清晰的表示出來。

        圖8 發(fā)現(xiàn)威脅的安全測試用例數(shù)據(jù)分析圖

        由圖8可以發(fā)現(xiàn),除去由無效輸入數(shù)據(jù)而生成的安全測試用例,其他測試用例得到了正確執(zhí)行,測試用例的有效性達(dá)到了100%。根據(jù)安全測試用例的執(zhí)行結(jié)果,幾種安全漏洞攻擊方式下的測試用例發(fā)現(xiàn)安全威脅的比例分別為80%、100%、100%、80%、0%和80%。其中SSI注入沒有發(fā)現(xiàn)安全威脅,是因?yàn)楫?dāng)前系統(tǒng)版本已經(jīng)對(duì)這種攻擊方式進(jìn)行了有效防御。其余的測試用例在發(fā)現(xiàn)問題上的覆蓋率達(dá)到了92%以上。實(shí)驗(yàn)結(jié)果表明,基于S-FSM模型的安全測試方法是一種有效的技術(shù),通過這種方法,設(shè)計(jì)人員可以在Web應(yīng)用的開發(fā)設(shè)計(jì)時(shí)期有效地發(fā)現(xiàn)這些安全漏洞。

        5 結(jié) 語

        本文提出一種基于擴(kuò)展FSM模型的Web應(yīng)用安全測試方法,生成可執(zhí)行的安全測試用例。實(shí)驗(yàn)驗(yàn)證了該方法的有效性和可行性。該方法將傳統(tǒng)的基于模型的測試方法和工程化的基于代碼的測試方法相結(jié)合,可以幫助開發(fā)者在設(shè)計(jì)階段有效地考慮和規(guī)避Web系統(tǒng)中可能出現(xiàn)的安全漏洞,從而提高整個(gè)系統(tǒng)工程的開發(fā)效率。

        由于Web系統(tǒng)中不同漏洞的攻擊方式也不盡相同,接下來的工作需要將模型進(jìn)一步細(xì)化。同時(shí)在面對(duì)龐大的Web應(yīng)用系統(tǒng)時(shí),設(shè)計(jì)出自動(dòng)化更強(qiáng)的測試軟件。

        [1] Felderer M,Büchler M,Johns M,et al.Security Testing:A Survey[M]//Advances in Computers,2015.

        [2] 王丹,趙文兵,丁治明.Web應(yīng)用常見注入式安全漏洞檢測關(guān)鍵技術(shù)綜述[J].北京工業(yè)大學(xué)學(xué)報(bào),2016,42(12):1822-1832.

        [3] Felderer M,Zech P,Breu R,et al.Model-based security testing:a taxonomy and systematic classification[J].Software Testing Verification & Reliability,2016,26(2):119-148.

        [4] Schneider M,Tcholtchev N,Pietschker A,et al.Behavioral fuzzing operators for UML sequence diagrams[C]//International Conference on System Analysis and Modeling:Theory and Practice.Springer-Verlag,2012:88-104.

        [5] Kaur N,Kaur P.Mitigation of SQL Injection Attacks using Threat Modeling[J].Acm Sigsoft Software Engineering Notes,2014,39(6):1-6.

        [6] Lebeau F,Legeard B,Peureux F,et al.Model-Based Vulnerability Testing for Web Applications[C]//IEEE Sixth International Conference on Software Testing,Verification and Validation Workshops.IEEE,2013:445-452.

        [7] Marback A,Do H,He K,et al.A threat model-based approach to security testing[J].Software Practice & Experience,2013,43(2):241-258.

        [8] Xu D,Tu M,Sanford M,et al.Automated Security Test Generation with Formal Threat Models[J].IEEE Transactions on Dependable & Secure Computing,2012,9(4):526-540.

        [9] Wang L,Wong E,Xu D.A Threat Model Driven Approach for Security Testing[C]//International Workshop on Software Engineering for Secure Systems,2007.Sess’07:ICSE Workshops.IEEE,2007:10.

        [10] Büchler M,Oudinet J,Pretschner A.Semi-Automatic Security Testing of Web Applications from a Secure Model[C]//International Conference on Software Security and Reliability.2012:253-262.

        [11] Swiderski F,Snyder W.Threat Modeling[M].Redmond,Washington:Microsoft Press,2004.

        [12] Wagner F,Schmuki R,Wagner T,et al.Modeling Software with Finite State Machines:A Practical Approach[M].Auerbach Publications,2006.

        [13] Binder R V.Testing Object-Oriented Systems:Models,Patterns, and Tools[M].Addison Wesley,2000.

        [14] 繆淮扣,陳圣波,曾紅衛(wèi).基于模型的Web應(yīng)用測試[J].計(jì)算機(jī)學(xué)報(bào),2011,34(6):1012-1028.

        [15] 錢忠勝.基于模型的Web應(yīng)用測試用例生成方法[D].上海:上海大學(xué),2008.

        猜你喜歡
        模型設(shè)計(jì)
        一半模型
        重要模型『一線三等角』
        何為設(shè)計(jì)的守護(hù)之道?
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        《豐收的喜悅展示設(shè)計(jì)》
        流行色(2020年1期)2020-04-28 11:16:38
        瞞天過?!律O(shè)計(jì)萌到家
        設(shè)計(jì)秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計(jì)叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        3D打印中的模型分割與打包
        FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
        丰满少妇人妻无码| 无码国产一区二区色欲| 内射中出后入内射极品女神视频| 有坂深雪中文字幕亚洲中文 | 日韩精品成人无码专区免费| 国产精品亚洲综合色区韩国| 国产高清在线91福利| 激情五月六月婷婷俺来也| 色哟哟最新在线观看入口| 理论片午午伦夜理片影院| 国产精品系列亚洲第一| 亚洲一本二区偷拍精品| 欧美丰满老熟妇aaaa片| 天天看片视频免费观看| 99久久精品国产片| 亚洲精品一区二区在线免费观看| 亚洲av精品一区二区三区| 男女超爽视频免费播放| 亚洲精品久久久中文字 | 国产精品无码av无码| 日产无人区一线二线三线新版 | 久久久久亚洲av无码专区体验| 97久久综合区小说区图片专区 | 久久成人国产精品| 久久无码精品精品古装毛片| 少妇激情一区二区三区| 亚洲丁香婷婷久久一区二区| 性欧美暴力猛交69hd| 亚洲午夜无码视频在线播放| 中文字幕一区二三区麻豆| 久久久亚洲精品一区二区三区| 国产精品麻豆综合在线| 91青青草免费在线视频| 亚洲天堂av三区四区不卡| 午夜精品久久久久成人| 亚洲a人片在线观看网址| 日本不卡视频一区二区| 我爱我色成人网| 亚洲国产99精品国自产拍| 亚洲av天堂一区二区| 国产成人无码精品久久久露脸|