誰動了我的DevOps:DevOps風險測繪

綠盟科技發表於2022-07-24

一. 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全球化、普遍化的趨勢已不可阻擋,企業大規模敏捷開發轉型將成為主流旋律。
48a491edbc724c02325f1b28539b80cf.png
圖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整個生命週期流程和各個工具在其中所充當的角色。
24fac9285df3303348af58722ef4c4ac.png
圖2 DevOps流程示意圖
二. DevOps潛在的風險
DevOps被越來越多企業接納的同時,DevOps工具的風險也越發突出。我們透過獲取了部分常用DevOps工具的指紋,利用網路搜尋引擎對這些工具在國內的暴露量進行了調研。得到的具體暴露資料如表1所示:
3bdfead97809c969f5394e757de2cae8.png

表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個。
65a080fd7fd72391a62701fa0cdbb1d1.png
圖3 GitLab國內暴露資產分佈圖(地區維度)

從圖4可見,國內暴露的GitLab資產使用的埠主要為443、8888、8090、8081和80,共佔總數的69.5%,其中443埠暴露量最多,共計3201個,佔比35.4%。
56dea2072305d07abe3b0576fa5bae3d.png
圖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。
684b2ff32ae661f6b8ec6800043bfff3.png
2f21cee9a4cfc90be5e4d96653d962ed.png

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所示。

77f81da2a9fd076965446851512f8854.png
圖7 Jenkins暴露示例1
3ddfcf171611cb17c336b856785e5d94.png
圖8 Jenkins暴露示例2
此外我們將從地區分佈、暴露埠、版本三個維度分別對Jenkins國內資產暴露情況進行介紹。

如圖9所示,國內暴露的Jenkins資產中約77%來源於北京市、廣東省、上海市和浙江省這些一線省份和城市,其中北京市穩居第一,暴露資產數達到4253個。
b441ebb42523bf43a1e7a8e80bf460a7.png
圖9 Jenkins國內暴露資產分佈圖(地區維度)

從圖10可見,國內暴露的Jenkins資產使用的埠主要為8080、8081、8888、443、9090,共佔總數的84%,其中8080埠最多,存在9523個,佔比58.7%。
d604e17457b3fd21c51ed2b52a194226.png
圖10 Jenkins國內暴露資產分佈圖(埠維度)
透過特定的指紋資訊,我們也獲取到了國內暴露的Jenkins資產的版本號。經過匹配,可以獲取到10334個資產的版本號資訊,大約佔總數的63.7%,具體版本號分佈如圖11所示。
245e820321d19219b013819c99a5d9e2.png
圖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所示:
ccc1645e2b54d5a4cfb4a1b58719639e.png
圖12 Jenkins暴露資產脆弱性
從圖中可以看到,暴露資產中CVE-2021-21685到CVE-2021-21697的數量多達9582個,而我們可獲取到的版本號的總量也才10334個。為了進一步分析影響面,製作了以下表格(如表2所示),我們可以看到多半的CVE影響面達到了驚人的92.7%,可見暴露的Jenkins資產,其脆弱性風險乃是極其之大,Jenkins存在著嚴重的安全問題。
8034dc81b93003fbe0d5055fc9ef1a34.png

表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/

  1. 2.https://zh.m.wiki...pedia.org/wiki/DevOps

3.https://www.gminsights.com/industry-analysis/devops-market

  1. 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

  1. 7.https://dzone.com/articles/the-devops-toolchain

  2. 8.https://en.wiki..pedia.org/wiki/GitLab

9.https://cprimestudios.com/blog/top-cicd-tools-2021-most-complete-guide-33-best-picks-devops


相關文章