譯者 | 劉濤
審校 | 重樓
在當(dāng)今快速發(fā)展的網(wǎng)絡(luò)環(huán)境中,維護Web應(yīng)用程序的安全更加必要。由于漏洞的出現(xiàn)速度比以往任何時候都要快,將動態(tài)應(yīng)用程序安全測試(DAST)集成到持續(xù)集成/持續(xù)部署(CI/CD)管道中成為改變游戲規(guī)則的因素,幫助您在早期階段即考慮安全因素,盡早發(fā)現(xiàn)和解決安全漏洞,而不是等到它們嚴重影響用戶后再采取措施。
本文解釋了將 DAST集成到 CI/CD管道中的重要性和好處,探索了這種方法如何能夠顯著提升應(yīng)用程序的安全性、降低成本并加快上市時間。
我們還將指導(dǎo)您選擇正確的 DAST工具和策略的過程,以嵌入到您的管道中,并提供一個集成到 Jenkins的實用教程。
1、什么是 DAST?
動態(tài)應(yīng)用程序安全測試(DAST)是一種安全測試方法,它在運行時分析應(yīng)用程序以識別潛在的漏洞和安全風(fēng)險。這與靜態(tài)應(yīng)用程序安全測試(SAST)不同,后者僅僅檢查應(yīng)用程序的源代碼而不去執(zhí)行它。
DAST的主要目標是從攻擊者的角度模擬對 Web應(yīng)用程序和 API的攻擊。這種方法幫助 DAST發(fā)現(xiàn)諸如 SQL注入、 XSS和不安全的文件上傳等漏洞(要了解更多有關(guān)這些漏洞的信息,請參閱相關(guān)的 OWASP備忘錄)。在開發(fā)過程的早期識別這些威脅,可以使組織在它們發(fā)展成為嚴重的問題之前修復(fù)它們。
2、DAST集成到CI/CD管道中的優(yōu)勢
將 DAST集成到您的 CI/CD管道中有很多好處,如提高安全性、節(jié)約成本、加快市場推廣速度等。
增強的安全態(tài)勢
DAST工具旨在通過模擬真實世界的攻擊來識別 Web應(yīng)用程序中的漏洞。通過將這些工具集成到您的 CI/CD管道中,您可以確保每個組件在投入生產(chǎn)之前能夠自動測試潛在的安全性問題。這種積極主動的方法有助于及早發(fā)現(xiàn)潛在的漏洞,允許在對應(yīng)用程序或組織構(gòu)成威脅之前解決這些漏洞。
提前投放市場
與手工測試和部署之后在進行測試相比,在開發(fā)過程中使用 DAST可以使開發(fā)人員更快地找到和修復(fù)安全漏洞。通過將自動掃描作為 CI/CD過程的一部分,開發(fā)人員可以立即獲取其代碼更改對應(yīng)用程序安全性影響的反饋。這樣,他們就可以快速地解決任何被識別出的問題,而不會推遲發(fā)布計劃,也不會降低質(zhì)量。
影響市場發(fā)布的 DAST其他方面包括:
提高協(xié)作能力:自動 DAST掃描提供有關(guān)檢測到的漏洞及修復(fù)建議的詳細報告。這些見解可以促進開發(fā)團隊和安全專家之間更好地溝通,避免可能造成軟件交付延遲的誤解。
更少的錯誤標記(false positive):一些高級的 DAST解決方案使用機器學(xué)習(xí)算法來最小化掃描的錯誤標記結(jié)果。這可以確保開發(fā)人員花費時間來解決真正的安全問題,而不是尋找錯誤警報。
更少的成本
將 DAST集成到 CI/CD管道中,可以為您的組織節(jié)省大量成本。通過在開發(fā)過程的早期識別和修復(fù)漏洞,可以減少代價高昂的數(shù)據(jù)損毀可能性。此外,自動化安全測試降低了與傳統(tǒng)安全測試方法相關(guān)的人工成本。
DAST降低成本的其他措施包括:
降低修復(fù)費用:在開發(fā)期間修補漏洞的費用遠遠低于在開發(fā)之后修補的費用。通過自動 DAST掃描,及早發(fā)現(xiàn)問題,可以讓企業(yè)避免花費昂貴的后期補丁,并避免可能出現(xiàn)的停機情況。
減少監(jiān)管罰金:在整個開發(fā)流程中保證應(yīng)用程序的安全有助于組織遵循諸如 GDPR, HIPAA和PCI-DSS等行業(yè)法規(guī)。違規(guī)可能會導(dǎo)致巨額罰款和名譽受損;在 CI/CD管道上集成 DAST可以通過不斷地監(jiān)控潛在的違規(guī)行為來降低這些風(fēng)險。
3、將 DAST集成到 CI/CD管道的策略
選擇正確的工具
尋找能提供與CI/CD管道整合的工具。選擇一個 DAST工具,它要符合應(yīng)用程序棧、技術(shù)選擇以及開發(fā)方式。確保它既支持在用的Web應(yīng)用程序框架,也支持像容器、API以及微服務(wù)這樣的現(xiàn)代范式。
盡早將 DAST合并到開發(fā)過程中
為了最大限度地利用 DAST集成的好處,可以在開發(fā)過程的早期就開始合并它,例如在代碼審查或開發(fā)新功能的時候。通過盡早開始,開發(fā)人員可以立即解決安全漏洞,而不是將修復(fù)推遲到測試的后期。
建立基線掃描
基線掃描是使用一組預(yù)定義的規(guī)則或策略對應(yīng)用程序的安全性進行的初步評估。使用所選的 DAST工具創(chuàng)建基線掃描,設(shè)置一個起始點,用于測量隨時間變化的改進效果?;趯?yīng)用程序代碼庫或者基礎(chǔ)設(shè)施配置的變更,定期更新這個基線掃描。
安排定期掃描
可以安排定期掃描,也可以安排在 CI/CD管道的關(guān)鍵階段掃描。這些掃描中發(fā)現(xiàn)的任何問題都應(yīng)該反饋到開發(fā)和測試階段,允許開發(fā)人員和測試人員立即加以解決:
- 每日掃描:將每日掃描安排在非高峰時間,以避免可能對終端用戶的體驗造成的干擾。
- 每周掃描:每周執(zhí)行更全面的掃描,以發(fā)現(xiàn)在每日掃描期間可能出現(xiàn)的遺漏。
- 按需掃描:應(yīng)用程序發(fā)生重大更改時觸發(fā)按需掃描,例如部署新功能或更新關(guān)鍵組件。
分析結(jié)果并確定優(yōu)先處理順序
DAST工具通常會生成大量數(shù)據(jù)。必須根據(jù)這些結(jié)果的嚴重性、可利用性和潛在影響,對其進行分析和排序。使用風(fēng)險評分系統(tǒng),如 CVSS (常見的漏洞評分系統(tǒng)),根據(jù)其威脅等級對已識別的漏洞進行排名。這樣可以幫助團隊集中精力在首先解決優(yōu)先級高的問題上。
創(chuàng)建反饋循環(huán)
在開發(fā)人員和安全團隊之間建立反饋循環(huán),以持續(xù)改進代碼質(zhì)量和安全狀態(tài)。通過顯示 DAST結(jié)果的共享儀表板或?qū)⒕瘓蠹傻?Slack或 Microsoft Team等通信平臺上來鼓勵協(xié)作。
為了快速修復(fù)已識別的漏洞,需要確保DAST工具為開發(fā)人員提供操作指南,并為他們提供解決每個問題的明確步驟。這樣他們自己就能夠有效地解決問題,而不需要額外的安全專家。
4、教程:將 DAST集成到 Jenkins
本教程將指導(dǎo)您完成將動態(tài)應(yīng)用程序安全測試(DAST)集成到 Jenkins(一款開源的CI/CD工具)CI/CD管道中的步驟。這樣您就可以在構(gòu)建和部署階段自動掃描應(yīng)用程序的安全漏洞。
步驟1:安裝并配置 DAST工具
首先,選擇一個適合您需求的 DAST工具。在本教程中,我們將使用OWASP Zed Attack Proxy,一個開放源碼的 Web應(yīng)用程序掃描器。從官方網(wǎng)站下載并安裝 ZAP。
步驟2:建立Jenkins環(huán)境
如果您還沒有建立 Jenkins環(huán)境,請參考官方的 Jenkins安裝指南。成功設(shè)置 Jenkins后,登錄到您的賬戶,進入“Manage Jenkins”下的“Manage Plugins”。在可用插件列表中搜索“OWASP ZAP”并安裝它。
步驟3:在 Jenkins中創(chuàng)建新的管道項目
- 轉(zhuǎn)到 Jenkins實例的主儀表板。
- 從左側(cè)菜單中選擇“New Item”創(chuàng)建新的管道作業(yè)。
- 給你的新項目起一個合適的名字(例如'DAST_Pipeline'),并選擇' Pipeline'作為類型,然后單擊' OK'。
- 在新創(chuàng)建的項目頁的管道配置部分,向下滾動以查找“定義”。從 SCM或“Pipeline script”中選擇“Pipeline script”并提供您的管道代碼。此代碼將包括運行 ZAP所需的步驟。
步驟4:為 DAST集成配置管道腳本
在這一步中,需要修改Jenkins文件或管道腳本,將 ZAP集成到組件過程中。下面是一個簡單的 Jenkins文件示例,其中包括運行 ZAP:
將" http://your-web-application-url"替換為指向 Web應(yīng)用程序的鏈接,將"YOUR_ZAP_API_KEY"替換為從 OWASP Zed Attack Proxy (ZAP)獲得的 API密鑰。
步驟5:在Jenkins中運行管道項目
配置完所有參數(shù)后,保存更改并單擊“立即構(gòu)建”啟動新組件。您應(yīng)該看到兩個階段運行中—一個用于構(gòu)建應(yīng)用程序,另一個用于使用 OWASP Zed Attack Proxy (ZAP)運行 DAST。
完成后,在左側(cè)菜單的“生成歷史記錄”下轉(zhuǎn)到“控制臺輸出”。檢查在掃描期間是否檢測到任何安全漏洞。
5、結(jié)論
將 DAST工具集成到 DevOps流程中,對于維護安全和確保在開發(fā)周期的早期階段發(fā)現(xiàn)漏洞至關(guān)重要。通過實施DAST,您可以在潛在威脅升級為重大安全問題之前識別它們,最終節(jié)省時間和資源。
通過將 DAST工具集成到您的 CI/CD管道中,您可以在開發(fā)過程的早期檢測漏洞,節(jié)省時間和資源,并防止以后出現(xiàn)重大問題。它確保應(yīng)用程序在部署到生產(chǎn)環(huán)境之前是安全的。最后,它將幫助您遵守安全法規(guī)和標準。
在實施DAST工具時,需要考慮幾個因素。首先,選擇與您的開發(fā)環(huán)境和編程語言兼容的DAST工具。其次,確保該工具可以集成到您的管道中,而不會造成延遲或中斷。最后,建立清晰的流程來分析和處理DAST識別出的漏洞,以確保被發(fā)現(xiàn)的問題能夠被組織中的開發(fā)人員和測試人員及時修正。
——譯者介紹——
劉濤,51CTO社區(qū)編輯,某大型央企系統(tǒng)上線檢測管控負責(zé)人。
原文鏈接:https://hackernoon.com/integrating-dast-into-your-cicd-pipeline-benefits-and-implementation