Skip to content
/ GSIL Public
forked from FeeiCN/GSIL

GitHub Sensitive Information Leakage(GitHub敏感信息泄露监控)

License

Notifications You must be signed in to change notification settings

faint4/GSIL

This branch is 2 commits behind FeeiCN/GSIL:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a4c7fc7 · Oct 18, 2021
Aug 20, 2020
Apr 18, 2018
Jan 16, 2018
Jan 21, 2018
Jan 16, 2018
Oct 18, 2021
Oct 18, 2021
Aug 20, 2020
Jan 21, 2018
Aug 20, 2020
Jan 16, 2018
Sep 8, 2021
Aug 20, 2020
Aug 20, 2020

Repository files navigation

GSIL(GitHub Sensitive Information Leakage)

中文文档

Monitor Github sensitive information leaks in near real time and send alert notifications.

Installation

Python3(Python2 is not tested)

$ git clone https://github.com/FeeiCN/GSIL.git
$ cd GSIL/
$ pip install -r requirements.txt

Configuration

GSIL/config.gsil(Copy config.gsil.cfg.example to config.gsil.cfg): Alarm mailbox and Github configuration

[mail]
host : smtp.exmail.qq.com
# SMTP port (Not SSL port, but will use TLS encryption)
port : 25
# Multiple senders are separated by comma (,)
mails : gsil@domain.com
from : GSIL
password : your_password
# Multiple recipients are separated by comma (,)
to : feei@feei.cn

[github]
# Whether the scanned data will be cloned to the local area immediately
# Clone to ~/.gsil/codes/ directory
clone: false

# Github Token, multiple tokens are separated by comma (,)
# https://github.com/settings/tokens
tokens : your_token

GSIL/rules.gsil(Copy rules.gsil.yaml.example to rules.gsil.yaml): scanning rules

Generally, The best rule is the characteristic code of the intranet(Example: mogujie's extranet is mogujie.com, intranet is mogujie.org. At this time, mogujie.org can be used as a rule)

There are other similar code head characteristic code, external mailbox characteristic code, and so on

field meaning optional default describe
keyword key word required - When multiple keywords are used, space segmentation is used(Example: 'username password'), When you need a precise search, use double(Example: "quotesele.me")
ext file suffix optional all suffixes Multiple suffixes are separated by comma(Example: java,php,python)
mode matching mode optional normal-match normal-match(The line that contains the keyword is matched, and the line near the line is matched) / only-match(Only the lines that match the key words) / full-match(Not recommended for use)(The search results show the entire file)
{
    # usually using the company name, used as the first parameter to open the scan(Example:`python gsil.py test`)
    "test": {
        # General use of product name
        "mogujie": {
            # Internal domain name of the company
            "\"mogujie.org\"": {
                # mode/ext options no need to configure by default
                "mode": "normal-match",
                "ext": "php,java,python,go,js,properties"
            },
            # Company code's characteristic code
            "copyright meili inc": {},
            # Internal host domain name
            "yewu1.db.mogujie.host": {},
            # External mailbox
            "mail.mogujie.com": {}
        },
        "meilishuo": {
            "meilishuo.org": {},
            "meilishuo.io": {}
        }
    }
}

Usage

$ python gsil.py test

# Verify tokens validity
$ python gsil.py --verify-tokens
$ crontab -e

# Run every hour
0 * * * * /usr/bin/python /var/app/GSIL/gsil.py test > /tmp/gsil
# Send a statistical report at 11 p. m. every night
0 23 * * * /usr/bin/python /var/app/GSIL/gsil.py --report
  • Once the scan report will not repeat the report, the cache records in ~/.gsil/ directory *

Reference

About

GitHub Sensitive Information Leakage(GitHub敏感信息泄露监控)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%