誰動了我的DevOps:DevOps風險測繪
一. DevOps概述
DevOps 是 Development 和 Operations 組合的縮寫詞,它指的是一種協作方法,使企業的應用程式開發團隊(Development team)和 IT 運營團隊(Operations team)能夠更好地溝通工作,DevOps的概念有助於使技術專案與業務需求保持一致,從而提高企業整體的工作效率 [1]。
02.DevOps的價值
DevOps透過自動化“軟體交付”和“架構變更”的流程,使得構建、測試、釋出軟體能夠更加快捷、頻繁和可靠[2]。DevOps市場價值更是潛力無限,據GMI(GlobalMarket Insights)的調查報告顯示[3](如圖一):“DevOps市場規模在2021 年已超過70 億美元,並有望在2022 年至2028 年間,以超過20% 的複合年增長率增長。”由此可見,DevOps全球化、普遍化的趨勢已不可阻擋,企業大規模敏捷開發轉型將成為主流旋律。
圖1 DevOps市場的價值
03 DevOps常用工具
那麼DevOps流程具體會涉及到哪些工具呢?透過分析2021年多個平臺公佈的DevOps工具的排名[4][5][6][7],為大家總結了18款常用的DevOps工具。
專案管理和協作工具:Microsoftteams, Slack, JIRA
程式碼管理工具:BitBucket,GitLab, Github
持續整合工具:Jenkins
質量測試工具:Junit,Selenium,DATADOG
監控管理工具:NewRelic, Grafana
持續部署工具:OctopusDeploy, Spinnaker
配置管理工具:Chef,Ansible, Puppet,Terraform
結合圖2,可以更清晰的瞭解到DevOps整個生命週期流程和各個工具在其中所充當的角色。
圖2 DevOps流程示意圖
二. DevOps潛在的風險
DevOps被越來越多企業接納的同時,DevOps工具的風險也越發突出。我們透過獲取了部分常用DevOps工具的指紋,利用網路搜尋引擎對這些工具在國內的暴露量進行了調研。得到的具體暴露資料如表1所示:
表1 DevOps國內暴露資產數
由此可見,DevOps工具暴露量相當之多,其中Jenkins和GitLab資產的暴露量尤為突出,那麼它們背後潛在的風險又究竟是什麼情況?下面具體對GitLab和Jenkins兩個資產進行了資產風險測繪的研究。
三. GitLab資產風險風險
1.GitLab簡介
GitLab是一個結合了在單個應用程式中開發、保護和操作軟體能力的DevOps平臺。GitLab最初是作為原始碼管理解決方案在軟體開發團隊內進行協作,後來演變為涵蓋整個DevOps 生命週期的整合解決方案,其註冊使用者已超過3000萬人次 [8]
02.GitLab國內資產暴露情況
根據網路測繪資料,我們對國內GitLab資產暴露情況進行了統計,共計查詢到9035個暴露的資產,下面將從地區分佈、暴露埠兩個維度分別進行介紹。
如圖3所示,國內暴露的GitLab資產中約73.6%來源於北京市、上海市、廣東省和浙江省這些省份和城市,其中北京市穩居第一,暴露資產數達到2566個。
圖3 GitLab國內暴露資產分佈圖(地區維度)
從圖4可見,國內暴露的GitLab資產使用的埠主要為443、8888、8090、8081和80,共佔總數的69.5%,其中443埠暴露量最多,共計3201個,佔比35.4%。
圖4 GitLab國內暴露資產分佈圖(埠維度)
03.GitLab國內資產漏洞分析
GitLab會在官網不定期公佈自己存在的CVE漏洞。我們梳理了2020到2021年 CVSSVersion3.x 評分高於或等於7分的GitLab漏洞,共計有86個,且其中9分以上漏洞多達20個,頻率較多的漏洞型別有:DDoS、SSRF、未授權、資訊洩露等。
由此可見GitLab資產存在較大的安全隱患。下面,以兩個漏洞CVE-2021-22205(RCE漏洞)和CVE-2021-22214(SSRF漏洞)為例進行分析。
CVE-2021-22205漏洞
GitLab CVE-2021-22205屬於RCE型別漏洞,其影響版本範圍包括GitLab社群版和企業版:11.9.0 版本號 13.8.8 ; 13.9.0 版本號 13.9.6 ; 13.10.0 版本號 13.10.3。這個漏洞源於GitLab沒有正確驗證傳遞給檔案解析器的影像檔案,這個疏忽導致了遠端命令執行漏洞的可能性。
如圖6所示,我們共發現了1051個暴露的GitLab資產存在CVE-2021-22205漏洞,約佔暴露資產總數的11.6%,CVE-2021-22205屬於遠端命令執行漏洞,其在CVSS Version3.x中評分高達9.8,可見其危害程度之大。
CVE-2021-22214漏洞
GitLab CVE-2021-22214屬於SSRF型別漏洞,其影響版本範圍包括GitLab社群版和企業版:
10.5 版本號 13.10.5 ; 13.11 版本號 13.11.5 ; 13.12 版本號 13.12.2。當啟用對內部網路的 webhook 請求時,請求偽造漏洞可能被未經身份驗證的攻擊者利用(包括註冊受限的GitLab)。
如圖6所示,我們共發現了841個暴露的GitLab資產存在CVE-2021-22214漏洞,約佔暴露資產總數的9.3%,CVE-2021-22214在CVSSVersion3.x評分中達到8.6分,其危害程度也不可小覷。CVE-2021-22214漏洞本地環境測試情況見圖5。
04.GitLab的安全建議
從以上的分析我們可以看到,國內GitLab資產漏洞層出不窮。如利用CVE-2021-22205,不法分子可以輕鬆拿到reverse shell,從而實現任意程式碼執行,輕鬆地盜取個人和企業的隱私資訊。這裡建議大家:
1.請儘快將GitLab資產升級到最新版本
2.在使用GitLab時,儘量監聽在內網IP地址,避免直接暴露在網際網路中
3.根據官方提供的緩解措施進行臨時緩解,GitLab相關的漏洞緩解措施可參考官方網址:https://gitlab.com/gitlab-org/cves
四.Jenkins資產風險測繪
01.Jenkins簡介
Jenkins是一個獨立的開源自動化伺服器,是一款提供友好操作介面的持續整合(CI)的工具,可用於自動化各種任務,如構建,測試和部署軟體等。在cprime公佈的CI整合工具排名中[9],Jenkins排名第一,它也被多個機構評定為DevOps流程中最受歡迎的持續整合工具。
02.Jenkins國內資產暴露情況
根據網路測繪資料,我們對國內Jenkins資產暴露情況進行了統計,共計查詢到16226個暴露的資產,且我們發現部分暴露的Jenkins資產可以直接跳過登入,進入到操作介面,這樣的危險不言而喻,示例如下圖7,8所示。
圖7 Jenkins暴露示例1
圖8 Jenkins暴露示例2
此外我們將從地區分佈、暴露埠、版本三個維度分別對Jenkins國內資產暴露情況進行介紹。
如圖9所示,國內暴露的Jenkins資產中約77%來源於北京市、廣東省、上海市和浙江省這些一線省份和城市,其中北京市穩居第一,暴露資產數達到4253個。
圖9 Jenkins國內暴露資產分佈圖(地區維度)
從圖10可見,國內暴露的Jenkins資產使用的埠主要為8080、8081、8888、443、9090,共佔總數的84%,其中8080埠最多,存在9523個,佔比58.7%。
圖10 Jenkins國內暴露資產分佈圖(埠維度)
透過特定的指紋資訊,我們也獲取到了國內暴露的Jenkins資產的版本號。經過匹配,可以獲取到10334個資產的版本號資訊,大約佔總數的63.7%,具體版本號分佈如圖11所示。
圖11 Jenkins國內暴露資產分佈圖(版本號
03.Jenkins國內資產漏洞分析
與GitLab類似,我們梳理了 CVSSVersion3.x 評分大於或等於7分的Jenkins漏洞。在包括Jenkins外掛漏洞資訊中,共計發現了96個高危(評分大於或等於7)的CVE,頻率較多的漏洞型別包括:XXE,CSRF,SSRF,未授權,資訊洩露,RCE等。
為了進一步分析主版本漏洞對Jenkins資產的影響,在排除了Jenkins外掛漏洞資訊之後,共計篩選出了18個高危的CVE,依次是:CVE-2021-21685,CVE-2021-21686,CVE-2021-21687,CVE-2021-21688,CVE-2021-21688,CVE-2021-21690,CVE-2021-21691,CVE-2021-21692,CVE-2021-21693,CVE-2021-21694,CVE-2021-21695,CVE-2021-21696,CVE-2021-21697,CVE-2021-21671,CVE-2021-21604,CVE-2021-21605,CVE-2020-2160,CVE-2020-2099。
為了進一步檢視脆弱性暴露情況,我們對暴露的Jenkins資產進行了靜態匹配,如下圖12所示:
圖12 Jenkins暴露資產脆弱性
從圖中可以看到,暴露資產中CVE-2021-21685到CVE-2021-21697的數量多達9582個,而我們可獲取到的版本號的總量也才10334個。為了進一步分析影響面,製作了以下表格(如表2所示),我們可以看到多半的CVE影響面達到了驚人的92.7%,可見暴露的Jenkins資產,其脆弱性風險乃是極其之大,Jenkins存在著嚴重的安全問題。
表2 Jenkins暴露資產脆弱性影響面
04.Jenkins安全建議
經過上文的分析,我們可以感受到國內Jenkins資產暴露數量不少,且暴露的資產中普遍存在嚴重的脆弱性問題,其中有13個CVE影響面高達92.7%,且10個CVE評分超過9分(嚴重高危)。這裡溫馨建議:
1.請儘快將Jenkins資產升級到最新版本
2.在使用Jenkins時,儘量將相關埠監聽在內網IP地址,避免直接暴露在網際網路中
3.根據官方提供的緩解措施進行臨時緩解,Jenkins相關的漏洞緩解措施可參考官方網址: https://www.jenkins.io/security/advisory/
五.總結
隨著DevOps敏捷開發流程被越來越多的人和機構認可,DevOps全球化和普及化將成為發展趨勢。但DevOps同時也帶來了很多的安全風險,透過上文的分析,我們可以看見GitLab和Jenkins漏洞百出,脆弱性問題不容小視。當大家享受DevOps敏捷化帶來紅利的同時,或許你的DevOps工具早已被不法分子所利用。上文給出了部分DevOps工具防範的方法,但對於雲上風險來說,這僅僅是冰山一角,無論個人還是企業,我們都應該引起重視,加以防範,一同維護網路安全。
參考文獻
1.https://www.digite.com/blog/introduction-to-devops/
- 2.https://zh.m.wiki...pedia.org/wiki/DevOps
3.https://www.gminsights.com/industry-analysis/devops-market
- 4.https://www.kubernetes.org.cn/9538.html
5.https://www.opsera.io/blog/top-25-devops-tools-that-you-need-to-know
6.https://dzone.com/articles/50-useful-devops-tools
7.https://dzone.com/articles/the-devops-toolchain
8.https://en.wiki..pedia.org/wiki/GitLab
9.https://cprimestudios.com/blog/top-cicd-tools-2021-most-complete-guide-33-best-picks-devops
相關文章
- DevOps風險測繪之程式碼篇2022-08-10dev
- 誰動了我的 Redis ?2023-05-03Redis
- 誰動了我的MySQL?2023-04-24MySql
- 誰動了我的程式碼!?2022-02-14
- EMAS 移動 DevOps 解決方案 —— Mobile DevOps2020-11-27dev
- 誰動了我的指標? (轉)2007-08-14指標
- 我們自研的那些Devops工具2019-02-13dev
- DevOps 中的測試實踐2020-12-15dev
- DevOps中的測試實踐2020-12-15dev
- DevOps 時代的高效測試之路2021-10-31dev
- DevOps是什麼?DevOps能夠給我們帶來什麼?2024-05-04dev
- 再聊我們自研的那些Devops工具2021-12-03dev
- ES資料沒了?誰動了我的資料?2023-05-12
- DevOps - DevOps隨想雜談2024-07-26dev
- 軟體安全風險正與DevOps齊頭並進!2018-08-10dev
- Devops-01-devops 是什麼?2024-03-19dev
- 【Azure DevOps系列】什麼是Azure DevOps2020-08-16dev
- DevOps與敏捷異同 - DZone DevOps2019-01-23dev敏捷
- DevOps概述2020-07-03dev
- DevOps 的未來2020-07-03dev
- DevOps和SRE還沒搞清楚,平臺工程又出現了,它會取代DevOps嗎?2023-04-22dev
- 觸控DevOps,從現在開始DevOps之旅2014-06-05dev
- 將DevOps視為哲學——實施DevOps的絕佳方式2020-09-14dev
- DevOps已死?2024年的DevOps將如何發展2024-04-08dev
- DevOps 自動化實踐:提升效率的 Bot2020-05-29dev
- DevOps中開發的作用和主動性2018-11-27dev
- devops系統自動化部署流程2021-11-10dev
- 建立有效DevOps測試策略的5大技巧2020-07-23dev
- 內向者的 DevOps2019-12-29dev
- DevOps的工程化2019-05-29dev
- 事故不斷的 DevOps !2018-09-12dev
- 初識DevOps2022-05-12dev
- DevOps實戰2018-12-04dev
- DevOps 和 SRE2018-09-09dev
- DevOops?No,DevOps!2017-03-30devOOP
- DevOps悼詞2024-06-29dev
- DEVOPS學習2024-03-14dev
- DevOps實踐2024-08-04dev