專利名稱:基于安全知識庫的安全需求獲取方法
技術(shù)領(lǐng)域:
本發(fā)明提出了一種在軟件開發(fā)需求階段的安全需求獲取方法,旨在提高軟件的安全性和可信程度,屬于軟件安全領(lǐng)域。
背景技術(shù):
隨著計算機軟件的廣泛應(yīng)用,軟件安全問題已成為各行業(yè)用戶關(guān)注的焦點。有效的設(shè)計和開發(fā)可信軟件是當(dāng)今軟件開發(fā)者的重要目標(biāo)。根據(jù)經(jīng)驗軟件開發(fā)過程中,越早發(fā)現(xiàn)問題,則修復(fù)此問題所耗的代價越小。研究數(shù)據(jù)也表明當(dāng)安全分析和安全工程在軟件開發(fā)的早期就引入軟件開發(fā)的回報率高達(dá)10% 20%。從過程化軟件工程角度來講,需求分析是軟件開發(fā)的第一步。那么,高質(zhì)量的需求分析對于高效開發(fā)安全軟件就有著至關(guān)重要的作用。安全需求工程作為可信軟件開發(fā)生命周期的初始階段,在安全軟件的構(gòu)建過程中起著舉足輕重的作用。當(dāng)前對安全需求相關(guān)領(lǐng)域的研究很多,安全需求工程方法也是百花齊放。比如有面向技術(shù)的安全需求方法,面向工具與語言的安全需求方法和面向過程的安全需求方法等。然而目前尚沒有統(tǒng)一廣泛的安全需求方法,而且這些方法都有一個共同的特征,即都需要安全專家的參與實施。其實質(zhì)是安全專家根據(jù)已有的經(jīng)驗對系統(tǒng)進行分析, 從而達(dá)到獲取安全需求的目的。由于安全需求的主觀性,安全需求的效果過多的依賴于實施者的經(jīng)驗技能,不具有普遍性。CC(Common Criteria)是第一個國際化的安全評估準(zhǔn)則,是為軟件安全性能的評估而開發(fā)的,它將安全需求分為安全功能需求和安全保證需求兩部分,提出安全功能組件、 安全保證組件和安全保證等級等概念,安全功能組件給出需求階段的安全功能需求抽象描述,安全保證組件從需求、設(shè)計、編碼、測試到運行維護各階段保證安全功能的實施。CC作為國際安全評估標(biāo)準(zhǔn),不僅僅用于軟件安全評估,而且對于安全軟件開發(fā)起指導(dǎo)作用。綜上所述,先階段針對安全需求工程方法的研究百花齊放,但沒有統(tǒng)一的安全需求分析和獲取方法。而且這些方法普遍依賴于安全專家的主觀經(jīng)驗,安全需求工程過程的實施耗費大量時間和精力,效率十分低下。CC安全評估標(biāo)準(zhǔn)在國際上影響廣泛,并且可以很好的指導(dǎo)安全需求開發(fā),但是它只是作為一個指導(dǎo)原則,并沒有形成到系統(tǒng)的安全需求方法中。
發(fā)明內(nèi)容
本發(fā)明目的是克服現(xiàn)有技術(shù)的上述不足,提出一種效率高,能夠快速進行安全需求分析,獲取安全需求信息的方法。本發(fā)明的安全需求獲取方法,基于CC標(biāo)準(zhǔn),構(gòu)建資產(chǎn)威脅知識庫,從系統(tǒng)功能用例圖出發(fā),確定資產(chǎn)威脅,繼而使用CC安全功能組件進行威脅緩和,獲取安全需求。從而降低安全需求開發(fā)成本,提高軟件開發(fā)效率,進而提高了軟件的安全性。一種基于安全知識庫的安全需求獲取方法,包括下列兩個方面
1)構(gòu)建包括資產(chǎn)、威脅和安全功能組件三部分的資產(chǎn)威脅知識庫a.將資產(chǎn)分為角色、數(shù)據(jù)、資源和服務(wù)四類,對于每一類資產(chǎn),又可以繼續(xù)劃分子類,這樣不斷細(xì)化,從而確定一棵由粗到細(xì)的資產(chǎn)樹結(jié)構(gòu);除了類別關(guān)系,資產(chǎn)之間還具有包含關(guān)系,當(dāng)一個資產(chǎn)中存在可再分的細(xì)粒度實體,且細(xì)粒度實體是此資產(chǎn)特有的組成部分,即稱此資產(chǎn)包含一個或多個子資產(chǎn),并將這些子資產(chǎn)稱為特殊資產(chǎn),特殊資產(chǎn)并不考慮類別屬性,只與其父資產(chǎn)有關(guān)聯(lián)。b.將威脅分為假冒、否認(rèn)、數(shù)據(jù)篡改、信息泄露和拒絕服務(wù)五大類,對于每一類威脅,構(gòu)造其抽象威脅樹模型,將威脅不斷細(xì)化描述,得到一棵威脅樹;對于威脅樹中每個葉子節(jié)點的具體威脅,建立兩個屬性危害等級和候選安全功能組件,威脅對應(yīng)的候選安全功能組件的選取一方面通過現(xiàn)有的CC評估文檔中典型威脅與特定安全功能組件集得對應(yīng), 另一方面從CC文檔安全功能組件中獲取相應(yīng)組件進行緩和;C.建立資產(chǎn)和威脅之間的對應(yīng)關(guān)系,進一步還建立資產(chǎn)子類與威脅子樹某一節(jié)點的對應(yīng)關(guān)系,更進一步的對于特殊資產(chǎn),建立其與具體威脅和攻擊模式之間的對應(yīng)關(guān)系;2)安全需求獲取過程a.用例分析對系統(tǒng)的功能用例進行分析;b.確定資產(chǎn)將確定的資產(chǎn)在資產(chǎn)威脅知識庫中進行查找匹配,若庫中已存在該資產(chǎn)則自動獲其相應(yīng)的威脅信息;若資產(chǎn)庫中無對應(yīng)資產(chǎn),需根據(jù)資產(chǎn)所屬類、子類等手動添加資產(chǎn)信息至資產(chǎn)威脅知識庫中。資產(chǎn)對應(yīng)的威脅即為所屬層次類別對應(yīng)的威脅;c.威脅分析根據(jù)威脅的危害等級,對于可能造成重要信息數(shù)據(jù)丟失,系統(tǒng)崩潰或系統(tǒng)功能失效的威脅,結(jié)合威脅的候選安全功能組件,選取合適的安全功能組件進行威脅緩和;d.細(xì)化安全需求結(jié)合應(yīng)用實例進行對安全功能組件細(xì)化描述,形成詳細(xì)的安全需求;e.安全需求迭代對安全需求進行分析,確定新資產(chǎn),形成新一輪的安全需求獲取。本發(fā)明以提高軟件系統(tǒng)的安全性為目的,在CC國際安全評估標(biāo)準(zhǔn)的基礎(chǔ)上,提出了一種基于資產(chǎn)威脅知識庫的安全需求獲取方法,以期盡早的發(fā)現(xiàn)軟件系統(tǒng)中可能存在的安全威脅,降低修補成本,提高軟件的安全性。預(yù)期的有益效果包括1)本發(fā)明結(jié)合CC國際標(biāo)準(zhǔn),引入安全功能組件描述安全需求,具有一定的權(quán)威性,更有利于指導(dǎo)進一步的設(shè)計開發(fā)。同時基于本發(fā)明可以很方面的生成CC評估的ST文檔,為進行CC安全評估打下了良好的基礎(chǔ)。2)傳統(tǒng)的安全需求獲取過程需要專業(yè)的安全專家全人工分析,而本發(fā)明只需要確定系統(tǒng)資產(chǎn)后與知識庫中進行自動化匹配分析,就可獲得相關(guān)解決方法雛形,從而大幅度降低了安全需求分析的成本,提高了安全軟件的開發(fā)效率。3)資產(chǎn)威脅知識庫系統(tǒng)化的存儲相關(guān)資產(chǎn)威脅信息,對于軟件安全來說是一筆寶貴的資產(chǎn),可以為軟件安全相關(guān)的諸多工具提供數(shù)據(jù)支持。
附圖1 資產(chǎn)樹結(jié)構(gòu)。
附圖2:假冒威脅樹。附圖3 資產(chǎn)威脅對應(yīng)關(guān)系。附圖4 安全需求過程概圖。附圖5 網(wǎng)上銀行注冊用戶查看賬戶用例圖。
具體實施例方式本發(fā)明提出了一種基于CC的安全需求獲取方法,在軟件需求階段針對軟件系統(tǒng)中資產(chǎn)可能存在的安全威脅進行半自動分析檢測,一方面提高了軟件系統(tǒng)的安全性,另一方面降低了安全漏洞的緩和成本。該方法首先是通過對應(yīng)用系統(tǒng)常見資產(chǎn)和威脅進行抽象分類從而建立資產(chǎn)威脅知識庫。繼而針對系統(tǒng)用例圖進行分析,獲取其中的關(guān)鍵資產(chǎn),然后將系統(tǒng)關(guān)鍵資產(chǎn)與資產(chǎn)威脅知識庫中進行匹配,自動化分析得到威脅和CC安全功能組件, 進一步獲得安全需求。介紹如下3)構(gòu)建資產(chǎn)威脅知識庫知識庫的構(gòu)建包括三部分資產(chǎn)、威脅和安全功能組件。在這里根據(jù)普遍的定義, 將資產(chǎn)定義為對組織或個人有價值的信息、資源、功能或其他實體;威脅定義為攻擊者針對資產(chǎn)潛在的攻擊,可能對資產(chǎn)形成危害,造成損失。而安全功能組件在CC中定義為安全功能性要求,在此處可作為針對威脅的解決緩和方案,形成抽象安全需求描述。由于資產(chǎn)和威脅之間的復(fù)雜多對多關(guān)系,本發(fā)明提出將資產(chǎn)和威脅分別進行分類,然后建立對應(yīng)關(guān)系。根據(jù)需要,將資產(chǎn)分為以下幾類角色(Role)代表與系統(tǒng)交互的外部對象,一般而言,用戶或與系統(tǒng)交互的某一外部實體、功能模塊都屬于此類。數(shù)據(jù)(Data)系統(tǒng)中需要保護的數(shù)據(jù)信息,包括用戶數(shù)據(jù),系統(tǒng)數(shù)據(jù)等。資源(Resource):—般指硬件資源,諸如處理能力和存儲能力等。服務(wù)(Service)—般指軟件提供的服務(wù),例如已有的軟件,API,協(xié)議等。對于每一類資產(chǎn),又可以繼續(xù)劃分子類,這樣不斷細(xì)化,從而確定一棵由粗到細(xì)的資產(chǎn)樹結(jié)構(gòu)(如圖1所示)。除了類別關(guān)系,資產(chǎn)之間還具有包含關(guān)系,當(dāng)一個資產(chǎn)中存在可再分的細(xì)粒度實體,且細(xì)粒度實體是此資產(chǎn)特有的組成部分,即稱此資產(chǎn)包含一個或多個子資產(chǎn)。我們將這些子資產(chǎn)稱為特殊資產(chǎn),特殊資產(chǎn)并不考慮類別屬性,只與其父資產(chǎn)有關(guān)聯(lián)。例如對于服務(wù)類協(xié)議子類下的HTTP協(xié)議這一資產(chǎn),其中就包含Cookie和Session 兩個特殊資產(chǎn)。資產(chǎn)分類體系確保了資產(chǎn)樹的條理性,而資產(chǎn)的包含關(guān)系確保資產(chǎn)樹的完備性。同樣,根據(jù)需要將威脅分為五大類假冒假冒其他實體進行欺騙活動。否認(rèn)行為發(fā)起者否認(rèn)自己的身份或行為。數(shù)據(jù)篡改數(shù)據(jù)信息被非法篡改。信息泄露數(shù)據(jù)信息被未授權(quán)的竊取、查看。拒絕服務(wù)系統(tǒng)功能或服務(wù)失效。對于每一類威脅,構(gòu)造其抽象威脅樹模型,將威脅不斷細(xì)化描述,得到一棵威脅樹。例如假冒威脅的威脅樹如圖2所示,假冒可以有三種實現(xiàn)方式a、不充分的認(rèn)證;b、偽造憑證;C、獲取合法憑證,而偽造憑證又可以繼續(xù)細(xì)化為猜測憑證和憑證等價這兩種具體方法。圖中的圓圈表示常用的攻擊模式,對于猜測憑證,可以采用暴力破解的方式進行攻
擊O對于威脅樹中每個葉子節(jié)點的具體威脅,考慮其兩個屬性危害等級和候選安全功能組件。危害等級描述該威脅的危害程度,在這里將攻擊造成的危害程度分為以下三級高攻擊極易實施,無需專業(yè)技能,造成重要信息數(shù)據(jù)丟失,系統(tǒng)崩潰,或系統(tǒng)功能失效,遭遇后無法恢復(fù)。中攻擊實施需要特殊工具,或需要一定技能,造成密碼等重要信息丟失,會導(dǎo)致系統(tǒng)功能失效,遭遇后較難恢復(fù)。低攻擊實施需要專業(yè)技能及特殊工具,造成對系統(tǒng)性能有輕微影響,較容易恢
Μ. ο威脅對應(yīng)的候選安全功能組件的選取一方面通過現(xiàn)有的CC評估文檔中典型威脅與特定安全功能組件集得對應(yīng),另一方面通過人工分析從CC文檔安全功能組件中獲取相應(yīng)組件進行緩和。確定資產(chǎn)、威脅的分類體系之后,建立二者之間的層次映射關(guān)系。資產(chǎn)與威脅之間是多對多的關(guān)系,這里主要是建立資產(chǎn)與威脅的層次對應(yīng)關(guān)系。首先資產(chǎn)類與威脅類之間的對應(yīng)關(guān)系如圖3所示,對于角色資產(chǎn)類,其對應(yīng)的威脅為假冒和否認(rèn);對于數(shù)據(jù)資產(chǎn)類, 其威脅一般來源于數(shù)據(jù)篡改和信息泄漏;對于資源類資產(chǎn),其對應(yīng)于拒絕服務(wù)威脅;對于服務(wù)類資產(chǎn),由于服務(wù)本身的多樣性,其對應(yīng)的威脅包含假冒、否認(rèn)、數(shù)據(jù)篡改、信息泄漏和拒絕服務(wù)。進一步的可建立資產(chǎn)子類與威脅子樹某一節(jié)點的對應(yīng)關(guān)系,更進一步的對于特殊資產(chǎn)(服務(wù)類資產(chǎn)居多),可建立其與具體威脅和攻擊模式之間的對應(yīng)關(guān)系。4)安全需求獲取過程安全需求的獲取是一個迭代遞增的過程。本發(fā)明從系統(tǒng)用例圖出發(fā),對每個系統(tǒng)功能用例進行分析,獲取其中涉及到的關(guān)鍵資產(chǎn)。在資產(chǎn)威脅知識庫的輔助下對資產(chǎn)進行威脅分析,并針對威脅選取安全功能組件進行緩和,從而獲取安全需求(如圖4)。具體步驟如下a、用例分析對系統(tǒng)的功能用例進行分析,系統(tǒng)的參與者、所涉及到的功能、所需要的服務(wù)、用到的軟硬件資源等。分析確定的資產(chǎn)可能是抽象的,也可能是具體的。b、確定資產(chǎn)將確定的資產(chǎn)與資產(chǎn)庫中進行查找匹配,若庫中已存在該資產(chǎn)則自動獲其相應(yīng)的威脅信息;若資產(chǎn)庫中無對應(yīng)資產(chǎn),需根據(jù)資產(chǎn)所屬類、子類等手動添加資產(chǎn)信息至庫中。資產(chǎn)對應(yīng)的威脅即為所屬層次類別對應(yīng)的威脅。C、威脅分析根據(jù)威脅的危害等級,對與等級為高及或等級為中的威脅,如果實施后可能造成重要信息數(shù)據(jù)丟失,系統(tǒng)崩潰或系統(tǒng)功能失效,使得系統(tǒng)無法恢復(fù)或難以恢復(fù), 結(jié)合威脅的候選安全功能組件,選取合適的安全功能組件進行威脅緩和。d、細(xì)化安全需求結(jié)合應(yīng)用實例進行對安全功能組件細(xì)化描述,形成詳細(xì)的安全需求。e、安全需求迭代對安全需求進行分析,確定新資產(chǎn),形成新一輪的安全需求獲取。
下面通過一個示例來展示基于資產(chǎn)威脅知識庫的安全需求的獲取方法。如圖5所示是一個最簡單的用例圖,用例描述一個合法用戶遠(yuǎn)程訪問網(wǎng)上銀行查看賬戶。分析此用例可知,注冊用戶遠(yuǎn)程查看賬戶,其中包含的資產(chǎn)包括注冊用戶和賬戶信息。而根據(jù)資產(chǎn)定義可知,注冊用戶屬于角色類資產(chǎn),而賬戶信息屬于數(shù)據(jù)類資產(chǎn)。為簡單起見,此處僅考慮注冊用戶這一資產(chǎn)。由資產(chǎn)威脅知識庫可知,角色類資產(chǎn)對應(yīng)的威脅類別有假冒類和否認(rèn)類,對于假冒類對應(yīng)的具體威脅如下
權(quán)利要求
1. 一種基于安全知識庫的安全需求獲取方法,包括下列兩個方面1)構(gòu)建包括資產(chǎn)、威脅和安全功能組件三部分的資產(chǎn)威脅知識庫a.將資產(chǎn)分為角色、數(shù)據(jù)、資源和服務(wù)四類,對于每一類資產(chǎn),又可以繼續(xù)劃分子類,這樣不斷細(xì)化,從而確定一棵由粗到細(xì)的資產(chǎn)樹結(jié)構(gòu);除了類別關(guān)系,資產(chǎn)之間還具有包含關(guān)系,當(dāng)一個資產(chǎn)中存在可再分的細(xì)粒度實體,且細(xì)粒度實體是此資產(chǎn)特有的組成部分,即稱此資產(chǎn)包含一個或多個子資產(chǎn),并將這些子資產(chǎn)稱為特殊資產(chǎn),特殊資產(chǎn)并不考慮類別屬性,只與其父資產(chǎn)有關(guān)聯(lián);b.將威脅分為假冒、否認(rèn)、數(shù)據(jù)篡改、信息泄露和拒絕服務(wù)五大類,對于每一類威脅,構(gòu)造其抽象威脅樹模型,將威脅不斷細(xì)化描述,得到一棵威脅樹;對于威脅樹中每個葉子節(jié)點的具體威脅,建立兩個屬性危害等級和候選安全功能組件,威脅對應(yīng)的候選安全功能組件的選取一方面通過現(xiàn)有的CC評估文檔中典型威脅與特定安全功能組件集得對應(yīng),另一方面從CC文檔安全功能組件中獲取相應(yīng)組件進行緩和;c.建立資產(chǎn)和威脅之間的對應(yīng)關(guān)系,進一步還建立資產(chǎn)子類與威脅子樹某一節(jié)點的對應(yīng)關(guān)系,更進一步的對于特殊資產(chǎn),建立其與具體威脅和攻擊模式之間的對應(yīng)關(guān)系。2)安全需求獲取過程a.用例分析對系統(tǒng)的功能用例進行分析;b.確定資產(chǎn)將確定的資產(chǎn)在資產(chǎn)威脅知識庫中進行查找匹配,若庫中已存在該資產(chǎn)則自動獲其相應(yīng)的威脅信息;若資產(chǎn)庫中無對應(yīng)資產(chǎn),需根據(jù)資產(chǎn)所屬類、子類等手動添加資產(chǎn)信息至資產(chǎn)威脅知識庫中,資產(chǎn)對應(yīng)的威脅即為所屬層次類別對應(yīng)的威脅;c.威脅分析根據(jù)威脅的危害等級,對于可能造成重要信息數(shù)據(jù)丟失,系統(tǒng)崩潰或系統(tǒng)功能失效的威脅,結(jié)合威脅的候選安全功能組件,選取合適的安全功能組件進行威脅緩和;d.細(xì)化安全需求結(jié)合應(yīng)用實例進行對安全功能組件細(xì)化描述,形成詳細(xì)的安全需求;e.安全需求迭代對安全需求進行分析,確定新資產(chǎn),形成新一輪的安全需求獲取。
全文摘要
本發(fā)明屬于可信計算領(lǐng)域,涉及一種基于安全知識庫的安全需求獲取方法,包括兩個部分1)資產(chǎn)和威脅分別進行分類,然后建立對應(yīng)關(guān)系,并構(gòu)建包括資產(chǎn)、威脅和安全功能組件三部分的資產(chǎn)威脅知識庫;2)具體的安全需求獲取過程,包括用例分析、確定資產(chǎn)、威脅分析、細(xì)化安全需求、安全需求迭代幾個步驟。本發(fā)明主要用于在需求分析階段利用CC標(biāo)準(zhǔn)對軟件進行安全需求分析和信息獲取,以減少軟件開發(fā)初期的安全漏洞。
文檔編號G06F21/00GK102236758SQ20111021108
公開日2011年11月9日 申請日期2011年7月26日 優(yōu)先權(quán)日2011年7月26日
發(fā)明者馮志勇, 李曉紅, 胡昌, 胡靜, 許光全 申請人:天津大學(xué)