SSDLC 各階段資訊安全作業參考筆記


  1. 說明
    1. 需求階段
      1. 軟體的安全面向
      2. 相關工作
    2. 設計階段
      1. 安全軟體設計原則
      2. 風險處理
      3. 威脅分類 STRIDE
      4. 威脅風險評估 DREAD
      5. 應用程式風險分類
      6. 相關工作
    3. 開發階段
    4. 測驗階段
    5. 部署階段
    6. 維運階段
  2. 參考資料
    1. 技服中心 NCCST
    2. 台北區網中心
    3. 研討會論文

筆記 Secure Software Development Life Cycle, SSDLC 中各階段需要進行的資訊安全作業項目 🔱

logo

說明

需求階段

軟體的安全面向

  1. Confidentiality (機密性)
  2. Integrity (完整性)
  3. Availability (可用性)
  4. Authentication (驗證)
  5. Authorization (授權)
  6. Auditing (稽核)
  7. Session Management (資料傳輸機制管理)
  8. Error and Exception Handling (錯誤與例外處理)
  9. Configuration Management (組態管理)

資料來源:Official (ISC)2 Guide to the CSSLP

相關工作

安全需求萃取

📝OWASP ASVS

OWASP ASVS

Application Security Verification Standard, ASVS,提供對於應用程式的安全測試基準與指南,同時也對於軟體開發人員條列說明開發上需要注意的事項。ASVS 提供了兩項功能:
(一)指引組織開發與維護安全的應用程式
(二)提供資安廠商、資安工具開發者、資安需求者能夠契合對於資安的需求與供給

📝資通系統資安需求項目查檢表
📝需求追溯表

設計階段

安全軟體設計原則

  1. Weakest Link:常保警覺,資訊系統中最弱的環節在那裡?程式碼、服務或者介接介面?
  2. Economy of Mechamism:保持軟體的實作上的簡單,越複雜的軟體越有可能出現漏洞
  3. Leveraging Existing Components:使用已有經過測試、可受信任的軟體元件,不要自造輪子、製造麻煩
  4. Defense in Depth:縱深防禦,透過多個環節都分別設立資安防禦機制,例如軟體、網頁伺服器、防火牆、路由器
  5. Fail Secure:確保資訊系統的故障安全,當錯誤發生時是否會影響 Confidentiality, Integrity, Availability,是否有對應的處理方式
  6. Single Point of Failure:資訊系統的攻破只需要最後一個弱點環節就足夠
  7. Least Privilege:最小權限原則,只提供必要的權限
  8. Complete Mediation:對於每一次的請求都需要進行檢查(傳入的參數與物件綁定、宣稱的權限、要求的目標)
  9. Separation Of Duties:系統應保持責任分離,不論是使用者的權限、程式的功能
  10. Psychological Acceptability:太過繁複的安全設定,反而會讓使用者感到不便而使用具有風險的使用方式
  11. Open Design
  12. Least Common Mechanism

OWASP - Secure Design Principles

風險處理

  1. 降低
  2. 保留
  3. 避免
  4. 轉移

威脅分類 STRIDE

  1. Spoofing : 偽造身分
  2. Tampering : 惡意竄改輸入與資料
  3. Repudiation : 無法稽核使用者曾經執行的軌跡
  4. Information Dsiclosure : 機敏資訊外洩
  5. Denial of Service : 系統服務可用性被阻斷
  6. Elevation of Privilege : 未正常的取得授權

MSDN - STRIDE

威脅風險評估 DREAD

  1. Dangerous Potential
  2. Reproduciblity
  3. Exploitability
  4. Affected Users
  5. Discoverability

Risk = (R + E + Discoverability) X (Dangerous + A)

MSDN - DREAD

應用程式風險分類

應用程式風險分類 | sdwh.dev

相關工作

EDFD
Threat Modeling
威脅風險評估
發展控制措施
📝Web 應用程式安全查檢表

開發階段

OWASP Top 10
CWE / SANS Top 25
WASC Threat Classification (Attack List / Weaknesses List)
Vulnerability Database
📝OWASP ASVS
📝源碼安全檢查表
📝《Hacksplaining》Developer 不能錯過的安全應用程式設計觀念

測驗階段

源碼檢測, Static Application Security Testing, Checkmarx / Fortify
弱點掃描, Vulnerability Test, Acunetix / Nessus / WebInspect / IBM Security AppScan
📝OWASP ASVS

部署階段

滲透測試, Penetration Test
組態管理
變更管理
持續整合 CI
持續部署 CD
SSL Server Test
Security Headers Scan

維運階段

SIEM


參考資料

技服中心 NCCST

系統安全發展流程實務_20160812v2

資訊系統安全強化要點

台北區網中心

2020 - 安全軟體發展生命週期(Secure SDLC)

2017 - 安全性軟體開發流程概論

研討會論文

安全軟體開發生命週期設計階段最佳實務之探討

科技部推動SSDLC經驗分享