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

架构

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

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

  • 细粒度的权限控制,更好的安全性,包括菜单的权限设置以及 API 的权限设置

  • 丰富的前端功能,CRUD 更简单

  • 搜索源和之前保持一致,支持 github, gitlab 以及 searchcode

部署

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

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_amd64rm -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 的配置,加入以下配置:

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 吧。

多平台的敏感信息监测工具-GShark相关推荐

  1. 介绍两款App敏感信息收集工具

    介绍两款App敏感信息收集工具 1.APKLeaks 2.ApkAnalyser 1.APKLeaks APKLeaks是一个apk文件敏感信息扫描工具,它会扫描apk来获取URI.端点和secret ...

  2. python做一个本地搜索工具_SecretFinder:一款基于Python脚本的JavaScript敏感信息搜索工具...

    SecretFinder工具介绍 SecretFinder是一款基于LinkFinder实现的Python脚本(如需BrupSuite版本,请点击这里),该工具的主要功能是帮助研究人员发现JavaSc ...

  3. CrystalDiskInfo KureiKei(硬盘信息监测工具)官方正式版V8.11.1 | 硬盘信息怎么看

    CrystalDiskInfo KureiKei 是一款短小精悍的极致硬盘检测工具,能帮助大家通过读取S.M.A.R.T完整查看电脑硬盘信息,诸如包括接口.转速.温度.使用时间等硬盘信息和健康状况,并 ...

  4. 如何利用GitHub搜索敏感信息

    如何利用GitHub搜索敏感信息 背景: 最近总是能听到同事说在GitHub上搜到某个敏感信息,然后利用该信息成功的检测并发现某个漏洞,最后提交到对应的SRC(安全应急响应中心)换点money.顿时心 ...

  5. 浅谈“敏感信息泄露“

    一:漏洞名称: 敏感信息泄露 描述: 敏感数据包括但不限于:口令.密钥.证书.会话标识.License.隐私数据(如短消息的内容).授权凭据.个人数据(如姓名.住址.电话等)等,在程序文件.配置文件. ...

  6. 速修复!热门代码覆盖率测试工具 Codecov 的脚本遭恶意修改,敏感信息被暴露...

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码安全卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一, ...

  7. github里的默认域_GitMAD 一款扫描Github上的敏感信息和数据泄漏工具

    GitMAD是一个用于发现Github上的敏感信息和数据泄漏的工具.通过给定关键字或域,GitMAD便会搜索Github上托管的代码,以查找是否存在匹配项.一旦找到了匹配项,GitMAD将克隆存储库并 ...

  8. el-form 动态校验规则_动态多线程敏感信息泄露检测工具

    weakfilescan 基于爬虫,动态收集扫描目标相关信息后进行二次整理形成字典规则,利用动态规则的多线程敏感信息泄露检测工具,支持多种个性化定制选项 包括: 规则字典多样化定义(支持正则.整数.字 ...

  9. 敏感信息收集常用工具

    Whois查询 Whois是一个标准的互联网协议,可用于收集网络注册信息,注册的域名﹑IP地址等信息.简单来说,Whois就是一个用于查询域名是否已被注册以及注册域名的详细信息的数据库(如域名所有人. ...

  10. 7个杀手级的开源监测工具

    7个杀手级的开源监测工具 想要更清晰的了解你的网络吗?没有比这几个免费的工具更好用的了. 网络和系统监控是一个很宽的范畴.有监控服务器.网络设备.应用正常工作的方案,也有跟踪这些系统和设备性能,提供趋 ...

最新文章

  1. 战地1如何修改服务器地址,《战地1》服务器加入方法一览
  2. 优先级调度和运行前调度的比较
  3. Android Studio系列教程三:快捷键
  4. 一个用于推算神经网络理论收敛迭代次数的方法
  5. 第十届四川省大学生程序设计竞赛
  6. 吴恩达《机器学习》第三章:矩阵和向量
  7. 【matlab】从图片中截取矩形区域(手工选取/标记在原图上/截取矩形区域并保存)
  8. 第一个 iOS 项目开发小结 - SwiftUI 学习资料、开源项目
  9. tablewidget
  10. Measure and entertain
  11. 解答为什么@Autowired使用在接口上而不是实现类上
  12. GreenPlum 大数据平台--运维(三)
  13. GME轧空事件的战后处置和思考
  14. MATLAB 画图--图形属性设置
  15. Anaconda Python 3.7和3.9 GDAL 安装方法, python3安装pyhdf
  16. 没有可用软件包。错误:无须任何处理
  17. Python学习——Numpy
  18. 《侠盗猎车手:圣安地列斯》出租车任务奖金计算程序(Java编写)
  19. 饥荒mod制作教程--植物(灌木丛)--01
  20. 破解迅雷下载被屏蔽的电影(正版)

热门文章

  1. Python Flask 学习笔记 —— 二(路由,视图函数,jinjia2语法)
  2. 飞书小程序和微信小程序的调试
  3. delphi中获取汉字的拼音首字母
  4. 黑马程序员Android28期视频下载
  5. android 带刻度的滑动条_Android实现滚动刻度尺效果
  6. Windows系统操作快捷键---百度百科
  7. 新宝盘面简述12.24
  8. 2021年中式面点师(中级)最新解析及中式面点师(中级)模拟考试题库
  9. Java编程语言的风格
  10. asp.net 各种小窍门