Hi!我們是DevSecOps研發安全營運一體化解決方案提供商、Atlassian全球白金合作夥伴——龍智。在過去的十多年間,傳統軟體研發模式發生巨變,從瀑布式開發到靈活再到DevOps,開發和運維之間曾經明确的界限正在慢慢變得模糊。
DevOps由于能夠促進開發、運維、測試等不同部門的溝通、協作與整合,正在悄然成為軟體研發營運主流趨勢。發展至今,DevOps也結合了新的流程,比如持續內建和持續部署來快速傳遞價值。
如果您對DevOps還知之甚少,或是想要更深入地了解DevOps工具鍊,請不要錯過本系列文章。龍智将從DevOps的概念、DevOps工具鍊、CI及工具對比、DevOps監控、DevSecOps五個方面入手,讓您從起源開始,逐漸深入了解DevOps這個已流行數十年的方法論。
盡管軟體公司盡了最大努力,但安全漏洞依然存在,并層出不窮。自2000年以來,大約有35億人的個人資料被盜。發生這些問題的一部分原因在于,随着軟體應用程式代碼庫規模和複雜性的增長,安全漏洞和漏洞利用的區域也在增長。
此外,随着越來越多的企業采用DevOps方法,自動化和內建軟體開發和IT團隊之間的流程,這讓傳統的安全工具不再适用。現在,開發人員需要将安全措施嵌入到開發工作流程的每個階段中,并通過安全左移在SDLC早期預防安全風險。當涉及到DevOps工作流的安全性時,這種做法稱為DevSecOps。
什麼是 DevSecOps?
DevSecOps是将安全性內建到持續內建、持續傳遞和持續部署Pipeline中的實踐。通過将 DevOps價值融入軟體安全,安全驗證成為開發過程中一個積極的、內建的部分。
與DevOps非常相似,DevSecOps是一種将項目管理工作流與自動化IT工具相結合的組織和技術方法。DevSecOps将主動地安全審計和安全測試內建到靈活開發和DevOps工作流程中,進而使安全性内置于産品中,而不是應用到成品中。
要實施DevSecOps,團隊應該:
- 在整個軟體開發生命周期中引入安全性,以最大限度地減少軟體代碼中的漏洞。
- 確定整個DevOps團隊,包括開發人員和營運團隊,共同承擔遵循安全最佳實踐的責任。
- 通過将安全控制、工具和流程內建到DevOps工作流程中,在軟體傳遞的每個階段啟用自動安全檢查。通過“安全左移”将安全程式(代碼審查、分析、測試等等)移動到軟體開發生命周期(SDLC)早期階段,進而防止缺陷産生和盡早找出漏洞。
通過DevSecOps,安全應該被應用到典型的DevOps Pipeline的每個階段:計劃、編碼、建構、測試、釋出和部署。
DevOps必須向左移動以確定安全
在傳統的DevOps流程中,安全評估在開發流程結束時進行。這種安全至上的方法會減慢開發生命周期,導緻開發人員和安全團隊産生間隙,因為他們需要重新處理幾乎傳遞的代碼來修複本可以更早發現和解決的安全問題。
是以,組織已經開始向左轉移,即主動将安全性引入開發生命周期本身,而不是在最後一刻 進行安全修複。安全“左移”是IT開發和DevOps人員使用的專業術語,用于描述将安全測試和安全技術向軟體開發周期上遊移動。目前,安全“左移”已經成為軟體行業的共識,因為在軟體開發生命周期早期修複漏洞遠比在後期進行補救更加省時省力。
“左移”的實踐:将安全測試提前到編碼和建構階段
從實踐方面來說,左移,意味着在早的階段——編碼和建構階段就可開始進行安全測試,在早期就掃描代碼中的漏洞是保障産品安全的基本,也是首要步驟。将漏洞掃描工具內建到CI/CD流程中,是顯而易見的開始實施DevSecOps的地方。
這意味着要確定在傳遞Pipeline的每個主要階段都檢查代碼是否存在漏洞,為了達到這種內建水準,企業需要確定負責Pipeline各個階段的各方都具有他們所需的教育訓練和工具,以檢測代碼中的漏洞。
相關技術包括用于檢測專有代碼中的漏洞的SAST和用于檢測具有已知漏洞的開源元件的SCA工具。許多SAST和SCA供應商都提供與CI服務,建構工具,存儲庫的內建,還提供與IDE的內建,以幫助開發人員盡早發現問題。
在DevSecOps中,最流行的SAST工具是SonarQube。SonarQube是一個自動代碼掃描工具,用來持續分析和評測項目源代碼的品質。它支援29種開發語言,包含java、python、C#、C++等,以及可從代碼量、安全隐患、測試覆寫率等多個次元分析代碼。SonarQube涵蓋了程式設計語言的靜态掃描規則:代碼編寫規範+安全規範,能夠與代碼編輯器、CI/CD平台完美內建。
另一個常見工具是兼顧SCA和SAST的Mend(原WhiteSource)。Mend是一個側重于SCA,管理開源元件的一站式安全、許可和品質的解決方案。它可以準确檢測所有開源許可,包括庫的許可,自動化強制實施在新加元件上的許可政策。使用者是以可以阻擋不期望的元件進入自己的軟體。
通過使用Mend,使企業能夠通過自動修複方式,保護其專有和開源代碼的安全,進而使開發人員能夠集中精力開創新型應用程式。Mend部署在雲上,為SCA和SAST提供自動修複功能,并直接呈現在開發人員的存儲庫中。
與左移中其他工具內建
在Atlassian的DevOps解決⽅案中,同樣采取了左移,将過去在測試階段才進行的部分測試左移到了建構階段。之前SonarQube是放在Bamboo中的,相當于在CI/CD階段才使用SAST工具。現在左移後,通過SonarQube for Bitbucket插件,讓SonarQube與Bitbucket緊密內建,代碼掃描就被左移到了編碼階段。
使用SonarQube for Bitbucket插件內建這兩個軟體後,您可以直接在Bitbucket中調用SonarQube掃描代碼文法錯誤等,并在兩個軟體中均能檢視掃描結果。
Mend與Bitbucket的內建同樣是通過插件,友善快捷。使用WhiteSource for Bitbucket,讓SCA/SAST工具在編碼階段即可掃描開源元件中的已知漏洞,保障送出的代碼幹淨。
如果您想要把Mend內建到CI/CD Pipeline中,Atlassian的Marketplace中并不提供相關插件。您可以聯系Atlassian全球白金合作夥伴——龍智,我們為您提供定制開發服務,通過腳本搭建Mend與Bamboo的內建,讓您能夠輕松把Mend內建到CI/CD Pipeline中。
安全貫穿于整個DevOps流程:應用于所有階段、保障安全的工具
除了編碼和建構,安全理念和實踐還需要落實到更多的DevOps階段。因為隻有将安全融入到軟體開發的整個生命周期中,并實作安全左移,才能落地DevSecOps的最佳實踐。Perforce公司的版本管理軟體——Helix Core可以實作貫穿始終的安全。從計劃到部署,每一個環節都是它的用武之地。
Helix Core在一個存儲庫中安全管理所有數字内容,提供單一可信來源,統一、靈活、顆粒度通路控制,具有全面可跟蹤性。憑借對多因素身份驗證和其他強大安全功能的支援,Helix Core是為您最寶貴資産——知識産權,提供堅固保護的最安全的版本控制系統。
除了Helix Core以外,還有許多版本控制軟體可供選擇,例如Bitbucket、SVN等。如果您的企業同時使用多個版本控制軟體,那麼通過Atlassian公司的源代碼庫深度檢視軟體Fisheye來管理這些版本管理軟體是個很好的選擇。Fisheye與Jira深度內建,讓您能夠直接通過Jira來管理這些版本管理軟體。
龍智內建世界主流工具,為您量身定制DevSecOps解決方案
随着越來越多的開發團隊發展他們的流程并采用新工具,他們需要認真對待安全。DevSecOps是一個循環過程,應該不斷疊代并應用于每個新的代碼部署。漏洞和攻擊者都在不斷發展,現代的軟體團隊也必須随之發展。
龍智延續開放式DevOps的理念,幫助您內建Atlassian工具和各種安全工具,為企業量身定制DevSecOps解決方案。
同時,龍智作為Atlassian全球白金合作夥伴,為幫助釋放及拓展Atlassian工具的力量,也自主開發了多款Atlassian插件,更适合本土企業使用。包括幫助使用者保護文檔版權、跟蹤文檔内容來源以及提高可信度的Confluence水印插件(Watermark for Confuence);實施記錄、限制使用者在Confluence中複制頁面内容、下載下傳附件等行為的Confluence附件與頁面安全管理插件,以及Jira工時管理插件(TimeWise for Jira)、Jira工作流擴充和并行審批插件(WorkflowWise for Jira)等,歡迎咨詢試用。