gitlab 被攻击了!求大佬进来分析一下

2021-08-13 15:41:47 +08:00
 raysonlu

收到一个安全监控警告:

高亮部分就是一串命令,用 gitlab-rails runner 执行了一个创建管理员的命令!

gitlab 版本是 CE 的 13.10.2

里面的项目,没有用过 hook,也没有用流水线,因为团队的都不会用。

目前对于这个安全事故排查毫无头绪,完全不知道怎样注入,怎样执行的,有无大佬指导一下(哭

7409 次点击
所在节点    GitLab
31 条回复
misaka19000
2021-08-13 15:44:27 +08:00
你也把命令贴出来啊
InternetExplorer
2021-08-13 15:44:35 +08:00
可能团队里有人在做渗透测试?
hly9469
2021-08-13 15:50:11 +08:00
你指着大佬一个个字母敲来复现?哈哈哈哈
raysonlu
2021-08-13 15:52:56 +08:00
@misaka19000
@InternetExplorer
@hly9469

我以为这个命令的具体,对分析没什么意义,我也贴一下吧:
gitlab-rails runner "user = User.create(username: 'dexbcx',password:'12345678',email:'dexbcx@gmail.com',name:'dexbcx',confirmed_at: '2021-08-11 16:46:53'); user.admin=true; user.save;"
Rwing
2021-08-13 15:54:42 +08:00
1.不要开放外网
2.勤升级,他们团队一周一个补丁不是闹着玩的
raysonlu
2021-08-13 15:56:35 +08:00
@Rwing gitlab 的安全性这么感人的吗?安排升级操作了,但想知道怎么死也没办法?
jay4497
2021-08-13 16:06:10 +08:00
既然没人用流水线,就把 runner 服务关掉吧,没那么多事
raysonlu
2021-08-13 16:13:29 +08:00
@jay4497 怎样关闭 runner 服务?目前只是各个项目里面关闭了流水线功能。
raysonlu
2021-08-13 16:14:54 +08:00
@jay4497 但我对这个命令是不是流水线作为入口,进行注入并执行的,也不太确定,找不到任何的蛛丝马迹。
polaa
2021-08-13 16:19:58 +08:00
和关不关 runner 无关

你这版本这么低

看一下 gitlab security release 就有一些 code injection
jay4497
2021-08-13 16:24:52 +08:00
@raysonlu 安全小白,也不太懂,但以前折腾过这个 runner,需要配置啥的才能用上流水线功能,具体的你看看文档吧 docs.gitlab.com/runner/
raysonlu
2021-08-13 16:26:27 +08:00
@polaa 这个版本还低? 13 系列的最高版本是哪个?
polaa
2021-08-13 16:31:56 +08:00
最新一个 release

GitLab Security Release: 14.1.2, 14.0.7, and 13.12.9 for GitLab Community Edition (CE)
raysonlu
2021-08-13 16:34:25 +08:00
@polaa 想知道怎样获取这些信息,以及如何更新小版本?网上看到更新的方法,都是备份,然后重装?
polaa
2021-08-13 16:39:44 +08:00
官网都有吧
yw9381
2021-08-13 16:54:15 +08:00
看了下应该大概能给你复原出来攻击场景,首先你的 gitlab 应该是开放了注册或者有人有弱口令。之后攻击者创建或是修改了某个仓库,并在其中加入了.gitlab-ci.yml 。然后触发了 ci 操作。因为你 gitlab 和 gitlab runner 都在一个机器上部署。所以 runmer 是可以访问到本机的 pgsql 的。攻击者在 runner 的 ci 脚本里写了那句 sh -c xxxx 。在 4 楼的解码后也可以看到攻击者创建了一个名为 dexbcx 的管理员用户。后续的攻击动作因为没提供更多信息就不得而知了。
也有可能整个事情是个误报。你只是想创建一个名为 dexbcx 的管理员用户。结果 gitlab 对创建用户的底层实现是通过 sh -c 的形式运行命令(这条感觉不太可能)
yw9381
2021-08-13 16:56:23 +08:00
个人觉得这是一个安全配置问题。并不算是有漏洞。安全缺陷和漏洞是两码事。不过还是建议你们内部自查一下弱口令这些。还有相应的权限管控。
raysonlu
2021-08-13 16:59:18 +08:00
@yw9381 没有开放注册。如果必须要通过上传或修改一个.gitlab-ci.yml 文件的话,是不是我能在每个项目中找回这个记录?
raysonlu
2021-08-13 17:01:43 +08:00
@polaa 在官网逛了很久,确实没找到,麻烦大佬贴一下路径,或者链接?
raysonlu
2021-08-13 17:13:43 +08:00
@yw9381 补充一下,我逐个项目看,找不到.gitlab-ci.yml 文件,以及在 /var/opt/gitlab/git-data/repositories 路径中,find ./ -name "*gitlab*",找不到。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/795606

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX