DevSecOps的實現與相關開源工具
DevSecOps是一種以自動化方式在DevOps流程中集成安全工具的方法。DevSecOps不僅僅是引入新的安全工具,還包括關於使用這些工具的必要知識。這需要對DevOps文化改進,需要對員工進行培訓,並要求他們提高自己的技能。這使得他們能夠更有效地協作,從而創造出一種“安全文化”。這種多文化、多學科的自動化安全環境使每個人都關注安全,而不僅僅是單個團隊,這也是DevSecOps的主要驅動因素之一。
Pre-commit Hooks
持續集成微信公眾號cicdops
由於意外的git提交,AWS密鑰、訪問令牌、SSH密鑰等敏感信息經常會通過公共源代碼存儲庫被錯誤地泄漏。這可以通過使用像“Talisman”這樣的預提交鈎子來避免,它在提交或推送活動之前檢查文件中的敏感信息。
- Talisman - https://github.com/thoughtworks/talisman
- Crass - https://github.com/floyd-fuh/crass
- Git Hooks - https://githooks.com/
- Git Secrets - https://gitsecret.io/
- Pre - Commit—https://precommit.com/
- Detect Secrets - https://github.com/Yelp/detect-secrets
- Git Hound—https://github.com/ezekg/git-hound
- Truffle Hog - https://github.com/dxa4481/truffleHog
Secrets Management
對於自動化,開發人員和管理員通常會將憑證存儲在配置文件、環境變量等中,以便訪問各種服務。將憑據存儲在文件或配置中可能導致將憑據暴露給意外的用戶。這可以通過利用“Hashicorp vault”之類的秘密管理服務來隔離。這允許在單獨的級別隔離憑據,每個環境都可以從特定的環境獲取憑據並以編程方式使用它。
- Hashicorp Vault – https://www.vaultproject.io/
- Torus – https://www.torus.sh/
- Keywhiz – https://square.github.io/keywhiz/
- EnvKey – https://www.envkey.com/
- Confidant – https://github.com/lyft/confidant
- AWS Secrets Manager – https://aws.amazon.com/secrets-manager/
Software Composition Analysis
有必要對應用程序中使用的所有依賴項進行分析,並檢查它們是否存在由於缺少安全補丁而引起的漏洞。對於Java和。net應用程序,我們可以使用一個叫做“依賴檢查”的工具,它可以在創建構建之前運行,以確定應用程序中是否使用了任何易受攻擊的軟件。可以根據漏洞的數量和嚴重程度來決定是繼續運行管道還是修復漏洞失敗。以下是一些工具,執行軟件組合分析的安全漏洞:
- OWASP Dependency Check – https://www.owasp.org/index.php/OWASP_Dependency_Check
- SonaType (Free for Open Source) – https://ossindex.sonatype.org/
- Snyk (Free for Open Source) – https://snyk.io/
- Bunder Audit – https://github.com/rubysec/bundler-audit
- Rubysec – https://rubysec.com/
- Retire JS – https://github.com/RetireJS/retire.js
Static Analysis Security Testing
持續集成微信公眾號cicdops
使用自動化工具來執行安全代碼審查,可以清除許多容易發現的漏洞,比如SQL注入、跨站點腳本編制、反序列化漏洞等等。對於基於Java的應用程序,我們可以使用一個名為“FindSecBugs”的工具,該工具對代碼進行深入分析(但不會給出太多的假陽性結果),並為代碼中已確定的所有漏洞提供全面的報告。可以根據漏洞的數量和嚴重程度來決定是繼續運行管道還是在管道繼續運行之前修復漏洞。下面是一些可用於SAST目的的開源工具的列表。
Dynamic Analysis Security Testing
Web應用程序掃描器是對Web應用程序進行漏洞評估的重要部分。這些掃描器中的大部分具有API端點或CLI訪問,可以利用這些端點或CLI訪問來啟動對目標應用程序的掃描。OWASP ZAP就是這樣一個工具,它可以用於在QA/Staging環境中啟動對應用程序的web應用程序安全掃描,從而消除大量的安全錯誤配置,比如在備份文件中泄露敏感信息、不安全的HTTP頭文件等。
- OWASP ZAP – https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
- Arachni Scanner – http://www.arachni-scanner.com/
- Nikto – https://cirt.net/Nikto2
Security in Infrastructure as Code
在使用簡單的幾行代碼構建基礎設施時,Docker之類的容器化解決方案非常流行。“Docker Hub”是一個非常流行的公共Docker存儲庫,從這里可以將Docker圖像拉到運行容器。已經有各種各樣的例子,這些docker圖像與惡意軟件或千瘡百孔的各種漏洞如下圖所示。因此,掃描這些從公共存儲庫中提取的docker圖像是非常重要的。
一種能夠很好地洞察Docker容器/映像的安全性的解決方案是“Clair”。Clair掃描原始docker圖像,並給出詳盡的報告,強調圖像中存在的漏洞。因此,在將Clair之類的工具部署到基礎設施之前,在生產docker映像上運行它們是非常重要的。在DevSecOps的這個階段需要考慮的其他工具有:
- Clair – https://github.com/coreos/clair
- Anchore Engine – https://github.com/anchore/anchore-engine
- Dagda – https://github.com/eliasgranderubio/dagda
- Open-Scap – https://www.open-scap.org/getting-started/
- Docksan – https://github.com/kost/dockscan
Vulnerability Assessment (VA)
通常的做法是對生產系統執行漏洞評估,以識別環境中運行的各種服務和相關的漏洞。
在使用Docker創建的服務器上指向一個VA工具時,它只會在該主機上公開的服務上執行掃描。但是,如果我們將該工具附加到docker網絡,然后執行掃描,那么它將為我們提供實際運行的服務的良好圖像。
這可以使用各種解決方案來實現,比如OpenVAS,它可以很容易地集成到管道中。
- OpenVAS – http://openvas.org/
- DockScan – https://github.com/kost/dockscan
Compliance As Code
組織需要對其IT基礎設施應用遵從性控制,以遵守行業最佳實踐和各種法規,如PCI DSS、HIPAA、SOX等。在DevOps中,使用“基礎結構作為代碼”,生產環境永遠不會被保留,它總是被拆除並重新創建,因此在安裝后測試更新/新創建的環境是非常必要的。“Inspec”就是這樣一個工具,它可以幫助我們執行這些測試,因為我們只需要提供一個ruby文件,其中包含以非常簡單和清晰的方式執行的測試,這對於每個審計專業人員來說都很容易編寫和編寫代碼。
- Inspec – https://www.inspec.io/
- Serverspec – https://serverspec.org/
- DevSec Hardening Framework – https://dev-sec.io/
- Kitchen CI – https://kitchen.ci/
Vulnerability Management
持續集成微信公眾號cicdops
我們用來創建DevSecOps管道的工具會產生大量的漏洞,每個工具都有自己的獨立格式。管理這些數據變得非常困難,更不用說跟蹤和修復這些漏洞了。因此,漏洞管理解決方案是DevSecOps流程的核心,所有工具都需要將它們的數據匯集到這些解決方案中,以便集中管理、分類、跟蹤和補救。
“ArcherySec”就是這樣一個工具,它不僅與上面提到的大多數工具都有很好的集成,而且我們還可以通過ArcherySec啟動Zap和OpenVAS等掃描。
用於漏洞管理的其他工具有
- ArcherySec – https://github.com/archerysec/archerysec
- DefectDojo – https://www.defectdojo.org/
- JackHammer – https://github.com/olacabs/jackhammer
Alerting and Monitoring
生產應用程序總是面臨來自未知和不可預見的新威脅。這可以通過一個積極的入侵監視和預防解決方案來緩解。其中一個這樣的開源解決方案是“ModSecurity WAF(Web應用程序防火牆),它可以檢測OWASP的十大漏洞,如SQL注入、跨站點腳本編制等。
- ModSecurity WAF – https://modsecurity.org/
到目前為止,我們已經了解了DevSecOps如何在環境中運行的技術知識,但是僅僅擁有工具和技術是不夠的。DevSecOps需要一種促進“缺省安全”文化的文化更改。這可以通過在每個域內創建安全冠軍、增加與安全團隊的協作等等來實現。
最后,DevSecOps對於您的DevOps模型非常重要,因為它是處理“大規模安全性”的惟一方法。
翻譯自以下文章, 文章干活很多,所以必須保留原文的小廣告表示感謝,Claranet為開發人員提供了一個關於DevSecOps和AppSec的全天研討會,使與會者能夠全面了解DevSecOps實踐。如果您想參加研討會,或者希望我們通過為您提供定制的解決方案來幫助您在現有的DevOps管道中實現安全性,請與我們聯系。
原文鏈接: https://www.notsosecure.com/achieving-devsecops-with-open-source-tools/