/
    如何使用最好的開源安全工具為DevOps保駕護航
     
    在這樣的環境下,提高代碼安全性需要的不僅僅是常規的應用測試。Sonatype公司VP 是DevOps的堅定支持者,他表示:儘管安全廠商提供了很多安全工具,在涉及到DevOps時,開發者仍然需要一套不同的工具,安全也需要“持續”。
     
    “如果你正在做持續交付,那麼你每天可能做出數百個變更”,Sonatype說,”舊的流程完全不適用。如果你試圖在開發生命週期結束時,再去檢查所有元件,rework量會很多。”
     
    雖然許多DevOps安全工具都花錢,但開發者也有很多的開源選擇。公司不需要非要去花錢購買服務和軟體,也可以更好地保護開發流程和代碼。
     
    保證DevOps環境中的代碼安全(漏洞較少或沒有),公司或開發者一方面需要管理軟體供應鏈、檢查常見元件和框架的安全性,還需要採用自動化測試框架、使用快速靜態分析工具和自動掃描漏洞。
     
    雖然公司可以採用付費服務,但是許多開源產品也是強有力的競爭者,他可以給開發者一個良好的開端。
     
    開源軟體管理工具可以創建一個本地代碼庫,用來存放審核通過的軟體庫和代碼。
     
    Sonatype’s Nexus Repository OSS是開源專案,他們可以幫助開發人員創建這樣的資源庫,確保他們使用的是最新版本。
     
     八二原則:首先確保80%
     第一步:檢查開源庫和萬用群組件——即軟體的“材料清單”。
     
    Sonatype說:“專注於開源程式元件很重要,因為它在任何應用程式的代碼中都佔據最大部分。當你看開源元件時,如今他們構成了應用程式腳本的80%到90%,其餘的是自訂代碼。因此,開源元件是應用程式最大的一部分”。
     
    Sonatype的資料顯示,公司每年平均下載近230000的元件,其中6.1% 約14000的代碼有已知的漏洞。
     
    創建一個自動檢查的測試框架
    測試驅動開發的理念逐步淡出,取而代之的是基於用戶需求開發,它更專注於業務邏輯。這被稱為行為驅動開發,技術用戶故事案例可以如同測試一樣穩定重現。雖然測試驗證了程式的行為,各種開源安全框架也可以用來作為輔助。
     
    不斷檢查代碼
    靜態原始程式碼分析已經非常完善。安全技術,就是分析代碼中的已知漏洞,曾經非常簡單,但靜態分析工具已變得更完善,同時更慢,他們通常在主要代碼版本完成後運行。然而,對於 DevOps開發者來說,更快的代碼檢查工具更容易會被納入軟體發展週期。
     
    “人們驚訝於你可以在幾分鐘內運行一個安全工具,並內嵌在你的安全流程中,”他說。“這是一個安全工具,人們知道他們可以在每次提交代碼時運行它,不會影響正常的開發流程。”
     
    使用攻擊測試
    當代碼被部署時,無論是在測試或生產環境中,開發者和安全操作可以使用自動攻擊測試尋找共同可利用的漏洞。
     
    開源工具對於手頭比較緊的開發團隊是非常重要的,但是在基於開源工具構建一個完善的DevOps 流程則比較困難,但事實上是可能的。它很大程度上依賴於團隊使用的技術站。很多情況下,只是用一個開源技術站, 運行所有的安全測試和代碼檢查卻不太可能。
     
    此外,DevOps團隊採用任何工具之前,要確保它是積極維護的,比如在過去的三個月至六個月提交。很多專案開發的初衷是好的,但漸漸失去維護、被拋棄,最後死去。
     
    開源是單打獨鬥嗎?
    許多用於DevOps風格開發的工具起源於一個開源專案,所以其他開發者可以幫助測試並改進代碼安全性。作為DevOps為中心的安全流程的一部分,開源工具是一個很好的嘗試。從對開發流程實驗不同的改變,以增強安全性的角度來說,也不錯。
     
    然而,DevOps專家警告說,DevOps工具通常是不完善的,需要很多時間來配置。一旦完善以後,很多時候都會變成付費服務。如果開發者覺得這個工具很合適,就要升級服務。