本文協助資安與技術團隊建立並現代化發展安全領域。 這項專業協助資安、工程與技術團隊確保軟體的設計、建置、整合與部署都安全無虞,同時不會拖慢創新速度。
資安學科 是相關安全工作的組合,幫助組織在整個技術領域持續提供安全成果。 在安全採用模式中,學科協助搭建 商業場景 與 技術實施之間的橋樑,確保安全投資轉化為實際可衡量的成果,作為 安全採用模型的一部分。
為什麼要有這樣的紀律?
軟體與身份、資料、基礎設施及業務流程深度相互連結。 當開發安全性薄弱或不穩定時,每次軟體發布都可能引入新的漏洞,攻擊者會利用這些漏洞來取得更廣泛的組織資產存取權。
若未建立有效的開發安全實務,組織通常會面臨:
- 開發過程中引入的軟體漏洞風險增加。
- 應用程式入侵,允許身份與資料間的橫向移動。
- 業務營運與營收中斷。
- 客戶及受監管資料的曝光或濫用。
- 技術債務累積,增加長期風險與修復成本。
強大的開發安全紀律確保每次釋出都能降低風險,而非加劇風險。
使命與成果
開發安全領域透過確保所有軟體,無論是內部開發還是合作夥伴開發,都能依照安全標準設計、建置、整合及部署,降低組織風險,且不會拖慢交付或創新速度。
成熟此領域的組織能達成:
- 安全性是內建在開發流程中,而非後期才加上的。
- 及早識別並修正設計與實作缺陷。
- 更可預測、更安全的釋放週期。
- 減少返工、緊急修正及營運中斷。
- 隨著時間推移,技術與安全債務累積會更低。
開發安全確保安全態勢隨著每次發行持續改善,而非定期重置。
團隊合作的變動
開發安全領域必須在開發者與產品團隊所在的地方與他們互動,專注於將安全整合進現有的開發工作流程,而非引入後期控制、繁重的審查流程,甚至在開發流程中跳過安全。
這種做法常被形容為 向左移動,在構思、設計與實作階段更早引入安全思維,因為問題較容易且成本較低。 向左轉並不代表在過程中就說不。 相反地,它及早引入以資安為本的討論,以改善產品決策,確保解決方案符合安全與商業需求。
主要原則包括:
- 早期整合:在構思與設計階段考慮安全性,而非僅僅測試
- 開發者協調:在開發與產品團隊已工作的地方與他們會面
- 小幅、漸進式的改變:偏好自動化與低摩擦的改進
- 持續改進:將安全視為持續的紀律,而非里程碑
隨著時間推移,持續的整合減少了消防演習,並加速了交付速度,而非減緩。
如何運用這門紀律
要有效應用開發安全學科,應著重於建立一套一致的方法,在組織內建立並維護安全的應用程式與服務:
-
定義與業務風險相符的安全開發策略
建立明確的應用程式與服務設計、建置與維護方法,以降低被入侵風險並保護關鍵業務功能。 -
將安全嵌入開發與工程流程
確保安全實務整合於規劃、設計、開發及部署活動中,而非事後應用。 -
建立標準化的安全開發實務
提供明確指引,確保團隊與專案間一致執行安全的編碼、測試與發布作業。 -
將開發安全與關鍵資產及商業情境對齊
優先保護支援高價值資產及關鍵業務運作的應用與服務。 -
根據風險、脆弱性與回饋持續改進
利用漏洞、事件及測試結果的洞察,強化開發實務並隨時間降低風險。
管理變革
現代開發安全通常透過 DevSecOps 方法實施,結合敏捷交付與必要的治理與品質實務,然後在發布前完成。
DevSecOps 不在速度與安全性之間做選擇,而是著重於保護開發生命週期的關鍵面向,以降低緊急風險,同時不阻礙快速發布週期:
保護設計 ——使用經驗證的安全設計模式,並透過威脅建模驗證設計。 保護程式碼 – 遵循安全的編碼規範並驗證軟體與相依性。 保護管線 安全——驗證管線流程,保護CI/CD系統免於入侵與未經授權變更。 確保對管線及通過該管線的軟體所做的變更可追溯。 安全作業 ——確保部署的工作負載遵循設定、修補及營運最佳實務。
團隊可透過持續精煉開發、安全與營運間的協作,平衡功能性交付目標與可靠性及風險降低,從而提升成果。
這種持續的漸進式改進應同時應用於工作生產(生命週期中產生的軟體程式碼)以及開發生命週期本身的成熟。
定義一個 DevSecOps 流程
開發安全通常透過隨時間演進的 DevSecOps 操作模型來實作,而非看似完整。 DevSecOps 將開發、安全與營運整合在一起,透過持續改進達成更佳成果。
大多數組織會經歷以下階段:
開發(開發)-首個生產版本著重於交付符合核心業務需求的最小可行產品(MVP)。 DevOps – 初始版本發布後,團隊專注於快速迭代、營運穩定性及持續交付治理。 DevSecOps – 隨著協作成熟,開發、安全與營運共同努力,持續優化流程,平衡速度、風險與可靠性。
這種進展讓組織能在不犧牲敏捷性或創新性的前提下,提升安全成果。
建立安全的 MVP 基準
此模型的關鍵步驟是從開發、安全與營運角度定義何謂最小可行產品(MVP)。 建立這個共享基線能讓團隊間更加清晰,並隨著時間持續改進。
| 元件 | 詳細資料 |
|---|---|
| Dev(Development) | 確保軟體符合最低的業務與功能需求。 |
| 安全性 | 確保軟體符合最低安全性與合規要求。 |
| 操作(行動) | 確保軟體符合最低品質、可靠性及作戰準備度要求。 |
MVP 的要求因組織與產業而異,並受風險偏好、法規暴露及業務重要性影響。 這些需求常隨著組織、威脅環境及交付模式的變化而演變。
持續軟體改進
在初始生產版本發布後,工作負載進入持續改進週期。 在此階段,開發、安全與營運同時優化軟體與交付流程。 安全工作重點包括:
- 將安全原生整合 進開發工作流程,使用與其他工程工作相同的工具與優先順序模型
- 快速識別、優先排序並修正安全漏洞 ,作為標準發布週期的一部分。
此方法與 Microsoft 安全未來倡議(SFI)的經驗相符,例如 pr鋪設路徑,即將安全做法內建於平台與流程中,而不是從外部強制執行。
隨著時間推移,這種持續學習幫助團隊精煉需求、簡化協作,並更好地平衡交付速度、安全性與可靠性。
學科角色與合作者
開發安全領域通常由團隊負責應用程式與產品開發。
此領域的主要職務通常包括:
- 技術交付與產品經理
- 軟體開發者(包括 AI 開發)
- 軟體安全工程師
- DevOps 與平台工程師
- 測試與品質工程職務
- 供應鏈與相依性安全角色
主要合作夥伴包括:
- 商業與技術領導力——提供贊助與優先排序
- 架構角色 – 指導安全設計與整合決策
- 安全策略、整合與治理領域職務——提供政策、教育與監督
- 基礎架構與平台團隊 – 促進安全的開發環境
- 安全運營(SecOps)— 監控並回應應用程式遭受攻擊
與其他學科的對齊
發展安全與其他SAF領域緊密整合:
- 存取與身份 – 保護開發者、工作負載及服務身份。
- 基礎設施安全——保護運行應用程式與管線的平台。
- 資料安全——確保敏感資料在整個軟體生命週期中受到保護。
- SecOps——偵測並回應應用層級攻擊。
- 安全策略、整合與治理——將開發實務與企業風險優先事項對齊。
這些領域共同確保軟體安全支持更廣泛的業務與安全成果。
與技術支柱保持一致
執行開發安全領域的策略需要跨多個技術支柱的安全控管。
與科技支柱的對齊包括:
- 身份:保護開發者與工作負載的身份與憑證。
- 端點:保護開發者工作站與建置系統的安全。
- 基礎設施:保護託管程式碼、管線及工作負載的平台。
- 應用程式:提供開發安全實務的主要焦點。
- 資料:保護應用程式所使用、產生及儲存的資料。
- 網路:設計軟體能在不受信任的網路上安全運作。
- AI:保護現代應用中使用的 AI 元件與模型。
這種廣度確保該學科能針對現實世界的攻擊路徑進行處理。
接下來會發生什麼?
發展安全策略的額外指引見於 發展安全策略中。
參加工作坊
Microsoft Unified 提供專家主導的工作坊,協助組織現代化其開發安全領域。 這些工作坊包括:
- 架構與策略工作坊 - 安全採用框架(SAF)架構設計會議:基礎建設與發展安全工作坊 聚焦加速發展安全現代化與基礎建設安全整合。 此工作坊以不到四小時的討論形式提供,重點介紹關鍵學習與最佳實務。
- 技術採用工作坊:Microsoft Unified 舉辦工作坊,協助組織學習、規劃、實施及優化Microsoft發展安全技術,如圖所示。
檢閱 Microsoft 安全性開發生命週期
Microsoft 持續安全開發生命週期提供了一種安全開發軟體的方法論。 安全開發生命週期(SDL)是 Microsoft 用來將安全整合進 DevOps 流程的方法(有時稱為 DevSecOps 方法)。 SAF 開發安全指引協助您將 SDL 方法與實務調整至您的組織。
你可以將 SDL 方法中描述的做法應用於所有類型的軟體開發與平台,從經典瀑布式到現代 DevOps 方法皆可。 這種通用的軟體安全方法適用於任何類型的軟體與平台。
欲了解更多資訊,請參閱 Microsoft 安全性開發週期 (SDL)。
有效的開發安全性需要遵循如 Microsoft 安全性開發週期 (SDL) 等安全開發生命週期 (SDL)
下一步
了解 DevOps 轉向 DevSecOps 的轉變。