谁动了我的DevOps:DevOps风险测绘

2022-03-11 18:40:19 浏览数 (1)

一、DevOps概述

1.1什么是DevOps?

DevOps 是 Development 和 Operations 组合的缩写词,它指的是一种协作方法,使企业的应用程序开发团队(Development team)和 IT 运营团队(Operations team)能够更好地沟通工作,DevOps的概念有助于使技术项目与业务需求保持一致,从而提高企业整体的工作效率 [1]。

1.2DevOps的价值

DevOps通过自动化“软件交付”和“架构变更”的流程,使得构建、测试、发布软件能够更加快捷、频繁和可靠[2]。DevOps市场价值更是潜力无限,据GMI(GlobalMarket Insights)的调查报告显示[3](如图一):“DevOps市场规模在2019 年已超过40 亿美元,并有望在2020 年至2026 年间以超过20% 的复合年增长率增长。”由此可见,DevOps全球化、普遍化的趋势已经不可阻挡,企业大规模敏捷开发转型将成为主流旋律。

图1 DevOps市场的价值

1.3DevOps常用工具

那么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工具的指纹,利用网络搜索引擎对这些工具在2021年12月国内的暴露量进行了调研。得到的具体暴露数据如表1所示:

工具名称

暴露资产数

Jenkins

16226

GitLab

9035

Github

538

Chef

12

Datadog

11

Spinnaker

8

Terraform

4

Octopus Deploy

2

表1 DevOps国内暴露资产数

由此可见,DevOps工具暴露量相当之多,其中Jenkins和GitLab资产的暴露量尤为突出,那么它们背后潜在的风险又究竟是什么情况?笔者具体对GitLab和Jenkins两个资产进行了资产风险测绘的研究。

三、GitLab资产风险风险

3.1GitLab简介

GitLab是一个结合了在单个应用程序中开发、保护和操作软件能力的DevOps平台。GitLab最初是作为源代码管理解决方案在软件开发团队内进行协作,后来演变为涵盖整个DevOps 生命周期的集成解决方案,其注册用户已超过3000万人次 [8]

3.2GitLab国内资产暴露情况

根据网络测绘数据,我们对2021年12月国内GitLab资产暴露情况进行了统计,共计查询到9035个暴露的资产,下面将从地区分布、暴露端口两个维度分别进行介绍。

如图3所示,国内暴露的GitLab资产中约73.6%来源于北京市、上海市、广东省和浙江省这些一线省份和城市,其中北京市稳居第一,暴露资产数达到2566个。

图3 GitLab国内暴露资产分布图(地区维度)

从图4可见,国内暴露的GitLab资产使用的端口主要为443、8888、8090、8081和80,共占总数的69.5%,其中443端口暴露量最多,共计3201个,占比35.4%。

图4 GitLab国内暴露资产分布图(端口维度)

3.3GitLab国内资产漏洞分析

GitLab会在自己的官网不定期公布自己存在的CVE漏洞。我们梳理了2020到2021年 CVSSVersion3.x 评分高于或等于7分的GitLab漏洞,共计有86个,且其中9分以上漏洞多达20个,频率较多的漏洞类型有:DDOS,SSRF,未授权,信息泄露等。

由此可见GitLab资产存在较大的安全隐患,接下来,我们以2021年的两个漏洞CVE-2021-22205(RCE漏洞)和CVE-2021-22214(SSRF漏洞)为例进行分析。

3.3.1 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,可见其危害程度之大。

3.3.2 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。

图5 指定域名被目标访问(本地环境测试)

图6 暴露的GitLab中存在CVE-2021-22205,CVE-2021-22214的数量

3.4GitLab的安全建议

从以上的分析我们可以看到,国内GitLab资产漏洞层出不穷。如利用CVE-2021-22205,不法分子可以轻松拿到reverseshell,从而实现任意代码执行,轻松地盗取个人和企业的隐私信息。笔者在这里建议:

1.请尽快将GitLab资产升级到最新版本

2.在使用GitLab时,尽量监听在内网IP地址,避免直接暴露在互联网中

3.根据官方提供的缓解措施进行临时缓解,GitLab相关的漏洞缓解措施可参考官方网址: https://gitlab.com/gitlab-org/cves

四、Jenkins资产风险测绘

4.1Jenkins简介

Jenkins是一个独立的开源自动化服务器,是一款提供友好操作界面的持续集成(CI)的工具,可用于自动化各种任务,如构建,测试和部署软件等。在cprime公布的CI集成工具排名中[9],Jenkins排名第一,它也被多个机构评定为DevOps流程中最受欢迎的持续集成工具。

4.2Jenkins国内资产暴露情况

根据我们的网络测绘数据,我们对2021年12月国内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国内暴露资产分布图(版本号)

4.3Jenkins国内资产漏洞分析

与GitLab类似,笔者梳理了2020到2021年 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。

不难看出,2021年Jenkins主版本CVE漏洞较2020年爆发性增长了许多。为了进一步查看脆弱性暴露情况,笔者对暴露的Jenkins资产进行了静态匹配,如下图12所示:

图12 Jenkins暴露资产脆弱性

从图中可以看到,暴露资产中CVE-2021-21685到CVE-2021-21697的数量多达9582个,而我们可获取到的版本号的总量也才10334个。为了进一步分析影响面,制作了以下表格(如表2所示),我们可以看到多半的CVE影响面达到了惊人的92.7%,可见暴露的Jenkins资产,其脆弱性风险乃是极其之大,Jenkins存在着严重的安全问题。

CVE ID

CVSS 3.0

影响资产数

影响面

CVE-2021-21685

9.1

9582

92.7%

CVE-2021-21686

8.1

9582

92.7%

CVE-2021-21687

9.1

9582

92.7%

CVE-2021-21688

7.5

9582

92.7%

CVE-2021-21689

9.1

9582

92.7%

CVE-2021-21690

9.8

9582

92.7%

CVE-2021-21691

9.8

9582

92.7%

CVE-2021-21692

9.8

9582

92.7%

CVE-2021-21693

9.8

9582

92.7%

CVE-2021-21694

9.8

9582

92.7%

CVE-2021-21695

8.8

9582

92.7%

CVE-2021-21696

9.8

9582

92.7%

CVE-2021-21697

9.1

9582

92.7%

CVE-2021-21671

7.5

8576

83%

CVE-2021-21604

8.0

5666

54.8%

CVE-2021-21605

8.0

5666

54.8%

CVE-2020-2160

8.8

2953

28.6%

CVE-2020-2099

8.6

2283

22.1%

表2 Jenkins暴露资产脆弱性影响面

4.4Jenkins安全建议

经过上文的分析,我们可以感受到国内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工具防范的方法,但对于云上风险来说,这仅仅是冰山一角,无论个人还是企业,我们都应该引起重视,加以防范,一同维护好国内网络安全环境。

如有兴趣了解更多的网络测绘及云上风险发现相关的研究,请关注即将发布的《2021网络空间测绘年报》。

参考文献

1. https://www.digite.com/blog/introduction-to-devops/

2. https://zh.m.wikipedia.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.wikipedia.org/wiki/GitLab

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

关于星云实验室

星云实验室专注于云计算安全、解决方案研究与虚拟化网络安全问题研究。基于IaaS环境的安全防护,利用SDN/NFV等新技术和新理念,提出了软件定义安全的云安全防护体系。承担并完成多个国家、省、市以及行业重点单位创新研究课题,已成功孵化落地绿盟科技云安全解决方案。

内容编辑:星云实验室 陈佛忠 责任编辑:高深

本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。

关于我们

绿盟科技研究通讯由绿盟科技创新中心负责运营,绿盟科技创新中心是绿盟科技的前沿技术研究部门。包括云安全实验室、安全大数据分析实验室和物联网安全实验室。团队成员由来自清华、北大、哈工大、中科院、北邮等多所重点院校的博士和硕士组成。

绿盟科技创新中心作为“中关村科技园区海淀园博士后工作站分站”的重要培养单位之一,与清华大学进行博士后联合培养,科研成果已涵盖各类国家课题项目、国家专利、国家标准、高水平学术论文、出版专业书籍等。

我们持续探索信息安全领域的前沿学术方向,从实践出发,结合公司资源和先进技术,实现概念级的原型系统,进而交付产品线孵化产品并创造巨大的经济价值。

0 人点赞