APP下载

分布式网络敏感信息泄露预警系统

2021-11-07孙典徐亚峰黄成鑫陶希同

电脑知识与技术 2021年25期
关键词:功能模块调用代码

孙典 徐亚峰 黄成鑫 陶希同

摘要:近年来因敏感信息泄露导致的信息安全事件屡见不鲜,如何避免敏感信息在泄露后造成的严重损失,是待解决的问题。该系统基于GO语言,调用Github搜索API结合lucene语法过滤规则实现分布式扫描,并在扫描后及时将扫描结果通过微信告知用户,使用Macaron库及其中间件和辅助模块编写路由,并提供前端Web应用供用户审计结果。该系统包括扫描、审计、登录、用户管理、规则管理、Token管理六大模块。使用该系统用户可以根据自身所关心关键词自行编写符合lucene语法过滤规则,因此该系统具有较好的扩展性和实用性,部署后能降低企业因敏感信息泄露而遭受的损失。

关键词:敏感信息;Go语言;泄露;预警;网络安全

中图分类号:TP315        文献标识码:A

文章编号:1009-3044(2021)25-0102-04

Abstract:Information security incident occurred frequently due to the leakage of sensitive information in recent years. Based on the Go language, this system calls GitHub Search API and Lucene syntax filtering rules to realize distributed scanning. After scanning, the system timely informs users of the scanning results through wechat. And it uses Macaron library and its inter parts and auxiliary modules to write routing, and provides users thefront-end web application to audit results. This system is mainly composed of six modules: login, audit, user management, rule management, token management, and scanning. Users can write their own Lucene syntax filtering rules according to the keywords they care about.Therefore,the system has good scalability and practicability, and can reduce the loss of enterprises due to the disclosure of sensitive information after deployment. And after its deployment, it is extensible and practical enough to reduce enterprises' lossas a result of the leakage of sensitive information.

Key words: sensitive information; Go language; disclosure; early warning;cyber security

1引言

随着互联网技术、通信技术的发展并加持上大数据时代的到来[1],越来越多的企业将企业代码開源到代码托管平台上。企业将代码开源到代码托管平台可以帮助开发企业更好的存储和管理其源代码,而且方便开发者追踪、记录源代码的修改,在必要的时候能够帮助开发者快速回溯到之前的历史版本等。然而将代码托管到类似于GitHub代码托管平台也会带来很多安全问题,许多企业的部分开发人员由于缺少安全意识,误把企业内部敏感信息例如数据库配置信息、SSH登录密码、企业邮箱密码等上传到托管平台上。黑客可以十分容易地利用各大代码托管平台的搜索引擎抓取到代码库里的配置信息,这些配置信息中会涉及账号密码等敏感数据,一旦被利用来钓鱼、脱库等网络攻击活动会给企业相关业务带来安全威胁,如果黑客利用泄露账户、密码成功登录外部机器,并以此机器作为跳板进入企业内网,必定给企业带来重大的经济损失。本系统为了能够更好地避免代码泄露造成的损失,结合众多企业源代码泄露的事件,通过对企业关注的关键词进行信息收集从而生成匹配规则和过滤规则,方便企业收集到不同类型的可能泄露的敏感信息,并进行审计审查,供企业对于敏感信息泄露进行预警,减少因敏感信息泄露所带来的损失。

2 HK-scout系统设计

2.1 GitHubAPI

本系统设计的自动化扫描大致可以分为两步,第一步是搜索代码,第二步就是检查搜索的代码结果中是否含有敏感信息。首先搜索代码有两种选择一种是模拟正常登录后的用户操作[2],另一种是调用GitHubAPI搜索。第一种就是爬取搜索代码的结果页后解析DOM,但是这种模拟登录加搜索的方法首先需要我们拿到页面CSRF Token(Cross-site request forgery Token),然后在成功登录前可能会出现一步向我们使用的CSRF Token账号的邮箱发送验证码并验证,或者因为账号开启了2FA二次验证需要输入验证码,而且此操作容易被GitHub风控甚至更严重的会直接导致封禁账号,所以此种方法不太适合使用。

GitHub提供了go-github库,且调用API十分容易,返回的数据也十分详细,可以直接得到具体的 Repository信息,源文件内容、仓库地址等信息。所以本系统采用GitHubAPI进行搜索,在对GitHub敏感信息扫描时使用go-github库,需要调用GitHub的SearchAPI, GitHub对于API的调用有限制速率,但是经过GitHub Token认证后,可以把速率提升为每小时5000次。请求的速率限制经过GitHubToken认证后可以提高到30次每分钟,认证后的请求速率和调用速率都足够本系统使用。

猜你喜欢

功能模块调用代码
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
创世代码
创世代码
创世代码
创世代码
基于系统调用的恶意软件检测技术研究
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
功能模块的设计与应用研究