专栏首页二狗的DBA之路对gitlab安全的一些思考

对gitlab安全的一些思考

http://lee90.blog.51cto.com/10414478/1858636 这篇博客里面,我提到了开发人员在异地git clone导致阿里云报警的情况。

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

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

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

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

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

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

有空再贴一篇之前写的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的)。

具体操作的思路自己拓展,找到公开的项目不。

欢迎大家一起交流。。。。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • gitlab备份在其他主机上做恢复

    背景: 假设我们当前的gitlab挂掉了,整个服务器都起不来了,但是我们有对gitlab的归档备份,这时候还可以恢复出数据来。 (需要备份gitlab原始安装包...

    二狗不要跑
  • mailx(mail)配置outlook SMTP方式发送邮件

    转载文章。 因为目前数据库备份脚本缺少告警机制,告警平台还没完善,因此临时用邮箱告警。

    二狗不要跑
  • MySQL5.7配置基于GTID的复制及GTID回退到传统模式的方法

    mysqldump -uroot -proot -q--single-transaction -A  > /root/all.sql

    二狗不要跑
  • gitlab 注册runner

    向GitLab-CI注册一个Runner需要两样东西:GitLab-CI的url和注册token。 其中,token是为了确定你这个Runner是所有工程都能够...

    用户2398817
  • gitlab 的一些小操作

    参考博文持续集成之Gitlab安装与应用安装gitlab,进行到三、远端库的基本操作之上即可

    小手冰凉
  • Ubuntu16.04搭建GitLab服务器教程

    如果成功运行, 在浏览器中输入http://127.0.0.1便可访问到GitLab界面. 首次使用时, GitLab会提示设置密码, 设置完成之后便可成功使用...

    小一
  • 在Mac下使用crontab执行定时脚本

    */10 * * * * curlhttp://localhost/test.php

    新人小试
  • 『中级篇』docker之CI/CD持续集成-gitlab安装(70)

    PS:gitlab安装基本就是这样也不是很复杂,主要是必须更改源,国内的墙太高太宽了。

    IT故事会
  • 树莓派搭建docker openV**以及ipv6隧道

    openvpn可以方便地穿越nat,是替代pptp的好工具。但是openvpn也有配置证书的步骤繁多的难点,本文主要介绍几种安装openvpn的方法,以及ipv...

    羽翰尘
  • gitlab使用教程

    版权声明:本文为木偶人shaon原创文章,转载请注明原文地址,非常感谢。 https://b...

    shaonbean

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动