前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >多平台的敏感信息监测工具-GShark

多平台的敏感信息监测工具-GShark

作者头像
madneal
发布2021-04-23 11:14:27
1.3K0
发布2021-04-23 11:14:27
举报
文章被收录于专栏:madMenmadMen

GShark 作为一款开源的敏感信息监测工具其实差不多维护也有两年多的时间。这款产品其实笔者在自己的公司或者平常都在使用,也通过这个工具发现多多起内部的信息泄露事件以及外部的一些的信息泄露事件。其实这种类似的开源工具数不胜数,大家的核心功能其实就是监控 Github 上面的信息,但是笔者要想把这种产品做得更好一点,就要从功能性、易用性角度来做进一步拓展。最近,对 GShark 做了较大的重构,前后端都完成了比较大的重构,之前老的版本也有写过文章介绍,所以关于这个工具的起源就不多介绍了,主要对这次重构和新的架构做介绍。

架构

目前 GShark 已经是一个前后端分离的项目,之前因为前端通过后端模板直接渲染的,所以在前端的功能性以及美观性都会差很多。新的重构是基于 gin-vue-admin,技术栈是后端通过 gin 实现,前端通过 vue-elemment 来实现。

所以架构主要就分为前端和后端两个部分,而后端则分为 web 服务以及敏感信息的扫描服务。新的架构具有以下特点:

  • 细粒度的权限控制,更好的安全性,包括菜单的权限设置以及 API 的权限设置
  • 丰富的前端功能,CRUD 更简单
  • 搜索源和之前保持一致,支持 github, gitlab 以及 searchcode

部署

之前就有想使用 GShark 的同学来和我反映,其实之前的编译就已经很简单了。但是因为有些人不太熟悉 go,所以觉得编译还是有一些问题。这一次,笔者专门写了一个脚本来发布三个操作系统下的工具包,所以直接使用即可,开箱即用,即使你不安装 go 也无所谓。

代码语言:javascript
复制
rm -rf ./releases/*
cd web
npm run build
cd ../

# build for mac
cd server
GOOS=darwin GOARCH=amd64 go build 
cd ../releases
mkdir gshark_darwin_amd64
cd gshark_darwin_amd64
mv ../../server/gshark .
cp -rf ../../server/resource .
cp ../../server/config-temp.yaml config.yaml
cd ../../
cp -rf ./web/dist ./releases/gshark_darwin_amd64
7z a -r ./releases/gshark_darwin_amd64.zip ./releases/gshark_darwin_amd64/

# build for windows
cd server
GOOS=windows GOARCH=amd64 go build
cd ../releases
mkdir gshark_windows_amd64
cd gshark_windows_amd64
mv ../../server/gshark.exe .
cp -rf ../../server/resource .
cp ../../server/config-temp.yaml config.yaml
cd ../../
cp -rf ./web/dist ./releases/gshark_windows_amd64
7z a -r ./releases/gshark_windows_amd64.zip ./releases/gshark_windows_amd64/

# build for linux
cd server
GOOS=linux GOARCH=amd64 go build -o gshark
cd ../releases
mkdir gshark_linux_amd64
cd gshark_linux_amd64
mv ../../server/gshark .
cp -rf ../../server/resource .
cp ../../server/config-temp.yaml config.yaml
cd ../../
cp -rf ./web/dist ./releases/gshark_linux_amd64
7z a -r ./releases/gshark_linux_amd64.zip ./releases/gshark_linux_amd64


rm -rf ./releases/gshark*/

这个是 build 的脚本,主要是实现跨平台的编译并且将前端文件夹打包进去,然后拿到这个安装包解压即可使用。目前 GShark 的发布应该只需要两个前提条件:

  • nginx (其实这个不需要也可以,主要是为了将前端文件发布)
  • mysql(目前仅支持 mysql)

发布步骤

Step 1:

下载压缩包,然后将压缩包解压。

Step 2:

修改二进制文件的权限,以 ghsark_darwin_amd64为例,解压后修改二进制文件权限 chmod +x gshark,然后启动服务 ./gshark web

Step 3:

将前端文件发布到 nginx 的根目录下,就是将压缩包内的 dist 文件夹的文件拷贝到 nginx 根目录下,另外为了反向代理后端服务还需要修改一下 nginx 的配置,加入以下配置:

代码语言:javascript
复制
location /api/ {
proxy_set_header Host $http_host;
proxy_set_header  X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:8888;
}

这样启动完 nginx 后,整个发布过程就完成了,关于整个发布流程,笔者也在B站上发布了一个教学视频,如果感兴趣的还可以再去看看。

使用

如果其实之前使用过 GShark 的用户,对于功能的使用应该有多了解,这里着重介绍一些增加的功能。在上面的发布完成之后,第一次进入应用 http://localhost:8080,会需要初始化数据库,只要输入数据库用户名、密码以及数据库名即可。进入系统,首先是服务器运行状态的监控界面。系统主要分为几个菜单,当然有一些可能还是有冗余,后续可能会考虑删除掉,其实核心功能主要就是搜索结果、管理、以及超级管理员菜单。

和之前一样,如果需要开启 scan 服务,那么首先需要添加 Github 或者 Gitlab 的 token,这个可以在 token管理菜单下进行添加。另外也需要根据自己的需求在规则管理里添加规则:

rule.png

当然你也可以配置过滤规则,主要是文件夹后缀的过滤,以及选择是否搜索 fork 的代码仓库。另外值得讲的就是角色管理,通过角色管理可以创建任意角色,每种角色对应的菜单权限或者 API 权限都可以自由设置。

关于这个系统的整体介绍也可看下面这个视频:

总结

目前基于新的框架做的重构对于前端方面说可以说是做了非常大的改善,不管是在功能性上亦或是美观性都强了不少。另外,由于完善的权限控制,这也对于系统的控制性的加强也有帮助。同时,由于技术栈的基础,后续开发也会更加的便捷。后续的计划可能是增加更多的搜索源并且修复现在存在的一些小 BUG 吧。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 madMen 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 架构
  • 部署
    • 发布步骤
    • 使用
    • 总结
    相关产品与服务
    数据库
    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档