安全軟體生命週期之規範性安全軟體生命週期流程:接觸點

首頁 > 科技

安全軟體生命週期之規範性安全軟體生命週期流程:接觸點

來源:喜劇西西 釋出時間:2023-10-07 16:01

接觸點

國際軟體安全參謀GaryMcGraw透過編輯構建安全產品的豐碩行業經驗,提供了七個軟體安全接觸點。McGraw使用術語接觸點來指代可以納入安全軟體生命週期的軟體安全最佳實踐。McGraw區分了作為實現錯誤的漏洞和那些是設計缺陷的漏洞。實現錯誤是單段程式碼中的區域性錯誤,例如緩衝區溢位和輸入驗證錯誤,使發現和理解更輕易。設計缺陷是程式碼設計級別的系統性問題,例如以不安全的方式失敗的錯誤處理和恢復系統或錯誤地包含傳遞信任問題的物件共享系統。Kuhn等人分析了來自美國國家漏洞資料庫(NVD)的2008-2016年漏洞資料,發現67%的漏洞是實施錯誤。

七個接觸點有助於預防和檢測錯誤和缺陷。

下面描述了這七個接觸點,並根據McGraw多年來對每種實踐的效用的經驗按有效性順序提供,因此具有規範性:

1. 程式碼審查(工具)。

程式碼審查用於檢測實現錯誤。可以使用手動程式碼審查,但要求稽核員在嚴格檢查程式碼之前瞭解安全漏洞。“使用工具進行程式碼審查”(又名使用靜態分析工具或SAST)已被證實是有效的,可供工程師使用沒有專家安全知識。有關靜態分析的進一步討論,請參見第2.1.1節第9點。

2. 架構風險分析。

架構風險分析,也稱為威脅建模(請參閱第4節),用於預防和檢測設計缺陷。設計職員和架構師提供目標系統的高階檢視和假設文件,並識別可能的攻擊。透過架構風險分析,安全分析師可以發現架構和設計缺陷並進行排序,以便開始緩解。例如,風險分析可以識別可能的攻擊型別,例如攔截和讀取資料的能力。這種識別將促使設計職員檢視其所有程式碼的流量,以檢視攔截是否令人擔憂,以及是否有足夠的保護(即加密)。分析提示的審查是發現設計缺陷的原因,例如敏感資料被明文傳輸。

沒有系統是完全安全的,因此必需使用風險分析來確定安全工作的優先順序,並將系統級問題與對構建軟體的業務至關重要的機率和影響措施聯絡起來。風險敞口的計算方法是將不良事件發生的機率乘以與該事件相關的本錢。

McGraw提出了架構風險分析的三個基本步驟:

•抗攻擊性分析。攻擊抵擋分析使用清單/系統方法考慮每個系統元件與已知威脅的關係,如第2.1.1節第4點中討論Microsoft威脅建模中所做的那樣。在分析過程中使用有關已知攻擊和攻擊模式的資訊,識別體系結構中的風險並瞭解已知攻擊的可行性。如第2.1.1節第4點所述,合併基於STRIDE的攻擊的威脅建模是執行攻擊抵擋分析的示例過程。

• 歧義分析。模糊性分析用於捕捉髮現新風險所需的創造性流動。模糊性分析需要兩個或更多經驗豐富的分析師在統一系統上並行執行單獨的分析流動。透過同一對多重分析的理解,分析師之間的不合可以發現歧義、不一致和新的缺陷。

•弱點分析。弱點分析側重於瞭解與其他第三方元件中的安全問題相關的風險(請參閱第2.1.1節第7點)。這個設法是瞭解對第三方軟體的假設,以及當這些假設失敗時會發生什麼。

風險識別、排名和緩解是貫串整個軟體生命週期的持續過程,從需求階段開始。

3.滲入測試。

滲入測試可以由架構風險分析的結果指導(請參閱第2.1.2節第2點)。有關滲入測試的進一步討論,請參見第2.1.1節,第11點。

4.基於風險的安全測試。

安全測試必需包含兩種策略:

(1)使用尺度功能測試技術測試安全功能;

(2)基於攻擊模式和架構風險分析結果的基於風險的測試(參見第2.1.2節第2點)和濫用案例(參見第2.1.2節第5點)。

對於Web應用程式,安全功能的測試可以由OWASP應用程式安全驗證尺度(ASVS)專案12開放尺度指導,用於測試應用程式技術安全控制。ASVS還為開發人員提供了安全開發的要求列表。

利用軟體架構和構造、常見攻擊和攻擊者的心態知識指導測試非常重要。使用架構風險分析的結果,測試人員可以適當地關注攻擊可能成功的程式碼區域。

基於風險的測試和滲入測試之間的區別在於方法的級別和測試的時間。滲入測試是在軟體完成並安裝在操縱環境中時完成的。滲入測試是由外而內的黑盒測試。基於風險的安全測試可以在軟體完成甚至預整合之前開始,包括使用白盒單元測試和存根。兩者的相似之處在於,它們都應該以風險分析、濫用案例和功能安全要求為指導。

5. 濫用案例

這個接觸點編輯了“像攻擊者一樣思索”。用例描述了仁慈參與者對所需系統的行為。濫用案例[20]描述了系統在受到惡意行為者攻擊時的行為。為了開發濫用案例,分析師列舉了有念頭攻擊系統的惡意行為者的型別。

對於每個不良行為者,分析師為不良行為者但願從系統中獲得的功能建立一個或多個濫用案例。然後,分析師考慮用例和濫用案例之間的互動,以加強系統。考慮一個汽車的例子。參與者是汽車的駕駛員,這個參與者有一個用例“駕駛汽車”。惡意行為者是偷車賊,其濫用案件是“偷車”。此濫用案例威脅到用例。為了防止盜竊,可以新增新的用例“鎖定汽車”,以減輕濫用情況並加強系統。

人為錯誤是造成大量違規行為的原因。系統分析師還應考慮善意使用者的行為,例如成為網路釣魚攻擊的受害者,從而導致安全漏洞。這些行為可以被視為濫用案例[21],應該像濫用案例一樣進行分析,考慮濫用案例威脅的用例以及對系統進行強化以減輕濫用案例。

濫用和誤用案例分析確定的攻擊和緩解措施可用作安全要求的輸入(第2.1.1節第2點)。滲入測試(第2.1.1節第11點);以及基於風險的安全測試(第2.1.2節第4點)。

6. 安全要求。

有關安全要求的進一步討論,請參見第2.1.1節第2點。

7. 安全操縱。

網路安全可以與軟體安全整合,以增強安全態勢。無論其他接觸點的應用如何,攻擊都不可避免地會發生。瞭解攻擊者行為和成功攻擊的軟體是一種基本的防備技術。通過了解攻擊獲得的知識可以反饋到其他六個接觸點。

七個接觸點旨在跟著軟體產品的發展而多次輪迴。接觸點也是與過程無關的,這意味著實踐可以包含在任何軟體開發過程中。

接觸點

國際軟體安全參謀GaryMcGraw透過編輯構建安全產品的豐碩行業經驗,提供了七個軟體安全接觸點。McGraw使用術語接觸點來指代可以納入安全軟體生命週期的軟體安全最佳實踐。McGraw區分了作為實現錯誤的漏洞和那些是設計缺陷的漏洞。實現錯誤是單段程式碼中的區域性錯誤,例如緩衝區溢位和輸入驗證錯誤,使發現和理解更輕易。設計缺陷是程式碼設計級別的系統性問題,例如以不安全的方式失敗的錯誤處理和恢復系統或錯誤地包含傳遞信任問題的物件共享系統。Kuhn等人分析了來自美國國家漏洞資料庫(NVD)的2008-2016年漏洞資料,發現67%的漏洞是實施錯誤。

七個接觸點有助於預防和檢測錯誤和缺陷。

下面描述了這七個接觸點,並根據McGraw多年來對每種實踐的效用的經驗按有效性順序提供,因此具有規範性:

1. 程式碼審查(工具)。

程式碼審查用於檢測實現錯誤。可以使用手動程式碼審查,但要求稽核員在嚴格檢查程式碼之前瞭解安全漏洞。“使用工具進行程式碼審查”(又名使用靜態分析工具或SAST)已被證實是有效的,可供工程師使用沒有專家安全知識。有關靜態分析的進一步討論,請參見第2.1.1節第9點。

2. 架構風險分析。

架構風險分析,也稱為威脅建模(請參閱第4節),用於預防和檢測設計缺陷。設計職員和架構師提供目標系統的高階檢視和假設文件,並識別可能的攻擊。透過架構風險分析,安全分析師可以發現架構和設計缺陷並進行排序,以便開始緩解。例如,風險分析可以識別可能的攻擊型別,例如攔截和讀取資料的能力。這種識別將促使設計職員檢視其所有程式碼的流量,以檢視攔截是否令人擔憂,以及是否有足夠的保護(即加密)。分析提示的審查是發現設計缺陷的原因,例如敏感資料被明文傳輸。

沒有系統是完全安全的,因此必需使用風險分析來確定安全工作的優先順序,並將系統級問題與對構建軟體的業務至關重要的機率和影響措施聯絡起來。風險敞口的計算方法是將不良事件發生的機率乘以與該事件相關的本錢。

McGraw提出了架構風險分析的三個基本步驟:

•抗攻擊性分析。攻擊抵擋分析使用清單/系統方法考慮每個系統元件與已知威脅的關係,如第2.1.1節第4點中討論Microsoft威脅建模中所做的那樣。在分析過程中使用有關已知攻擊和攻擊模式的資訊,識別體系結構中的風險並瞭解已知攻擊的可行性。如第2.1.1節第4點所述,合併基於STRIDE的攻擊的威脅建模是執行攻擊抵擋分析的示例過程。

• 歧義分析。模糊性分析用於捕捉髮現新風險所需的創造性流動。模糊性分析需要兩個或更多經驗豐富的分析師在統一系統上並行執行單獨的分析流動。透過同一對多重分析的理解,分析師之間的不合可以發現歧義、不一致和新的缺陷。

•弱點分析。弱點分析側重於瞭解與其他第三方元件中的安全問題相關的風險(請參閱第2.1.1節第7點)。這個設法是瞭解對第三方軟體的假設,以及當這些假設失敗時會發生什麼。

風險識別、排名和緩解是貫串整個軟體生命週期的持續過程,從需求階段開始。

3.滲入測試。

滲入測試可以由架構風險分析的結果指導(請參閱第2.1.2節第2點)。有關滲入測試的進一步討論,請參見第2.1.1節,第11點。

4.基於風險的安全測試。

安全測試必需包含兩種策略:

(1)使用尺度功能測試技術測試安全功能;

(2)基於攻擊模式和架構風險分析結果的基於風險的測試(參見第2.1.2節第2點)和濫用案例(參見第2.1.2節第5點)。

對於Web應用程式,安全功能的測試可以由OWASP應用程式安全驗證尺度(ASVS)專案12開放尺度指導,用於測試應用程式技術安全控制。ASVS還為開發人員提供了安全開發的要求列表。

利用軟體架構和構造、常見攻擊和攻擊者的心態知識指導測試非常重要。使用架構風險分析的結果,測試人員可以適當地關注攻擊可能成功的程式碼區域。

基於風險的測試和滲入測試之間的區別在於方法的級別和測試的時間。滲入測試是在軟體完成並安裝在操縱環境中時完成的。滲入測試是由外而內的黑盒測試。基於風險的安全測試可以在軟體完成甚至預整合之前開始,包括使用白盒單元測試和存根。兩者的相似之處在於,它們都應該以風險分析、濫用案例和功能安全要求為指導。

接觸點

國際軟體安全參謀GaryMcGraw透過編輯構建安全產品的豐碩行業經驗,提供了七個軟體安全接觸點。McGraw使用術語接觸點來指代可以納入安全軟體生命週期的軟體安全最佳實踐。McGraw區分了作為實現錯誤的漏洞和那些是設計缺陷的漏洞。實現錯誤是單段程式碼中的區域性錯誤,例如緩衝區溢位和輸入驗證錯誤,使發現和理解更輕易。設計缺陷是程式碼設計級別的系統性問題,例如以不安全的方式失敗的錯誤處理和恢復系統或錯誤地包含傳遞信任問題的物件共享系統。Kuhn等人分析了來自美國國家漏洞資料庫(NVD)的2008-2016年漏洞資料,發現67%的漏洞是實施錯誤。

七個接觸點有助於預防和檢測錯誤和缺陷。

下面描述了這七個接觸點,並根據McGraw多年來對每種實踐的效用的經驗按有效性順序提供,因此具有規範性:

1. 程式碼審查(工具)。

程式碼審查用於檢測實現錯誤。可以使用手動程式碼審查,但要求稽核員在嚴格檢查程式碼之前瞭解安全漏洞。“使用工具進行程式碼審查”(又名使用靜態分析工具或SAST)已被證實是有效的,可供工程師使用沒有專家安全知識。有關靜態分析的進一步討論,請參見第2.1.1節第9點。

2. 架構風險分析。

架構風險分析,也稱為威脅建模(請參閱第4節),用於預防和檢測設計缺陷。設計職員和架構師提供目標系統的高階檢視和假設文件,並識別可能的攻擊。透過架構風險分析,安全分析師可以發現架構和設計缺陷並進行排序,以便開始緩解。例如,風險分析可以識別可能的攻擊型別,例如攔截和讀取資料的能力。這種識別將促使設計職員檢視其所有程式碼的流量,以檢視攔截是否令人擔憂,以及是否有足夠的保護(即加密)。分析提示的審查是發現設計缺陷的原因,例如敏感資料被明文傳輸。

沒有系統是完全安全的,因此必需使用風險分析來確定安全工作的優先順序,並將系統級問題與對構建軟體的業務至關重要的機率和影響措施聯絡起來。風險敞口的計算方法是將不良事件發生的機率乘以與該事件相關的本錢。

McGraw提出了架構風險分析的三個基本步驟:

•抗攻擊性分析。攻擊抵擋分析使用清單/系統方法考慮每個系統元件與已知威脅的關係,如第2.1.1節第4點中討論Microsoft威脅建模中所做的那樣。在分析過程中使用有關已知攻擊和攻擊模式的資訊,識別體系結構中的風險並瞭解已知攻擊的可行性。如第2.1.1節第4點所述,合併基於STRIDE的攻擊的威脅建模是執行攻擊抵擋分析的示例過程。

• 歧義分析。模糊性分析用於捕捉髮現新風險所需的創造性流動。模糊性分析需要兩個或更多經驗豐富的分析師在統一系統上並行執行單獨的分析流動。透過同一對多重分析的理解,分析師之間的不合可以發現歧義、不一致和新的缺陷。

•弱點分析。弱點分析側重於瞭解與其他第三方元件中的安全問題相關的風險(請參閱第2.1.1節第7點)。這個設法是瞭解對第三方軟體的假設,以及當這些假設失敗時會發生什麼。

風險識別、排名和緩解是貫串整個軟體生命週期的持續過程,從需求階段開始。

3.滲入測試。

滲入測試可以由架構風險分析的結果指導(請參閱第2.1.2節第2點)。有關滲入測試的進一步討論,請參見第2.1.1節,第11點。

4.基於風險的安全測試。

安全測試必需包含兩種策略:

(1)使用尺度功能測試技術測試安全功能;

(2)基於攻擊模式和架構風險分析結果的基於風險的測試(參見第2.1.2節第2點)和濫用案例(參見第2.1.2節第5點)。

對於Web應用程式,安全功能的測試可以由OWASP應用程式安全驗證尺度(ASVS)專案12開放尺度指導,用於測試應用程式技術安全控制。ASVS還為開發人員提供了安全開發的要求列表。

利用軟體架構和構造、常見攻擊和攻擊者的心態知識指導測試非常重要。使用架構風險分析的結果,測試人員可以適當地關注攻擊可能成功的程式碼區域。

基於風險的測試和滲入測試之間的區別在於方法的級別和測試的時間。滲入測試是在軟體完成並安裝在操縱環境中時完成的。滲入測試是由外而內的黑盒測試。基於風險的安全測試可以在軟體完成甚至預整合之前開始,包括使用白盒單元測試和存根。兩者的相似之處在於,它們都應該以風險分析、濫用案例和功能安全要求為指導。

接觸點

國際軟體安全參謀GaryMcGraw透過編輯構建安全產品的豐碩行業經驗,提供了七個軟體安全接觸點。McGraw使用術語接觸點來指代可以納入安全軟體生命週期的軟體安全最佳實踐。McGraw區分了作為實現錯誤的漏洞和那些是設計缺陷的漏洞。實現錯誤是單段程式碼中的區域性錯誤,例如緩衝區溢位和輸入驗證錯誤,使發現和理解更輕易。設計缺陷是程式碼設計級別的系統性問題,例如以不安全的方式失敗的錯誤處理和恢復系統或錯誤地包含傳遞信任問題的物件共享系統。Kuhn等人分析了來自美國國家漏洞資料庫(NVD)的2008-2016年漏洞資料,發現67%的漏洞是實施錯誤。

七個接觸點有助於預防和檢測錯誤和缺陷。

下面描述了這七個接觸點,並根據McGraw多年來對每種實踐的效用的經驗按有效性順序提供,因此具有規範性:

1. 程式碼審查(工具)。

程式碼審查用於檢測實現錯誤。可以使用手動程式碼審查,但要求稽核員在嚴格檢查程式碼之前瞭解安全漏洞。“使用工具進行程式碼審查”(又名使用靜態分析工具或SAST)已被證實是有效的,可供工程師使用沒有專家安全知識。有關靜態分析的進一步討論,請參見第2.1.1節第9點。

2. 架構風險分析。

架構風險分析,也稱為威脅建模(請參閱第4節),用於預防和檢測設計缺陷。設計職員和架構師提供目標系統的高階檢視和假設文件,並識別可能的攻擊。透過架構風險分析,安全分析師可以發現架構和設計缺陷並進行排序,以便開始緩解。例如,風險分析可以識別可能的攻擊型別,例如攔截和讀取資料的能力。這種識別將促使設計職員檢視其所有程式碼的流量,以檢視攔截是否令人擔憂,以及是否有足夠的保護(即加密)。分析提示的審查是發現設計缺陷的原因,例如敏感資料被明文傳輸。

沒有系統是完全安全的,因此必需使用風險分析來確定安全工作的優先順序,並將系統級問題與對構建軟體的業務至關重要的機率和影響措施聯絡起來。風險敞口的計算方法是將不良事件發生的機率乘以與該事件相關的本錢。

McGraw提出了架構風險分析的三個基本步驟:

•抗攻擊性分析。攻擊抵擋分析使用清單/系統方法考慮每個系統元件與已知威脅的關係,如第2.1.1節第4點中討論Microsoft威脅建模中所做的那樣。在分析過程中使用有關已知攻擊和攻擊模式的資訊,識別體系結構中的風險並瞭解已知攻擊的可行性。如第2.1.1節第4點所述,合併基於STRIDE的攻擊的威脅建模是執行攻擊抵擋分析的示例過程。

• 歧義分析。模糊性分析用於捕捉髮現新風險所需的創造性流動。模糊性分析需要兩個或更多經驗豐富的分析師在統一系統上並行執行單獨的分析流動。透過同一對多重分析的理解,分析師之間的不合可以發現歧義、不一致和新的缺陷。

•弱點分析。弱點分析側重於瞭解與其他第三方元件中的安全問題相關的風險(請參閱第2.1.1節第7點)。這個設法是瞭解對第三方軟體的假設,以及當這些假設失敗時會發生什麼。

風險識別、排名和緩解是貫串整個軟體生命週期的持續過程,從需求階段開始。

3.滲入測試。

滲入測試可以由架構風險分析的結果指導(請參閱第2.1.2節第2點)。有關滲入測試的進一步討論,請參見第2.1.1節,第11點。

4.基於風險的安全測試。

安全測試必需包含兩種策略:

(1)使用尺度功能測試技術測試安全功能;

(2)基於攻擊模式和架構風險分析結果的基於風險的測試(參見第2.1.2節第2點)和濫用案例(參見第2.1.2節第5點)。

對於Web應用程式,安全功能的測試可以由OWASP應用程式安全驗證尺度(ASVS)專案12開放尺度指導,用於測試應用程式技術安全控制。ASVS還為開發人員提供了安全開發的要求列表。

利用軟體架構和構造、常見攻擊和攻擊者的心態知識指導測試非常重要。使用架構風險分析的結果,測試人員可以適當地關注攻擊可能成功的程式碼區域。

基於風險的測試和滲入測試之間的區別在於方法的級別和測試的時間。滲入測試是在軟體完成並安裝在操縱環境中時完成的。滲入測試是由外而內的黑盒測試。基於風險的安全測試可以在軟體完成甚至預整合之前開始,包括使用白盒單元測試和存根。兩者的相似之處在於,它們都應該以風險分析、濫用案例和功能安全要求為指導。

上一篇:中國預計到20... 下一篇:M29金剛三號3...
猜你喜歡
熱門閱讀
同類推薦