iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
Security

建構安全軟體開發系列 第 18

建構安全軟體開發 EP 18

  • 分享至 

  • xImage
  •  

Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~

本篇是 建構安全軟體開發 系列文的 EP18。


威脅模型的方法論

威脅模型的方法論在很多方面很有幫助,尤其用來協助建立描述系統所面對的抽象威脅時,透過這些威脅模型的方法論可以快速地了解起各種這些抽象威脅的實質概念。

不同種類的方法論適合不同形式的系統,甚至可能在同一個系統中可透過多個方法論來建構其威脅模型。

在前一回的 EP17 當中所提到的工具,就採納其下要介紹的幾種方法論來建構。

S.T.R.I.D.E

  • Spoofing (偽冒)
  • Tampering (竄改)
  • Repudiation (否認)
  • Information disclosure (資訊洩漏)
  • Denial of Service (服務阻斷)
  • Elevation of privilege (不當提權)

以上六點英文的字首形成 S.T.R.I.D.E,而其實 S.T.R.I.D.E 也正對應著在 EP02 所提的 C.I.A. Traid 與 A. A. A. 原則的 反/正 概念。

所以若從 C.I.A 與 A. A. A. 的順序來看 S.T.R.I.D.E 時,就形成:

  • Confidentiality <-> Information disclosure

  • Integrity <-> Tampering

  • Availability <-> Denial of Service

  • Authentication <-> Spoofing

  • Authorization <-> Elevation of privilege

  • Accounting <-> Repudiation

DREAD

  • Damage (損害)
  • Reproducibility (可再現性)
  • Exploitability (可利用性)
  • Affected Users (受影響用戶)
  • Descoverability (可揭露性)

以上五點英文的字首形成 D.R.E.A.D,常跟上述的 S.T.R.I.D.E 共同被考慮,並針對其中的每個 Risk 進行上述的 5 項指標的每項指標,在各種條件與考慮下評估分數(1 ~ 10)並對給予此分數的原因進行紀錄,最後再看其分數是否超過當初預定的數值。若有,則需開始採取修正作為。

The Process for Attack Simulation and Threat Analysis (P.A.S.T.A)

此方法論涵蓋了下列七種面向:

  • Define Objectives (定義目標,內含三種活動):
    • 識別商業價值 (Business)
    • 識別安全與依循規範
    • 識別影響分析
  • Define Technical Scope (定義技術範疇,內含兩種活動):
    • 找尋技術環境的邊界
    • 確認基礎設施、應用、軟體的基礎。
  • Application Decomposition (情境解耦,內含三種活動):
    • 識別使用者案例,應用進入點與信任層級。
    • 識別資產、服務、角色、資料。
    • 資料流程圖與信任邊界。
  • Threat Analysis (威脅分析,內含三種活動):
    • 攻擊情境分析
    • 安全活動與回歸分析
    • 威脅校正與分析
  • Vulnerability and Weakness Analysis (弱點分析,內含四種活動):
    • 查出現存弱點報告與問題追蹤
    • 對於目前現存落點的威脅對應
    • 分析誤用與濫用
    • 透過 CVE/CWE/CVSS 等進行評估
  • Attack Modeling (攻擊模型,內含三種活動):
    • 可攻擊面積分析
    • 攻擊樹發展與管理
    • 透過攻擊樹分析弱點
  • Risk and Impact Analysis (風險與影響分析,內含三種活動):
    • 估測商業價值影響
    • 估測剩餘風險
    • 風險損害降低對策

Scope 要定在一定的區域/範圍中去討論,Depedencies 要建構在怎樣的安全基礎上去討論。

Attack Trees

攻擊樹 (Attack Trees) 是由 Bruce Schneier 於 1999 年所提出的安全威脅模型去討論安全威脅。

樹根是所要攻擊的目標,樹葉或其分枝則是描述如何攻擊的手段,所以在系統威脅分析時會產生很多且龐大的攻擊樹。

雖然如此,在一定的觀點上,攻擊樹是可以協助我們判斷系統所存在的威脅與決定要如何應對攻擊的方式。

其他方法論

Safecode.org 所整理的方法論當中還有其他四個:

  • Trike
  • ATASM
  • Threat Library/List Approach
  • Lightweight/Rapid Thread Modeling

有興趣可以參考上述 Safecode.org 的 Tactical Threat
Modeling 文件
的 11 頁。

Weakness vs. Vulnerability

若用中文來翻譯,可能可以把 Weakness 解釋為 "弱點";Vulnerability 解釋為 "漏洞"。

所以,在應用/軟體/系統/服務尚未被真正開始進行實作之前,是不存在其 Vulnerability 的,透過威脅模型的建構可以識別出其應用/軟體/系統/服務可能存在的 Weakness 而提早防範。

Risk vs. Threat

若用中文來翻譯,可能可以把 Risk 解釋為 "風險";Threat 解釋為 "威脅"。

風險: 客觀存在標的/目標物上的不確定影響。
威脅: 一種潛在造成但不願發生的意外且其結果會對其造成損害。



上一篇
建構安全軟體開發 EP 17
下一篇
建構安全軟體開發 EP 19
系列文
建構安全軟體開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言