Github Monitor - Github信息泄漏監控系統開源啦! 2018-12-19

GITHUB MONITOR 是vipkid安全研發團隊打造的用于監控Github代碼倉庫的系統。通過該系統可以及時發現企業內部代碼泄露、從而降低由于代碼泄露導致的一系列安全風險。用戶僅需通過簡單的任務配置,即可在分鐘級發現代碼泄露的情況。項目后端使用 django-rest-framework 開發,前端使用 reactantd-pro 開發。

系統特點

安裝指南

首先將代碼clone到本地:

git clone https://github.com/VKSRC/Github-Monitor.git

1. docker 部署

我們推薦使用Docker進行部署, 相對于源碼部署更為簡單和快速。

部署前請務必先安裝Dockerdocker-compose。

修改配置文件

首先復制根目錄的.env.docker并重命名為.env,修改其中的Email Settingsinitial Administrator配置。這兩個配置分別控制郵件提醒,以及初始管理帳號密碼。

注意: 如果需要訪問的地址不是127.0.0.1localhost, 需要修改ALLOWED_HOST參數,將訪問地址加到里面, 如: ALLOWED_HOSTS="127.0.0.1,localhost,github.sec.vipkid.com.cn"

一鍵啟動

docker-compose up -d

訪問http://127.0.0.1:8001即可看到頁面。

修改啟動端口

如果想修改啟動端口,可以修改docker-compose.yaml文件中web容器的ports。

默認為8001:80,比如要修改為8080端口可改為8080:80。

2. 源碼部署:

項目運行依賴 redis, 請在運行服務前啟動redis-server


首先將.env.sample復制一份重命名為.env,并按照自己的要求修改配置:

# Django Settings
DEBUG="True"  # Django后臺是否以debug模式運行, 可選True/False
ALLOWED_HOSTS="127.0.0.1,localhost"  # 配置Django Allowed_Hosts

# Database Settings
# DATABASE choice is mysql or sqlite
DATABASE="sqlite"  # 數據庫類型, 可選sqlite或mysql
DB_NAME="github"  # 數據庫名稱
DB_HOST="127.0.0.1"  # mysql host
DB_PORT="3306"  # mysql port
DB_USER="root"  # mysql用戶名
DB_PASSWORD="vipkid@2018"  # mysql密碼

# Email Settings
# If you do not fill it in, it is None/False
EMAIL_HOST="smtp.example.com"  # smtp host
EMAIL_PORT="25"  # smtp port
FROM_EMAIL="secuirty@example.com"  # 發件人
EMAIL_HOST_USER="security@example.com"  # email user, 如為匿名發送,將值設為空字符即可
EMAIL_HOST_PASSWORD="password123!@#"  # email password, 如為匿名發送,將值設為空字符即可
EMAIL_USE_TLS=
EMAIL_USE_SSL=

# initial Administrator
INIT_ADMIN_USERNAME="admin"  # 初始化系統用戶使用的用戶名
INIT_ADMIN_PASSWORD="password123!@#"  # 初始化系統用戶使用的用戶密碼

?

測試環境可以使用django runserver的方式來進行部署,生產環境建議使用uwsgi + Nginx的方式部署,配置文件的示例可以參考 配置 目錄下的文件。

  1. 進入項目根目錄下的server目錄

  2. 配置virtualenv環境(建議)

  3. 在mysql里創建數據庫(如使用sqlite、請忽略此步):

     > 登錄進mysql后, 執行 ```CREATE DATABASE IF NOT EXISTS github DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_bin;```
    
  4. 在server目錄下執行如下腳本:

    安裝python依賴

    pip3 install -r requirements.pip -i http://pypi.doubanio.com/simple –trusted-host pypi.doubanio.com

    初始化數據庫

    python3 manage.py migrate

    初始化用戶賬號

    python3 manage.py init_admin

    啟動web后端服務:

    python3 manage.py runserver 127.0.0.1:8001

    啟動監控任務服務:

    python3 manage.py monitor_task_service


測試環境可以使用 npm run start 方式啟動, 生產環境建議先通過 npm run build生成靜態文件,然后通過nginx做轉發來做。

  1. 進入項目根目錄下的client目錄
  2. 如果后端接口地址不為 127.0.0.1:8001, 需要修改config/config.local.js, 將target修改為后端地址即可
  3. 執行: npm install && npm run start

使用手冊

1.添加Token

Github Monitor使用Github REST API v3接口進行搜索,所以需要預先配置Token進行認證。

首先登錄Github,然后進入Token配置頁面創建Token。

隨后把Token添加到Github Monitor中。

Github API有次數限制,1分鐘最多請求30次,為了提高爬取速度,Github Monitor支持添加多個Token。

2.添加監控任務

如圖:

3.確認/忽略風險

如圖:

爬蟲爬取到的數據會入庫,可以在查詢系統中進行操作,進行處理/加白/忽略倉庫操作。

聯系我們

關注VKSRC微信公眾號,有任何建議和意見都可以發送到公眾號/提交Issue。

Wechat

一级A片不卡在线观看