开源代码监控系统助力企业安全

admin 2021年1月23日12:47:12评论35 views字数 1914阅读6分22秒阅读模式

众所周知,GitHub 是全球最大的代码托管平台,它在 2019 年报中提到平台已拥有超过 4000 万开发者,全年共创建了 4400 万个仓库。而在庞大的数字的背后,每天却发生着大量的安全泄露!我们需要实时监控 GitHub,防止出现重大安全事故。

0x01 监控原理

通常监控 GitHub 有两种方案:

1、爬虫

2、GitHub API:https://developer.github.com/v3/

GitHub 拥有健全的反爬虫机制,因此想通过爬虫监控 GitHub 并不容易,使用 GitHub API 是一个更加稳定且高效的选择。但是 GitHub API 对请求频率做了严格的限制,如果需要扫描很多关键字,必须申请多个令牌(personal access token)降低每个账号的请求频率。

0x02 码小六

今天介绍一款 GitHub 代码泄露监控工具 - 码小六,基于 PHP + Laravel 构建,开源免费,为企业安全保驾护航!

仓库地址:

https://github.com/4x99/code6

系统特点:

1、全可视化界面,操作简单

2、支持 GitHub 令牌管理及智能调度

3、扫描结果信息丰富,支持批量操作

4、任务配置灵活,可单独配置任务扫描参数

5、支持白名单模式,主动忽略白名单仓库

运行环境

Linux

PHP >= 7.3.0

Composer

MySQL >= 5.7

Apache >= 2.4

系统界面

开源代码监控系统助力企业安全

开源代码监控系统助力企业安全

开源代码监控系统助力企业安全

0x03 安装部署

码小六支持 Docker 部署与源码部署,这里介绍使用 Docker 部署~

Docker 镜像不含 MySQL 实例,请安装 MySQL、创建数据库并授权(安装 MySQL 步骤略)

# 创建镜像git clone https://github.com/4x99/code6.gitcd code6 && docker build -t code6 .# 启动容器(宿主机映射端口 666 与 MySQL 连接参数请根据情况修改,容器启动将自动连接 MySQL 并导入数据表)docker run -d -p 666:80 -e MYSQL_HOST=172.17.0.1 -e MYSQL_PORT=3306 -e MYSQL_DATABASE=code6 -e MYSQL_USERNAME=xxx -e MYSQL_PASSWORD=xxxxxx --name code6-server code6# 进入容器创建用户docker exec -it code6-server /bin/bashphp artisan code6:user-add <邮箱> <密码>

这样安装就完成了,此时便可以通过 http://<宿主机 IP>:666 访问系统~

0x04 设置令牌

进入系统的第一步需要到 [ 令牌配置 ] 模块配置 GitHub 令牌

如何申请令牌?

GitHub -> Settings -> Developer settings -> Personal access tokens -> Generate new token

直达地址:

https://github.com/settings/tokens/new

开源代码监控系统助力企业安全

其他说明

1、建议至少配置 5 个令牌

2、不能用同一个 GitHub 账号创建多个令牌(这些令牌共享账号配额)

3、码小六在进行扫描任务时会自动检测更新令牌配额并进行调度

4、若令牌状态时而正常时而异常有可能是因为请求 GitHub 网络不通畅造成(可忽略)

0x05 设置任务

接下来可以到 [ 任务配置 ] 模块设置扫描任务啦!

关键字的选择

公司邮箱后缀、域名、项目标识是不错的选择,如果能在公司推行安全规范,在每个项目工程内放置唯一标识,并将此标识作为扫描关键字便能实现精准监控。

扫描结果存储

扫描结果存储入库目前支持以下选项:

1、记录文件的每个版本:即文件每次提交(包含关键字)会产生一条新的未审记录

2、一个文件只记录一次

3、一个仓库只记录一次

如果只关注项目维度选择“一个仓库只记录一次”即可,这样会大大减少需要审核的结果记录。

0x06 审核结果

状态说明

码小六的 [ 扫描结果 ] 模块显示了匹配到关键字的扫描记录,可以将这些记录设置为以下状态:

未审:未审核的记录

误报:已确认正常的记录

异常:已确认异常的记录

解决:异常且已处理的记录

结果处理

如果通过 GitHub 个人主页、代码或 Commit 记录中能找到仓库拥有者的联系方式,可以直接联系处理。如果联系不上,则只能通过 GitHub DMCA (数字千年版权法),写邮件给 GitHub 申请下架仓库(建议各在公司内建立相关预案以便能快速处理此类问题),帮助文档:

https://help.github.com/en/github/site-policy/guide-to-submitting-a-dmca-takedown-notice)

开源代码监控系统助力企业安全

本文始发于微信公众号(信安之路):开源代码监控系统助力企业安全

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年1月23日12:47:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   开源代码监控系统助力企业安全http://cn-sec.com/archives/251912.html

发表评论

匿名网友 填写信息