GitLeaks

Gitleaks - 一款高效的Github仓库敏感信息泄露查询工具 Gitleaks 是一种 SAST 工具,用于检测和防止 git 存储库中的硬编码机密,如密码、API 密钥和令牌Gitleaks 是一个开源工具,用于检测和防止签入 Git 存储库的机密(密码/API 密钥)。Gitleaks 的主要优点是它不仅可以扫描您最新的源代码,还可以扫描整个 git 历史记录,识别过去提交到您的源代码的任何秘密Github地址。 阅读详情

一、介绍

Gitleaks 是一款基于 Go 语言开发的轻量级开源敏感信息检测工具,专注于识别 Git 仓库中硬编码的各类敏感信息,包括 API 密钥、云服务凭证、加密密钥、令牌、密码等。项目地址。

与传统的字符串匹配工具不同,Gitleaks 采用正则表达式匹配、信息熵分析与关键词上下文识别三重检测机制,能够精准识别各类复杂格式的敏感信息,同时有效降低误报率。
据统计,GitHub 上每分钟就有超过 28 起凭证泄露事件发生。Gitleaks 为开发团队构建了第一道安全防线,支持"左移安全"理念。
核心特点

  • 全面的检测规则:内置 80+ 主流服务的预定义检测规则,涵盖 AWS、Azure、GCP 等云平台,GitHub、Slack 等第三方服务,以及 SSH 私钥、JWT 令牌等通用敏感信息类型
  • 三重检测机制:正则匹配 + 信息熵分析(阈值通常 3.5-5.0)+ 关键词上下文过滤,兼顾已知格式与自定义高熵字符串
  • 多场景支持:本地仓库扫描、远程仓库检测、历史提交记录审计、实时防护模式
  • 灵活集成:可无缝集成到 CI/CD 流水线、Git Hooks(pre-commit)、GitHub Action 等开发流程
  • 自定义规则:通过 TOML 配置文件扩展检测规则,支持规则级和全局允许列表
  • 多平台运行:支持 Windows、macOS、Linux,提供 Docker 镜像、二进制包、源码编译等多种安装方式
  • 多种报告格式:支持 JSON、SARIF、CSV 等输出格式,方便与安全分析工具集成
  • MIT 开源许可:免费使用,社区活跃

二、安装

Gitleaks 提供多种安装方式,适配不同操作系统与使用场景。

2.1 macOS(Homebrew)

macOS 用户推荐通过 Homebrew 安装:

brew install gitleaks

验证安装:

gitleaks version

2.2 Windows(Chocolatey)

Windows 系统推荐通过 Chocolatey 包管理器安装(需以管理员身份运行 PowerShell):

choco install gitleaks

2.3 Linux

Debian / Ubuntu:

sudo apt update && sudo apt install gitleaks

CentOS / RHEL:

sudo yum install gitleaks

通用二进制安装(其他发行版):

wget https://github.com/gitleaks/gitleaks/releases/latest/download/gitleaks-linux-amd64
chmod +x gitleaks-linux-amd64
sudo mv gitleaks-linux-amd64 /usr/local/bin/gitleaks

2.4 Docker

使用 Docker 可避免系统环境依赖,适合临时扫描或 CI/CD 集成:
拉取镜像(Docker Hub)

docker pull zricethezav/gitleaks:latest

或 GHCR

docker pull ghcr.io/gitleaks/gitleaks:latest

运行扫描(挂载待扫描目录)

docker run --rm -v /本地目录路径:/path zricethezav/gitleaks:latest detect --source /path

2.5 源码编译

需要自定义功能或安装最新开发版本时,可通过源码编译(需 Go 1.18+):

git clone https://github.com/gitleaks/gitleaks.git
cd gitleaks
make build
sudo mv gitleaks /usr/local/bin/

三、使用

3.1 基础扫描

扫描当前 Git 仓库:

gitleaks detect --source . --verbose

其中 --source . 指定扫描当前目录,–verbose 输出详细检测结果(包括泄露位置、规则 ID、熵值等)。
扫描指定目录:

gitleaks detect --source /path/to/code --verbose

扫描远程仓库(临时克隆):

gitleaks detect --url https://github.com/目标仓库.git --temp

扫描私有远程仓库(需认证):

gitleaks detect --url https://github.com/私有仓库.git --token 你的访问令牌

3.2 报告输出

Gitleaks 支持多种报告格式:

  • JSON 格式
gitleaks detect --source . --report-path gitleaks-report.json --report-format json
  • SARIF 格式(适配 GitHub 代码扫描)
gitleaks detect --source . --report-path gitleaks-report.sarif --report-format sarif
  • CSV 格式(便于 Excel 分析)
gitleaks detect --source . --report-path gitleaks-report.csv --report-format csv

退出码说明:0 表示无泄露,2 表示发现泄露,1 表示执行失败。可用于 CI/CD 流水线的自动判断。

3.3 实时防护模式(protect)

protect 命令用于监控工作区文件变更,在提交前检测未暂存或已暂存的敏感信息:

  • 检测已暂存文件(pre-commit 场景)
gitleaks protect --source . --verbose --staged
  • 检测工作区所有变更文件
gitleaks protect --source . --verbose

3.4 高级扫描选项

扫描特定提交范围(近 30 天):

gitleaks detect --source . --since 30d

扫描特定分支:

gitleaks detect --source . --branch main

使用基线报告(忽略历史已知漏洞):

gitleaks detect --source . --baseline-path baseline.json

3.5 配置文件与允许列表

在仓库根目录创建 .gitleaks.toml 配置文件,可定义全局允许列表以降低误报:

[allowlist]
description = "全局允许列表"
paths = [
    '''gitleaks\.toml''',
    '''(?i)\.(png|jpg|gif)$''',
    '''test/'''
]
regexes = [
    '''^\$\{[A-Z_]+\}$''',
    '''^dummy_'''
]
stopwords = [
    "00000000-0000-0000-0000-000000000000"
]

扫描时指定配置文件:

gitleaks detect --source . --config .gitleaks.toml

3.6 自定义检测规则

通过 TOML 文件扩展检测规则,满足业务特定需求:

[[rules]]
id = "custom-api-key"
description = "自定义系统API密钥检测"
regex = '''\bsk_[a-zA-Z0-9]{32}\b'''
entropy = 4.0
keywords = ["api_key", "secret", "token", "auth"]
path = '''(?i)\.(js|ts|py|java|go)$'''
severity = "high"

[[rules.allowlists]]
description = "排除测试环境密钥"
regexes = ['''sk_test_''']

3.7 集成 Pre-commit 钩子

先安装 pre-commit 工具,然后在仓库根目录创建 .pre-commit-config.yaml:

repos:
  - repo: https://github.com/gitleaks/gitleaks
    rev: v8.16.1
    hooks:
      - id: gitleaks
      # 或使用 Docker 镜像
      # - id: gitleaks-docker

启用钩子:

pre-commit install

此后每次提交前都会自动运行 Gitleaks 扫描,发现敏感信息时阻止提交。

3.8 集成 GitHub Action

在仓库中创建 .github/workflows/gitleaks.yml:

name: Gitleaks Scan
on: [push, pull_request, workflow_dispatch]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - uses: gitleaks/gitleaks-action@v2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

四、最佳实践

  1. 提交前检测 + 构建时扫描双重防护:同时配置 pre-commit 钩子和 CI/CD 流水线,形成多层防护
  2. 定制规则与允许列表:根据业务需求添加自定义检测规则,合理配置允许列表平衡检测效果与误报率
  3. 从源头减少硬编码:结合环境变量、密钥管理服务(如 Vault、AWS Secrets Manager)存储凭证,从源头减少硬编码场景
  4. 定期全量扫描:定期对仓库完整历史进行扫描,及时发现历史提交中的泄露
  5. 关注退出码:在 CI/CD 中利用退出码(0=无泄露,2=发现泄露)实现自动阻断
拆解歌尔2718硅麦:2.75mm超小封装背后的MEMS技术解析 本文深度解析歌尔2718硅麦的2.75mm超小封装技术,探讨MEMS麦克风在微型化过程中的声学性能与结构可靠性平衡。通过ASIC芯片堆叠、纳米级应力控制等创新技术,歌尔2718在TWS耳机和智能手机中实现卓越性能,同时克服微型化带来的声学挑战。 阅读详情

相关推荐

STM32嵌入式开发实战:如何用miniLZO压缩算法节省70%存储空间(附完整工程)

本文详细介绍了如何在STM32嵌入式开发中使用miniLZO无损压缩算法实现高达70%的存储空间节省。通过对比分析不同轻量级算法,重点讲解miniLZO的内存优化配置、分块压缩策略和完整工程实现,帮助开发者有效解决嵌入式系统中的存储瓶颈问题。

ss78901的博客 881

WINDOWS下使用gitleaks扫描代码中的敏感信息

如何使用gitleaks

SA 2495

保姆级教程:在Win10/Win11上搞定AppScan 10.0.0安装与许可证激活(含常见报错解决)

本文提供AppScan 10.0.0在Win10/Win11上的详细安装与许可证激活指南,涵盖环境准备、分步安装、文件替换技巧及常见报错解决方案。通过专业的安全测试工具部署实践,帮助用户高效完成安装并避免常见陷阱,提升Web应用安全扫描效率。

weixin_30800987的博客 425

从攻击视角看代码隐私安全,9款 Git秘密扫描工具盘点

代码隐私信息泄露的危害性不容忽视。无论是错误放置的密钥,或是意外泄露的数据库密码都可能会转化为即时危机,带来沉重的经济损失。Git秘密扫描是从攻击者的角度出发,提前对需要上传至Git存储库的代码数据进行扫描或周期性的扫描,防止敏感信息泄露,并及时删除暴露的信息。Git秘密扫描有两种模式,每种模式都涵盖“持续集成”(ContinuousIntegration,简称CI)/“持续交付”(Continuous Delivery,简称CD)管道的不同阶段。

dzqxwzoe的博客 1748

066、AR 应用中虚拟物体漂移抖动?IMU 融合 + 光流追踪的视觉里程计优化方案

AR应用中虚拟物体漂移抖动优化方案 摘要:针对AR应用中虚拟物体漂移抖动问题,提出一种IMU融合与光流追踪的视觉里程计优化方案。关键点包括:1) 采用IMU预积分技术处理高频噪声,通过中值积分计算帧间相对运动约束;2) 使用金字塔LK光流追踪像素运动,通过中值偏差法剔除异常值;3) 构建10帧滑动窗口的紧耦合优化框架,将IMU预积分约束和光流重投影约束联合优化。实验表明,该方法有效解决了时间戳未对齐导致的"跳舞箭头"现象,在手机端实现稳定30fps的AR定位精度,漂移误差降低至厘米级。特别提醒:IMU与视觉

ai技术增长的博客 161

ESP32设备驱动-TM1637-驱动4位7段数码管

TM1637是一款带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集成了MCU数字接口、数据锁存、LED高压驱动、键盘扫描等功能。 TM1637使用DIP20/SOP20封装,主要适用于电磁炉、微波炉、小家电的显示驱动。

视觉与物联智能 2116

git 源码泄漏_防止Git泄漏的5种最佳做法

git 源码泄漏Countless developers are using Git for version control, but many don’t have enough knowledge about how Git works. Some people even use Git and Github as tools for backup files. This leads to i...

weixin_26722031的博客 2624

基于STM32单片机智能循迹小车毕业设计

本文介绍了一种利用STM32F103C8T6单片机为控制核心,结合多种传感器以及PID算法实现循迹避障功能的智能小车。随着我国高科技水平的不断提高和工业自动化进程的不断推进,智能小车被广泛应用于各种玩具和其他产品的设计中,极大地丰富了人们的生活。本次设计利用反射式红外光电传感器探测路面黑线实现小车循迹,利用超声波测距传感器探测路径上的障碍,控制小车自动避障,整个系统具有自动循迹、自动避障、速度检测和无线遥控功能。其中,控制部分采用STM32F103C8T6单片机,STM32F103C8T6单片机是一

qq_48771816的博客 3974

gRPC 工程化工具箱全解:深入 tools 目录的构建、测试与发布体系

本指南以 gRPC 仓库的 [tools 目录](https://link.gitcode.com/i/fd78bc62c595f23a856c008db4beb18e) 为核心,系统梳理这套支撑 gRPC 全语言(C++、Python、Ruby、Objective-C、PHP、C# 等)日常开发、CI 测试与发布流程的工程化工具链。你将掌握:构建文件如何由模板统一生成、单元/互操作/性能测试如何

gitblog_00756的博客 489

NXP(恩智浦)—TJA1043TK CAN收发器芯片详解

本文章主要讲解NXP(恩智浦)—TJA1043TK CAN收发器的相关知识。

零零刷的博客 2201

【运动规划算法项目实战】Artificial Potential Field算法(附ROS C++代码)

在机器人行业中,路径规划是一个关键的任务,它涉及到如何让机器人在复杂的环境中安全而高效地移动。人工势场算法(Artificial Potential Field Algorithm)是一种常用的路径规划方法,它借鉴了物理学中的势能概念,通过模拟力的作用来引导机器人的移动。本文将详细介绍人工势场算法的原理、在路径规划中的应用、算法优缺点以及代码实现。人工势场算法基于两种势场:斥力场和引力场。斥力场使机器人远离障碍物,而引力场将机器人吸引到目标位置。

xiewf的博客 1万+

Gitleaks环境变量配置终极指南:GITLEAKS_CONFIG高级用法解析

Gitleaks是一款强大的开源密钥检测工具,专门用于扫描代码仓库中的敏感信息和密钥泄露。通过GITLEAKS_CONFIG环境变量,您可以实现灵活高效的配置管理,本文将为您详细解析这一高级用法的完整指南。 ## 🔍 什么是GITLEAKS_CONFIG环境变量? GITLEAKS_CONFIG是Gitleaks工具的核心环境变量,它允许您通过系统环境变量来指定配置文件路径,从而实现无需每次

gitblog_00892的博客 431

银河麒麟操作系统最佳实践专栏介绍

本专栏聚焦国产银河麒麟操作系统(桌面版/服务器版)的实战应用,提供系统安装、配置优化、应用部署、故障排查等实用指南。内容基于真实操作场景,涵盖Linux通用技术(如RAID配置、环境变量管理)、服务器系统专项(如数据库迁移、驱动安装、安全加固)及桌面系统技巧(如PXE安装、镜像封装)。面向IT运维、开发者和国产化转型人员,突出实战性和差异化,帮助用户规避常见问题,提升系统管理效率。所有教程均配有详细步骤和截图,确保可操作性,并持续更新适配新版系统。

信创运维工程师 · 银河麒麟 & 容器实战 | 金融生产环境迁移·等保加固 | 142篇原创·17万+阅读 531

新手必学:Gitleaks环境变量配置的3种一键设置方法

Gitleaks是一款强大的秘密检测工具,能够帮助开发者保护和发现代码中的敏感信息。本文将介绍三种简单高效的Gitleaks环境变量配置方法,让你轻松上手这款实用工具。 ## 方法一:直接设置环境变量 最简单的配置方式是直接在终端中设置环境变量。这种方法适用于临时测试或单次运行Gitleaks的场景。 ```bash export GITLEAKS_CONFIG=/path/to/your/

gitblog_00413的博客 715

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

gitleaks安装扫描教程

PokiFighting的专栏 1936

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

深入解析Gitleaks:保护代码安全的神器及SAST概述

Gitleaks是一个开源的工具,旨在帮助开发者和安全专家在git仓库中发现敏感信息泄露。这些敏感信息包括但不限于密码、密钥、访问令牌等。Gitleaks通过扫描git提交历史记录和工作目录,以识别可能包含敏感信息的代码。它可以集成到CI/CD管道中,确保每次代码提交和部署前都进行安全检查,从而减少安全风险。

十年运维开发经验的王义杰在此分享自己的知识和经验 1885

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Gitleaks检测引擎深度剖析

Gitleaks检测引擎深度剖析 【免费下载链接】gitleaks Protect and discover secrets using Gitleaks ???? 项目地址: https://gitcode.com/GitHub_Tr...

gitblog_00931的博客 377

【Security】GitLeaks 敏感信息检测工具安装使用集成详细教程

GitLeaks 是一款基于 Go 语言开发的开源敏感信息检测工具,通过正则匹配、熵值分析与关键词识别三重机制,精准扫描 Git 仓库中的 API 密钥、云服务凭证、加密令牌等硬编码敏感信息。本文从工具特性出发,详细覆盖 Windows/macOS/Linux 全平台安装方案,深入讲解基础扫描、报告输出、规则自定义、允许列表配置等核心使用场景,同时提供组织级批量扫描、提交前防护等高级用法。

等风来 1971

Kingfisher与其他工具集成:Gitleaks和TruffleHog兼容性指南

Kingfisher是一款功能强大的开源秘密扫描工具,不仅能检测泄露的密钥,还提供实时验证、影响范围映射和快速吊销功能。它支持与Gitleaks和TruffleHog等主流秘密扫描工具无缝集成,帮助用户构建更全面的安全防护体系。 ## 为什么选择多工具集成? 现代开发环境中,单一工具往往难以覆盖所有秘密泄露场景。Kingfisher通过兼容Gitleaks和TruffleHog的报告格式,实现

gitblog_00743的博客 843

Gitleaks扫描127min→5min:5个实测调优手段

凌晨三点,夜间扫描流水线第47次超时,Slack 消息把我叫醒:Gitleaks CI超时,3600秒跑不完。当时我们对主仓库每次 push 都跑一次 Gitleaks 全量历史扫描,扫描耗时已经涨到 **127分钟**,是 CI 预算的两倍。值班同事提议"改成每周定时跑"——可密钥泄露窗口直接拉长到 7 天,安全团队不干。那天起我放弃了"等下个版本变快"的幻想,老老实实做了一轮 Gitleaks

gitblog_00407的博客 456

GitLeaks:一键检测代码中的敏感信息泄露

GitLeaks是一款开源的Git仓库敏感信息扫描工具,用于检测硬编码凭据。它通过正则表达式匹配Git历史提交和文件内容,支持100+密钥类型识别。提供多种安装方式(二进制/Docker)和扫描模式(Git仓库/目录/标准输入),可生成JSON/SARIF等格式报告。核心功能包括CI/CD集成、自定义规则配置和误报排除(通过注释或ignore文件)。典型应用场景包括DevSecOps审计、PR安全检查等,发现泄露时会返回非零退出码。工具支持多平台运行,建议在代码提交前后进行扫描以确保安全规范落实。

2403_87935635的博客 1507

预提交安全:Gitleaks 深度拆解

测试只能证明缺陷存在,不能证明缺陷不存在。“信任,但要验证。” — 罗纳德·里根(常用于强调安全控制的验证原则)别让一条看上去很严厉的 CI 命令,实际只检查了暂存区。你的 CI 里写着。它真的把仓库扫了一遍吗?先别相信参数名;先确认这个 hook 会不会接收pre-commit传给它的文件列表。一个很常见的真实场景是:某团队在一次安全整改后,把下面这条命令加入 PR CI,并在审计记录中写下“每次合并请求均扫描全仓库密钥”。

Highlydistingui的博客 390

OpenWorker secret-scan 技能全解析:用 gitleaks 排查已提交密钥并驱动“轮换优先“的安全修复

`secret-scan` 是 OpenWorker 内置安全类 persona(Security Coworker、Secrets Worker)携带的核心技能之一,它规定了一整套"在代码仓库中猎杀已提交凭据"的标准作业流程:先用 gitleaks 扫描工作树与完整 git 历史,再逐条分流命中,最后按"先轮换、后清除、再防复发"的顺序推动修复。读完本文,你将掌握该技能定义的完整扫描命令、手工降

gitblog_00360的博客 960

Gitleaks容器化部署终极指南:Docker Compose编排与持久化配置实践

Gitleaks是一款强大的**Git仓库密钥检测工具**,帮助开发团队发现和保护代码中的敏感信息。通过**Docker容器化部署**,您可以轻松实现Gitleaks的快速部署和持久化配置管理。本文将为您详细介绍如何使用Docker Compose编排Gitleaks容器,并实现配置文件的持久化存储。 ## 🐳 为什么选择容器化部署Gitleaks? **容器化部署Gitleaks**带来了

gitblog_00168的博客 522

RPA-Python与pytest-gitleaks集成:GitLeaks测试自动化完整指南

在当今软件开发的安全优先时代,代码安全审计已成为开发流程中不可或缺的一环。**RPA-Python**与**pytest-gitleaks**的完美结合,为您提供了一套强大的GitLeaks测试自动化解决方案,让代码安全扫描变得前所未有的简单高效!无论您是开发人员、安全工程师还是DevOps专家,这个自动化组合都能帮助您自动检测代码中的敏感信息泄露,确保项目安全合规。 RPA-Python是一个

gitblog_00347的博客 919

如何把 Gitleaks 全量密钥扫描从127分钟压到4分52秒:五步提速实录

Gitleaks 是一个专门扫 Git 历史里泄露密钥、Token 的开源工具,很多团队把它挂在 CI 里当门禁。我们踩过一次真实的坑:某个跑全量扫描的仓库,一轮要烧掉 127 分钟。这篇把"从 127 分钟到 4 分 52 秒"的完整调优过程拆开讲,每一步都有配置、命令和实测数字,照着做就能复现。 ## 一个可以复现的"慢扫描"现场 场景不复杂:一家金融科技公司的核心仓库,10 年开发史、5

gitblog_00068的博客 414
上一篇: Common Go Mistakes(V 函数和方法)
下一篇: Falco vs. Tetragon:云原生运行时安全选型指南
LAST BUG
博客等级 码龄12年 38粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值