專利名稱:軟件安全開發(fā)中的可復(fù)用攻擊模式的建立及復(fù)用方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件安全技術(shù)領(lǐng)域,特別是涉及一種基于統(tǒng)一威脅模型的安全軟件的開發(fā)方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)和各種基于互聯(lián)網(wǎng)的計(jì)算機(jī)應(yīng)用的飛速發(fā)展,人們?cè)絹碓揭蕾囉谧鳛檫@些應(yīng)用載體的軟件,對(duì)軟件安全的關(guān)注也越來越高。但是,軟件安全的狀況不能令人滿意。軟件經(jīng)常被攻擊,導(dǎo)致計(jì)算機(jī)安全事故層出不窮,造成了嚴(yán)重的經(jīng)濟(jì)損失和信譽(yù)損失。因此,如何在軟件的開發(fā)中保證其安全性,提高軟件安全評(píng)估與測試效率,對(duì)于可信軟件的開發(fā)具有重要意義。在軟件安全的研究過程中,很多專家已經(jīng)給出了軟件安全開發(fā)的范式,基于攻擊模式的軟件安全性檢測也有研究,其目的是構(gòu)建安全知識(shí)庫,以輔助開發(fā)人員分析軟件的 安全性,并給出相應(yīng)的緩和策略。但是基于結(jié)構(gòu)和半結(jié)構(gòu)化描述攻擊模式,更好的檢測軟件系統(tǒng)的安全性與完備性,同時(shí)輔助軟件安全評(píng)估與測試,這樣的方法并不多見。
發(fā)明內(nèi)容
基于上述現(xiàn)有技術(shù)存在的問題,本發(fā)明提出了一種基軟件安全開發(fā)中的可復(fù)用攻擊模式的建立及復(fù)用方法,以形式化方法描述攻擊模式,將已知的、經(jīng)常發(fā)生的攻擊及其緩和方案抽象成與特定系統(tǒng)無關(guān)的攻擊模式,并構(gòu)建攻擊模式知識(shí)庫;在建模威脅模型時(shí),通過攻擊模式匹配、修改、和實(shí)例化的步驟實(shí)現(xiàn)了攻擊模式的復(fù)用,幫助開發(fā)人員對(duì)威脅進(jìn)行建模,提高軟件安全評(píng)估與測試的效率。提高構(gòu)建統(tǒng)一威脅模型的效率和準(zhǔn)確性,從而提高軟件安全評(píng)估與測試效率,屬于本發(fā)明提供一種軟件安全開發(fā)中的可復(fù)用攻擊模式的建立方法,該建立方法包括以下步驟步驟一,構(gòu)建攻擊模式知識(shí)庫,對(duì)攻擊模式進(jìn)行抽象,即剔除與特定系統(tǒng)相關(guān)的細(xì)節(jié)信息后,將針對(duì)系統(tǒng)的已知的、經(jīng)常發(fā)生的攻擊方法及其相應(yīng)的緩和方案抽象成泛化形式,使其能夠與多種系統(tǒng)相匹配,然后存入數(shù)據(jù)庫;步驟二,在建模針對(duì)系統(tǒng)的威脅時(shí),從不同的系統(tǒng)中搜索并匹配應(yīng)用這些抽象攻擊方法的各種條件;步驟三,根據(jù)匹配結(jié)果對(duì)抽象的攻擊方法及其相應(yīng)的緩和方案進(jìn)行調(diào)整和修改;步驟四,將抽象的攻擊方法及其相應(yīng)的緩和方案實(shí)例化,應(yīng)用到針對(duì)具體系統(tǒng)的威脅建模過程,完成攻擊模式的復(fù)用。本發(fā)明還提出了一種軟件安全開發(fā)中的可復(fù)用攻擊模式的復(fù)用方法,該復(fù)用方法包括以下步驟對(duì)攻擊模式的描述信息、前置條件和后置條件進(jìn)行匹配;如果滿足上述條件則進(jìn)一步對(duì)應(yīng)用攻擊模式的方法進(jìn)行判斷;如果系統(tǒng)的功能模型中包含攻擊模式所針對(duì)的相同系統(tǒng)功能,則采用第一類應(yīng)用攻擊模式的方法一直接應(yīng)用攻擊模式的復(fù)用方法;如果系統(tǒng)的功能模型中包含攻擊模式所針對(duì)的類似系統(tǒng)功能,則采用第二類應(yīng)用攻擊模式的方法——將攻擊模式修改后再應(yīng)用的復(fù)用方法。與現(xiàn)有技術(shù)相比,本發(fā)明的攻擊模式復(fù)用方法能夠輔助設(shè)計(jì)人員快速準(zhǔn)確地建模并復(fù)用經(jīng)常發(fā)生的、已知的攻擊方法及其相應(yīng)的緩和方案,提供軟件安全評(píng)估的效率。還能夠輔助測試人員組織、管理并復(fù)用攻擊模式中的安全測試子序列,提高軟件安全測試的效率。攻擊模式的復(fù)用,提高建模威脅的效率和準(zhǔn)確性,從而提高威脅模型驅(qū)動(dòng)的軟件安全評(píng)估與測試的效率,增強(qiáng)軟件系統(tǒng)的安全性。
圖I本發(fā)明的軟件安全開發(fā)中的可復(fù)用攻擊模式的應(yīng)用總體流程;圖2為本發(fā)明的軟件安全開發(fā)中的可復(fù)用攻擊模式的直接應(yīng)用流程;
圖3為本發(fā)明的軟件安全開發(fā)中的將可復(fù)用模式修改后再應(yīng)用的流程;圖4為本發(fā)明實(shí)施例之一的建模信息泄露統(tǒng)一威脅模型時(shí)直接應(yīng)用獲取用戶名和密碼攻擊模式的示意圖;圖5為本發(fā)明實(shí)施例之二的建模SQL注入統(tǒng)一威脅模型時(shí)對(duì)SQL注入攻擊模式修改后進(jìn)行應(yīng)用的示意圖。
具體實(shí)施例方式以下結(jié)合附圖及較佳實(shí)施例,對(duì)依據(jù)本發(fā)明提供的具體實(shí)施方式
、結(jié)構(gòu)、特征及其功效,詳細(xì)說明如下。攻擊模式描述語言是描述攻擊模式的結(jié)構(gòu)化語言,它描述了經(jīng)常發(fā)生的、已知的攻擊方法以及其相應(yīng)的緩和方案,其主體結(jié)構(gòu)包括攻擊模式編號(hào)、攻擊模式描述信息、攻擊模式前置條件、攻擊模式后置條件、節(jié)點(diǎn)集合和關(guān)系集合。本發(fā)明采用XML Schema來定義攻擊模式描述語言,主要定義了攻擊模式描述語言的整體結(jié)構(gòu)、各個(gè)元素的數(shù)據(jù)結(jié)構(gòu)類型及其需要滿足的約束條件。采用XML描述的攻擊模式具有良好的結(jié)構(gòu),易于數(shù)據(jù)庫化,為攻擊模式在軟件安全評(píng)估與測試中的應(yīng)用奠定了基礎(chǔ),并且可以使用攻擊模式描述語言的XML Schema對(duì)攻擊模式例程進(jìn)行結(jié)構(gòu)和語法的驗(yàn)證。專門研究計(jì)算機(jī)安全的著名網(wǎng)站CWE和CAPEC發(fā)布了大量關(guān)于計(jì)算機(jī)漏洞和攻擊模式的信息,并提供了每一種漏洞和攻擊模式的實(shí)施步驟、緩和方案的詳細(xì)描述信息。本發(fā)明從CWE和CAPEC獲取建模攻擊模式所需要的攻擊方法及其緩和方案的知識(shí),用于建模攻擊模式并構(gòu)建攻擊模式知識(shí)庫。攻擊模式復(fù)用方法是一種在建模針對(duì)各種系統(tǒng)的威脅的過程中,復(fù)用已知的、經(jīng)常發(fā)生的攻擊方法及其相應(yīng)的緩和方案的技術(shù)。本發(fā)明的可復(fù)用的攻擊模式的建立包括四個(gè)關(guān)鍵步驟抽象、匹配、修改以及實(shí)例化。抽象該步驟通過剔除與特定系統(tǒng)相關(guān)的細(xì)節(jié)信息,將針對(duì)系統(tǒng)的已知的、經(jīng)常發(fā)生的攻擊方法及其相應(yīng)的緩和方案抽象成泛化形式,使其能夠與多種系統(tǒng)相匹配,然后存入數(shù)據(jù)庫,構(gòu)建攻擊模式知識(shí)庫。
匹配該步驟在建模針對(duì)系統(tǒng)的威脅時(shí),從不同的系統(tǒng)中搜索并匹配應(yīng)用這些抽象攻擊方法的各種條件。修改該步驟根據(jù)匹配結(jié)果對(duì)抽象的攻擊方法及其相應(yīng)的緩和方案進(jìn)行調(diào)整和修改。實(shí)例化該步驟將抽象的攻擊方法及其相應(yīng)的緩和方案實(shí)例化,應(yīng)用到針對(duì)具體系統(tǒng)的威脅建模過程,完成攻擊模式的復(fù)用。將攻擊模式應(yīng)用于針對(duì)具體系統(tǒng)的威脅建模過程時(shí),需要執(zhí)行攻擊模式復(fù)用技術(shù)的匹配、修改和實(shí)例化步驟,整體流程如圖I所示。首先,對(duì)攻擊模式編號(hào)進(jìn)行匹配,這一步驟是可選的;然后,對(duì)攻擊模式的描述信息、前置條件和后置條件進(jìn)行匹配;如果滿足上述條件則進(jìn)一步對(duì)應(yīng)用攻擊模式的方法進(jìn)行判斷;如果系統(tǒng)的功能模型中包含攻擊模式所針對(duì)的相同系統(tǒng)功能,則采用第一類應(yīng)用攻擊模式的方法——直接應(yīng)用攻擊模式的方法;如果系統(tǒng)的功能模型中包含攻擊模式所針對(duì)的類似系統(tǒng)功能,則采用第二類應(yīng)用攻擊模式的 方法——將攻擊模式修改后再應(yīng)用的方法。直接應(yīng)用攻擊模式的流程如圖2所示。首先,對(duì)攻擊模式進(jìn)行實(shí)例化,將攻擊模式中的泛化描述轉(zhuǎn)化為針對(duì)目標(biāo)軟件的具體描述,這一步驟類似于面向?qū)ο笤O(shè)計(jì)中類的實(shí)例化。然后,為葉節(jié)點(diǎn)的評(píng)估屬性提供參考賦值,根據(jù)需要調(diào)整葉節(jié)點(diǎn)的評(píng)估賦值。完成上述步驟后,將攻擊模式中的葉節(jié)點(diǎn)與事件進(jìn)行綁定,并將事件與參數(shù)進(jìn)行綁定。這兩個(gè)步驟為安全測試序列的生成奠定了基礎(chǔ),并且能夠幫助測試人員復(fù)用攻擊模式中的安全測試子序列。將葉節(jié)點(diǎn)與相應(yīng)的緩和方案進(jìn)行關(guān)聯(lián)。接下來,開始對(duì)緩和方案進(jìn)行實(shí)例化,將緩和方案中的泛化描述轉(zhuǎn)化為針對(duì)目標(biāo)軟件的具體描述。最后,根據(jù)需要對(duì)緩和方案進(jìn)行調(diào)整,完成直接應(yīng)用攻擊模式的流程。將攻擊模式修改后再應(yīng)用的方法的流程如圖3所示,其中,包括四種修改方式
(I)添加節(jié)點(diǎn);⑵刪除節(jié)點(diǎn);⑶合并節(jié)點(diǎn);⑷分拆節(jié)點(diǎn)。首先添加/刪除/合并/分拆節(jié)點(diǎn),確定節(jié)點(diǎn)的AND/0R/LEAF類型,根據(jù)需要對(duì)節(jié)點(diǎn)信息進(jìn)行調(diào)整,并判斷是否需要繼續(xù)進(jìn)行添加/刪除/合并/分拆節(jié)點(diǎn)操作,如果需要?jiǎng)t返回到開始步驟,否則回到判斷是否需要調(diào)整節(jié)點(diǎn)信息的步驟。接下來開始對(duì)攻擊模式進(jìn)行實(shí)例化,將攻擊模式中的泛化描述轉(zhuǎn)化為針對(duì)目標(biāo)軟件的具體描述。然后,為葉節(jié)點(diǎn)的評(píng)估屬性提供參考賦值,根據(jù)需要對(duì)葉節(jié)點(diǎn)的評(píng)估屬性的參考賦值進(jìn)行調(diào)整。完成上述步驟后,將攻擊模式中的葉節(jié)點(diǎn)與事件進(jìn)行綁定,并將事件與參數(shù)進(jìn)行綁定。這兩個(gè)步驟為安全測試序列的生成奠定了基礎(chǔ),并且能夠幫助測試人員復(fù)用攻擊模式中的安全測試子序列。將葉節(jié)點(diǎn)與相應(yīng)的緩和方案進(jìn)行關(guān)聯(lián)。然后,開始對(duì)緩和方案進(jìn)行實(shí)例化,將緩和方案中的泛化描述轉(zhuǎn)化為針對(duì)目標(biāo)軟件的具體描述。最后,根據(jù)需要對(duì)緩和方案進(jìn)行調(diào)整,完成將攻擊模式修改后再應(yīng)用的流程。下面為本發(fā)明的具體實(shí)施方式
的舉例。例如,網(wǎng)上購物系統(tǒng)是當(dāng)今發(fā)展最為迅速的Web應(yīng)用程序之一,近年來,諸多網(wǎng)上購物系統(tǒng)因?yàn)榇嬖诎踩┒炊还?。因此,本發(fā)明采用攻擊模式復(fù)用方法建模攻擊場景中的統(tǒng)一威脅模型,并進(jìn)行攻擊場景模型驅(qū)動(dòng)的軟件安全測試,系統(tǒng)地闡明復(fù)用攻擊模式的具體流程。案例以建模信息泄露統(tǒng)一威脅模型和SQL注入統(tǒng)一威脅模型時(shí)應(yīng)用攻擊模式的流程為例,分別詳細(xì)闡述建模針對(duì)具體系統(tǒng)的威脅時(shí),直接應(yīng)用攻擊模式的方法和將攻擊模式修改后再應(yīng)用的方法的具體流程。
一、直接應(yīng)用攻擊模式方法的實(shí)例在建模osCommerce系統(tǒng)的信息泄露統(tǒng)一威脅模型,首先,需要米取攻擊方法獲取注冊(cè)用戶的用戶名和密碼。根據(jù)圖I中應(yīng)用攻擊模式總體流程,根據(jù)步驟一,通過搜索發(fā)現(xiàn)獲取用戶名和密碼的攻擊模式的描述與此需求匹配。根據(jù)步驟二,對(duì)攻擊模式的前置條件和后置條件進(jìn)行判斷。獲取用戶名和密碼的攻擊模式的前置條件是系統(tǒng)處于運(yùn)行狀態(tài),攻擊者能夠輸入用戶名和密碼。后置條件是攻擊者獲得用戶名和密碼。而所建模的信息泄露統(tǒng)一威脅模型正是針對(duì)運(yùn)行的osCo_erce系統(tǒng),攻擊者通過一定的攻擊方法獲取該系統(tǒng)的注冊(cè)用戶的用戶名和密碼以后,偽裝成合法的注冊(cè)用戶登錄osCommerce系統(tǒng),進(jìn)行瀏覽或修改注冊(cè)用戶的保密賬戶信息等惡意操作,造成注冊(cè)用戶的保密賬戶信息被泄露的安全事件。由此可見,這些需求符合獲取用戶名和密碼攻擊模式的前置條件和后置條件。根據(jù)步驟三,判斷應(yīng)用攻擊模式的方法。獲取用戶名和密碼的攻擊模式針對(duì)軟件系統(tǒng)的用戶登錄模塊,而osCommerce系統(tǒng)包含相同功能的注冊(cè)用戶登錄模塊,因此可以直接應(yīng)用攻擊模式。
·
根據(jù)圖2中直接應(yīng)用攻擊模式方法流程的步驟一,開始對(duì)攻擊模式進(jìn)行實(shí)例化,將攻擊模式中泛化的描述轉(zhuǎn)化為針對(duì)目標(biāo)軟件的具體描述。例如,獲取用戶名和密碼的攻擊模式包含兩條攻擊路徑,一條是通過字典攻擊獲取用戶名和密碼,另一條是通過暴力破解攻擊方法獲取用戶名和密碼。需要將上述泛化的描述轉(zhuǎn)化為針對(duì)目標(biāo)軟件osCommerce系統(tǒng)的具體描述,即通過字典攻擊方法或暴力破解攻擊方法獲取osCommerce系統(tǒng)注冊(cè)用戶的用戶名和密碼,這樣就明確了目標(biāo)軟件是osCommerce系統(tǒng),并且是針對(duì)該系統(tǒng)注冊(cè)用戶的用戶名和密碼進(jìn)行攻擊。根據(jù)該流程的步驟二,判斷是否需要對(duì)獲取用戶名和密碼攻擊模式的葉節(jié)點(diǎn)所提供的評(píng)估屬性的參考賦值進(jìn)行調(diào)整。經(jīng)過判斷,發(fā)現(xiàn)該攻擊模式的葉節(jié)點(diǎn)所提供的評(píng)估屬性的參考賦值符合針對(duì)osCommerce系統(tǒng)的評(píng)估,不需要進(jìn)行調(diào)整。根據(jù)該流程的步驟三,將獲取用戶名和密碼攻擊模式中的葉節(jié)點(diǎn)與具體的事件進(jìn)行綁定。例如,通過字典攻擊方法獲取用戶名和密碼的攻擊路徑包含兩個(gè)葉節(jié)點(diǎn),分別是通過字典攻擊獲取用戶名(N41)與通過字典攻擊獲取密碼(N42)。需要將這兩個(gè)葉節(jié)點(diǎn)與針對(duì)osCommerce系統(tǒng)所采取的具體的事件綁定,即通過字典攻擊獲取用戶名(N41)與inputUsername ()事件綁定,通過字典攻擊獲取密碼(N42)與inputPassword ()事件綁定。根據(jù)該流程的步驟四,將具體的事件與其相應(yīng)的參數(shù)進(jìn)行綁定。例如,將inputUsername ()事件與String類型的參數(shù)username綁定,將inputPassword ()事件與String類型的參數(shù)password綁定。根據(jù)該流程的步驟五,將葉節(jié)點(diǎn)與相應(yīng)的緩和方案綁定。例如,針對(duì)字典攻擊和暴力破解獲取用戶名和密碼的攻擊方法,采取三種緩和方案(I)對(duì)多次嘗試用戶名和密碼的賬戶進(jìn)行鎖定;(2)對(duì)無效的用戶名和密碼采用延遲輸入技術(shù);(3)支持強(qiáng)密碼。根據(jù)該流程的步驟六,對(duì)緩和方案進(jìn)行實(shí)例化,將緩和方案中泛化的描述轉(zhuǎn)化為針對(duì)具體目標(biāo)軟件的描述。例如,針對(duì)osCommerce系統(tǒng),采取的具體緩和方案是(I)當(dāng)osCommerce系統(tǒng)的注冊(cè)用戶嘗試用戶名和密碼超過限定次數(shù)(6次)以后,對(duì)該注冊(cè)用戶的賬戶進(jìn)行半個(gè)小時(shí)的鎖定,并將該賬戶的異常情況通知osCo_erce系統(tǒng)管理員和該注冊(cè)用戶;(2)當(dāng)osCommerce系統(tǒng)的注冊(cè)用戶每一次輸入無效的用戶名和密碼后,采用一定的延遲(I秒)后才允許重新輸入用戶名和密碼;(3)采用支持強(qiáng)密碼的技術(shù),注冊(cè)用戶可以選用大小寫字母、數(shù)字和一些特定字符混用的高強(qiáng)度密碼。根據(jù)該流程的步驟七,判斷是否需要調(diào)整緩和方案。經(jīng)過判斷,不需要對(duì)該緩和方案進(jìn)行調(diào)整。結(jié)束整個(gè)直接應(yīng)用攻擊模式的流程,如圖4所示,建模信息泄露統(tǒng)一威脅模型時(shí)直接應(yīng)用獲取用戶名和密碼攻擊模式。二、將攻擊模式修改后再應(yīng)用的實(shí)例在建模osCommerce系統(tǒng)的SQL注入統(tǒng)一威脅模型時(shí),需要米取SQL注入攻擊方法獲取注冊(cè)用戶的信用卡信息、個(gè)人信息或登錄信息。根據(jù)圖I中應(yīng)用攻擊模式總體流程根據(jù)步驟一,通過搜索發(fā)現(xiàn)SQL注入攻擊模式的描述與此需求匹配;根據(jù)步驟二對(duì)攻擊模式的前置條件和后置條件進(jìn)行判斷。SQL注入攻擊模式的前置條件是系統(tǒng)處于運(yùn)行狀態(tài),攻擊者的輸入會(huì)被用于構(gòu)建SQL語句,然后在服務(wù)器端的數(shù)據(jù)庫上執(zhí)行。后置條件是攻擊者在服務(wù)器端的數(shù)據(jù)庫上執(zhí)行惡意的SQL代碼。造成攻擊者能夠繞過安全驗(yàn)證,通過執(zhí)行SQL查詢獲取保密信息(例如,用戶名和密碼,信用卡信息),對(duì)數(shù)據(jù)庫進(jìn)行非法修 改(例如,刪除數(shù)據(jù)庫中的一張表,向數(shù)據(jù)庫中插入非法數(shù)據(jù)),等嚴(yán)重的安全問題。而所建模的SQL注入統(tǒng)一威脅模型正是針對(duì)運(yùn)行的osCommerce系統(tǒng),攻擊者通過SQL注入攻擊獲取注冊(cè)用戶的信用卡信息、個(gè)人信息或登錄信息。由此可見,這些需求符合SQL注入攻擊模式的前置條件和后置條件。根據(jù)步驟三,判斷應(yīng)用攻擊模式的方法。SQL注入攻擊模式針對(duì)軟件系統(tǒng)的各種用戶輸入域,輸入域中的用戶輸入最終會(huì)被用于構(gòu)建SQL語句并在服務(wù)器端的數(shù)據(jù)庫上執(zhí)行。而osCommerce系統(tǒng)包含一個(gè)用戶編輯商品信息的模塊,該模塊最終將用戶編輯后的商品信息提交到服務(wù)器端的數(shù)據(jù)庫上執(zhí)行SQL查詢操作,用于生成最終的用戶訂單。這與SQL注入攻擊模式所針對(duì)的系統(tǒng)功能模塊類似,因此,需要根據(jù)具體情況對(duì)SQL注入攻擊模式進(jìn)行修改后再應(yīng)用。根據(jù)圖3中修改后應(yīng)用攻擊模式方法流程的步驟一,先根據(jù)具體情況對(duì)攻擊模式進(jìn)行修改。在osCommerce系統(tǒng)中,獲取注冊(cè)用戶的信用卡信息、個(gè)人信息、登錄信息的SQL注入攻擊是發(fā)生在用戶編輯商品信息時(shí),要到達(dá)這一步驟,用戶還需要先瀏覽osCommerce購物網(wǎng)站并選擇一個(gè)商品。因此SQL注入攻擊模式中的確定SQL注入的地點(diǎn)的節(jié)點(diǎn)(N14)需要被分拆為三個(gè)節(jié)點(diǎn)用戶瀏覽osCommerce購物網(wǎng)站(N12),選擇一個(gè)商品(N13),編輯商品信息(N14)。因?yàn)楣粽呦胪ㄟ^SQL注入攻擊獲取注冊(cè)用戶的信用卡信息、個(gè)人信息、登錄信息,所以需要向SQL注入攻擊模式中的注入惡意的SQL代碼節(jié)點(diǎn)(N15)添加三個(gè)子節(jié)點(diǎn),根據(jù)攻擊者的不同意圖,分別注入獲取注冊(cè)用戶的信用卡信息(N17)、個(gè)人信息(N18)、登錄信息(N19)的惡意SQL代碼。根據(jù)流程的步驟二開始對(duì)攻擊模式進(jìn)行實(shí)例化,將攻擊模式中泛化的描述轉(zhuǎn)化為針對(duì)目標(biāo)軟件的具體描述。例如,SQL注入攻擊模式包含一條攻擊路徑,即通過SQL注入攻擊對(duì)系統(tǒng)造成安全危害。需要將上述泛化的描述轉(zhuǎn)化為針對(duì)目標(biāo)軟件osCommerce系統(tǒng)的具體描述。首先,確定SQL注入的地點(diǎn)的節(jié)點(diǎn)被具體化為用戶瀏覽osCommerce購物網(wǎng)站并選擇一個(gè)商品,并對(duì)該商品的信息進(jìn)行編輯。其次,通過對(duì)SQL注入攻擊模式的修改,針對(duì)osCommerce系統(tǒng)建模的SQL注入統(tǒng)一威脅模型中包含三條攻擊路徑,第一條是通過注入惡意的SQL代碼獲取注冊(cè)用戶的信用卡信息,第二條是通過注入惡意的SQL代碼獲取注冊(cè)用戶的個(gè)人信息,第三條是通過注入惡意的SQL代碼獲取注冊(cè)用戶的登錄信息。這樣就明確了目標(biāo)軟件是osCommerce系統(tǒng),并且是針對(duì)該系統(tǒng)注冊(cè)用戶的信用卡信息、個(gè)人信息和登錄信息。最后,執(zhí)行惡意的SQL代碼節(jié)點(diǎn)具體化為將商品添加到購物車,然后,在后臺(tái)系統(tǒng)對(duì)其進(jìn)行處理生成用戶訂單時(shí),惡意的SQL代碼被執(zhí)行。根據(jù)該流程的步驟三,判斷是否需要對(duì)SQL注入攻擊模式的葉節(jié)點(diǎn)所提供的評(píng)估屬性的參考賦值進(jìn)行調(diào)整。經(jīng)過判斷,發(fā)現(xiàn)該攻擊模式的葉節(jié)點(diǎn)所提供的參考賦值不完全符合針對(duì)osCommerce系統(tǒng)的評(píng)估,需要對(duì)其進(jìn)行相應(yīng)的調(diào)整。根據(jù)該流程的步驟四,將SQL注入攻擊模式中的葉節(jié)點(diǎn)與具體的事件進(jìn)行綁定。例如,用戶瀏覽osCommerce購物網(wǎng)站節(jié)點(diǎn)(N12)需要與openURLO事件綁定,選擇一個(gè)商品節(jié)點(diǎn)(N13)需要與getProductIDO事件綁定,編輯商品信息需要與editProductO事件綁定。注入獲取注冊(cè)用戶的信用卡信息(N17)、個(gè)人信息(N18)、登錄信息(N19)的惡意SQL代碼,這三個(gè)節(jié)點(diǎn)都需要與editProductO事件綁定。將商品添加到購物車(N16)節(jié)點(diǎn)需要與addToShopingCartO事件綁定。根據(jù)該流程的步驟五,將具體的事件與其相應(yīng)的參數(shù)進(jìn)行綁定。例如,將openURLO事件與String類型的參數(shù)url綁定,將getProductIDO事件、editProduct ()事件和addToShopingCartO事件都與數(shù)組類型的參數(shù)id□綁定。根據(jù)該流程的步驟六,將葉節(jié)點(diǎn)與相應(yīng)的緩和方案綁定。例如,針對(duì)SQL注入攻擊模式,采取三種緩和方案(I)對(duì)用戶輸入進(jìn)行過濾;(2)以用戶所必須的最低權(quán)限運(yùn)行其查詢;(3)使用參數(shù)化查詢。根據(jù)該流程的步驟七,對(duì)緩和方案進(jìn)行實(shí)例化,將緩和 方案中泛化的描述轉(zhuǎn)化為針對(duì)具體目標(biāo)軟件的描述。例如,針對(duì)osCommerce系統(tǒng),采取的具體緩和方案是(I)建立針對(duì)osCommerce系統(tǒng)的用戶輸入白名單(即可以被接受的用戶輸入數(shù)據(jù))和黑名單(即應(yīng)該拒絕的用戶輸入數(shù)據(jù)),對(duì)用戶輸入進(jìn)行過濾;(2)以用戶所必須的最低權(quán)限運(yùn)行其查詢,如果用戶查詢產(chǎn)生了錯(cuò)誤信息,對(duì)錯(cuò)誤信息進(jìn)行簡化處理,不要將過多與數(shù)據(jù)庫相關(guān)的錯(cuò)誤信息反饋給用戶。(3)使用參數(shù)化查詢將SQL語句中的數(shù)據(jù)與代碼區(qū)分開來。根據(jù)該流程步驟八,判斷是否需要調(diào)整緩和方案。經(jīng)過判斷,不需要對(duì)該緩和方案進(jìn)行調(diào)整。結(jié)束整個(gè)修改后應(yīng)用攻擊模式的流程,建模SQL注入統(tǒng)一威脅模型時(shí)對(duì)SQL注入攻擊模式修改后進(jìn)行應(yīng)用的示意圖如圖5所示。
權(quán)利要求
1.一種軟件安全開發(fā)中的可復(fù)用攻擊模式的建立方法,其特征在于,該建立方法包括以下步驟 步驟一,構(gòu)建攻擊模式知識(shí)庫,對(duì)攻擊模式進(jìn)行抽象,即剔除與特定系統(tǒng)相關(guān)的細(xì)節(jié)信息后,將針對(duì)系統(tǒng)的已知的、經(jīng)常發(fā)生的攻擊方法及其相應(yīng)的緩和方案抽象成泛化形式,使其能夠與多種系統(tǒng)相匹配,然后存入數(shù)據(jù)庫; 步驟二,在建模針對(duì)系統(tǒng)的威脅時(shí),從不同的系統(tǒng)中搜索并匹配應(yīng)用這些抽象攻擊方法的各種條件; 步驟三,根據(jù)匹配結(jié)果對(duì)抽象的攻擊方法及其相應(yīng)的緩和方案進(jìn)行調(diào)整和修改; 步驟四,將抽象的攻擊方法及其相應(yīng)的緩和方案實(shí)例化,應(yīng)用到針對(duì)具體系統(tǒng)的威脅建模過程,完成攻擊模式的復(fù)用。
2.如權(quán)利要求I所述的軟件安全開發(fā)中的可復(fù)用攻擊模式的建立方法,該復(fù)用方法包括以下步驟采用XML Schema作為攻擊模式描述語言。
3.利用如權(quán)利要求I所述的軟件安全開發(fā)中的可復(fù)用攻擊模式的復(fù)用方法,其特征在于,該復(fù)用方法包括以下步驟 對(duì)攻擊模式的描述信息、前置條件和后置條件進(jìn)行匹配;如果滿足上述條件則進(jìn)一步對(duì)應(yīng)用攻擊模式的方法進(jìn)行判斷;如果系統(tǒng)的功能模型中包含攻擊模式所針對(duì)的相同系統(tǒng)功能,則采用第一類應(yīng)用攻擊模式的方法——直接應(yīng)用攻擊模式的復(fù)用方法;如果系統(tǒng)的功能模型中包含攻擊模式所針對(duì)的類似系統(tǒng)功能,則采用第二類應(yīng)用攻擊模式的方法——將攻擊模式修改后再應(yīng)用的復(fù)用方法。
4.權(quán)利要求3所述的軟件安全開發(fā)中的可復(fù)用攻擊模式的復(fù)用方法,其特征在于,所述直接應(yīng)用攻擊模式的方法還包括以下步驟 首先,對(duì)攻擊模式進(jìn)行實(shí)例化,將攻擊模式中的泛化描述轉(zhuǎn)化為針對(duì)目標(biāo)軟件的具體描述,這一步驟類似于面向?qū)ο笤O(shè)計(jì)中類的實(shí)例化。然后,為葉節(jié)點(diǎn)的評(píng)估屬性提供參考賦值,根據(jù)需要調(diào)整葉節(jié)點(diǎn)的評(píng)估賦值。完成上述步驟后,將攻擊模式中的葉節(jié)點(diǎn)與事件進(jìn)行綁定,并將事件與參數(shù)進(jìn)行綁定。這兩個(gè)步驟為安全測試序列的生成奠定了基礎(chǔ),并且能夠幫助測試人員復(fù)用攻擊模式中的安全測試子序列。將葉節(jié)點(diǎn)與相應(yīng)的緩和方案進(jìn)行關(guān)聯(lián)。接下來,開始對(duì)緩和方案進(jìn)行實(shí)例化,將緩和方案中的泛化描述轉(zhuǎn)化為針對(duì)目標(biāo)軟件的具體描述。最后,根據(jù)需要對(duì)緩和方案進(jìn)行調(diào)整,完成直接應(yīng)用攻擊模式的流程。
5.權(quán)利要求3所述的軟件安全開發(fā)中的可復(fù)用攻擊模式的復(fù)用方法,其特征在于,所述攻擊模式修改后再應(yīng)用的復(fù)用方法,還包括以下步驟 首先添加/刪除/合并/分拆節(jié)點(diǎn),確定節(jié)點(diǎn)的AND/OR/LEAF類型,根據(jù)需要對(duì)節(jié)點(diǎn)信息進(jìn)行調(diào)整,并判斷是否需要繼續(xù)進(jìn)行添加/刪除/合并/分拆節(jié)點(diǎn)操作,如果需要?jiǎng)t返回到開始步驟,否則回到判斷是否需要調(diào)整節(jié)點(diǎn)信息的步驟。接下來開始對(duì)攻擊模式進(jìn)行實(shí)例化,將攻擊模式中的泛化描述轉(zhuǎn)化為針對(duì)目標(biāo)軟件的具體描述。然后,為葉節(jié)點(diǎn)的評(píng)估屬性提供參考賦值,根據(jù)需要對(duì)葉節(jié)點(diǎn)的評(píng)估屬性的參考賦值進(jìn)行調(diào)整。完成上述步驟后,將攻擊模式中的葉節(jié)點(diǎn)與事件進(jìn)行綁定,并將事件與參數(shù)進(jìn)行綁定。這兩個(gè)步驟為安全測試序列的生成奠定了基礎(chǔ),并且能夠幫助測試人員復(fù)用攻擊模式中的安全測試子序列。將葉節(jié)點(diǎn)與相應(yīng)的緩和方案進(jìn)行關(guān)聯(lián)。然后,開始對(duì)緩和方案進(jìn)行實(shí)例化,將緩和方案中的泛化描述轉(zhuǎn)化為針對(duì)目標(biāo)軟件的具體描述。最后,根據(jù)需要對(duì)緩和方案進(jìn)行調(diào)整,完成將攻擊模式修改后再應(yīng)用的流程。
6.權(quán)利要求3所述的軟件安全開發(fā)中的可復(fù)用攻擊模式的復(fù)用方法,其特征在于,所述對(duì)攻擊模式的描述信息、前置條件和后置條件進(jìn)行匹配的步驟之前,先對(duì)攻擊模式編號(hào)進(jìn)行匹配。
全文摘要
本發(fā)明公開了一種軟件安全開發(fā)中的可復(fù)用攻擊模式的建立及復(fù)用方法,其中,建立方法包括四個(gè)關(guān)鍵步驟抽象、匹配、修改以及實(shí)例化;復(fù)用方法包括以下步驟對(duì)攻擊模式的描述信息、前置條件和后置條件進(jìn)行匹配;如果滿足上述條件則進(jìn)一步對(duì)應(yīng)用攻擊模式的方法進(jìn)行判斷;如果系統(tǒng)的功能模型中包含攻擊模式所針對(duì)的相同系統(tǒng)功能,則采用第一類應(yīng)用攻擊模式的方法——直接應(yīng)用攻擊模式的復(fù)用方法;如果系統(tǒng)的功能模型中包含攻擊模式所針對(duì)的類似系統(tǒng)功能,則采用第二類應(yīng)用攻擊模式的方法——將攻擊模式修改后再應(yīng)用的復(fù)用方法。與現(xiàn)有技術(shù)相比,本發(fā)明攻擊模式的復(fù)用,提高建模威脅的效率和準(zhǔn)確性,從而提高威脅模型驅(qū)動(dòng)的軟件安全評(píng)估與測試的效率,增強(qiáng)軟件系統(tǒng)的安全性。
文檔編號(hào)G06F21/00GK102810137SQ20121019432
公開日2012年12月5日 申請(qǐng)日期2012年6月13日 優(yōu)先權(quán)日2012年6月13日
發(fā)明者李曉紅, 閆璐, 何可, 馮志勇, 許光全, 胡靜 申請(qǐng)人:天津大學(xué)