代码仓库漏洞修复及思考

简介: #我修复的影响最深的一个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无缝衔接,一站式的解决方案。并且通过平台数据可以让我们快速洞察研发效能,提升软件开发质量。打通软件开发生命周期的各个环节,提升企业的效能,快速应对市场变化。

 

相关文章
|
3月前
|
存储 安全 API
GitHub主要仓库泄露访问令牌,代码与云环境面临风险
GitHub主要仓库泄露访问令牌,代码与云环境面临风险
GitHub主要仓库泄露访问令牌,代码与云环境面临风险
|
6月前
|
安全 开发工具 git
关于/.git漏洞实现文件越权下载漏洞
该文描述了如何检测和利用网站的Git泄露。首先通过dirsearch扫描确认网站是否存在Git泄露,然后使用GitHack.py脚本(可在GitHub的lijiejie/GitHack项目找到)进行下载。操作步骤包括在git文件夹内创建lib子目录,放置脚本,并在git目录下运行Python命令。示例中展示了针对http://www.baidu.com/.git的尝试,结果返回404错误,而成功情况则会列出下载的文件列表。
|
6月前
|
安全 Java Python
云效产品文档里面的依赖包漏洞检测,哪里可以配置进去呢?
云效产品文档里面的依赖包漏洞检测,哪里可以配置进去呢?
81 0
|
安全 测试技术 网络安全
一款红队的工具仓库!
一款红队的工具仓库!
435 1
|
存储 安全 API
Joomla 4.2.8 安全和漏洞修复发布
oomla 4.2.8 现在可用。这是 Joomla! 4.x 系列的安全版本!它解决了 Web 服务 API 中的一个严重安全漏洞。北京六翼信息技术有限公司强烈建议您立即更新您的网站。
Joomla 4.2.8 安全和漏洞修复发布
|
安全 PHP
Joomla 4.2.7 安全和漏洞修复发布(六翼开源)
Joomla 4.2.7 现已推出。这是 Joomla 4.x 系列的安全和错误修复版本。Joomla 4.2.7 共解决了 103 个问题
Joomla 4.2.7 安全和漏洞修复发布(六翼开源)
|
存储 开发工具 git
Git之修复Bug流程
  场景描述        当一个项目已经上线,同时又在原有基础上新增功能模块,于是乎就要在原有代码的基础上进行开发,在新增模块功能的开发的过程中,项目发现了一个紧急Bug,需要修复。应对这种情况,有以下两种解决方案: # 方案一:stash        stash 用于将工作区发生...
2513 0
|
测试技术 程序员 开发工具
【Git实战】协同开发,如何紧急修复线上bug?
1. 团队协同开发时,生产环境出现bug,需要紧急修复。 2. 每位同学在本地开发,对应本地的dev分支,本地测试通过后提交到测试环境的dev分支。 3. 测试环境有其他同学提交的代码,正在测试中,无法提交到生产环境的master分支。 4. 以上情况导致我们不能在本地基于dev分支修复bug,因为会和其他同学提交的测试中的代码“撞车”,导致无法及时提及到生产环境。 5. 这个时候如何正确使用Git管理代码呢?
295 0
|
存储 缓存 安全
Harbor镜像漏洞扫描
Clair是CoreOS 2016年发布的一款开源容器漏洞扫描工具。该工具可以交叉检查Docker镜像的操作系统以及上面安装的任何包是否与任何已知不安全的包版本相匹配。漏洞是从特定操作系统的通用漏洞披露(CVE)数据库获取。
1212 0
Harbor镜像漏洞扫描