当前位置:   article > 正文

Github敏感信息自动扫描

github扫描网站物理位置

‍‍

新钛云服已为您服务1230



日常工作中,运维和开发同事通常会有自己的Github账号,用来上传自己编写的代码或存放博客文章、笔记等资料,有时会不经意的把公司或客户的敏感信息上传到Github,轻的会泄漏域名、IP等信息,重则泄漏系统的登录方式、密码,以及数据库的密码等非常重要的信息。

一旦发生此类事件,可能会给公司带来相当大的损失,影响公司形象,所以,我们需要一个自动化的扫描敏感信息的工具尽早发现此类问题,并对有敏感信息的库进行删除或设置为Private。


实现流程

脚本使用Python编写,该部分会讲述该脚本的实现的思路与流程。

  1. 提交关键字

Github的搜索需要关键字,例如 example.com、mycompany123(mycompany为示例,实际可能是 cisco123、cisco@123)等,需要各同事集思广益,提交自己负责业务的关键字

注意关键字不能太过宽泛,例如某个IP地址,或非常常用的密码,例如password、abc123等,应该提供契合业务系统的关键字

为了方便提交以及删除旧关键字,我们不写到服务器的配置文件内,而是利用维格表 这款工具,下文会详细介绍

  1. 程序读取关键字

将会用维格表的API读取关键字,传给代码使用。

  1. 进行扫描,并输出日志

扫描后,将日志输出到维格表,方便查看。

  1. 告警发送

将扫描到的结果发送到钉钉,方便告警负责人员及时发现。

  1. 人工查看扫描日志,并做出判断

需要人工查看扫描到的结果是否为敏感信息。

  1. 处理发现的问题

如果确实是泄漏了敏感信息,需要找到代码的负责人,并删除仓库或设置为私有




具体的实现

提交关键字

  1. 维格表可以自行在网上搜索,注册账号后登录,这里不再介绍

  2. 创建扫描关键字表

    表的名称为 "git-scan-info",表名称不是强制的,可以自定义

    新建四列选项,如下

    - 标题 :维格列类型为单行文本

    - 类型 :维格列类型为 “单选”,目前仅有一个选项,即关键字

    - 提交人 :同样为“单选”,表示是谁提交的关键字

    - 提交时间 :维格列类型为“创建时间”,创建关键字时会自动出现创建时间

   

 示例图如下:

  1. 创建扫描日志表

    表的列名称如下:

    - 扫描关键字

单行文本,脚本会将扫描内容时使用的关键字写到该列

        - 文件名

单行文本,会展示从哪个文件中扫描到的

    - 用户名

        单行文本,会展示扫描到文件的所属人

    - 仓库

     单行文本,会展示扫描到文件的所属仓库

    - URL

      网址,显示扫描到文件的URL,可以直接点击后访问

    - 扫描日期

      日期,显示扫描时的时间

    - 状态

     单选,需要人工查看,如果是不相关的内容,可设置为白名单

    示例图如下

    


准备配置文件

需要编写一个配置文件,命名为 config.ini,存放access token等信息,示例如下:

  1. [GitHub]
  2. Access_Token = XXXXXXXXXX
  3. [Vika_API]
  4. api_token = XXXXXXXXXX
  5. git_scan_info_sheet = XXXXXXXXXX
  6. git_scan_log_sheet = XXXXXXXXXX
  7. [DingTalk]
  8. webhook = https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXX
  9. # 钉钉机器人的 secret
  10. secret = XXXXXXXXXX
  11. # 告警消息中显示的图片
  12. github_pic_link = https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fs10.sinaimg.cn%2Fmiddle%2F8d046893hbad7ee850439%26690&refer=http%3A%2F%2Fs10.sinaimg.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1624937350&t=118aa4b56f3983526c9043779773147d
  13. mobiles = XXXXXXXXXXX

我们对上面文件中的内容一一解释:

  • GitHub

    - Access_Token

    调用Github API时,需要该项,按下图示例,可获取到token

  • Vika_API

    打开 "git-scan-info" 和 "git-scan-log"表,获取的示例图如下

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号