欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于安全知識庫的順序圖缺陷檢測方法

文檔序號:6602096閱讀:150來源:國知局
專利名稱:基于安全知識庫的順序圖缺陷檢測方法
技術(shù)領(lǐng)域
本發(fā)明以可信軟件開發(fā)設(shè)計階段中的繪制的順序圖作為主要檢測對象,致力于提高軟件開發(fā)和后期維護成本、提高軟件的可信度,屬于軟件安全領(lǐng)域。
背景技術(shù)
隨著互聯(lián)網(wǎng)的發(fā)展,軟件安全問題日益引起大家的關(guān)注。軟件系統(tǒng)潛在的漏洞給 使用者帶來很大的安全隱患,從而引發(fā)對安全軟件思想的重視。如何生產(chǎn)高性能可靠的軟 件成為當前社會的一個熱門話題。傳統(tǒng)軟件工程往往注重于軟件的高效性、實用性和可靠 性,而忽略了軟件的可信度。且無法滿足在各環(huán)節(jié)的安全需求,使得在需求和設(shè)計階段中出 現(xiàn)的安全問題不能夠及時發(fā)現(xiàn),不能保證開發(fā)高可信的軟件,從而導致開發(fā)的軟件易受攻 擊。然而安全軟件工程提出一種在軟件開發(fā)周期的每個環(huán)節(jié)加入安全的理念,對系統(tǒng)潛在 的缺陷及早發(fā)現(xiàn),及時解決,以確保各環(huán)節(jié)產(chǎn)品的高可靠性和安全性。統(tǒng)一建模語言UML的提出,很好的規(guī)范和統(tǒng)一了軟件的開發(fā)過程。在軟件開發(fā)的 設(shè)計階段,設(shè)計人員往往會利用UML中的順序圖來繪制軟件系統(tǒng)中各個對象的交互過程。 順序圖重點說明了各對象在相互交互過程中的時間順序,反映了系統(tǒng)的某一業(yè)務(wù)邏輯。順 序圖主要包含對象跟消息兩部分。對象反映了在這一業(yè)務(wù)邏輯中參與到的所有成員,分為 一股形態(tài)和實例形態(tài);消息則是對象之間的一種通信,可以傳遞信息并期望相關(guān)動作被執(zhí) 行。順序圖能夠表示業(yè)務(wù)邏輯的執(zhí)行方式和過程。但順序圖同樣能夠暴露系統(tǒng)的潛在威 脅。由于順序圖的過程化合時序化,可能存在一些潛在的,攻擊者能夠利用的漏洞,即攻擊 路徑。攻擊者利用它們完成一個一個既定的攻擊目標,最終實現(xiàn)對軟件系統(tǒng)的攻擊。FSA(有限狀態(tài)自動機”finite state automation")是為研究有限內(nèi)存的計算過 程和某些語言類而抽象出的一種計算模型。有限狀態(tài)自動機由系統(tǒng)的狀態(tài)和這些狀態(tài)之間 的遷移構(gòu)成,通過對順序圖進行FSA的建模能夠更好的表述軟件設(shè)計階段中業(yè)務(wù)流程。攻擊模式是一種抽象概念,攻擊模式所針對的問題即為軟件產(chǎn)品攻擊者的目標對 象,描述的是攻擊者用來破壞軟件產(chǎn)品的技術(shù)。使用攻擊模式的動機為軟件開發(fā)者通過將 自己想象為攻擊者,參與到威脅中去,從而有效提高軟件的安全性。一種攻擊模式一股對應(yīng) 若干種軟件缺陷,即一種攻擊模式可以對軟件的若干個缺陷產(chǎn)生影響,導致系統(tǒng)的這些缺 陷暴露,遭受攻擊。攻擊模式是攻擊者達到攻擊目標的必經(jīng)之路,所以檢測出這樣的一個攻 擊模式,就能夠發(fā)現(xiàn)軟件的存在的缺陷,避免遭受攻擊者的攻擊,提高軟件的安全系數(shù)。在軟件開發(fā)過程中,設(shè)計階段顯得尤為重要,它定義了系統(tǒng)的整體架構(gòu),功能模 塊,技術(shù)路線等,是對整個軟件項目的宏觀描述。隨著安全軟件工程的發(fā)展,軟件的設(shè)計階 段也越來越被軟件安全專家所關(guān)注。正是由于設(shè)計階段在整個軟件項目的作用,致使設(shè)計 階段能夠展現(xiàn)和暴露軟件潛在的缺陷和安全漏洞,在軟件開發(fā)的設(shè)計階段發(fā)現(xiàn)這些缺陷和 安全漏洞,成為安全軟件工程的重要一環(huán)。

發(fā)明內(nèi)容
本發(fā)明首先利用順序圖來表述軟件設(shè)計階段中的某一業(yè)務(wù)邏輯,然后對順序圖進 行安全分析,生成一份威脅分析報告,從而提出在軟件開發(fā)初期的彌補建議和方案。這樣能 夠減少軟件開發(fā)和維護的成本,提高軟件的可信度。為此,本發(fā)明采用如下的技術(shù)方案。一種基于安全知識庫的順序圖缺陷檢測方法,包括下列步驟1)順序圖的安全擴展通過UML擴展機制,為順序圖中的對象與消息添加一些與 安全相關(guān)的屬性,這些與安全相關(guān)的屬性用于對軟件系統(tǒng)組件進行抽象和分類,并用于在 信息圖中對與安全相關(guān)的信息進行形式化;2)從以XMI形式保存的順序圖中提取安全信息,并對順序圖進行FSA建模,將順序 圖中的對象建模成FSA中的狀態(tài)節(jié)點,順序圖中的消息調(diào)用建模成FSA中的狀態(tài)轉(zhuǎn)移的條 件,得到FSA模型;
3)采用深度優(yōu)先搜索算法從FSA模型中提取出所有可能的攻擊路徑;4)建立包括攻擊模式庫、缺陷庫、攻擊模式與缺陷的二元關(guān)系庫在內(nèi)的安全知識庫;5)通過將步驟2)中提取的攻擊路徑與安全知識庫中的攻擊模式進行匹配度計 算,找到與各個攻擊路徑所關(guān)聯(lián)的攻擊模式,并通過攻擊模式與缺陷的二元關(guān)系找到相關(guān) 聯(lián)的缺陷,最后生成威脅信息報告。上述的步驟5)中,對匹配度計算方法可以如下1)首先判斷當前攻擊路徑是否跟安全知識庫中的某一個攻擊模式的正則表達式 完全相等,如果完全相等,則此次匹配為匹配度為100%的匹配;否則,將攻擊路徑分解成 各個節(jié)點,通過下列的加權(quán)方法求取該攻擊模式與當前的攻擊路徑的匹配度以最后一個 節(jié)點作為攻擊的終點,即潛在攻擊目標,設(shè)定其權(quán)重最大,為50%,距離該潛在攻擊目標越 遠的攻擊節(jié)點的權(quán)重越小,權(quán)值呈1/2指數(shù)減小趨勢;2)若匹配度大于預(yù)設(shè)的匹配度閾值,則將該攻擊模式的名稱,匹配度和該攻擊模 式關(guān)聯(lián)到的缺陷組成三元組,加入威脅信息集合中。匹配度閾值最好設(shè)定為75%。本發(fā)明在安全軟件開發(fā)架構(gòu)的基礎(chǔ)上,針對設(shè)計階段的順序圖進行安全的檢測。 其中順序圖的安全擴展將半形式化的UML語言完全形式化,這樣就能夠?qū)壿嫼x進行精 確地描述,消除了二義性,有利于對順序圖進行處理和安全檢測;順序圖的掃描和建模能夠 從順序圖中提取出與缺陷檢測密切相關(guān)的信息,并將這些信息進行FSA的建模,將設(shè)計階 段的業(yè)務(wù)邏輯存儲在有向圖中,有向圖的節(jié)點代表順序圖中的對象,有向圖的邊代表順序 圖中的消息,能夠很好的反映該業(yè)務(wù)邏輯中的各對象之間的關(guān)系,而且便于計算機進行操 作處理;攻擊路徑的提取能夠提取出順序圖中隱藏的,可能被攻擊者所利用的對象跟消息 序列的過程。它是有向圖中的一條路徑,能夠反映攻擊者有目的性的從起點,通過若干攻擊 手段,一步一步的攻破系統(tǒng)節(jié)點,實現(xiàn)最后的攻擊目標的過程。為缺陷的檢測提供了數(shù)據(jù)的 支持;借助安全知識庫的缺陷檢測利用了攻擊路徑跟攻擊模式之間的相似運算,可以獲取 與攻擊路徑類似的攻擊模式,進而獲得缺陷信息,能夠為軟件的設(shè)計開發(fā)提供威脅分析。本發(fā)明通過上面的四部分工作,可以有效地檢測順序圖隱藏的系統(tǒng)缺陷,能夠在 軟件開發(fā)的早期發(fā)現(xiàn)這些漏洞并作修補,從而降低了軟件開發(fā)和維護的成本,提高了軟件 的安全系數(shù),增強可信性。


圖1順序圖缺陷檢測方法的整體架構(gòu)圖。
圖2攻擊路徑提取流程圖。圖3安全知識庫結(jié)構(gòu)圖。圖4示意順序圖。圖5順序圖轉(zhuǎn)變?yōu)镕SA模型。
具體實施例方式針對上述目標,本發(fā)明提出的方法大致分為四個部分,即順序圖的安全擴展、順序 圖掃描和建模、攻擊路徑的提取和借助安全知識庫的缺陷檢測。其中整體的架構(gòu)圖如附圖 1所示。1.順序圖的安全擴展通過UML擴展機制,將順序圖中的對象與消息添加一些 安全的屬性。這些屬性可自M. Gegick的博士論文《Analyzing Security Attacks to Generate Signaturesfrom Vulnerable Architectural Patterns〉〉的系統(tǒng)組件圖。安全屬 性是對軟件系統(tǒng)組件的抽象和分類,能夠?qū)樞驁D中的組件進行抽象化和形式化的表示。 如Apache可以抽象為Web服務(wù)器,MySQL可以抽象為數(shù)據(jù)庫服務(wù)器。這些安全屬性能夠更 好的對順序圖的信息進行形式化,便于后面缺陷的檢測。2.順序圖掃描和建模順序圖中的安全信息存儲在各個對象和對象之間的消息 里,對順序圖的安全信息的掃描首先要將以XMI形式保存的順序圖中的各個對象和這些消 息提取出來。本發(fā)明所做的順序圖的FSA建模過程是將順序圖中的對象建模成FSA中的狀 態(tài)節(jié)點,順序圖中的消息調(diào)用建模成FSA中的狀態(tài)轉(zhuǎn)移的條件。3.攻擊路徑的提取在順序圖建模FSA模型中,已經(jīng)成功將順序圖轉(zhuǎn)化成了 FSA, 后面的工作需要在FSA中提取出所有可能的攻擊路徑。因為建模成的FSA是以有向圖的形 式進行存儲的,需要對有向圖進行分析,找到一條完整的攻擊路徑。獲取攻擊路徑可以采用深度優(yōu)先搜索算法。首先將入度為零的節(jié)點加入隊列(入 度為零的節(jié)點是攻擊路徑的起始點),然后順次遍歷這些節(jié)點,遞歸加入相連接的節(jié)點至出 度為零的節(jié)點作為攻擊路徑的終點。提取攻擊路徑的基本流程如附圖2所示,詳細算法描 述如下輸入順序圖建模后的FSA輸出攻擊路徑集合AttackPathSet = {AttackPath}攻擊路徑提取主體程序(1).初始化AttackPathSet—0(2).遍歷所有入度為零的節(jié)點S(2. 1)通過深度優(yōu)先搜索獲得攻擊路徑AttackPath—DFS(Sq, 0 )(2. 2)將攻擊路徑加入集合AttackPathSet = AttackPathSet U AttackPath深度優(yōu)先搜索程序DFS (Si, AttackPath)輸入節(jié)點Si,正在構(gòu)建的攻擊路徑AttackPath(1).首先查看Si是否已經(jīng)在AttackPath中存在,如果是進行第2步,否則進行第3步。(2).將Si》口入至1」八《8^^8讓,返回八《8^^8讓,結(jié)束程序。(3).遍歷FSA中的所有條件轉(zhuǎn)化I =Si X I = Sj(3. 1)將該條件轉(zhuǎn)化加入到AttackPath中(3. 2)遞歸調(diào)用深度優(yōu)先搜索,傳入?yún)?shù)分別為Sj和AttackPath4.借助安全知識庫的缺陷檢測安全知識庫是存儲攻擊模式、軟件缺陷和緩和方 案的關(guān)系數(shù)據(jù)庫。本發(fā)明借助該數(shù)據(jù)庫進行軟件缺陷的檢測,需要對這個數(shù)據(jù)庫進行相 關(guān)的知識查詢操作。安全知識庫的結(jié)構(gòu)如附圖3所示。攻擊模式庫(AttackPattern)中 的屬性分別代表攻擊模式的ID,攻擊模式的名稱,描述,正則表達和緩和方案。缺陷庫 (Weakness)中的屬性分別代表缺陷的ID,缺陷的名稱,描述,作用領(lǐng)域,發(fā)生可能性應(yīng)用平 臺,引入階段和緩和方案。攻擊模式與缺陷的二元關(guān)系庫(Relationship)中的屬性分別代 表攻擊模式的ID和缺陷的ID。提取出攻擊路徑后,我們就獲得了對此業(yè)務(wù)邏輯的缺陷檢測 的中間媒介,通過這些攻擊路徑跟安全知識庫中的攻擊模式進行匹配度計算,就能夠找到 該業(yè)務(wù)邏輯所關(guān)聯(lián)的攻擊模式,最終通過攻擊模式與缺陷的二元關(guān)系找到相關(guān)聯(lián)的缺陷, 最后生成威脅信息報告。攻擊路徑跟攻擊模式之間的匹配度計算方法為首先判斷當前攻 擊路徑是否跟安全知識庫中的某一個攻擊模式的正則表達式完全相等,如果完全相等,則 此次匹配是100%的匹配,將該攻擊模式的名稱,100%和該攻擊模式關(guān)聯(lián)到的缺陷組成三 元組,加入威脅信息集合中;否則計算該攻擊模式跟該攻擊路徑的匹配度。將攻擊路徑分解 為一個一個的節(jié)點。最后的節(jié)點為業(yè)務(wù)的終點,是潛在的攻擊目標,所以在一次攻擊中的威 脅權(quán)重最大,設(shè)為50%。這個潛在攻擊目標可能需要通過多個潛在攻擊子節(jié)點達到,這些潛 在攻擊節(jié)點距離最終節(jié)點越大,威脅的權(quán)值越小,并呈1/2指數(shù)減小趨勢,匹配度計算算法 如下輸入攻擊路徑集合AttackPathSet,攻擊模式集合AttackPatternSet輸出威脅信息集合WeaknessSet算法描述(1).初始化缺陷信息集合WeaknessSet—0(2).遍歷攻擊路徑集合AttackPathSet(2. 1).遍歷攻擊模式集合 AttackPatternSet(2. 1. 1).如果當前攻擊路徑與當前攻擊模式的正則表達相等,則為全匹配,進行 第2. 1.2步,否則進行第2. 1.3步。(2. 1. 2).將當前攻擊模式,100%和跟攻擊模式所關(guān)聯(lián)的缺陷加入到威脅信息集 合中,繼續(xù)第2.1步。(2. 1. 3).將攻擊路徑分解成若干節(jié)點,初始化precision — 0, temp - 50%(2. 1.4).遍歷攻擊路徑中的各個節(jié)點(2. 1. 5).如果當前攻擊模式包含該節(jié)點,那么precision+ = temp, temp/ = 2 ;(2. 1.6).如果precision(匹配度)大于75%,那么為部分匹配,將攻擊模式, precison和攻擊模式所關(guān)聯(lián)的缺陷加入到威脅信息中。下面以圖4中的順序圖為例來說明本發(fā)明。5.首先需要對順序圖進行安全擴展,為順序圖中的四個對象和五個消息添加安全屬性對象用戶—ClientWeb 服務(wù)器—Server數(shù)據(jù)庫服務(wù)器一Database內(nèi)存—Buffer消息發(fā)送消息—HTTPRequest發(fā)送查詢消息一SendQueryString內(nèi)存操作一Bufferffrite返回結(jié)果一SendMessage處理返回結(jié)果—HTTPMessageHandle6.然后對順序圖進行掃描和FSA的建模,獲得結(jié)構(gòu)如圖5所示。7.從FSA模型中運用攻擊路徑的提取算法可以提取出三條攻擊路徑(1) Client — HTTPRequest — Server — SendQueryString — Database — Bufferffrit e — Buffer(2) Client — HTTPRequest — Server — HTTPMessageHandle — Server(3) Client — HTTPRequest — Server — SendQueryString — Database — SendMessag e — Server8.借助安全知識庫中存儲的攻擊模式,將這些攻擊路徑與攻擊模式的正則表達式 進行匹配度計算,最終能夠獲取到匹配度大于75 %的若干攻擊模式,通過攻擊模式與缺陷 的關(guān)聯(lián),最終生成威脅分析報告,提交給系統(tǒng)的分析設(shè)計人員,及時將漏洞修補,提高最終 軟件的可信度。其中緩沖區(qū)溢出Overflow Buffers (正則表達式為(Client) (SendMessage) (Server) (Bufferffrite) (Buffer))即為匹配到的攻擊 模式,匹配度為92.5%。該攻擊模式相關(guān)聯(lián)的缺陷主要有Data Handling, Failure to Constrain Operations withinthe Bounds of a Memory Buffer, Buffer Copy without Checking Size of Input ( 'Classic BufferOverflow' ), Integer Overflow to Buffer Overflow.通過這些缺陷提供的信息,系統(tǒng)分析和設(shè)計人員能夠及時的采取措施來修補這 些漏洞和缺陷。最終提高了軟件的可信度,降低了軟件開發(fā)和維護的成本。
權(quán)利要求
一種基于安全知識庫的順序圖缺陷檢測方法,包括下列步驟1)順序圖的安全擴展通過UML擴展機制,為順序圖中的對象與消息添加一些與安全相關(guān)的屬性,這些與安全相關(guān)的屬性用于對軟件系統(tǒng)組件進行抽象和分類,并用于在信息圖中對與安全相關(guān)的信息進行形式化;2)從以XMI形式保存的順序圖中提取安全信息,并對順序圖進行FSA建模,將順序圖中的對象建模成FSA中的狀態(tài)節(jié)點,順序圖中的消息調(diào)用建模成FSA中的狀態(tài)轉(zhuǎn)移的條件,得到FSA模型;3)采用深度優(yōu)先搜索算法從FSA模型中提取出所有可能的攻擊路徑;4)建立包括攻擊模式庫、缺陷庫、攻擊模式與缺陷的二元關(guān)系庫在內(nèi)的安全知識庫;5)通過將步驟(2)中提取的攻擊路徑與安全知識庫中的攻擊模式進行匹配度計算,找到與各個攻擊路徑所關(guān)聯(lián)的攻擊模式,并通過攻擊模式與缺陷的二元關(guān)系找到相關(guān)聯(lián)的缺陷,最后生成威脅信息報告。
2.根據(jù)權(quán)利要求1所述的基于安全知識庫的順序圖缺陷檢測方法,其特征在于,步驟 5)中,對匹配度計算方法如下1)首先判斷當前攻擊路徑是否跟安全知識庫中的某一個攻擊模式的正則表達式完全 相等,如果完全相等,則此次匹配為匹配度為100%的匹配;否則,將攻擊路徑分解成各個 節(jié)點,通過下列的加權(quán)方法求取該攻擊模式與當前的攻擊路徑的匹配度以最后一個節(jié)點 作為攻擊的終點,即潛在攻擊目標,設(shè)定其權(quán)重最大,為50%,距離該潛在攻擊目標越遠的 攻擊節(jié)點的權(quán)重越小,權(quán)值呈1/2指數(shù)減小趨勢;2)若匹配度大于預(yù)設(shè)的匹配度閾值,則將該攻擊模式的名稱,匹配度和該攻擊模式關(guān) 聯(lián)到的缺陷組成三元組,加入威脅信息集合中。
3.根據(jù)權(quán)利要求2所述的基于安全知識庫的順序圖缺陷檢測方法,其特征在于,匹配 度閾值設(shè)定為75%。
全文摘要
本發(fā)明屬于可信計算領(lǐng)域,涉及一種基于安全知識庫的順序圖缺陷檢測方法利用UML順序圖描述設(shè)計階段中的某一業(yè)務(wù)邏輯,首先對這些順序圖添加安全屬性的擴展,然后對這些業(yè)務(wù)邏輯進行FSA建模并從模型中提取出所有的攻擊路徑,最后借助由攻擊模式庫、缺陷庫及兩者的二元關(guān)系所構(gòu)建的安全知識庫,進行缺陷檢測,最終生成威脅分析報告。采用本發(fā)明可以有效地檢測順序圖隱藏的系統(tǒng)缺陷,能夠在軟件開發(fā)的早期發(fā)現(xiàn)這些漏洞并作修補,從而降低了軟件開發(fā)和維護的成本,提高了軟件的安全系數(shù),增強可信性。
文檔編號G06F11/36GK101833453SQ20101016898
公開日2010年9月15日 申請日期2010年5月13日 優(yōu)先權(quán)日2010年5月13日
發(fā)明者孟國柱, 徐超, 李曉紅, 潘東, 許光全 申請人:天津大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
红原县| 清河县| 武平县| 调兵山市| 福建省| 丰顺县| 静安区| 镇原县| 浦江县| 治多县| 沙田区| 方山县| 西乌珠穆沁旗| 百色市| 民权县| 通州市| 镇赉县| 株洲县| 镇江市| 犍为县| 翁源县| 广平县| 那坡县| 武鸣县| 大方县| 根河市| 开鲁县| 泾阳县| 卢氏县| 金坛市| 临沧市| 安化县| 抚松县| 南阳市| 武城县| 泸州市| 旌德县| 文水县| 金乡县| 罗定市| 竹北市|