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

news2024/9/26 3:20:34

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 shell
  detect      detect secrets in code
  help        Help about any command
  protect     protect secrets in code
  version     display gitleaks version

Flags:
  -b, --baseline-path string       path to baseline with issues that can be ignored
  -c, --config string              config file path
                                   order of precedence:
                                   1. --config/-c
                                   2. env var GITLEAKS_CONFIG
                                   3. (--source/-s)/.gitleaks.toml
                                   If 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 scan

Use "gitleaks [command] --help" for more information about a command.

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

<<编码>> 第 12 章 二进制加法器--半加器 示例电路

异或门 info::操作说明 鼠标单击逻辑输入切换 0|1 状态 异或门的符号为 或门 符号输入处再添加一道弧线. 异或门的输出等价于将两个输入分别接入一个或门和一个与非门, 再对这两者输出结果取与的结果. 读者可对照着 或门, 与非门 和 与门 的真值表在示例电路中验证这一点. prim…

蓝桥杯单片机STC15F2K60S2第十二届省赛代码详细讲解(附完整代码)

本文是写第十二届的蓝桥杯省赛代码,如果是新手的话,欢迎去观看我专门为新手写的一篇。也欢迎收录该专栏。 蓝桥杯单片机STC15F2K60S2第十三届省赛代码详细讲解(附完整代码) 专栏: 蓝桥杯单片机 接下来直接上正文。…

初阶数据结构【TOP】- 11.普通二叉树的介绍 - 1. (细致,保姆~~!)

文章目录 前言一、普通二叉树的链式结构二、 造树三、普通二叉树的遍历四、遍历完整代码五、总结 前言 本篇文章笔者将会对普通二叉树部分进行细致的讲解 , 本篇主要包括以下内容: 二叉树链式结构的介绍 ,二叉树的遍历. 笔者会一步一步分析带学者领略递归的美好~~ 一、普通二叉…

4.接口测试基础(Jmter工具/场景二:一个项目由多个人负责接口测试,我只负责其中三个模块,协同)

一、场景二:一个项目由多个人负责接口测试,我只负责其中三个模块,协同 1.什么是测试片段? 1)就相当于只是项目的一部分用例,不能单独运行,必须要和控制器(include,模块)一…

驾驶员注意力分神状态检测系统源码分享

驾驶员注意力分神状态检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of …

ZYNQ FPGA自学笔记

一 ZYNQ FPGA简介 ZYNQ FPGA主要特点是包含了完整的ARM处理系统,内部包含了内存控制器和大量的外设,且可独立于可编程逻辑单元,下图中的ARM内核为 ARM Cortex™-A9,ZYNQ FPGA包含两大功能块,处理系统Processing System…

[C++]——vector

🌇个人主页:_麦麦_ 📚今日小句:快乐的方式有很多种,第一种便是见到你。 目录 一、前言 二、vector的介绍及使用 2.1 vector的介绍 2.2 vector的使用 2.2.1 vector的定义(构造函数) 2.2.2…

【物联网】一篇文章带你认识RFID(射频识别技术)

基本原理 RFID是Radio Frequency Identification的缩写,即射频识别技术,其工作原理基于电磁感应理论(射频一般指微波,频段在1-100GHz,适用于短距离通信),是一种非接触式的自动识别技术&#xf…

unity 图片置灰shader

我和chatgpt真强! 在 Unity 编辑器中,右键点击 Assets 文件夹,选择 Create -> Shader -> Unlit Shader。shader代码如下,尽管我看的不是很懂,但确实有用 Shader "Custom/GrayScaleShader" {Properti…

沉浸式体验Stability AI最新超强AI图片生成模型Ultra

2024年9月4日,亚马逊云科技在Amazon Bedrock上新了Stability AI最新的的三款文本图像生成模型:他们分别是Stable Image Ultra、Stable Diffusion 3 Large 和 Stable Image Core。全新的模型在处理多主题提示词、图像质量和图片排版上较上一代模型有显著提…

解决win11 使用wsl工具,不能使用systemctl

使用systemctl命令出现报错: System has not been booted with systemd as init system (PID 1). Can‘t operate. 默认情况下并不启用 systemd,而是使用了其他轻量级的初始化系统(SysV init初始化系统)。这导致一些需要 system…

如何精确统计Pytorch模型推理时间

文章目录 0 背景1 精确统计方法2 手动synchronize和Event适用场景 0 背景 在分析模型性能时需要精确地统计出模型的推理时间,但仅仅通过在模型推理前后打时间戳然后相减得到的时间其实是Host侧向Device侧下发指令的时间。如下图所示,Host侧下发指令与De…

RS-485自收发电路

RS-485自收发电路 RS-485标准在工业控制、电力通讯、智能仪表等领域中使用广泛。 信号自收发电路1:利用74HC14芯片 信号自收发电路我们采用74HC14芯片,利用它的施密特波形翻转性能来控制RE、DE引脚,以实现信号的自收发。其电路连接如下图&am…

C++入门 之 类和对象(上)

目录 一、类的定义 1.类定义格式 2.访问限定符 3.类域 二、实例化 1.实例化概念 2.对象大小 3.this指针 一、类的定义 1.类定义格式 1、class Stack{};class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义…

C++ tracy性能分析(二)

环境搭建 项目根目录下 git clone https://github.com/wolfpld/tracy cmake 配置 add_definitions("-DTRACY_ENABLE") add_subdirectory(tracy) include_directories(${TRACY_PUBLIC_DIR}) target_link_libraries(project TracyClient) test.cpp //#define TRACY_C…

猫狗识别大模型——基于python语言

目录 1.猫狗识别 2.数据集介绍 3.猫狗识别核心原理 4.程序思路 4.1数据文件框架 4.2 训练模型 4.3 模型使用 4.4 识别结果 5.总结 1.猫狗识别 人可以直接分辨出图片里的动物是猫还是狗,但是电脑不可以,要想让电脑也分辨出图片里的动物是猫还是小…

【linux-Day2】linux的基本指令<上>

【linux-Day2】linux的基本指令<上> 一键查看操作系统的重要地位linux下的基本指令&#x1f4e2;ls&#xff1a;显示当前目录下所有的子目录和文件&#x1f4e2;pwd&#xff1a;显示用户当前所在的目录&#xff0c;在windows中&#xff0c;相当于显示当前目录的绝对路径。…

AI工具一键制作爆火的“汉语新解“卡片!

最近出现了一种很火的新玩法“汉语新解”。 AI把一个词汇&#xff0c;以一种特殊的视角&#xff0c;用幽默、讽刺等方式重新定义&#xff0c;然后生成一张精美的卡片。 这个玩法和之前我发的的吐槽工具玩法类似&#xff0c;主打的就是一个新颖、情绪释放。 今天教大家怎么快速…

Python 解析 JSON 数据

1、有如下 JSON 数据&#xff0c;存放在 data.json 文件&#xff1a; [{"id":1, "name": "小王", "gender": "male", "score": 96.8}, {"id":2, "name": "小婷", "gender&qu…

大模型探索式轨迹优化:基于试错的自主智能体学习新方法

人工智能咨询培训老师叶梓 转载标明出处 现有的开源LLMs在构建智能体方面的效果远不如GPT-4。标准的构建开源LLM智能体的方法涉及模仿学习&#xff0c;即基于专家轨迹对LLMs进行微调。然而&#xff0c;这些方法完全依赖于专家演示&#xff0c;由于对目标环境探索不足而可能产生…