STRIDE威脅建模


1、什麼是威脅建模web

簡單的來講,威脅建模就是經過結構化的方法,系統的識別、評估產品的安全風險和威脅,並針對這些風險、威脅制定消減措施的一個過程。算法

威脅建模是一個很是有用的工具,它的核心是「像攻擊者同樣思考」。威脅建模能夠在產品設計階段、架構評審階段或者產品運行時開展,強迫咱們站在攻擊者的角度去評估產品的安全性,分析產品中每一個組件是否可能被篡改、仿冒,是否可能會形成信息泄露、拒絕攻擊。威脅建模的做用更偏向於確保產品架構、功能設計的安全,沒法保證編碼的安全,可是輸出的威脅建模報告中包含了全面的安全需求,這些安全需求不只包括大的方案設計,如要認證、鑑權、審計,也能夠包括安全細節的實現,好比具體的認證方式、密碼使用哪一種安全算法存儲,使用什麼方法生成安全隨機數等。因此,威脅建模雖不能保證編碼的安全,但能夠指導研發人員編寫出安全的代碼,同時也能夠輔助滲透測試人員開展安全測試。數據庫

2、爲何要作威脅建模瀏覽器

1.  站在攻擊者的角度經過識別威脅,儘量多的發現產品架構和功能設計中的安全風險安全

2.  制定措施消減威脅,規避風險,確保產品的安全性架構

3、應該在何時作威脅建模負載均衡

威脅建模應融入企業的軟件開發安全生命週期(SDL)中。工具

1.  新產品或新功能的設計階段應開展威脅建模,發現風險、制定消減措施,消減措施是安全需求的一部分,需落入產品需求跟蹤,確保產品安全。測試

2.  系統運行過程當中也能夠開展威脅建模,發現的風險能夠爲企業滲透測試提供支持,儘量發現更多的漏洞。優化

4、經常使用的威脅建模方法—STRIDE

STRIDE是微軟開發的用於威脅建模的方法和工具。

STRIDE威脅建模的整體流程:

 

 

 

5、STRIDE的六類威脅與四類元素

在正式開始威脅建模前,咱們先來了解STRIDE的六類威脅和數據流圖中的四類元素。

5.1 六類威脅

STRIDE是從攻擊者的角度,把威脅劃分紅6個類別,分別是Spooling(仿冒)、Tampering(篡改)、Repudiation(抵賴)、InformationDisclosure(信息泄露)、Dos(拒絕服務)和Elevation of privilege (權限提高)。

爲何劃分這6類,這與信息安全三要素和信息安全基本的三個屬性相關。

信息安全三要素

信息安全三屬性

保密性

認證

完整性

鑑權

可用性

審計

表:六類威脅與信息安全三要素、三屬性的對應關係

威脅

安全屬性

定義

舉例

仿冒(S)

認證

冒充人或物

冒充其餘用戶帳號

篡改(T)

完整性

修改數據或代碼

修改訂單信息

抵賴(R)

審計

不認可作過某行爲

不認可修改行爲

信息泄露(I)

保密性

信息被泄露或竊取

用戶信息被泄露

拒絕服務(D)

可用性

消耗資源、服務可不用

DDOS致使網站不可用

權限提高(E)

受權

未經受權獲取、提高權限

普通用戶提高到管理員

隨着全球對隱私保護重視程度的加大,隱私安全也成了產品的一個重要威脅,所以STRIDE的6個威脅也添加了一項隱私(Privacy),也就變成了ASTRIDE,A表明Advanced。

5.2 四類元素

咱們在來了解下四類元素,STRIDE威脅建模的第一步就是繪製數據流圖,數據流圖是由【外部實體】、【處理過程】、【數據存儲】、【數據流】這四類元素組成。STRIDE威脅建模的核心就是使用這四類元素繪製數據流圖,而後分析每一個元素可能面臨的上述六類威脅,針對這些威脅制定消減方法。

四類元素的介紹以下:

1.  外部實體

系統控制範圍以外的用戶、軟件系統或者設備。做爲一個系統或產品的輸入或輸出。在數據流圖中用矩形表示外部實體。

2.  處理過程

表示一個任務、一個執行過程,必定有數據流入和流出。在數據流圖中用圓形表示。

3.  數據存儲

存儲數據的內部實體,如數據庫、消息隊列、文件等。用中間帶標籤的兩條平行線表示。

4.  數據流

外部實體與進程、進程與進程或者進程與數據存儲之間的交互,表示數據的流轉。在數據流圖中用箭頭表示。

 

 

 

 

使用以上四個元素繪製完數據流圖後,還須要引入信任邊界,安全的本質就是信任問題,信任邊界每每就是攻擊發起的地方。在數據流圖中能夠用紅色的虛線隔離出信任邊界。

以下是一個比較簡單的數據流圖演示:

 

 

 

6、STRIDE四類元素與六類威脅的對應關係

具體的對應關係以下圖所示,並非每一個元素都會面臨6個威脅,好比外部實體只有仿冒和抵賴兩類威脅,咱們不用關心外部實體會不會被篡改、會不會發生信息泄露、以及拒絕服務等,由於外部實體原本就是咱們控制範圍以外的。

其中進程(處理過程)會面臨所有的6個威脅,數據存儲中Repudiation(抵賴)是紅色,表示只有存儲的數據是審計類日誌纔會有抵賴的風險,存儲其餘數據的時候無抵賴。

 

 

 

7、威脅建模的總體流程

經過上面的介紹,咱們已經瞭解了四個元素和六個威脅,STRIDE威脅建模的整體流程:

 

 

7.1  微軟威脅建模工具

微軟發佈了STRIDE威脅建模工具,提供免費下載,由於使用便利性、威脅攻擊庫等緣由,微軟建模工具不見得能夠直接拿來在企業內推廣使用。

下載地址:https://docs.microsoft.com/en-us/azure/security/azure-security-threat-modeling-tool

7.1.1  安裝過程:

 

 

 

7.1.2  工具首頁:

 

 

7.1.3  Create A Model(繪製數據流圖)


7.1.4  威脅分析模式

進入分析模式後,數據流圖下方會自動彈出不少的威脅以及建議,以下圖所示:


 

 

能夠在Justification裏面填寫相關的消減舉措。

7.1.5  導出報告

 

 

 

 

7.2 繪製數據流圖

介紹微軟威脅建模工具的時候也能夠看到,繪製數據流圖就是用上面所介紹的【外部實體】、【處理過程(進程)】、【數據存儲】、【數據流】把系統(產品)的數據流轉圖畫出來。這個工做須要開展威脅建模工做的人對產品有比較深刻的瞭解,若是有遺漏可能就會致使威脅分析不全,具體在作的過程當中能夠把產品架構圖拿來參考,若是是新上線的重要且複雜度較高的產品,也能夠由產品經理、研發、安全坐在一塊兒完成。

7.3  分析威脅

根據繪製的數據流圖,按照元素與威脅對應表,分析全部元素可能遇到的威脅。這部分工做對威脅分析人員的安全能力要求很高,若是威脅分析不全,則風險就會被帶到線上。並且威脅建模工做不只僅是安全人員在架構評審時去作,更應該是產品經理在產品設計階段須要完成,這就要求非安全人員要具有較高的安全能力。因此,企業通常須要藉助威脅建模工具去輔助進行威脅分析。

威脅建模工具須要具有兩個庫,一個是威脅分析階段使用的《威脅庫》,一個是制定消減措施階段使用的《消減措施庫》。這裏的《威脅庫》能夠分爲兩類,一類就是各類威脅,好比繞過認證、獲取口令、破解口令等等,還有一類是合規,各種法律法規的要求,好比隱私聲明、企業內部要求等。

當咱們在數據流圖上面選中某個元素進行威脅分析時,威脅建模工具能夠自動的把這個元素可能涉及的威脅列出來,讓分析人員去選擇,並針對選擇的威脅給出必定的消減措施提醒,這樣即可以下降對分析人員的能力要求。

威脅分析舉例,用戶經過瀏覽器登陸web網站,用戶就是一個外部實體,面臨的威脅包括仿冒和抵賴。

仿冒威脅分析:

1.  【威脅】攻擊者仿冒用戶登陸網站

     【消減措施】增長認證功能,經過用戶名+密碼的方式認證,暫不使用雙因素、短信、指紋等其餘認證方式

2.  【威脅】攻擊者繞過當前的認證方式,仿冒用戶登陸

     【消減措施】:

2.1  增長圖形驗證碼防暴力破解

2.2  密碼增長複雜度要求,防暴力破解

2.3  認證錯誤返回統一提示,防止checkUser

2.4  確保密碼重置、密碼找回邏輯的安全,謹防繞過

3.  【威脅】攻擊者經過中間人竊取用戶密碼

     【消減措施】:

3.1  登陸請求走HTTPS

3.2  開啓HSTS

3.3  確保SSL證書安全,算法套中使用的是安全的算法

3.4  密碼傳輸前先作一次加密或哈希

4.  【威脅】攻擊者竊取正經常使用戶的會話,仿冒用戶登陸web網站

【消減措施】:

4.1  長度大於24位,經過安全隨機數生成

4.2  登陸先後強制改變會話

4.3  限制會話過時時間

不在一一列舉,總之把可能遇到的威脅列到《威脅庫》,讓威脅建模人員選擇涉及的威脅並確認消減措施。同時,須要認識到威脅庫是須要動態更新的一個過程,消減措施也要遵循安全設計的基本原則,如縱深防護、受權最小化、默認安全,知足安全基本原則的消減措施,纔可能讓產品更安全、抵禦更多的攻擊。

上述所列舉的全部消減措施都是安全需求,最終輸出一份威脅建模報告,研發人員在開發階段須要參考威脅建模報告,把這些所有需求實現。SDL代碼評審階段也能夠參考威脅建模報告對研發人員的實現狀況進行正向和逆向測試。

7.4  風險評估

風險=影響*可能性

利用風險評估方法,爲識別的威脅進行風險定級,根據企業實際狀況,確認哪些級別的風險必須規避、哪些級別的風險能夠消減後遺留。

7.5  制定、落實消減措施

制定威脅消減措施,並落入軟件安全開發生命週期,確保措施有效落地執行。

常見的消減措施以下:

威脅

消減措施

仿冒

身份管理、認證(密碼認證、單點登陸、雙因素、證書認證)、會話管理

篡改

完整性校驗、訪問控制

抵賴

安全管理、安全審計、監控

信息泄露

敏感信息保護、數據加密、訪問控制

拒絕服務

負載均衡  防DDOS

權限提高

受權,最小化

8、 一點關於威脅建模面臨的困境與對策的思考

威脅建模在企業常常面臨落地、推廣困難的問題,主要緣由有如下幾方面:

1.  流程複雜,耗費時間

2.  人員能力要求高

3.  須要開發威脅建模工具、維護威脅庫、消減庫

威脅建模是一個結構化的分析方法,目的是儘量多的識別產品風險,正由於要把風險儘量識別全,因此面臨流程複雜,花費時間多、推廣困難的困境。

企業能夠根據本身的實際狀況作調整和優化,找到平衡點,好比:

1.  以產品維護控制範圍

1.1  新產品通常週期研發、上線比較長,能夠預留威脅建模時間

1.2  重要系統的重要功能要求開展威脅建模

1.3  其餘產品和功能不作要求

2.  以風險角度控制範圍

2.1  對暴露在信任邊界的元素開展威脅建模

2.2  對暴露到公網的元素開展威脅建模

2.3  優化威脅庫,僅保留風險級別比較高的威脅

3.  優化威脅建模工具

經過工具下降對威脅建模人員的能力要求,提升威脅建模效率,減小時間。

相關文章
相關標籤/搜索