DevSecOps 是開發 (Dev)、資安 (Sec)、營運 (Ops) 的簡稱,也就是將資安直接整合至軟體開發生命週期 (SDLC) 的每一階段當中,從規劃、程式碼撰寫,到組建、測試、發布以及運作應用程式。
目錄
DevOps 的重點在於簡化軟體的建構、測試與發布,讓團隊透過自動化以及開發與營運團隊之間的密切合作來讓軟體能迅速而可靠地推出。DevSecOps 保留了這些目標,然後將資安融入開發生命週期的每一階段,將資安視為每一個人的責任,而非最終的把關機制,或是另一個團隊的問題。
功能
DevOps
DevSecOps
主要目標
交付速度與營運可靠性
涵蓋整個軟體開發生命週期的 (SDLC) 的交付速度與可驗證的安全性
時機
部署後
設計 → 程式碼 → 組建 → 測試 → 發布 → 部署 → 運作
責任歸屬
集中式資安營運
由開發、資安和營運團隊共同承擔 (資安大使)
自動化
SIEM/SOAR 工作流程
CI/CD 關卡、政策程式碼、已簽署的成品
成果
資安事故遏止、鑑識分析
減少資安事故、發布速度更快又安全、隨時備妥稽核證據
「左移」是指將資安實務導入開發流程的前期階段,而非等到接近尾聲或部署之後才開始。藉由將資安左移,團隊就能提早發掘資安威脅,趁程式碼才剛寫好、變更的成本不高時,為開發人員提供立即可化為行動的回饋。
「資安程式碼」(Security as Code) 是指將資安政策、控管與檢查當成應用程式的程式碼來看待,同樣要經歷版本編號、審查、測試、自動化等 CI/CD 流程。將政策當成程式碼來看待,可改善開發人員的工作流程,將資安變成一種自動化回饋,而非手動審查。結果就是,資安能隨著交付而擴大、被當成像程式碼一樣進行測試,並且每次更新都會自動強制貫徹。
持續監控工具可從規劃到營運環境為應用程式與基礎架構的安全性提供即時的觀察與分析,發掘潛在的資安風險。自動化漏洞掃描、政策程式碼 (policy as code) 以及監測流程,會持續蒐集和評估程式碼、組建、雲端組態設定以及執行時期的訊號。這套主動式方法能即時偵測威脅,確保每一次發布的版本都更加安全。
將手動把關改成自動化安全機制,每次提交 (commit) 程式碼時都要執行掃描、每一個組建都要檢查相依元件、每一次的拉取 (pull) 請求都要驗證容器與基礎架構程式碼,並且在部署時強制貫徹政策。使用自動化來執行一般性修正,其餘的透過拉取請求或工單 (ticket) 來向上呈報。
DevSecOps 強調責任共同分擔的文化,這意味著開發、資安及營運人員必須共同承擔從規劃到營運的資安成果。產品團隊內部的資安大使負責將政策轉化成實際的指引,協助過濾雜訊,將規則改善的意見回饋給中央團隊。不互相指責的事故後續檢討與透明的指標,有助於維持健康、可具體衡量的責任歸屬。有了明確的責任歸屬與可隨時調整的工作流程,團隊就能不斷改進測試、政策和操作手冊 (runbook),將資安變成一種協同合作習慣,而非後期階段的把關機制。
在 DevSecOps 流程當中建立可追蹤性、可稽核性以及可視性,就能提供更明確的洞見,並強化整體資安。
將每一次的變更從需求到執行時期全部串連起來:工單 (ticket) → PR/提交 (commit) → 組建 (build) → 成品 (artifact) → 部署 (deploy),包括:由誰所做、改了什麼、何時,以及為何。如此就能加快根源分析速度,釐清責任歸屬,避免發生「神秘變更」的情況。
產生可驗證、可審查的控管與變更證據:不可變更的 CI/CD 記錄檔、核准記錄、已簽署的成品、SBOM 以及已記載的例外項目 (含效期)。如此就能將稽核變成一項事實確認工作,無須手動翻找證據。
透過整合式儀表板、警報與責任歸屬,提供程式碼、流程、雲端組態設定與執行時期風險的即時洞見。有了明確的訊號與門檻值,團隊就能及早發現偏差與威脅,並迅速採取行動來降低衝擊。
DevSecOps 需仰賴各式各樣的工具來整合開發和部署流程每一階段的資安檢查。其中最常用到的工具包括:
SAST 工具可分析原始程式碼和組態設定,在應用程式執行之前找出一些不安全的情況,例如:SQL 資料隱碼攻擊 (SQL Injection)、加密強度不足,以及危險的 API。在 DevSecOps 工具鏈中,SAST 解決方案會在 IDE 和 CI 當中針對每一次的拉取請求來執行,提供第一線的發現與指引,並且在遇到高嚴重性問題時防止程式碼合併。它非常適合早期偵測,也非常適合用來強制落實安全的程式碼撰寫指引。
IAST 工具可在測試或預備 (staging) 環境當中執行一個應用程式來檢查程式碼在執行期間的行為。IAST 會將每個請求與執行中的那一行程式碼做連結,它能比 SAST 或 DAST 更準確、更少誤判地偵測可攻擊的漏洞,還能確切指出其程式碼所在位置,提供簡單的步驟來重現問題。
DAST 工具可在預備或測試環境中針對已部署的應用程式執行自動化黑盒測試。它們會模擬駭客的流量,使用測試帳號來演練真實使用者的操作流程。這類工具會將您的 OpenAPI 規格當作地圖來發掘端點裝置,並嘗試利用一些惡意輸入來找出強度太弱的認證、不安全的重新導向、組態設定偏差以及注入攻擊。這些發現結果會被寫入 CI/CD 記錄檔中,然後指派給適當的團隊進行後續追蹤。
軟體組成分析 (SCA) 是一套自動化流程,用來尋找應用程式當中用到的開放原始碼套件。SCA 解決方案可找出程式碼庫中的所有第三方函式庫和相依元件,與已知的 CVE 漏洞作比對,並且即時評估授權合規狀態。當 SCA 與 CI/CD 流程整合時,就能攔截含有重大漏洞的組建,並通知開發人員來修正問題。
秘密掃描是一套自動化流程,用來偵測寫死在程式碼、提交記錄及組態設定當中的 API 金鑰、權杖 (token) 和密碼。在提交前強制攔截,然後拿掉任何暴露在外的登入憑證。
容器防護可掃描基礎映像與各層次當中是否有 CVE 漏洞、強制使用最陽春的映像,並驗證執行時期組態設定,例如:未使用 root 來執行、使用唯讀檔案系統,以及捨棄某些功能。此外也能與您的登錄整合,讓含有漏洞的映像被自動隔離。
DevSecOps 實務可節省時間,直接將自動化資安檢查與安全機制融入 CI/CD 流程當中,協助發掘整個 SDLC 中的問題,避免到後期才來修正漏洞。
DevSecOps 讓資安變得主動,將資安變成一套從設計到營運過程中隨時運作且自動化的回饋循環,確保在風險演變成資安事故之前,事先被預測、防範並證明安全無虞。
導入強大的 DevSecOps 實務能降低成本,因為您可以事先預防代價昂貴的問題發生,而非等發生之後再來收拾善後。在程式碼審查或 CI 過程當中找到一個漏洞只需花費幾分鐘的時間來修正,但若在預備或營運階段發現同一個問題,卻可能得花數小時的時間重做、緊急修正,甚至停機。
DevSecOps 方法是促進開發、資安和營運團隊之間彼此更密切合作的一把鑰匙,因為它讓資安變成一種共同分擔的責任,以及開發流程當中看得到的一個環節,而非後期的檢查點。
了解 DevSecOps 只是個開端,趨勢科技將這樣的概念具體化,提供實際可行的企業級解決方案,保護雲端原生應用程式,涵蓋軟體生命週期的每一階段,從開發、整合、部署,到執行時期。
趨勢科技將資安融入 DevOps 工作流程當中,協助企業將威脅偵測自動化、強制貫徹合規,保護橫跨多重雲端環境的工作負載,同時又不會拖慢創新速度。DevSecOps 不僅是一套框架,更是一套策略性方法,讓您打造彈性、可擴充、又安全的數位基礎架構。
Fernando Cardoso 是趨勢科技產品管理副總裁,專精於不斷演進的 AI 與雲端世界。在他職業生涯的一開始,曾擔任過網路與銷售工程師,磨練了他在資料中心、雲端、DevOps 以及網路資安領域方面的技能,而這些領域至今依然能持續激發他的熱情。
DevSecOps 代表開發 (Dev)、資安 (Sec) 及營運 (Ops),將資安實務整合至軟體開發生命週期的每一階段。
DevSecOps 的運作方式是將自動化資安檢查融入開發流程當中,支援持續整合、測試以及安全的軟體交付。
建置 DevSecOps 需要將資安檢查自動化,將工具整合至 CI/CD 流程,並且促進開發、資安與營運團隊之間的協同合作。
DevSecOps 工具可用來將 CI/CD 流程中的資安自動化,包括:Snyk、Aqua、SonarQube、Checkmarx 以及 HashiCorp Vault,保護軟體開發。
DevSecOps 能改善軟體安全、加快交付速度、減少漏洞、強化協同合作,並自動將資安整合至開發流程當中來確保合規。
DevOps 的重點在於交付的速度和可靠性,而 DevSecOps 則是再加入了內建的資安控管與證據,讓您既能快速開發、又能維持安全。
DevSecOps 涵蓋了撰寫安全的應用程式,但還包括自動化、監控,以及開發、資安和營運團隊之間的協同合作。