Jump to content

使用AWS 的DevSecOps 簡介:如何將安全性集成到DevOps 中(上)

將安全性集成到DevOps 中的最佳實踐DevSecOps 的主要任務是通過確保SDLC 早期階段的安全編碼實踐,將安全性集成到DevOps 中。雖然需要自動化,但DevSecOps 不僅僅與此有關。首先,應培訓開發人員和運營專家以了解黑客的邏輯並知道如何通過安全措施來防止攻擊。只有這樣,他們才能正確使用旨在發現缺陷並確保開發和測試過程中安全的工具。

image.png

成功採用DevSecOps 的6 個最佳實踐

1. 培養安全性和開放性作為組織文化的一部分如果您想將安全性集成到您的DevOps 團隊中,第一步是通過以下活動改變您的文化:

建立知識庫。培訓開發人員和QA 專家,確保他們了解安全編碼和測試的基本原則,從而能夠負責滿足安全要求。

促進開放。鼓勵通常獨立工作的DevOps 和安全部門之間的開放式溝通和協作。確保安全指標和儀表闆對開發人員透明、可用且易於理解,以便他們可以應用它們來檢查代碼質量。

打造安全冠軍。聘請了解傳統DevOps 團隊安全性的專業安全人員,並可以指導您的團隊以確保他們在向DevSecOps 過渡期間具有安全意識。安全冠軍應該了解行業最佳實踐,並參與DevSecOps 諮詢,了解如何為軟件開發調整安全性。

但是,不要過度使用這種做法。您的員工不需要成為網絡安全專家——他們只需要足夠的知識和培訓來確保其職責範圍內的安全。

2.獲得可靠的版本控制系統短衝刺和持續交付要求開發人員在每個衝刺中對應用程序的代碼進行許多更改。您必須能夠跟踪這些更改,查看更改的內容和更改者,並查看他們是否有權這樣做。您還需要能夠快速回滾更改並恢復到以前版本的代碼。

這就是為什麼在將DevSecOps 實踐實施到SDLC 之前部署版本控制系統很重要。選擇具有以下功能的版本控制系統:

授權和身份驗證機制

開發人員的數字簽名

多樣化的變更控制技術

代碼版本的元數據集合

應用程序生命週期管理工具

您還可以選擇一個分佈式版本控制系統來鏡像軟件的代碼庫和開發人員機器上的所有代碼更改。

3. 構建DevSecOps 流程構建安全的CI/CD 管道需要在開發過程的每個階段添加安全檢查和掃描。讓我們看看在每次迭代期間您可以採取哪些措施來保護您的軟件:

image.png要在您的SDLC 中實施的關鍵DevSecOps 活動

1、軟件規劃中的安全措施除了收集功能性和非功能性軟件需求、產品特性和潛在用例之外,您還需要研究安全需求、驗收測試標準和威脅模型。從軟件規劃階段開始,還應考慮潛在的安全問題。

在規劃階段,您可以使用威脅建模和風險評估工具來了解應用程序的風險級別。如果您的應用程序將處理敏感數據或直接訪問互聯網,您可能需要構建更深層次的威脅模型。此外,如果您將任何數據用於應用程序測試,請考慮如何將其匿名化以避免隱私問題。

2、軟件開發過程中的安全措施在開發階段,DevSecOps 要求您的團隊遵循安全編碼和審查軟件設計和代碼的原則。但是,所有這些測試和檢查不應減慢開發過程。這就是為什麼您需要使盡可能多的流程自動化。

您還需要集成自動化的動態和靜態代碼測試,以便在軟件發布之前檢測安全漏洞。這些自主掃描不需要安全人員的干預,並且可以將結果直接添加到錯誤跟踪系統中。

作為此類測試的替代方法,您可以讓開發人員使用輕量級工具在其集成開發環境中進行快速代碼掃描。使自動掃描和安全測試軟件成為持續集成測試工具鏈的組成部分有助於顯著減少安全漏洞的數量。

3.持續的安全檢查DevSecOps 從業者應該通過保護他們的環境來保護他們的代碼。雖然開發人員經常使用開源應用程序和預構建的庫、容器和框架,但他們需要在使用它們之前消除這些組件中的任何已知關鍵漏洞。

這就是為什麼您需要對所有系統映像的所有內容進行漏洞檢查,包括:

雲環境

虛擬機

集裝箱

作業系統

其他軟件

持續集成應包括檢查所有操作系統和應用程序平台設置的配置是否符合安全最佳實踐。

雖然容器使用通用操作系統,但對它們的任何攻擊都可能會危及您的容器。因此,最佳實踐是在相似信任級別的工作負載上使用容器。然而,為了更強的隔離,最好使用管理程序或物理分離。

4. 迭代優先於完美傳統的開發方法告訴我們在發佈軟件之前解決所有問題。隨著DevSecOps 方法中的發布頻率,完善您的代碼直到它完美可能非常耗時,甚至可能導致在發布之前進行處理——這反過來又會導致在下一個衝刺期間花費更多的時間來修復和打補丁。

提前規劃和迭代您的工作是成功實施DevSecOps 的關鍵。因此,與其試圖在一次沖刺中達到完美,不如評估發現的安全問題,決定必須盡快解決哪些問題,並將其他問題留到未來的迭代中。

持續的風險評估和威脅監控可以幫助您決定需要盡快修復哪些漏洞。

5. 使用安全即代碼方法自動化流程雖然DevOps 使用可編程基礎設施即代碼,但安全措施也應根據這一原則進行調整。安全編碼原則應適用於腳本、模板、配方和藍圖的自動配置。安全即代碼可幫助您自動應用這些原則。

安全即代碼是一種允許開發人員在代碼中定義安全要求、策略和最佳實踐的實踐。然後,他們可以將此代碼集成到CI/CD 管道中,自動執行安全測試、檢查和掃描。使用安全即代碼,您可以自動化:

靜態和動態代碼分析

某些滲透測試活動

合規檢查

掃描漏洞和風險,例如嵌入式憑證、API 密鑰和加密密鑰

向開發人員提供反饋

image.png為什麼實施安全即代碼方法?

將您的安全需求描述為代碼需要大量的謹慎和專業知識,因為存在通過所有CI/CD 管道使用此代碼部署錯誤配置和漏洞的風險。這就是為什麼您需要在部署之前使用結對編程或進行代碼審查。此外,最好不要自動執行風險評估和優先級排序任務,或者至少在採取行動之前先審查它們的結果。

6. 管理對DevSecOps 工具的訪問傳統的靜態訪問控制工具不足以保護DevSecOps 環境中的敏感資源。瞬息萬變的環境和模糊的用戶職責範圍使得很難使用基於角色的訪問管理工具一勞永逸地配置用戶訪問權限。

為確保高級別的安全性,您需要使用動態訪問配置工具和方法,例如零信任網絡訪問控制、Kerberos 身份驗證協議或可自定義的屬性權限。

此外,DevSecOps 需要增強的機密管理。將所有代碼上傳到公共存儲庫或云服務後,您無法對敏感數據進行硬編碼或使用憑據、SSH 密鑰和API 密鑰上傳文件。相反,您應該實施一個秘密管理工具來加密這些秘密並將它們存儲在受保護的保險庫中。

這些實踐將幫助您構建快速、迭代且安全的CI/CD 管道。由於您還需要可靠的工具,讓我們了解如何在AWS 基礎設施中實施DevSecOps。

在轉向DevSecOps 時,您應該使用哪些AWS 服務?使用來自眾多供應商的工具構建完整的CI/CD 管道極具挑戰性,因為您必須擔心集成、數據收集和兼容性,並確保每個工具的工作安全。此外,對任何工具的任何更新都可能會損壞您的軟件基礎架構或自動化流程,並導致更多工作。

這就是為什麼我們更願意使用AWS 工具和服務來保護DevOps,這些工具和服務可以幫助我們構建一致且安全的管道。 AWS 虛擬基礎設施包括一組旨在自動化代碼測試的工具,特別是在整個代碼開發和質量保證過程中應用安全檢查。

image.png

面向DevSecOps 的AWS 服務

構建安全的CI/CD 管道

您可以使用這些AWS 工具和服務將安全性集成到DevOps 管道中,以實現自動化代碼構建、部署和分析:

AWS CodeBuild — 一種編譯源代碼、運行測試和準備軟件包以進行部署的服務。

AWS CodeCommit — 一種用於託管基於Git 的安全存儲庫的源代碼控制服務。要使用它,您的DevSecOps 團隊需要配置他們的Git 客戶端以與AWS CodeCommit 存儲庫通信。

AWS CodeDeploy — 一種用於將代碼自動部署到基於AWS 的本地和第三方計算服務的服務。

AWS CodePipeline — 一種高效的CI/CD 服務,允許DevOps 工程師自動執行預防性和檢測性安全控制。使用AWS CodePipeline 實施DevSecOps 可確保快速安全的軟件更新。

AWS CloudFormation — 一種用於自動安全地描述和配置基礎設施資源的服務。使用此服務,DevSecOps 從業者可以創建演示管道的安全模板。

AWS Lambda — 一種無服務器計算工具,可自動運行您的代碼以響應檢測到的觸發器。您可以使用它對范圍內的安全組執行靜態代碼分析和動態堆棧驗證。

AWS Systems Manager Parameter Store — AWS Systems Manager 的一部分,可讓您安全地存儲配置和管理機密。 Parameter Store 使AWS 基礎設施透明且可控。

應用安全機制當您將敏感數據上傳到公共(甚至私有)存儲庫或云服務時,保護敏感數據尤為重要。使用以下AWS 工具實施DevSecOps:

AWS Identity and Access Management — 一項顯示在對產品進行更改時誰負責什麼的服務。它有助於驗證誰實施了更改、審核日誌和配置存儲庫並管理訪問權限。

AWS Key Management Services — 用於創建和管理數據保護所需的加密密鑰的服務。這些服務使用經過驗證的硬件安全模塊來確保您的密鑰安全。

Amazon Virtual Private Cloud — 一項允許您在AWS 公共雲中創建私有云的服務。虛擬私有云不僅提供與私有云中其他客戶的隔離,還提供與互聯網的第3 層隔離。

自動化安全活動自動化是DevSecOps AWS 服務的核心。以下安全自動化工具可用於自動化事件響應、補救和取證:

Amazon Simple Notification Service — 一種完全託管的消息傳遞服務,用於自動化應用程序到應用程序和應用程序到個人的通信。

AWS Security Hub — 一項服務,可讓您全面了解AWS 賬戶的安全警報和安全狀況。它還有助於自動執行安全檢查和警報管理。

AWS CloudWatch — 一種AWS 資源監控工具,可從您的AWS 賬戶和部分AWS 基礎設施收集日誌並將其係統化。

AWS CloudTrail — 一種可以監控對AWS 賬戶的CloudWatch API 調用的服務。借助CloudTrail,您的安全官可以快速響應可疑活動。

結論DevOps 是改進軟件工程和維護流程的有效方法。但是,只有將安全性集成到DevOps 實踐中,公司才能充分發揮其潛力。

將DevSecOps 引入AWS 服務需要廣泛的安全培訓、周密的規劃以及自動化和手動活動的適當平衡。但是,遵循將安全性集成到DevOps 中的最佳實踐將幫助您成功克服這些挑戰。

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...