代码仓库漏洞修复及思考

简介: #我修复的影响最深的一个Bug

近日,云安全中心帮我们拦截了一个风险。我们立即进行了修复,这是最近我修复的印象最深的一个Bug。该漏洞与2021年10月28日,阿里云应急响应中心监测到近日互联网上披露 CVE-2021-22205 Gitlab exiftool 远程命令执行漏洞在野利用事件。

image.png

 

GitLab 一款基于Git 的完全集成的软件开发平台。 GitLab 占据了三分之二的自托管(self-hosted) Git 市场。我们公司也是其中一员。在中国互联网企业中占用率是非常高的。在信通院发布的《中国 DevOps 现状调查报告(2021)》中指出:“调查显示,有 53.45% 受访者所在企业通过 GitLab 进行代码管理。此外,还有 27.67%、24.91%和 23.75%的企业使用代码管理工具 Gerrit、Github 和 SVN。” GitLab 以 53.45% 的占比稳居第一。2021年10月,阿里云应急响应中心监测到互联网上披露 CVE-2021-22205 Gitlab exiftool 远程命令执行漏洞在野利用事件及其新型利用方式,由于 Gitlab 某些端点路径无需授权,攻击者可在无需认证的情况下完成图片上传,从而执行任意命令。

image.png

自托管市场


image.png

中国市场代码管理份额统计

 

收到安全提醒引起我们的重视。指定了升级预案第一时间处理该问题。源代码安全重要性对于企业来讲不言而喻,是软件开发企业健康发展的核心要务、不论是早期的产品研发,还是后期产品的运营、更新迭代。长远的视角看,源代码安全对于开发企业就是其发展生命的保障。保护源代码安全可以防止企业代码外泄有利于保护企业的合法权益及保障公司的研究成果。防止机密数据外泄是企业发展的基本要求。

 

 

影响版本

参考:https://gitlab.com/gitlab-org/cves/-/blob/master/2021/CVE-2021-22205.json

11.9 <= GitLab(CE/EE)< 13.8.8

13.9 <= GitLab(CE/EE)< 13.9.6

13.10 <= GitLab(CE/EE)< 13.10.3

image.png

 

安全版本

GitLab(CE/EE) 13.8.8

GitLab(CE/EE) 13.9.6

GitLab(CE/EE) 13.10.3

上传图像文件时,GitLab Workhorse 会将扩展名为jpg|jpeg|tiff 的任何文件传递给ExifTool,以删除任何未列入白名单的标签。一个问题是 ExifTool 将忽略文件扩展名并尝试根据内容确定文件是什么,允许通过重命名上传的文件来命中任何支持的解析器,而不仅仅是 JPEG 和 TIFF。发现该问题,我们第一时间进行复现:

创建一个新片段,在描述字段中,点击“附加文件”,任何能够通过 GitLab Workhorse 上传图像的人都可以通过特制的文件实现 RCE。

image.png

 

虽然云上的主机可以利用云安全组功能设置 Gitlab 仅对可信地址开放由于该漏洞评分高达CVSS 9.9 ,因我们使用的版本为12.10.1,尽快升级Gitlab至最新版本应该是最好的选择我们立即对代码仓库的升级操作,由于升级不能跨越大版本号,因此只能升级到当前大版本号到最高版本,方可升级到下一个大版本号。版本路径如下12.10.1--->12.10.14-------> 13.0.14 ---> 13.1.11 ---> 13.8.8 ---> 13.12.10--->13.12.12。

下图为官方升级路径:

image.png

示例代码:

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

gitlab-ctl stop nginx

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm --no-check-certificate

rpm -Uvh gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm

sudo gitlab-ctl restart

reboot

 

在我们企业中,提供代码托管、智能评审、质量检测等功能,提供删库保护等高级功能是我们急需的。云效作为云原生时代一站式DevOps平台,其中代码管理模块能解决我们企业痛点,值得推荐、也是我们企业上云的重要一环。以便我们实现安全、稳定、高效的研发生产。

在这里我也列举列举一些。更多请参考相关文档。

 

全面的代码安全保障

定时备份与代码加密精细化多级权限管控IP白名单访问控制风险问题事前监测、事中通知、事后审计源码安全/代码扫描服务

 

image.png

image.png

定时备份与代码加密

 

 

image.png

image.png

image.png

源码安全/代码扫描服务

 

企业级研发协作管理

一键串联需求/任务/缺陷无缝衔接CI/CD研发效能数据洞察

image.png

创建分支推荐和需求关联,便于代码评审

 

 

image.png

流水线

 

 

高效的代码评审

灵活的配置能力,支持轻松定制评审规范内置代码检测服务+持续集成流水线,大幅降低人工审查成本冲突智能检测+WebIDE

image.png

Pull Request请求

 

image.png

代码评审

 

这次的Gitlab漏洞出现和处理。除了处理日常的安全事件以外,更多引发了我对软件质量、软件托管、企业代码管理的诸多的思考。在云原生时代,我们更需要一个高可用、无需专人运维,高安全性的代码仓库。除了提供敏感信息检测、代码规约检测、编码安全检测、三方依赖漏洞检测等诸多开箱即用的功能,更需要能进行项目目协作、CI/CD无缝衔接,一站式的解决方案。并且通过平台数据可以让我们快速洞察研发效能,提升软件开发质量。打通软件开发生命周期的各个环节,提升企业的效能,快速应对市场变化。

 

相关文章
|
弹性计算 关系型数据库 数据建模
Docker部署openclinica
OpenClinica是全球第一款开源临床试验(简称EDC)及临床数据管理(简称CDM)软件,传统部署可参考https://docs.openclinica.com/ 官网,这是为了方便采用Docker部署,https://hub.docker.com上有对应的镜像可以使用
1205 0
|
3月前
|
Web App开发 JavaScript 安全
优雅草蜻蜓R实时音视频会议系统技术规划与全球RTC开源技术全景分析·优雅草卓伊凡|麻子|贝贝|clam
优雅草蜻蜓R实时音视频会议系统技术规划与全球RTC开源技术全景分析·优雅草卓伊凡|麻子|贝贝|clam
112 1
优雅草蜻蜓R实时音视频会议系统技术规划与全球RTC开源技术全景分析·优雅草卓伊凡|麻子|贝贝|clam
|
数据可视化 开发者 Python
使用Python进行数据可视化:从入门到精通
【10月更文挑战第7天】本文将引导您通过Python的可视化库,如Matplotlib和Seaborn,来探索和展示数据。我们将通过实际代码示例,学习如何创建各种图表,包括条形图、散点图和直方图等,并讨论如何优化这些图表以更好地传达信息。无论您是初学者还是有一定基础的开发者,这篇文章都能帮助您提高数据可视化技能。
|
Java 数据处理
技术分享:高效与灵活并存——Java版通用树形结构转换工具的实现与应用
在软件开发中,树形结构的数据表现形式无处不在,从文件系统的目录树到组织架构的部门树,再到各类产品的分类结构。处理这些具有层级关系的数据时,将其转换为树形结构以便展示和操作显得尤为重要。Java作为一门成熟的编程语言,虽然提供了强大的集合框架,但并未直接提供树形结构转换的内置工具。因此,开发一个高效且灵活的通用树形结构转换工具成为许多项目中的必备需求。
359 2
|
安全 算法 Java
代码质量和安全使用代码检测提升
云效代码管理提供多种内置扫描服务,确保代码质量与安全性。面对编码不规范、敏感数据泄露、依赖项安全漏洞等问题,该服务从代码提交到合并全程保驾护航。不仅依据《阿里巴巴 Java 开发手册》检查编码规范,还利用先进算法智能推荐代码补丁,检测敏感信息及依赖包漏洞。用户可在每次提交或合并请求时选择自动化扫描,快速定位并解决问题,提升研发流程的稳定性与安全性。立即体验云效代码管理,保障代码健康。
243 12
|
安全 Windows
【红队APT】钓鱼篇&Office-CVE&RLO隐藏&压缩包释放&免杀打包捆绑
【红队APT】钓鱼篇&Office-CVE&RLO隐藏&压缩包释放&免杀打包捆绑
270 1
|
机器学习/深度学习 存储 运维
Exabeam的UEBA调研
Exabeam的UEBA调研
1937 0
|
开发框架 Java Maven
终于,Spring 5.0正式发布了!
Spring 5.0都有什么新功能? 1、最低要求支持JDK8+, J2EE 7+。 2、移除了一些包、类及方法。 3、核心功能加强:全面应用jdk8并兼容jdk9等。 4、SpringMVC:支持servlet4.0、Reactor 3.1等。 5、支持响应式堆栈web框架Spring WebFlux。 6、支持kotlin。 7、加强了测试:完美支持Junit5等。 Spring 5.0下载 Maven:
|
Java 测试技术 BI
研发管理者如何7步规范管理企业代码资产?
本教程向您展示如何在云效上设置代码仓库模板,如何设置研发协作规范,如何启动代码检测,以及如何设置保护分支与合并卡点、如何实现研发工作与需求的自动化消息通知、如何度量代码数据?
41588 15
|
资源调度 分布式计算 Hadoop
大数据平台搭建(容器环境)——Spark3.X on Yarn安装配置
大数据平台搭建(容器环境)——Spark3.X on Yarn安装配置
大数据平台搭建(容器环境)——Spark3.X on Yarn安装配置