專利名稱:基于剖面劃分的軟件安全性測試需求提取與行為描述方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件安全性測試,尤其涉及一種基于剖面劃分的軟件安全性功能測試 需求提取與行為描述方法。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的發(fā)展,軟件產(chǎn)品在越來越多的領(lǐng)域得到了廣泛的應(yīng)用,但同時(shí) 軟件安全性事件層出不究,正在帶來無法估量的危害與損失。據(jù)美國計(jì)算機(jī)危機(jī)應(yīng)急小組 處理中心 CERT/CC (Computer Emergency Readiness Team Coordination Center)統(tǒng)計(jì)報(bào) 道,從1998年到2002年,軟件安全性危機(jī)事件增長了 2099%,平均每年增長116%,到達(dá) 2008年僅當(dāng)年發(fā)現(xiàn)并公布的安全性缺陷已經(jīng)超過8000個(gè)。解決軟件的安全性問題主要有兩種途徑,模型驗(yàn)證與軟件測試。在現(xiàn)階段,軟件測 試被公認(rèn)為是解決計(jì)算機(jī)軟件安全性問題的最有效、最可行的途徑。在軟件安全性測試中, 安全性的功能測試是發(fā)現(xiàn)軟件安全性缺陷的最有效測試方法之一。但實(shí)際的操作過程中, 安全性功能測試更多采用的是傳統(tǒng)功能測試方法,存在著安全性功能測試需求提取目標(biāo)不 明確,提取過程不規(guī)范,提取的內(nèi)容不完備等問題。造成安全性功能測試需求提取諸多問題的原因主要有以下兩點(diǎn)A.軟件本身的安全性需求定義不明確。大多數(shù)軟件只是通過文檔的方式對(duì)其安全 性目標(biāo)進(jìn)行模糊的說明,沒有具體、詳細(xì)的定義其安生性需求,也就是說在軟件設(shè)計(jì)與生產(chǎn) 階段,就沒有對(duì)其安全性目標(biāo)進(jìn)行充分的考慮。沒有明確的安全性需求當(dāng)然很難提取明確 的安生性測試需求。B.沒有規(guī)范的安全性功能測試需求提取方法。不同測試人員在提取安全性功能測 試需求時(shí)的方式都不相同,或側(cè)重于文檔,或側(cè)重于軟件產(chǎn)品,或側(cè)重于經(jīng)驗(yàn)。沒有統(tǒng)一的 需求提取標(biāo)準(zhǔn),沒有規(guī)定統(tǒng)一規(guī)范的需求提取指導(dǎo)標(biāo)準(zhǔn)。咅Ij 面思想是由Musa在他的文章Operational Profile in Software-ReliabilityEngineering中提出的一種用于解決可靠性測試場景的獲取與細(xì)化 描述的手段。而軟件安全性功能測試需求的獲取與描述符合這種逐層劃分的思想,但在實(shí) 際運(yùn)用中還未使用到。
發(fā)明內(nèi)容
發(fā)明目的為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種基于剖面劃分的軟 件安全性功能測試需求提取與行為描述方法,采用一種基于UML用例圖-活動(dòng)圖-時(shí)序圖 的三層結(jié)構(gòu)對(duì)軟件安全性功能測試需求進(jìn)行分層提取和描述。技術(shù)方案為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為一種基于剖面劃分的軟件安全性測試需求提取與行為描述方法,包括如下步驟(1)創(chuàng)建UML用例圖與活動(dòng)圖;(2)根據(jù)UML用例圖與活動(dòng)圖建立安全性功能測試需求,建立安全性功能測試需求包括如下步驟(2-1)確定UML用例圖與活動(dòng)圖的資產(chǎn),分析需要保護(hù)的內(nèi)容;(2-2)根據(jù)每一種資產(chǎn),進(jìn)行威脅識(shí)別,采用STRIDE模型,分析可能對(duì)資產(chǎn)造成損 害的意外事件原因;(2-3)根據(jù)每一種威脅,建立安全機(jī)制列表;(2-4)根據(jù)安全機(jī)制列表,對(duì)應(yīng)《信息技術(shù)安全評(píng)價(jià)通用準(zhǔn)則》提取安全性功能測 試需求;(3)根據(jù)步驟(2)得到的安全性機(jī)制集合以及安全性功能測試需求,創(chuàng)建軟件安 全性時(shí)序行為圖;(4)根據(jù)軟件安全性時(shí)序行為圖創(chuàng)建軟件測試用例。在步驟⑴中,首先需要建立的是UML用例圖,再根據(jù)UML用例圖建立活動(dòng)圖。UML 用例圖是捕獲應(yīng)用需求的主要手段,也是進(jìn)行功能需求分析的主要方法,它是站在系統(tǒng)使 用者角度描述系統(tǒng)可以處理的各種用例,通常一個(gè)系統(tǒng)功能至少需要一個(gè)用例進(jìn)行描述, 因此用例的集合就是系統(tǒng)的全部功能。而軟件測試就是驗(yàn)證系統(tǒng)能否滿足需求,即用例集 合。使用UML用例圖對(duì)被測軟件系統(tǒng)的各個(gè)功能模塊進(jìn)行建模,為使用活動(dòng)圖對(duì)軟件系統(tǒng) 進(jìn)行分解打下基礎(chǔ)。用例能夠表現(xiàn)軟件的功能需求,為了進(jìn)一步細(xì)化用例,就需要獲得軟件系統(tǒng)執(zhí)行 的基本流程、異常流程、以及其它的流程,這些流程正是系統(tǒng)處理客戶請(qǐng)求時(shí)的主要和次要 執(zhí)行場景,活動(dòng)圖可以很直觀、方便地描述這些流程。使用活動(dòng)圖對(duì)各個(gè)用例進(jìn)行動(dòng)態(tài)建模,以此來對(duì)應(yīng)用程序進(jìn)行第一層的分解,然 后根據(jù)需要可以對(duì)活動(dòng)圖中的動(dòng)作節(jié)點(diǎn)創(chuàng)建更深層次的活動(dòng)圖,如此迭代可以對(duì)整個(gè)軟件 系統(tǒng)進(jìn)行逐層分解。但是創(chuàng)建活動(dòng)圖的主要目標(biāo)是研究軟件系統(tǒng)的組成,獲取軟件的資源、 邊界信息和數(shù)據(jù)流,而不是為了確定軟件的工作原理,對(duì)軟件系統(tǒng)的分解必須圍繞這一目 標(biāo)進(jìn)行。在完成目標(biāo)的情況下,分解的層次不需要太深,那樣會(huì)導(dǎo)致活動(dòng)圖太過復(fù)雜,不易 進(jìn)行下一步地分析。在創(chuàng)建UML用例圖與活動(dòng)圖的過程中,都包括資產(chǎn)的確定、威脅的識(shí)別以及安全 性機(jī)制的確定,其區(qū)別在于分析的對(duì)象不同,例如在創(chuàng)建UML用例圖中分析的對(duì)象為登錄 用例,而在活動(dòng)圖中分析的對(duì)象為登錄用例中的驗(yàn)證用戶信息活動(dòng)。在計(jì)算機(jī)領(lǐng)域,資產(chǎn)是指任何對(duì)用戶有價(jià)值的東西,包括計(jì)算機(jī)硬件、通信設(shè)施、 數(shù)據(jù)庫、文檔信息、軟件、信息服務(wù)和人員等。在軟件安全性測試領(lǐng)域,資產(chǎn)主要是指軟件系 統(tǒng)及其相關(guān)的數(shù)據(jù)和信息,即從軟件安全方面考慮,需要保護(hù)的內(nèi)容。在確定資產(chǎn)的過程 中,測試者根據(jù)系統(tǒng)的UML用例圖和活動(dòng)圖提取系統(tǒng)的相關(guān)資產(chǎn),在UML用例圖中,資產(chǎn)主 要包括用例、用例的參與者、活動(dòng)和數(shù)據(jù)流信息等;在活動(dòng)圖中,資產(chǎn)主要包括數(shù)據(jù)庫、文檔 信息、數(shù)據(jù)信息、活動(dòng)等。威脅是指可能對(duì)資產(chǎn)造成損害的意外事件的潛在原因。在威脅識(shí)別的過程中,測 試者可以根據(jù)STRIDE模型,分析資產(chǎn)可能受到的威脅、識(shí)別威脅,STRIDE模型主要包括以 下六種威脅身份欺騙(Spoofing)身份欺騙是指攻擊者冒充其他用戶訪問系統(tǒng),或者是惡意 服務(wù)器冒充合法服務(wù)器。身份欺騙最常見的例子是惡意用戶冒充合法用戶對(duì)軟件系統(tǒng)進(jìn)行非法訪問。篡改數(shù)據(jù)(Tampering)篡改數(shù)據(jù)是指惡意用戶惡意修改系統(tǒng)數(shù)據(jù)。例如用戶在 未授權(quán)的情況下修改系統(tǒng)數(shù)據(jù),或者通過非法手段修改他人數(shù)據(jù)。否認(rèn)(Repudiation)否認(rèn)是指用戶否認(rèn)從事某項(xiàng)活動(dòng),而系統(tǒng)也沒有方法證明 他從事了該項(xiàng)活動(dòng)。例如,用戶在系統(tǒng)中進(jìn)行了非法操作,但是系統(tǒng)缺少日志,因而無法證 明用戶進(jìn)行該項(xiàng)操作。信息泄露(Information Disclosure)信息泄露是指系統(tǒng)內(nèi)部的信息暴露給未授 權(quán)用戶。例如,用戶能夠訪問到他本應(yīng)該沒有權(quán)利訪問的文件。拒絕服務(wù)(Denial of Service)拒絕服務(wù)是指系統(tǒng)拒絕合法用戶的服務(wù)請(qǐng)求。例 如,系統(tǒng)無法訪問。特權(quán)提升(Elevation of Privilege)特權(quán)提升是指用戶使用非法手段獲得更大 的系統(tǒng)權(quán)力,從而能夠破壞甚至摧毀整個(gè)系統(tǒng)。安全性機(jī)制是針對(duì)威脅識(shí)別過程中確定的每一種威脅,相應(yīng)的減輕威脅的方法, 對(duì)應(yīng)于STRIDE模型,減輕各種威脅的安全機(jī)制可以總結(jié)如表1所示。表 權(quán)利要求
一種基于剖面劃分的軟件安全性測試需求提取與行為描述方法,其特征在于所述方法包括如下步驟(1)創(chuàng)建UML用例圖與活動(dòng)圖;(2)根據(jù)UML用例圖與活動(dòng)圖建立安全性功能測試需求,建立安全性功能測試需求包括如下步驟(2 1)確定UML用例圖與活動(dòng)圖的資產(chǎn),分析需要保護(hù)的內(nèi)容;(2 2)根據(jù)每一種資產(chǎn),進(jìn)行威脅識(shí)別,采用STRIDE模型,分析可能對(duì)資產(chǎn)造成損害的意外事件原因;(2 3)根據(jù)每一種威脅,建立安全機(jī)制列表;(2 4)根據(jù)安全機(jī)制列表,對(duì)應(yīng)《信息技術(shù)安全評(píng)價(jià)通用準(zhǔn)則》提取安全性功能測試需求;(3)根據(jù)步驟(2)得到的安全性機(jī)制集合以及安全性功能測試需求,創(chuàng)建軟件安全性時(shí)序行為圖;(4)根據(jù)軟件安全性時(shí)序行為圖創(chuàng)建軟件測試用例。
全文摘要
本發(fā)明公開了一種基于剖面劃分的軟件安全性測試需求提取與行為描述方法,該方法可分為四個(gè)步驟,第一步創(chuàng)建UML用例圖與活動(dòng)圖,第二步對(duì)UML用例圖和活動(dòng)圖提取安全性功能需求,第三步創(chuàng)建軟件安全性時(shí)序行為圖,第四步創(chuàng)建軟件測試用例。本發(fā)明提供的基于剖面劃分的軟件安全性測試需求提取與行為描述方法,對(duì)軟件從UML用例圖與活動(dòng)圖兩個(gè)層面上分析,提取安全性功能測試需求,最后以形式化的方法表示,方法簡單明了,通過規(guī)范化的分類制表,保證了即使在軟件沒有提出明確的安全性需求,測試人員也可以提出完備的、規(guī)范的、有效的安全性功能測試需求。
文檔編號(hào)G06F11/36GK101989230SQ201010516149
公開日2011年3月23日 申請(qǐng)日期2010年10月22日 優(yōu)先權(quán)日2010年10月22日
發(fā)明者任正平, 劉曉明, 劉艷云, 姚奕, 惠戰(zhàn)偉, 洪宇, 胡斌, 蔣圓圓, 袁利華, 鄭長友, 饒莉萍, 黃松 申請(qǐng)人:中國人民解放軍理工大學(xué)