开源代码监控--码小六(安装使用教程)

2023-11-08

写在前面

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

工具介绍

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

安装部署

码小六支持 Docker 部署与源码部署,在这里我选择使用docker部署。

Docker 镜像不含 MySQL 实例,请安装 MySQL、创建数据库并授权。

我使用的是华为的云耀云,centos7.6系统,需要先自己安装下mysql。

安装MySQL

1).在/usr/local/目录下(看个人情况)新建文件夹mysql用来存放下载好的MySQL Yum Repository(mkdir mysql);

2).从https://dev.mysql.com/downloads/repo/yum/下载MySQL Yum Repository(选择所使用的linux发行版对应的版本,这里选择Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package)。下载到本地后用命令 rz -be上传到服务器上。

3).安装MySQL Yum Repository,执行命令sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm;

[root@hecs mysql]# ls
mysql80-community-release-el7-3.noarch.rpm
[root@hecs mysql]# sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
warning: mysql80-community-release-el7-3.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql80-community-release-el7-3  ################################# [100%]
[root@hecs mysql]# 

4).选择MySQL版本,执行命令yum repolist all | grep mysql查看所有版本,执行命令yum-config-manager --disable mysql80-community禁用默认选择的版本,执行命令选择所需要的版本yum-config-manager --enable mysql57-community,最后执行yum repolist enabled | grep mysql使选择生效(如果提示命令不存在,安装yum-utils:执行命令:yum -y install yum-utils);

[root@hecs mysql]# yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64  MySQL Cluster 7.5 Community  disabled
mysql-cluster-7.5-community-source  MySQL Cluster 7.5 Community  disabled
mysql-cluster-7.6-community/x86_64  MySQL Cluster 7.6 Community  disabled
mysql-cluster-7.6-community-source  MySQL Cluster 7.6 Community  disabled
mysql-cluster-8.0-community/x86_64  MySQL Cluster 8.0 Community  disabled
mysql-cluster-8.0-community-source  MySQL Cluster 8.0 Community  disabled
mysql-connectors-community/x86_64   MySQL Connectors Community   enabled:    153
mysql-connectors-community-source   MySQL Connectors Community - disabled
mysql-tools-community/x86_64        MySQL Tools Community        enabled:    110
mysql-tools-community-source        MySQL Tools Community - Sour disabled
mysql-tools-preview/x86_64          MySQL Tools Preview          disabled
mysql-tools-preview-source          MySQL Tools Preview - Source disabled
mysql55-community/x86_64            MySQL 5.5 Community Server   disabled
mysql55-community-source            MySQL 5.5 Community Server - disabled
mysql56-community/x86_64            MySQL 5.6 Community Server   disabled
mysql56-community-source            MySQL 5.6 Community Server - disabled
mysql57-community/x86_64            MySQL 5.7 Community Server   disabled
mysql57-community-source            MySQL 5.7 Community Server - disabled
mysql80-community/x86_64            MySQL 8.0 Community Server   enabled:    177
mysql80-community-source            MySQL 8.0 Community Server - disabled
[root@hecs  mysql]# yum-config-manager --disable mysql80-community
Loaded plugins: fastestmirror
================================================================== repo: mysql80-community ==================================================================
...省略...

[root@hecs mysql]# yum-config-manager --enable mysql57-community
Loaded plugins: fastestmirror
================================================================== repo: mysql57-community ==================================================================
...省略...

[root@hecs  mysql]# yum repolist enabled | grep mysql
mysql-connectors-community/x86_64 MySQL Connectors Community                 153
mysql-tools-community/x86_64      MySQL Tools Community                      110
mysql57-community/x86_64          MySQL 5.7 Community Server                 424
[root@hecs mysql]# 

5).安装MySQL,执行命令yum install mysql-community-server(全程选y),安装完成!

6).开启MySQL服务:service mysqld start(对于EL7-based平台,首选命令:systemctl start mysqld.service);

7).查看MySQL状态:service mysqld status(对于EL7-based频台,首选命令:systemctl status mysqld.service);

Docker部署

# 创建镜像
git clone https://github.com/4x99/code6.git
cd 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/bash
php artisan code6:user-add <邮箱> <密码>

在执行命令php artisan code6:user-add <邮箱> <密码>时遇到错误:

root@544263f6a916:/var/www/html# php artisan code6:user-add xxxx.com xxxx

In Connection.php line 671:
 SQLSTATE[HY000] [1130] Host '172.17.0.2' is not allowed to connect to this MySQL server (SQL: select * from `user` where (`email` = xxxxxx.com) limi  
  t 1)     
  
In Connector.php line 70:
 SQLSTATE[HY000] [1130] Host '172.17.0.2' is not allowed to connect to this MySQL server 

这是因为你可能忘记配置mysql了,需要在mysql里自己增加一个用户,允许在172.17.0.2这个ip登录,并且记得创建code6这个数据库。

解决方法:

mysql> create user 'xxx'@'172.17.0.2' identified by 'xxxxx';
Query OK, 0 rows affected (0.00 sec)

mysql> create database code6;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| code6              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> grant all on *.* to 'xxx'@'172.17.0.2';
Query OK, 0 rows affected (0.00 sec)

将在这里创建的用户名密码填入上面的

-e MYSQL_USERNAME=xxx \
-e MYSQL_PASSWORD=xxxxx \

做完以上的工作就安装完成了,此时便可以通过 http://<宿主机 IP>:666 访问系统。

设置令牌

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

如何申请令牌?

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

直达地址:

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

在这里插入图片描述

其他说明

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

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

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

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

开始使用

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

关键字的选择

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

扫描结果存储

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

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

2、一个文件只记录一次

3、一个仓库只记录一次

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

扫描结果

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

未审:未审核的记录

误报:已确认正常的记录

异常:已确认异常的记录

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

结果处理

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

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

参考文章:https://mp.weixin.qq.com/s/7rBDZt3iBPzRrXpsZeahtg

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开源代码监控--码小六(安装使用教程) 的相关文章

  • 在 git 中编辑分支?

    我在 github 网站上创建了一个分支 该分支不在我的本地存储库中 如何将该分支带到我的本地计算机 对其进行编辑 然后将其推送回我的 github 帐户 在本地工作目录中输入 git fetch origin newbranch git
  • 在 github 上查找强制推送的提交者

    在我们的项目 托管在 GitHub 上 中 每隔一段时间就会有人意外强制推送 master 没有人知道是否这样做 我想找出是谁干的 以及背后有什么样的错误配置的工具或坏习惯 那么问题来了 如何识别进行强制推送的用户呢 当我拉动时 我看到这样
  • 将新更新从原始 GitHub 存储库提取到分叉的 GitHub 存储库

    我在 GitHub 上分叉了某人的存储库 并希望使用原始存储库中的提交和更新来更新我的版本 这些是在我分叉我的副本后制作的 如何提取在源中所做的更改并将它们合并到我的存储库中 您必须将原始存储库 您分叉的存储库 添加为远程存储库 来自有关分
  • 使用 ssh 身份验证的 IntelliJ 设置存储库

    我正在尝试使用设置存储库Intellij 2017 1 中的功能 但我想使用 ssh url 作为存储库而不是 https 我不喜欢处理那些在第一次创建后无法复制的个人访问令牌 所以我尝试使用 ssh 但当我单击 覆盖本地 时 出现以下错误
  • Github README.md 和 readme.md - 如何删除其中一个?

    不知何故 我最终在 github 上有了 README md 和 readme md 现在这两者相互影响 所以我的 GitHub app 完全混乱了 Github网站没有任何文件删除功能 如何删除这些文件之一 只需删除其中一个文件并提交删除
  • 受保护分支设置中的检查列表中缺少 Github 操作状态检查

    我有以下 github 操作设置 可以在创建 Pull 请求时正常触发 但它不会出现在受保护分支 主分支 的状态检查列表中 我不确定我做错了什么 name Python application on pull request branche
  • Git 不断提示我输入密码

    我已经使用 Git 一段时间了 但是不断要求输入密码开始让我感到厌烦 我使用的是 Mac OS X 和 GitHub 并且按照 GitHub 的说明设置了 Git 和我的 SSH 密钥设置 Git 页面 http help github c
  • git 显示已添加到 gitignore 的文件中的更改?

    我已经将 log2 文件夹和 main js 文件添加到 gitignore 如屏幕截图所示 但即使执行后git rm cached r我仍然可以看到 git 正在检测 main js 和 log2 文件夹内文件的更改 怎么会 这些的常见问
  • Composer 用于下载私有 GitHub 存储库

    我无法使用 Composer 下载 github 私人存储库 php composer phar update 我收到以下错误 The https api github com repos company private1 https ap
  • Jenkins 和 Github 不使用 SSH 密钥

    我已将 Jenkins 设置为从 Github 上的私有存储库中提取特定作业 尽管我已经生成了私钥 公钥并将其作为部署密钥添加到 github 但 Jenkins 似乎并未使用 SSH 密钥 当我从 Jenkins 用户进行 git clo
  • 无法从 Sourcetree 拉取 Git 远程存储库

    我生成了 ssh 密钥并配置了我的 git 和 SourceTree 我可以 git pull 并从 Git bash 执行其他操作 注意 我在 bashrc 中添加了以下内容以使其正常工作 eval ssh agent ssh add 然
  • 无法通过 Git Bash 克隆 git 存储库

    在尝试使用克隆存储库时git clone 它显示以下错误 致命 无法访问 https github com microsoft c9 python getting started git https github com microsoft
  • Composer 无法获取 github

    今天 我尝试通过运行来安装 Laravelcomposer create project laravel laravel 5 1 myproject prefer dist我收到此错误 Could not fetch https api g
  • 部分共享git仓库

    我是 git 新手 我想知道是否支持以下场景 如果支持的话如何支持 即用于设置和更新的 git 命令 可以从三个不同的地方获取存储库 本地 镜像 和 github mirror 完全镜像 local github 镜像 local 但 受版
  • 从 github 中排除文件夹

    我需要从我的 Github 中排除文件夹 App Data 但我不知道如何做 我有一个应用程序 它在目录中保存许多文件 例如 jpg 文件 Source MyProject App data stored filename jpg 现在我需
  • 如何从 GitHub 上彻底删除问题?

    是否可以从 GitHub 问题跟踪器中完全删除问题 不可以 github API 只允许您打开 关闭 重新打开问题 这是问题 API 文档 http developer github com v3 issues
  • Capistrano 3 部署无法连接到 GitHub - 权限被拒绝(公钥)

    我使用 Capistrano v3 和 capistrano symfony gem 设置了以下部署脚本 我正在使用 Ubuntu 14 4 部署到 AWS EC2 实例 我正在连接从 AWS 下载的 pem 文件 我的deploy rb中
  • 这个灰色的 git 图标是什么?

    看起来像文件夹中的文件夹 或者可能是一把锁 该文件无法打开 并且其中似乎没有任何内容 我确实知道的一件事是 这个文件夹本身就是一个存储库 位于存储库内部 考虑到它是一个子模块 https stackoverflow com a 191318
  • 在 github 操作中部署到 PR 上的 Firebase 托管失败

    我尝试使用 firebase 创建实时预览 我写yml文件及其始终失败 This file was auto generated by the Firebase CLI https github com firebase firebase
  • 推送更改到 Git 不起作用

    每次我想要提交命令 git push heroku master 时 系统都会要求我在 PowerShell 中输入凭据 当我输入 heroku 凭据 默认情况下连接到 git 时 我收到错误消息 但是 当我输入我的主目录中的 netrc

随机推荐

  • git基本使用

    1 git init 初始化本地仓库 2 git add 或文件名 暂存 3 git commit m 自己定名字 4 git status 查看 5 git remote add origin https github com xxx 6
  • 强化学习之混合动作空间

    强化学习之混合动作空间 基本介绍 在强化学习的动作空间设定中有连续动作空间 离散动作空间和混合动作空间 在大多数的论文中研究的都是连续动作空间和离散动作空间 而混合动作空间研究的比较少 在游戏ai 自动驾驶等一些领域中有时动作空间可以是混合
  • 安装Elasticsearch

    gt 安装 1 创建基础环境 环境 centos7 9 es版本 7 13 3 按照如下的步骤一步步走 就可以正常完成安装 groupadd es useradd es g es p es123 cd home mkdir p elk es
  • nuxt.js局部引用quill富文本编辑器

    想在nuxt js中使用quill富文本编辑器 按照网上常见的方法 将css js 添加到 nuxt config js 这是全局调用了quill的css js 文件 在每个页面的源码中 都可以看到quill 的css js 这是没有必要的
  • 老板让你做性能优化,第一步你应该做什么?

    前言 项目的性能决定了用户对项目的整体感观度 优秀的性能可以保证项目的流畅与自然给用户愉快的体验感受 当我们开发完成一个项目以后最重要的环节就是要保证项目拥有一个良好的性能 所以开发完成以后需要我们针对项目做好性能优化 那么 要使一个项目拥
  • 大模型杀手级场景到底什么会到来

    大模型大潮之下 熙熙攘攘 皆为利来 皆为利往 所以很多人观望之后发现到现在还没有杀手级落地场景 便有些不耐烦了 觉得可能又是一股泡沫 但究竟是不是泡沫 需要从宏观角度分析下当前大模型的现状 笔者认为这种不耐烦其实来源于两个原因 1 天下事
  • 最适合零基础的爬虫教程,从零开始教你爬取十万表情包。非常简单。

    前言 事情要从几天前说起 我有一个朋友 他在和他喜欢的小姐姐聊天时 聊天的气氛一直非常尬 这时他就想发点表情包来缓和一下气氛 但一看自己的表情包收藏都是这样的 这发过去 基本就直接和小姐姐说拜拜了 然后他就向我求救问我有没有表情包 表情包我
  • 1、TCP三次握手、四次挥手;2、ADSL定义

    1 TCP三次握手 四次挥手详解 1 建立连接协议 三次握手 1 客户端发送一个带SYN标志的TCP报文到服务器 这是三次握手过程中的报文1 2 服务器端回应客户端的 这是三次握手中的第2个报文 这个报文同时带ACK标志和SYN标志 因此它
  • Appium 全新 2.0 全新跨平台生态,版本特性抢鲜体验!

    关于Appium V2 Appium V2 beta版本在2021年发布 从2022年1月1号开始 Appium核心团队不会再维护Appium 1 x版本了 所有近期官方发布的平台驱动 如Android平台的UIAutomator IOS平
  • W801上电自动重连wifi并通过蓝牙更新账号密码

    一 项目流程 项目整体思路比较简单 W801上电后读取内部flash中保存在固定位置的Wifi账号密码 同时开始蓝牙 每当蓝牙接收到命令后 就对其进行解析 如果为连接wifi命令 则断开当前wifi 并进行新的wifi连接 连接成功后将账号
  • 使用pkg打包Node.js应用:跨平台运行你的应用程序!

    使用pkg打包Node js应用 跨平台运行你的应用程序 你是否曾经遇到过在不同操作系统中运行同一个Node js应用程序时出现的问题 这是因为Node js不具备跨平台能力 所以需要一个打包工具来解决这个问题 幸运的是 有一个名为pkg的
  • 颜色、形状和纹理:使用 OpenCV 进行特征提取

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 如何从图像中提取特征 第一次听说 特征提取 一词是在 YouTube 上的机器学习视频教程中 它清楚地解释了我们如何在大型数据集中提取特征 很简单 数据集的列就是特征 然
  • Error: Command failed: C:\windows\system32\cmd.exe /s /c "E:\programfiles\androidSDK\platform-tools\...

    问题 appium等自动化环境都安装配置号后 遇到如下问题 Error Command failed C windows system32 cmd exe s c E programfiles androidSDK platform too
  • 基于深度学习的指针式仪表图像智能读数方法

    针对传统图像处理的仪表识别方法鲁棒性较差 难以满足复杂环境下的指针式仪表图像读数 而深度学习的方法通过样本的训练能够适应更多的复杂场景 越来越多的仪表读数解决方案更偏向于使用深度学习的方法 而现在的基于深度学习的方法在仪表识别的解决方案中主
  • 某直装外挂卡密校验逆向分析

    前言 最近分析了一款外挂软件的卡密校验 过程挺有趣的 故记录下来 正文 该软件的界面如下图 登录卡密是该界面的一个按钮 首先是获取该界面的类名 如下 该界面所在的类是com app batman MainActivity 获取到该界面所在的
  • VUE:v-for的使用及源码

    一 前言 v for可以说是vue中使用最多的指令之一 不过 你真的了解它吗 v for不仅仅能用于遍历数组 也不仅仅能用于遍历对象 二 使用 先说结论 v for可以遍历数组 对象 数字以及字符串 以及 在vue3版本新增的对于部署了it
  • 嵌入式Linux驱动笔记(二十三)------使用buidroot构建文件系统

    你好 这里是风筝的博客 欢迎和我一起交流 所有的buidroot使用问题都可以看这个在线使用文档 https buildroot org downloads manual manual html about buildroot Buildr
  • 浏览器渲染页面的流程

    一 浏览器渲染页面的原理及流程 浏览器的核心部分是渲染引擎 也称为浏览器的内核 负责对网页语法 如HTML CSS JavaScript等 的解释并显示网页 Firefox使用Geoko Mozilla自主研发的渲染引擎 Safari和Ch
  • Mybatis XML中使用枚举

    枚举类 import com baomidou mybatisplus annotation IEnum import com fasterxml jackson annotation JsonCreator import com fast
  • 开源代码监控--码小六(安装使用教程)

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