linux/ubuntu国内镜像安装gitleaks敏感信息扫描工具教程及避坑点

1、背景

利用gitleaks扫描git仓库或者文件

GitHub上有比较详细的教程,但是由于每个人的安装环境不同,坑很多,网上能查到的有效信息也比较少。这里就以我坑很多的环境为例,捋一下步骤。

GitHub - gitleaks/gitleaks: Protect and discover secrets using Gitleaks 🔑

2、步骤

# MacOS
brew install gitleaks# Docker (DockerHub)
docker pull zricethezav/gitleaks:latest
docker run -v ${path_to_host_folder_to_scan}:/path zricethezav/gitleaks:latest [COMMAND] --source="/path" [OPTIONS]# Docker (ghcr.io)
docker pull ghcr.io/gitleaks/gitleaks:latest
docker run -v ${path_to_host_folder_to_scan}:/path ghcr.io/gitleaks/gitleaks:latest [COMMAND] --source="/path" [OPTIONS]# From Source (make sure `go` is installed)
git clone https://github.com/gitleaks/gitleaks.git
cd gitleaks
make build

(1)安装brew

没有用docker,因为本来linux环境里之前就装好brew了。这个装起来也挺烦的,但是考虑到我用过其他很多扫描工具,install的时候也常用brew,所以就装了。一举多得。

首先,手动克隆 Homebrew 的代码库:

bash复制代码git clone https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git ~/.linuxbrew/Homebrew

然后,创建一些必要的目录并将 Homebrew 添加到你的 PATH 中:

bash复制代码mkdir ~/.linuxbrew 
mkdir ~/.linuxbrew/bin 
ln -s ~/.linuxbrew/Homebrew/bin/brew ~/.linuxbrew/bin 
echo 'export PATH="$HOME/.linuxbrew/bin:$PATH"' >> ~/.bashrc 
source ~/.bashrc
brew update
brew --version  # 确认是否安装好了

可能会有的报错:

①Updating Homebrew... Error: Failed to download https://formulae.brew.sh/api/cask.jws.json!

这可能与网络连接或访问权限有关。

# 切换 Homebrew 主仓库到清华大学镜像
git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git# 切换 Homebrew 核心库到清华大学镜像
git -C "$(brew --repo)/Library/Taps/homebrew/homebrew-core" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git# 切换 Homebrew Cask 库到清华大学镜像
git -C "$(brew --repo)/Library/Taps/homebrew/homebrew-cask" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git# 重新更新 Homebrew
brew update

②fatal: cannot change to '/home/iot/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-core': No such file or directory

这个错误表明 Homebrew 的核心库 (homebrew-core) 还没有被正确克隆或安装。通常情况下,Homebrew 会在第一次安装时自动下载和配置这些库,但由于你的安装过程遇到了一些问题,所以这个目录可能还没有被创建。

可以手动克隆 homebrew-core 仓库到正确的位置,克隆完成后,重新设置远程镜像地址:

mkdir -p "$(brew --repo)/Library/Taps/homebrew/"
git clone https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git -C "$(brew --repo)/Library/Taps/homebrew/homebrew-core" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git

更新

brew update
brew install gitleaks

(2)brew install gitleaks

可能会有的报错:

①Error: gitleaks: Failed to download resource "glibc--bootstrap-binutils" Download failed: https://github.com/Homebrew/glibc-bootstrap/releases/download/1.0.0/bootstrap-binutils-2.38.tar.gz或者Error: gitleaks: Failed to download resource "glibc--bootstrap-gcc" Download failed: https://github.com/Homebrew/glibc-bootstrap/releases/download/1.0.0/bootstrap-gcc-9.5.0.tar.gz,。还是网络权限问题,如果镜像多次连接不上,有网络问题报错比如尝试直接从源代码编译安装:

brew install gitleaks --build-from-source

(3)git clone https://github.com/gitleaks/gitleaks.git

如果还是装不上,尝试手动(官网教程的第四条):

这里因为又要连github,网络不通畅就多试几次,我大概试了8次左右吧。

(4)make build

打开进入安装好的gitleaks目录,输入指令make build

可能会有的报错:

①go fmt ./... go: github.com/BobuSumisu/aho-corasick@v1.0.3: Get https://proxy.golang.org/github.com/%21bobu%21sumisu/aho-corasick/@v/v1.0.3.mod: dial tcp 142.250.217.113:443: connect: connection refused make: *** [Makefile:13: format] Error 1

这个错误表明 go fmt 过程中尝试从 proxy.golang.org 下载依赖包时,因网络问题(例如连接被拒绝)而失败。通常这是由于网络限制、代理设置或防火墙问题导致无法访问外部资源。

1. 设置 Go Modules 代理
可以尝试设置 Go 的代理为国内的代理服务,这通常可以解决网络访问问题。你可以通过以下命令设置 Go Modules 的代理:
export GOPROXY=https://goproxy.cn,direct

再次 make build

②build github.com/zricethezav/gitleaks/v8: cannot load embed: malformed module path "embed": missing dot in first path element make: *** [Makefile:13: format] Error 1

这个错误提示 embed 包无法加载,原因是 Go 的版本过低,因为 embed 包是在 Go 1.16 中引入的。如果你正在使用较低版本的 Go,这个包会导致构建失败。

解决方案:升级GO版本

首先,确认你当前使用的 Go 版本是否为 1.16 及以上。

go version

如果 Go 版本低于 1.16,可以使用以下命令更新 Go

sudo apt update
sudo apt install golang-go

如果已经装了brew也可以尝试

brew update
brew upgrade go

③更新的时候返回golang-go is already the newest version

在这种情况下,你可以手动下载并安装最新版本的 Go。需要先卸载旧版本,再下载新的:

sudo apt remove golang-go
sudo apt remove --auto-remove golang-go
wget https://go.dev/dl/go1.21.1.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz# 将 Go 的二进制文件路径添加到系统环境变量 PATH 中
export PATH=$PATH:/usr/local/go/bin

④如果用brew upgrade go,要确保之前在brew已经装过了go,否则可能报错Error: go not installed

执行:

brew install go

成功的话会显示Summary……

⑤如果安装完成go version还是没有更新,可能是环境变脸没有配置

编辑你的 .bashrc.zshrc 文件,添加以下内容:

export PATH=$PATH:/home/linuxbrew/.linuxbrew/bin

保存更改

source ~/.bashrc  # 或 `source ~/.zshrc`,取决于你使用的 shell

⑥go fmt ./... go: updates to go.mod needed; to update it: go mod tidy make: *** [Makefile:13: format] Error 1

go.mod 需要更新。

gitleaks 项目根目录下运行以下命令:

go mod tidy# 之后再运行make build 

⑥出现 gitleaks: command not found 错误,可能是因为 gitleaks 可执行文件没有添加到系统的 PATH 中。

  • 编辑 ~/.bashrc~/.zshrc 文件:
nano ~/.bashrc # 或者 nano ~/.zshrc
  • 在文件末尾添加以下行,将 gitleaks 目录添加到 PATH 中:

    export PATH=$PATH:/path/to/gitleaks   # 这里改成自己的安装路径
  • 保存并重新加载 shell 配置:

source ~/.bashrc # 或者 source ~/.zshrc

(5)开始扫描

具体的指令官方也给出了

Usage:gitleaks [command]Available Commands:completion  generate the autocompletion script for the specified shelldetect      detect secrets in codehelp        Help about any commandprotect     protect secrets in codeversion     display gitleaks versionFlags:-b, --baseline-path string       path to baseline with issues that can be ignored-c, --config string              config file pathorder of precedence:1. --config/-c2. env var GITLEAKS_CONFIG3. (--source/-s)/.gitleaks.tomlIf none of the three options are used, then gitleaks will use the default config--exit-code int              exit code when leaks have been encountered (default 1)-h, --help                       help for gitleaks-l, --log-level string           log level (trace, debug, info, warn, error, fatal) (default "info")--max-target-megabytes int   files larger than this will be skipped--no-color                   turn off color for verbose output--no-banner                  suppress banner--redact                     redact secrets from logs and stdout-f, --report-format string       output format (json, csv, junit, sarif) (default "json")-r, --report-path string         report file-s, --source string              path to source (default ".")-v, --verbose                    show verbose output from scanUse "gitleaks [command] --help" for more information about a command.

我这里以扫描一个本地文件为例:

如果要在终端里面展示扫描结果,--no-git后面加上 --verbose

如果要把结果保存到本地加上--report-path

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/421909.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

集成学习(Ensembling Learning)

0. 来源 概念比较全,可以作为目录,前置知识讲得好,其他一般。 01.内容简介_哔哩哔哩_bilibili01.内容简介是集成学习:XGBoost, lightGBM的第1集视频,该合集共计19集,视频收藏或关注UP主,及时了…

乔迁新址,盛启新章!聚铭网络河北办事处盛大开业

2024年9月10日,金秋九月,阳光灿烂。在这样一个美好的日子里,聚铭网络河北办事处正式迎来了乔迁之喜并盛大开业。随着公司业务规模的快速扩张,原有的办公空间已经不足以支撑未来的增长,新址的启用不仅代表了我们迈出的一…

招生管理|基于Java+vue的招生管理系统(源码+数据库+文档)

招生管理|学生管理系统|高校招生管理 目录 基于Javavue的招生管理系统 一、前言 二、系统设计 三、系统功能设计 系统功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|…

OpenCV结构分析与形状描述符(21)计算包围给定点集的最小面积三角形函数minEnclosingTriangle()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 找到一个包围二维点集的最小面积三角形,并返回其面积。 该函数找到一个包围给定的二维点集的最小面积三角形,并返回其面…

【笔记】自动驾驶预测与决策规划_Part1_自动驾驶决策规划简介

自动驾驶决策规划简介 0、前言1、自动驾驶概述1.1 预测(Prediction)1.2 决策(Decision Making)1.3 规划(Planning) 2、自动驾驶历史和背景3、自动驾驶级别和分类4、预测决策规划的重要性4.1 预测的重要性4.…

从OracleCloudWorld和财报看Oracle的转变

2024年9月9-12日Oracle Cloud World在美国拉斯维加斯盛大开幕 押注AI和云 Oracle 创始人Larry Ellison做了对Oracle战略和未来愿景的主旨演讲,在演讲中Larry将AI技术和云战略推到了前所未有的高度,从新的Oracle 23c改名到Oracle23ai,到Oracl…

性能测试-jmeter脚本录制(十五)

一、jmeter脚本录制(不推荐)简介: 二、jmeter脚本录制步骤 1、添加代理服务器和线程组 2、配置http代理服务器的端口和目标线程组 3修改本机浏览器代理 4、点击启动 5、每次操作页面前,修改提示文字

如何删除电脑系统桌面文件右键菜单多余选项

你可能会遇到以下情况,电脑鼠标右键有较多无用的菜单选项,或者安装某个程序卸载后,右键菜单仍有相关的选项。下面小编就来和大家分享电脑桌面右键菜多余选项删除方法,适用于win7、win10、win11等windows系统。 举例说明&#xff…

NVIDIA AI Workbench 让 Windows 上的 GPU 使用更加简便

NVIDIA AI Workbench 是一款免费的、用户友好型开发环境管理器,可在您选择的系统(PC、工作站、数据中心或云)上简化数据科学、ML 和 AI 项目。在 Windows、macOS 和 Ubuntu 上,您可以本地开发、测试项目和构建项目原型&#xff0c…

vue2实践:el-table实现由用户自己添加删除行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的&#x…

信刻光盘安全隔离与信息交换系统

随着各种数据传输、储存技术、信息技术的快速发展,保护信息安全是重中之重。军工、政府、部队及企事业单位等利用A网与B网开展相关工作已成为不可逆转的趋势。针对于业务需要与保密规范相关要求,涉及重要秘密信息,需做到安全的物理隔离&#…

PHP实时统计结果秒出高效能在线投票工具系统小程序源码

实时统计,结果秒出 —— 体验高效能在线投票工具系统 🚀 投票新纪元,效率为王! 在这个快节奏的时代,每一秒都至关重要。你是否厌倦了传统投票方式中漫长的等待和繁琐的统计过程?那么,就让我带你…

数字乡村网络文化服务平台建设方案

1. 平台建设背景与目标 数字乡村网络文化服务平台的建设旨在通过数字化手段整合乡村内外资源,打造全面覆盖、精准服务的乡村服务体系,以改善民生和促进社会稳定。平台包括居民管理、互动交流、服务管理等五大应用,实现乡村服务的多元化、精确…

Mac在Python项目中通过opencv模版匹配定位不到图片

起因 原本一行代码的事情,但是在Mac上总能出现意外,如下 box pyautogui.locateOnScreen(obsidian.png) print(box) pyautogui.moveTo(box[0],box[1])上面的代码用来定位图片在屏幕中的位置,然后移动鼠标到定位到的屏幕位置坐标。 意外…

实战OpenCV之像素操作

基础入门 在OpenCV中,像素是最基本的操作单位。图像可以视为一个三维数组,其中第三维表示颜色通道。图像数据在内存中以连续或几乎连续的方式存储,对于多通道图像(比如:BGR图像),每个像素的各通…

EmguCV学习笔记 VB.Net 11.5 目标检测

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

初识时序数据库InfluxDB

最近项目开发中,需要记录时间序列的日志信息,InfluxDB 刚好契合。于是准备研究一下,发现已经有整理很好的文档,以下两篇觉得很好,入门开发可以参考一下。 因为项目是用C#开发的,因此,简单介绍一下C#开发中,InfluxDB的API使用。 1.简介 InfluxDB是一个由InfluxData开发…

《食品安全导刊》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问:《食品安全导刊》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《食品安全导刊》级别? 答:国家级。主管单位: 中国商业联合会 主办单…

ONLYOFFICE8.0部署集成(vue+java)并配置存储为minio

文章目录 前言一、使用docker安装onlyoffice8安装使用DockerDesktop方式命令行方式使用 HTTPS 运行展示 二、项目集成前端集成-vue3html方式后端集成-java 三、onlyoffice基础原理四、配置存储为minio1.onlyoffice配置文件挂载问题2.配置存储为minio3.验证切换minio存储是否生效…