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