Connect(); 2016

第 31 卷,第 12 期

本文章是由機器翻譯。

ALM 與 DevOps - 使用 Rugged DevOps 保障交付成品的安全性

Jean Marc Prieur, ,Sam Guckenheimer;2016

安全性可以是嚇人的主題。根據 Microsoft 安全性情報報告 (bit.ly/2drid6a)、 去年 17.9 百分之報告的電腦發生安全性威脅。而且保護急迫性會比以往更大。時間就足以入侵幾乎天或更少,如果不分鐘或更少,尋找 Verizon 中其 「 2016年資料違反調查報告 」 (vz.to/2dnpNk8)。

通常是 DevOps 做法,目標是速度,以及安全性作法,以強調作風認知發生衝突。衝突並不一定要存在。事實上,許多廠商已工作,讓運管線更為安全。而且這是在移往 Rugged DevOps。這篇文章討論四個擴充新可透過 Visual Studio Team Services (VSTS) Marketplace。

讓我們開始 Rugged 運管線的概觀 (請參閱 [圖 1)。

Rugged DevOps 工作流程
圖 1] 堅固耐用的 DevOps 工作流程

Rugged DevOps 管線的目標是讓開發團隊得以快速而不會中斷動作藉由引進不必要的弱點。如的小組實作堅固耐用的 DevOps 案例研究,請參閱 「 運手冊 」 (IT 革命 Press,2016年) 由基因 Kim、 Jez 謙虛 22 章 Patrick Debois 和 John Willis (bit.ly/2dUXJW3)。

Package Management

就像小組做為單一的真實來源會使用版本控制,為目前的原始程式碼,它可以依賴封裝管理員做為二進位元件的唯一來源。藉由使用的二進位封裝管理,開發小組可以建立不僅核准的元件的本機快取,但也將此連續整合 (CI) 管線的受信任的摘要。封裝管理 — 現在在 VSTS,並來自 Team Foundation Server (TFS) — 是元件工作流程中不可或缺的一部分。封裝管理延伸模組也可以從 Visual Studio 服務商場 (bit.ly/1VLXIzG)。

OS 元件的角色

開發人員現在都更前所未有的效能,因為廣泛可重複使用的開放原始碼軟體 (OSS) 元件的可用性。現在是實用的方法,以 Windows 和 Linux,例如.NET Core 和 Node.js 上執行階段重複使用。在此同時,產能的重複使用 OS 隨附風險重複使用的相依性會使安全性弱點。例如,thesnyk.io 服務宣告 76%的使用者,他們的應用程式,因為它們會耗用 Node.js 封裝的版本中找到安全性漏洞。 

在 OS 的世界裡,沒有新的概念,有時也稱為軟體組合分析,示 [圖 2。它牽涉到這種情況︰

身為開發人員或開發組長,當我使用 OS 元件、 建立相依性,或使用相依性,我想要︰ 開始使用最新版本正確的版本以避免任何舊的安全性弱點或授權的誤用。驗證它們實際上是正確的二進位檔,這個版本中;在發行管線中,驗證二進位檔,以確保這些認證正確,並保留回溯料。和的弱點可能會發生立即收到通知,並且能夠修正並重新部署會自動以避免任何安全性弱點或重複使用軟體的授權濫用。

安全地建立開放原始碼的相依性
[圖 2 安全地建立 [開啟來源相依性

現在提供服務,以便管理 OS 使用 VSTS 和 TFS 的兩個廠商而 WhiteSource Veracode。在 Visual Studio 服務商場中有可用的擴充功能。 

方案焦點︰ VSTS 和 TFS 的 WhiteSource 延伸模組

小組使用外部的封裝,WhiteSource 延伸專門防堵開放原始碼的安全性、 品質和授權相容性的問題。在大部分的漏洞其中 target 已知的元件中的已知的弱點的世界裡,這是使用開放原始碼重要的防護。我們將討論的一些功能。

持續偵測到所有開啟來源元件,在您的軟體 WhiteSource 延伸模組 (bit.ly/2dEMCC0) 將會自動偵測所有開放原始碼元件,包括其可轉移的相依性 — 每次執行組建。這表示您可以產生完整的清查報告分鐘內,根據您執行的最後一個組建 (請參閱 [圖 3)。也可以讓您的安全性、 開發和法律團隊完整的掌握組織的軟體開發程序。

WhiteSource 元件庫存
[圖 3 WhiteSource 元件庫存

開啟來源安全性弱點,以及其解決的警示 探索新的安全性弱點時,WhiteSource 自動會產生警示,並提供目標的補救指導方針 (請參閱 [圖 4)。這可能包括修補程式、 修正、 相關的原始程式檔和變更系統組態,以避免遭人利用,甚至是建議的連結。 

易受攻擊的元件的 WhiteSource 偵測
[圖 4 WhiteSource 偵測的易受攻擊的元件

自動強制執行開啟來源安全性和授權相容性原則 根據公司的原則,WhiteSource 自動核准、 拒絕或觸發程序手動核准程序每次新的開放原始碼元件加入至組建。開發人員可以設定原則根據的參數,例如安全性漏洞的嚴重性、 授權類型或程式庫的年齡。開發人員嘗試將有問題的開放原始碼元件,因為服務會傳送警示,並建置會失敗。

針對搜尋線上儲存機制,例如 GitHub 和 Maven 中央,WhiteSource 也提供創新的瀏覽器延伸模組。即使選擇之前的新元件,開發人員可以看到它的安全性弱點、 品質和授權問題,以及它是否符合公司原則。

方案焦點︰ Vsts 的延伸模組︰ 增強靜態程式碼分析 (SCA)

HPE 安全性強化 SCA 提供靜態分析的應用程式安全性測試透過 VSTS 和 TFS (bit.ly/2dEWEOW)。這可讓軟體安全性完善的賦予開發人員尋找稍早在 DevOps 生命週期中的安全性弱點的編碼程序。

增強 SCA 提供一組完整的軟體安全性分析器,可搜尋是否違反安全性的編碼規則和指導方針。開發群組和安全性專業人員用來分析應用程式原始碼的安全性問題 (請參閱 [圖 5)。增強 SCA 識別軟體安全性弱點的根本原因,並提供程式碼行的補救指導方針的精確、 風險排名結果。

Visual Studio Team Services 建置工作 HPE 安全性強化 SCA
[圖 5 Visual Studio Team Services 建置工作 HPE 安全性強化 SCA

增強的需求也會提供應用程式與服務 (SaaS) 的安全性。增強視工作自動提交靜態和動態的掃描要求給應用程式的 SaaS 平台 (請參閱 [圖 6)。靜態評估的專案上傳至 Fortify 依需求。對於動態評量,視 Fortify 會使用應用程式的預先設定的 URL。

HPE 安全性強化隨選的弱點可能會偵測
[圖 6 HPE 安全性強化隨選的弱點可能會偵測

平衡速度和深度

在過去,安全性掃描程式通常"牆-over 」 活動時,可能只有一次完成每個版本。這會建立安全性專家會尋找大批的問題完全當開發人員都忽略它們,並釋放大部分的壓力時惡劣模式。Rugged DevOps 致力於讓所有品質活動,包括安全性 — 連續和自動化。

所有這裡所述的擴充功能完全可以掃描小組的原始程式碼。有多個點來整合掃描到小組的工作流程。

提取要求 (Pr) 方式運團隊送出變更。之前 PR,開發人員必須能夠查看程式碼變更的效果,並確定它們會正確合併,而且導入新的問題。DevOps 程序中每個 PR 通常少,合併會持續,因此主要分支的程式碼可以保持最新。在理想情況下,開發人員可以檢查之前進行的安全性問題WhiteSource 簡化此作業來驗證其二進位指紋; 與相依性Checkmarx 提供的累加變更; 掃描與 Veracode 具有開發人員沙箱的概念。這種方法讓開發人員實驗再一併提交的變更。

同樣地,CI 需要提供任何建置中斷的開發小組立即回應速度最佳化。PR 流程中一樣,快速掃描時可以並應該整合到 CI 組建定義。掃描失敗可能會中斷組建,並可以立即修正安全性問題,還原為綠色的組建。

在此同時,必須是完整連續傳遞 (CD)。Vsts,CD 通常可透過管理任一版本定義,在環境中,或透過其他組建定義可依排程進行組建輸出 — 或許是每日 — 而不是以每個認可觸發。定義可以在任一情況下,執行較長的靜態分析掃描 (請參閱 [圖 7)。完整的程式碼專案可以掃描和任何錯誤或警告審閱離線而不會封鎖 CI 流程。

組建定義可以觸發原始程式碼的靜態分析掃描
[圖 7 組建定義可以觸發原始程式碼的靜態分析掃描

方案焦點︰ VSTS Checkmarx 延伸模組

VSTS 的 Checkmarx 副檔名 (bit.ly/2dVyuDg) 可讓開發人員不只會掃描所有的原始程式碼,但只掃描新的或修改程式碼。此增量的掃描功能是開發人員在 CI 環境中的關鍵推動者,因為它會掃描時間小時減少只有幾分鐘的時間。

分析完成之後,Checkmarx 提供精簡報表詳細說明 VSTS 專案摘要頁面上,讓開發人員能夠解決並減輕弱點的掃描程式碼的安全性狀態 (請參閱 [圖 8)。

Visual Studio Team Services 建置 Checkmarx 掃描結果的報表
[圖 8 Visual Studio Team Services 建置 Checkmarx 掃描結果的報表

Checkmarx 也會提供 「 最佳修正位置 」 開發人員為了補救時間降至最低。這包括的資料流程圖,表示在程式碼中處理多個單行程式碼中的資料流程中的弱點的理想位置視覺化圖表 (請參閱 [圖 9)。

Checkmarx 最佳資料流程圖中的修正程式位置
[圖 9 Checkmarx 最佳修正位置中的資料流程圖

使用規則自訂項目,開發小組也可以修改現有的弱點可能會偵測預先設定的查詢來提高偵測和精確度。Checkmarx 說明簡單的 C# 語法中的規則。

安全的程式碼是圖片的只有一部份

安全的程式碼是有必要,但不足以達到堅固耐用的 DevOps。Verizon"2016年資料違反智慧報告 」 讓許多技術罪犯用來危害其目標的攻擊。除了保護您的程式碼,請務必保護認證和密碼。特別是,網路釣魚變得更多複雜。

有數個小組應該套用至保護自己,現在,我們將討論的操作實務。

驗證和授權 甚至可跨內部網域,在 just-in-time 管理,例如 PowerShell 就足以管理 (JEA),以防止權限提升的使用多重要素驗證 (aka.ms/jea)。不同的使用者帳戶的不同密碼將損害限制在一組認證遭竊。

使用 CI/CD 發行管線 執行此動作以重新建置基礎結構,因此發行管線和頻率,也可以包含損毀。如果您為程式碼與 Azure 資源管理員管理基礎結構,或使用 Azure PaaS 或類似的服務,則您的管線會自動建立新的執行個體,並摧毀它們,讓攻擊者沒有地方可以隱藏在您的基礎結構 (bit.ly/2dEY5wR)。VSTS 將會加密,您的管線中的密碼,就如同其他認證,您應該輪替的密碼。

管理權限 這麼做可安全使用角色型存取控制管線原始程式碼一樣。您想要控制可以編輯組建與您用於生產環境的發行定義。

動態掃描 這是測試與已知的攻擊模式執行的應用程式的程序。例如,OWASP Zed (bit.ly/1fjloVy) 是受歡迎的開放原始碼動態掃描器來檢查該 owasp.orgtracks 主要的弱點。兩個 HPE 安全性與 Veracode,本文章所述的協力廠商提供動態掃描服務,以及。

監視生產 這是索引鍵的 DevOps 做法。特製化的服務,可用來偵測異常相關入侵稱為安全性資訊及事件管理。Azure 安全性中心著重於 Azure 雲端相關的安全性事件 (bit.ly/2dzcj5r)。

方案焦點︰ VSTS Veracode 延伸模組

Veracode 應用程式安全性平台是 SaaS,讓開發人員自動掃描有安全性弱點的應用程式。 Veracode 提供靜態應用程式安全性測試 (SAST),動態應用程式安全性測試 (DAST) 和調整,讓開發團隊評估第一方的程式碼和安全性風險的協力廠商元件 (請參閱 圖 10)。

Visual Studio Team Services 建立報表與 Veracode 掃描結果
[圖 10 Visual Studio Team Services 建立報表與 Veracode 掃描結果

Veracode VSTS 擴充功能 (bit.ly/2dme4Vr) 可讓小組設定的應用程式的連續和自動化評估為建置或發行的步驟,從其 CI/CD 管線。建置或發行步驟也可以設定自動停止建置或發行應用程式安全性原則,讓開發人員整合安全性測試完全自動化的 CD 管線為基礎。此外,Veracode 提供 「 開發人員沙箱 」 掃描提供個別的開發人員的變更,再提交的結果。 

為什麼要整合的安全性掃描運管線?

因為現在很實用。利用 VSTS Marketplace 中的新擴充功能,您可以讓安全性掃描連續小組的發行管線的一部分。不同於在過去,當掃描不頻繁並且產生牆上的發行前的問題,您可以解決警告和錯誤發生時。處理安全性警告,以小型批次來 — 與每個 PR 或甚至是每日 — 您可以減少在程序和位址的元件和程式碼安全性的工作持續。

速度最佳化,以運提升之左移的概念。換句話說,任何值得這麼做,值得這麼做,持續 DevOps 工作流程的一部分。當您進行變更時,讓它們和版本了程式碼。這會建立一個事實來源︰ 您的來源儲存機制和受信任的封裝管理存放區。每當您更新,請更新單一事實來源。

根據 2016年 」 狀態的 DevOps 報表 」 (bit.ly/28NI32i) 從 Puppet,高藝術家,除了更高的靈活度和可靠性的結果,也有更好的安全性結果。藉由整合到開發和操作的每日工作的資訊安全性 (InfoSec) 目標,它們花費 50%修復安全性問題的時間較短。如果您將安全性整合至運管線時,您會有自動的方式建立、 測試及部署更新。這會縮短您的時間時發現新弱點時,用以補救。安全性更新成為就像其他更新,可以遵循相同的流程自動化。

作法讓重複使用安全。當您持續掃描封裝時,可以相依於這些,並知道不收取其弱點。此外,當發現新弱點時,在現實世界中,您可以立即通知因此安全性情報變成可採取動作。您可以挑選新的封裝版本、 視需要修改您的程式碼、 測試和發行,而不必等到攻擊者發現的弱點。

開發與作業之間的定址接收器,以啟動 DevOps。現在您可以將分解下一步牆上、 DevOps 和 InfoSec 之間。而不需要太晚解決的安全性負債建置,您可以防止它躲到管線。

這些好處的組合可協助您快速移。依將安全性自動化整合到您的管線,您可以用它做為對應鍵。畢竟,不然壞人就會變成簡單的目標。而因為老掉牙的笑話的如果您是在森林和熊露營合作對象會出現,不是您需要 outrun,都帶有熊的其他潛在的獵物。


Sam Guckenheimer Visual Studio 雲端服務中的運作方式。 他是敏捷式開發實務上的三個書籍的作者和 Visual Studio Team Services 了電子書韻律定域機組。與他連絡 samgu@microsoft.com 或 Twitter: @samguckenheimer


Jean Marc Prieur 構想,以及 Visual Studio 中引發的體驗傳遞 microsoft 的資深專案經理,而且 Visual Studio Team Services 著重於控制技術負債,包括架構分析工具。 與他連絡 jmprieur@microsoft.com 或 Twitter: @jm_prieur

感謝閱本篇文章的下列技術專家︰ Amit Ashbel、 Michael 權限、 Joanna Rosenberg 及 Maya Rotenberg
Amit Ashbel,Checkmarx,右資深產品經理 Michael 位在產品行銷處長增強在 HPE 安全性,Joanna Rosenberg 方案行銷 Veracode 和 Maya Rotenberg,在 WhiteSource 行銷的開頭。