軟體安全設計

2021-10-13 12:46:18 字數 2377 閱讀 8204

二、軟體安全設計原則

三、軟體安全功能設計

四、威脅建模

1)總體設計和詳細設計

2)主要工作

從技術的角度來看軟體設計階段的主要工作包括:軟體架構設計、介面介面設計、模組/子系統設計、資料模型設計、過程/演算法設計及部署設計等。

1)軟體安全設計的目的與作用

軟體安全設計的目的在於將安全屬性設計到軟體架構中去,以實現軟體產品本質的安全性。

軟體安全設計對於軟體安全有著舉足輕重的作用,大多數軟體安全問題都是由於軟體設計上的安全性考慮不足或不完整導致的。

2)軟體設計與軟體安全設計的關係

簡單的說,軟體安全設計就是將軟體的安全需求轉化為軟體的功能結構 的過程。軟體設計通常包括架構設計、介面設計、演算法設計等,這意味著軟體安全設計也不僅要考慮系統架構及相關安全問題,同時還要考慮如何將安全需求嵌入到開發架構中去與軟體融為乙個整體,高效的提供安全服務。

3)軟體架構的安全性設計

軟體的架構通常分為以下三種:

1)saltzer和schroeder提出的安全設計8條原則:

2)john viga 和 gary mcgraw總結的10條設計原則

安全模式展示:

安全模式名稱

目的關注點

認證器驗證試圖訪問系統的主題是否是其所聲稱的身份

使用者或系統鑑別

基於角色的訪問控制

描述如何基於人的任務分配功能與許可權

訪問控制

安全的「模型-試圖-控制器」

利用配置了mvc模式的系統,為使用者之間的互動增加互動安全

系統互動

傳輸層安全虛擬專用網

應用隧道與加密技術建立安全通道,每個端點都需要鑑別與訪問控制

安全通訊

安全日誌與審計

對使用者行為進行記錄,並對該日誌進行分析

審計基於安全模式的設計方法:

1)風險確定階段:

該階段主要有兩個工作,識別風險與評估風險。通過對業務需求、使用者需求及安全需求等的分析,利用歷史威脅記錄及經驗沒最終實現系統都是安全架構。

2)系統安全架構階段:

該階段對風險進行消解,並對解決方案進行評估。在此基礎上構建系統的高層架構圖。主要工作包括瀏覽模式庫、選擇安全模式、評估安全模式和建立系統高層架構。

3)系統設計細化階段:

該階段的主要工作包括構架業務類圖、例項化安全模式,以及整合系統並適當重構。

1)什麼是威脅建模

通過抽象的概念模型對影響軟體系統的威脅進行系統的評估與認識。

2)為什麼要威脅建模

1)確立安全目標

確立安全目標包括確立軟體系統設計的資產,以及圍繞這些資產的業務目標和安全目標。

2)建立應用程式概況圖

主要目的是分析應用程式的功能、體系結構、物理部署配置以及構成解決方案的技術 。

3)分解應用程式

主要目的是通過分解應用程式的結構來確認信任邊界、資料流、資料入口點和資料出口點。

4)確定威脅

確定肯影響到應用程式和危及安全目標的威脅的最大難題是系統性和全面性,特別是對於一些不斷變化的技術和發展中的攻擊技術,沒有一種方法能夠識別複雜軟體產品中的所有威脅。所以,在這乙個步驟中,需要執行的是確定常見威脅,以及深入的分析其他可能威脅。

5)威脅評估

常見的評估方法由delphi排序、平均排序、以及概率*影響因子排序

6)確定威脅緩解計畫或策略

常見威脅的緩解措施:

威脅緩解措施

假冒驗證主體:windows身份認證、kerberos身份驗證、pki系統、ipsec、數字簽名等

篡改數字簽名、訊息認證、完整性控制等

否認強身份驗證、安全日誌審計、數字簽名、時間戳等

資訊洩露

加密、訪問控制

拒絕服務

訪問列表控制、授權、高可用性設計

許可權提公升

訪問列表控制、許可權、輸入驗證等

7)驗證威脅

驗證的內容包括威脅模型、列舉的緩解措施等。其目的是說明列舉出威脅如何進行攻擊、攻擊的內容和以及緩解措施。

8)威脅建檔

威脅建檔可以迭代使用,需要在整個生命週期中對威脅模型中已經識別的威脅實施適當的控制。威脅建模也需要更新。

《軟體設計師》 資訊保安基礎

資訊保安屬性 1 保密性 對資料進行加密 2 完整性 一般使用校驗碼如md5 3 可用性 ddos可以破壞可用性 4 不可抵賴性 用於確定身份,常用數字簽名 對稱加密 加密強度不高 金鑰分發困難,但加密速度快 1 des 2 3des 3 aes 4 rc 5 5 idea 非對稱加密 加密強度高,...

軟體安全測試方案設計模板 homin

x 安全測試方案v1.0 目錄 1.編寫目的 2.術語定義 3.測試內容及測試模組 3.1測試內容 3.2測試模組 4.測試資源 4.1環境資源 說明本次安全測試的測試方案,包括測試的場景及測試策略。通過安全測試,發現系統中可能存在的安全問題。術語 說明 安全測試 安全測試是在 it軟體產品的生命週...

軟體安全技術

在高度保證企業應用程式安全的過程中我們不免會考慮到如下的安全需求,然後我們針對這些安全需求提出各種安全技術 1 完整性驗證 integrity verification 也就是以防止我們需要的內容不被篡改,仍然不吃其真實性。2 機密性保持 confidentiality preservation 通...