
DevSecOps
DevSecOps
何謂 DevSecOps?
DevSecOps 是開發 (development)、安全 (security) 和作業 (operation) 的簡稱,它會在軟體開發生命週期的每一個階段自動執行安全整合,從起始設計到整合、測試、部署和軟體交付。
DevSecOps 代表開發組織在實現安全時的自然與必要演進。 以前,都是在開發週期結束時(幾乎是事後思考)由獨立的安全團隊為軟體添加安全,然後由另外的品質保證 (QA) 團隊進行測試。
當軟體一年只更新一兩次時,這或許行得通。 但隨著軟體開發人員採用「敏捷」和 DevOps 作法時,目標是將軟體開發週期縮短為數週甚至數天,但傳統的「添加」安全方法會造成無法接受的瓶頸。
DevSecOps 將應用程式和基礎架構安全無縫整合到「敏捷」和 DevOps 流程與工具中。 它在發生安全問題的當下解決,這時(在投入正式作業之前)修正比較容易、比較快速也比較便宜。 此外,DevSecOps 還使應用程式和基礎架構安全成為開發、安全和 IT 作業團隊的共同責任,而不是安全團隊的完全責任。 它在不會減緩軟體開發週期的情況下,藉由自動提供安全軟體來實現「讓軟體更安全更快速」(DevSecOps 座右銘)。
DevSecOps 的優點
DevSecOps 的兩個主要優點是快速和安全。 開發團隊提供更完善、更安全的程式碼,而且更快速從而更便宜。
< DevSecOps 宣言 > 的共同作者 Shannon Lietz 表示:「DevSecOps 的目的和意圖是以每個人都要為安全負責的心態做為基礎,目標是快速且大規模地將安全決策分配給最瞭解前後脈絡的人,而且完全不影響所需安全。」
快速且符合成本效益的軟體交付
在非 DevSecOps 環境中開發軟體時,安全問題可能會導致大量的時間延遲。 修正程式碼和安全問題可能既耗時又花錢。 DevSecOps 的快速安全交付可節省時間並降低成本,因為它在發生安全問題之後,將重複執行流程以解決安全問題的需要減到最少。
這會變得比較有效率也比較符合成本效益,因為整合式安全可消除重複的檢查和不必要的重新建置,從而產生更安全的程式碼。
經過加強的主動式安全
DevSecOps 在開發週期的一開始就導入網路安全流程。 在整個開發週期中,將會對程式碼進行檢查、審核、掃描與測試,以確定是否有安全問題。 這些問題會在發現的同時獲得解決。 安全問題會在導入其他相依關係之前獲得修正。 在週期的早期識別與實作保護技術,這時修正安全問題的成本比較低。
此外,在開發、安全和作業團隊之間更好的協同作業可協助組織改善發生事件和問題時的回應。 DevSecOps 作法可縮短修補漏洞的時間,並讓安全團隊撥出時間以專注於價值更高的工作。 這些作法還可以確保並簡化合規性,並讓應用程式開發專案不必為了安全而翻新。
加速安全漏洞修補
DevSecOps 的主要優點是它可以快速管理新識別的安全漏洞。 隨著 DevSecOps 將漏洞掃描和修補整合到發行週期中,識別與修補一般漏洞和曝光 (CVE) 的能力會減弱。 這使得威脅行動者能夠利用面向大眾之正式作業系統當中漏洞的時間受到限制。
自動化相容於現代開發
如果組織使用持續整合/持續交付管線來交付軟體,則網路安全測試可以整合到作業團隊的自動化測試套組中。
安全檢查的自動化強烈取決於專案和組織的目標。 自動化測試可確保所納入的軟體相依關係處於適當的修補程式層次,並確認軟體可通過安全單元測試。 此外,它可以在最終更新提升到正式作業之前,使用靜態和動態分析來測試與保護程式碼。
一種可重複和可調適的流程
隨著組織變成熟,他們的安全狀況也變成熟。 DevSecOps 本身就是可重複和可調適的流程。 這可確保將安全一致套用至整個環境中,因為環境會變更並適應新的需求。 成熟的 DevSecOps 實作將擁有紮實的自動化、配置管理、編排、容器、不可變基礎架構,甚至無伺服器運算環境。
DevSecOps 的最佳作法
DevSecOps 應該會將安全控制項自然納入您的開發、交付及作業流程中。
儘早測試
「儘早測試」是 DevSecOps 口號: 它鼓勵軟體工程師將安全從 DevOps(交付)流程的右側(結束)移到左側(開始)。 在 DevSecOps 環境中,安全是開發流程從一開始就不可或缺的環節。 採用 DevSecOps 的組織會將他們的網路安全架構設計師和工程師納入其開發團隊中。 他們的工作是確保堆疊當中的每個元件和每個配置項目都已獲得修補、安全配置與記錄。
儘早測試可讓 DevSecOps 團隊及早識別安全風險和曝光,並確保這些安全威脅獲得立即解決。 開發團隊不僅想著有效率地建置產品,在建置的同時也會實現安全。
安全性教育
安全是一種工程與合規性組合。 組織應該在開發工程師、營運團隊與合規性團隊之間形成聯盟,以確保組織中的每個人都瞭解公司的安全狀況並遵循相同標準。
參與交付流程的每個人都應該要熟悉應用程式安全的基本原則、Open Web Application Security Project (OWASP) 前 10 大安全風險、應用程式安全測試,以及其他的安全工程作法。 開發人員需要瞭解執行緒模型、合規性檢查,並擁有如何測量風險和曝光與實施安全控制的工作知識
文化: 通訊、人員、流程及技術
好的領導者會培養促進組織內部變革的良好文化。 在 DevSecOps 中,針對流程安全和產品所有權的責任進行溝通,這很重要而且不可或缺。 只有這樣,開發人員和工程師才會成為流程擁有者,並為他們的工作負起責任。
DevSecOps 作業團隊應該使用適合其團隊和現行專案的技術及通訊協定,來建立為其工作的系統。 讓團隊建立符合其需求的工作流程環境,藉此使他們成為專案結果的利害關係人。
可追蹤性、可審核性及可見性
在 DevSecOps 流程中實作可追蹤性、可審核性及可見性,以導向更深入的洞察和更安全的環境:
- 可追蹤性能讓您在整個開發週期追蹤有需要在程式碼中實作的配置項目。 這會在您組織的控制架構中扮演重要角色,因為它有助於實現合規性、減少錯誤、確保應用程式開發中的安全程式碼,以及協助程式碼維護性。
- 可審核性對於確保符合安全控制而言很重要。 技術、流程和管理方面的安全控制需要可審核、妥善記錄,以及讓所有團隊成員遵循。
- 可見性一般來說是良好的管理作法,但對於 DevSecOps 環境來說非常重要。 這意味著該組織擁有一個紮實的監視系統,可測量作業的活動訊號、傳送警示、提升在發生變更和網路攻擊時的察覺,並在整個專案生命週期中提供問責性。
DevSecOps 與 IBM
在商業和 IT 運作的自動化需求不斷增加時,使用 DevSecOps 工具和作法的組織,可為數位轉型和應用程式現代化建立強大的基礎。
邁向更高度的自動化應該從可測量成功的小型專案開始,然後針對其他流程序和組織的其他部分進行擴充與最佳化。
您可以與 IBM 合作以取得 AI 型自動化功能,包括預先建置的工作流程,以便讓每個 IT 服務流程變得更有智慧、讓團隊撥出時間以專注於最重要的 IT 問題,並且加速創新。
IBM 還有一套 DevSecOps 就緒工具與服務,可提供安全的持續交付、整合的安全測試及雲端原生交付等管線。
進行下一步:
- 利用 IBM® UrbanCode® 來自動執行軟體部署、取得對複雜發行週期的控制、加快發行流程的速度,並且提高產品品質。
- 利用 IBM DevOps、DevOps Insights 及 IBM Cloud Pak® for Applications(與選購的 DevOps 附加項目),來提升您的企業敏捷性、縮短發行週期,以及加強您的網路安全。
- 瞭解如何透過 IBM Cloud Pak for Watson AIOps 將 AI 放在整個 IT 作業工具鏈的核心,其中將洞察和建議直接饋送到團隊工作流程中以加快解決事件的速度,藉此消除多重儀表板需求。
- 註冊以下載 Gartner 報告,並探索如何利用 AI 來實現可因應未來的 IT 作業。
- 下載 IBM Cloud® 資訊圖 (PDF, 464 KB),其中說明 AI 型自動化對 IT 營運的好處。
立即開始使用 IBM Cloud 帳戶。