Please enable JavaScript.
Coggle requires JavaScript to display documents.
SSDLC 安全軟體開發生命週期 (Secure Software Development Life Cycle), 安全軟體設計原則, CH4…
SSDLC 安全軟體開發生命週期
(Secure Software Development Life Cycle)
生命週期
安全需求分析 (登入)
擬定可行性方案與優先順序
需要具備資安技能
威脅分析
設計
Governance
強化人員資安意識
培養開發人員安全能力的效益
Education
Level 1~3 & Stream A~B
Security Champion
必須受訓
檢視外部需求 (Code Review)
定期報告應用系統的安全狀態與提升計畫
弱點處理知識管理
有效教育訓練
現況盤點 (受眾是誰?)
安全程式能力 (含工具)
可用資源
訂定目標與驗證方式 (課前/課後測驗)
漏洞出現頻率下降 %、修補速度提高%
分階段性(月、季、年),指定一個弱點、執行相關修復
合規要求,例如ISO 27001 :2022 增加8.28 (安全程式碼 Secure Coding)
執行方法與策略
人性考量
容易入門門檻 (文宣)
是對手、也是隊友
提供討論平台
開發生態圈的工具整合 (vs, Git, )
棍子與胡蘿蔔
馬斯洛需求層次理論 (與高層分享、露面)
打造榮耀時光,嵌入公司文化 (提早下班、享無限咖啡等等,製造差異性)
開發人員自發性認可
培訓工具的選擇
內容:講師、因材施教、應用場景
方式:藍隊(防守)、紅隊(進攻)
開課彈性
專注力
互動思考
課程長度
成效追蹤
Guidance
Security Requirement
Software Requirement
Supply Requirement
安全需求的萃取方式
腦力激盪
軟體安全檢查表
資料分級
設計誤用案例模型
設計階段:威脅模型、架構分析
Stride 模型
開發
Code Standard
發展控制措施
原始碼檢測
佈署與維護
IDS/IPS
強化管理監控
系統強化
更新管理
滲透測試
應用系統防火牆 WAF
測試
CIA
弱點掃描
動態測試(白黑箱)
功能測試、壓力測試
重點功能測試
安全軟體設計原則
最弱環節 (登入)
縱深防禦 (多設幾道程序)
最小權限
權限分離 (信用卡號 + OTP)
簡化設計 (Unity 化,容易維護)
安全故障 (登入不能使用時,全部都不該被使用)
完全仲裁
開放設計 (建立在被驗證過的原件上)
使用現存元件
防禦單點失效
最少共用機制 (前後台有不同的登入機制)
可接受度 (密碼要求輸入 12 個字元,很難記所以寫在 memo 紙上....)
CH4 安全軟體開發與測試
安全程式測試
功能性 (Features):回歸測試、冒煙測試、單元測試
可用性 (GUI):效能測試、壓力測試、負載測試、相容性測試
安全性 (Restrictions):白箱測試、黑箱測試
演變:滲透測試、安全閘門、開發+安全+維運、軟體安全風險
安全需求
Code Standard (安全程式碼規範)
版本控制
功能變更
資安檢測
標準作業程序與 Policy
安全開發環境 (測試區、正式區)
Open Source 管理要點
Vulnerablity
Component
License (GPL 3.0)
SBOM
Zero Day
Update Speed
資安工具
SQL MAP
ASBS
JMeter
OWASP ZAP
KICS
功能性測試常遇到的問題
沒有專業的測試團隊
大多人工手動測試
測試覆蓋度的不足
沒有完整的回歸測試
無法重現問題
5.佈署與維運
盡量自動化 CI/CD
系統強化
定期安全檢測
強化管理監控
變更管理
駭客目標
個人資料
財務資料
機房、運算力
合約、義務機密
風險管理
降低 (非修改原始碼的方式,例如調整網路架構、防火牆)
轉嫁 (要求委外廠商)
規避 (停止使用、下架)
接受 (若風險為可預期之範圍,評估影響範圍後繼續使用)
SSDLC 方法論
OWASP-SAMM (較為推薦)
Measurable
Actionable
Versatile
MS-SDL
OWASP-CLASP
Cigiital-TouchPoint
重要法規
GDPR
OWASP
PCI DSS
台灣行動 APP 基本資安規範
資安事件
安全漏洞
系統保護不足
自動化不足 (人為疏失)
OWASP Top 10 (10 大風險清單)
Web/Mobile/API/Embedded/LLM Top 10
根據蒐集的資料必較發生率、技術影響力(嚴重性)兩者的出排名
10 大只是資安學習的入門
進階:ASBS 驗證標準 (需要有人工分析)
資安 CIA
機密性
完整性
可用性
自動化測試要點
相容性、回歸、提高覆蓋度
測試腳本
追蹤與偵錯
CH2 軟體安全漏洞
漏洞 (Vulnerability) : CVE
弱點 (Weakness) : CWE
台灣漏洞公告
https://www.twcert.org.tw/tw/np-131-1.html
主要由白帽維持
CVE
https://cve.mitre.org/
Requirement Dirven Testing
Control Verification
Misuse/Abuse Testing
檢測應用系統邏輯問題
防止 DoS 攻擊能力
商業邏輯與人類邏輯的差異
Security Testing
Scalable Baseline
Deep Understandarding
Secure Build
Build Process
Software Dependencies
環境管理
Configuration Hardening
Patching and Updating
資安官
可視化攻擊事件(讓上層知道資安官有做事....)
安全檢測工具
Source Code
SAST (白箱 Static)
DAST (黑箱 Dynamic)
IAST (灰箱 Interactive)
SCA (Software Component Anaylsys)
GDPR
第三方套件的風險
https://owaspsamm.org/release-notes-v2/
某物被發現OO漏洞、類型是XX弱點,可能引發YY事件。攻擊者利用弱點攻擊,所以解決方案是針對弱點
一個漏洞可能隱含 N 個弱點
多數的漏洞存在於應用曾
CH3 安全軟體設計與需求
漏洞出現的速度=N個新漏洞/時間
漏洞修補的速度=N個漏洞/時間
修補成本=回憶功能 修改程式 功能測試 復歸 + 原本薪資
評估培訓計畫的指標:漏洞修補的數量、漏洞修補速度、總機漏洞數量
security requirement traceability matrix
Log 要過濾換行符號
資料是否外洩查詢
https://haveibeenpwned.com/
安全設計不應該依賴隱藏式安全 (只有我知道的演算法,駭客部會知道)
網頁前端登入驗證→可以駭入
駭客最愛從應用層入侵
JMeter
網拍,可以看到競標者的帳號,只要用他的帳號連續登錄錯誤,就沒人跟我競標了...
內網並不安全
寫程式→Git→觸發安全檢測→Issue Tracking→開單→軟體工程師→寫程式
用黑箱角度來了解系統的防禦能力
利用滲透測試在系統中找到技術與邏輯的問題
檢測之前→確定資安檢測目標
睿陽:Sola