对gitlab安全的一些思考-linux安全运维_跨零代码

跨零代码为大家提供高品质的运维解决方案,请大家多多来访,跨零不胜感激,在此谢过。

http://kua0.com/11464.html 这篇博客里面,我提到了开发人员在异地git clone导致阿里云报警的情况。

虽然后来排除了被入侵的情况,但是gitlab的配置是否安全呢?有没有被爬虫的可能呢?这些都需要再挖掘下。

我们祭出神器AWVS(全称 Acunetix Web Vulnerability Scanner),输入我们gitlab的网址,让其自动检测一遍(实际上是通过爬虫方式爬取链接,然后和他的特征库比对,看是否有已知的漏洞或能被遍历的目录)。

工具的使用不是本文的重点,不介绍了。用AWVS差不多扫了1分钟,发现gitlab服务器网页打不开了(后来发现是gitlab自带的防护机制,详见http://www.178linux.com/7982), 我们的本机IP被暂时屏蔽了,好在awvs已经给出了结果。

上图红色框内的就是能被爬虫爬到的目录,是不是很触目惊心,一个小小的疏忽就会导致很严重的后果。

我们立即管理员账号登录gitlab后台,将这些目录(或称项目)都改成internal或者private。

当然,安全起见,还要检查下暴露出的项目代码里面写了哪些用户名和密码(是否有数据库的配置、是否有VPN等非常重要的参数),建议都修改下,以免到时候出了大问题都找不到原因。

有空再贴一篇之前写的gitlab的笔记吧,gitlab的官网介绍的也已经很详细了,我就贴些重要的地方和个性化配置的参数。

拓展思路:

下面是一个判断某个网站是否是gitlab站点的方法(哪位朋友用自己的gitlab验证下吧,我不确定是否每个人的gitlab返回值都是这样子的):

#!/bin/bash if curl -I -s --connect-timeout 1  http://xxxx.xxxx.com/users/sign_in  |grep gitlab_session > /dev/null     echo 'git server' fi 

我们可以在此基础上,扩展下,导入IP列表,然后批量检测。脚本如下:

#!/bin/bash while read line; do     if curl -I -s --connect-timeout 1  $line/users/sign_in  |grep gitlab_session > /dev/null 2>&1 ; then     echo "[+] $line: may be a gitlab server" >> /root/findgit.log fi done < /root/ip_list 

经过了解,发现public项目的是在http://www.xxxx.com/public 这种目录下存放的。
因此,我们通过上面的脚本得到gitlab server主机的地址后,可以直接去 $line/public这个地址查看有哪些项目是暴露在外部的(shell处理起来有难度,得用python来解决,顺便说一下,爬虫爬的线程不要太多,太多的话会被gitlab检测到自动封IP的)。


//下面这个css和插件后台设置的主题有关系,如果需要换样式,则需要修改以下CSS名称

从零到一,创造未来!跨零代码综合IT问题解决服务站,欢迎你的到来。运维教程 只为你绽放。

本文固定链接: http://kua0.com/2019/02/07/对gitlab安全的一些思考-linux安全运维_跨零代码/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注