Awesome
zricethezav/gitleaks.wiki
<!-- [![size-img]][size] -->「 审核 git 存储库的密码,gitleaks 的 Wiki-维基页面 」
校对 ✅
<!-- doc-templite START generated --> <!-- repo = 'zricethezav/gitleaks.wiki' --> <!-- commit = 'a0946237020abaab87788bacfe5491f98e330f60' --> <!-- time = '2018-10-27' -->翻译的原文 | 与日期 | 最新更新 | 更多 |
---|---|---|---|
commit | ⏰ 2018-10-27 | 中文翻译 |
贡献
欢迎 👏 勘误/校对/更新贡献 😊 具体贡献请看
生活
If help, buy me coffee —— 营养跟不上了,给我来瓶营养快线吧! 💰
<p align="center"> <img alt="gitleaks" src="https://raw.githubusercontent.com/zricethezav/gifs/master/gitleaks5.png" height="140" /> <p align="center"> <a href="https://travis-ci.org/zricethezav/gitleaks"><img alt="Travis" src="https://img.shields.io/travis/zricethezav/gitleaks/master.svg?style=flat-square"></a> </p> </p>
指南
这个指南, 关于贯穿 Gitleaks 的几个例子.
目录
<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> <!-- END doctoc generated TOC please keep comment here to allow auto update -->基本用法
Gitleaks 提供了很多可调性,但是对于大多数用户来说,在默认模式下, 仅运行 gitleaks 搞单个repo就足够了.
1.搞repo
gitleaks --repo=https://github.com/gitleakstest/gronit
这个例子运行 Gitleaks 搞我在 Github 上托管的测试repo。其中gronit 包含两个 AWS 密钥泄露.
2.日志模式
gitleaks --repo=https://github.com/gitleakstest/gronit -v
当 Gitleaks 处理repo时,您可能希望查看审核的输出.打开日志模式-v
或--verbose
3. Redact 模式
gitleaks --repo=https://github.com/gitleakstest/gronit -v --redact
也许你想知道哪一行包含密码,但不想记录密码内容.你可以使用--redact
,这将导致输出看起来像:
{
"line": "REDACTED",
"commit": "cb5599aeed261b2c038aa4729e2d53ca050a4988",
"offender": "REDACTED",
"reason": "AWS",
"commitMsg": "fake key",
"author": "Zachary Rice \u003czricethezav@users.noreply.github.com\u003e",
"file": "main.go",
"branch": "refs/heads/master",
"repo": "gronit"
}
4. 报告
gitleaks --repo=https://github.com/gitleakstest/gronit --report=gronit_results.csv
也许你想一个一个地对一批repo进行审计,并保存每个repo的报告.您可以通过使用--report=
选项.你的报告必须以.csv
或.json
结束.
5 搞 Gitlab 的 repo
gitleaks --repo=https://gitlab.com/relaxeaza/twoverflow.git
Gitleakss 不仅适用于 Github repos,而且适用于所有 Git repos,只要您有一个有效的地址.
6.目标特定分支
gitleaks --repo=https://github.com/gitleakstest/gronit --branch=dev
7. 线程数
gitleaks --repo=https://github.com/gitleakstest/gronit --threads=8
这个--threads=
选项,指定生成的线程的最大数目.
Github
Gitleakss 确实提供一些 Github 专有功能,如所有者(org/user)扫描以及 PR 扫描.这两个功能都需要用户设置Github_TOKEN
环境变量,这些特性依赖于 Github API. 在这里生成 Github API 令牌:HTTPS://Help.GiTHUBCOM/Toels/CalaTeN-Acto Access ToKE-For 命令行
8.搞 Github 组织 (多余的)
Wiki问题,
gitleaks --github-org=gitleakstestorg
注意:您可能想使用--disk
,如果您正在审核的组织很大
9.搞 Github 组织
gitleaks --github-org=gitleakstestorg
注 1:您可能想使用--disk
,如果您正在审核的组织很大
注 2:您可能想使用--log=debug
看看你会审核哪一份.
10.搞 Github 用户
gitleaks --github-user=gitleakstestuser
注 1:您可能想使用--disk
,如果您正在审核的用户很大的
注 2:您可能想使用--log=debug
看看你会审核哪一份.
11.搞 Github PR
gitleaks --github-pr=https://github.com/gitleakstest/gronit/pull/1
这个,Docker很容易地挂钩到 CI 过程
docker run --rm --name=gitleaks -e Github_TOKEN={your github token dont hardcode this!!!} zricethezav/gitleaks --github-pr=https://github.com/gitleakstest/gronit/pull/1
设置--github-pr=
选项,不克隆整个repo。 Gitleaks使用 Github API 为 PR 中的每个提交生成补丁-patch,并审核这些提交.
12.搞 Github org ,不包括 forks的项目
gitleaks --github-org=gitleakstestorg --exclude-forks
这将排除对 Github Orgs 和用户的Fork项目的审计.
"高级"配置特性
让我们看看 Gitleaks 提供的一些更先进的特性… 我们将编辑 Gitleaks 配置.toml
文件。为了让 Gitleaks 读取自定义配置,必须使用 Gitleaks 来运行config=
选项或具备GITLEAKS_CONFIG
环境设置成您.toml
配置路径.
gitleaks --config=gitleaks.toml
13.配置——扫描 X
Gihleaks 附带了一些扫描的默认密码,但您可能需要添加更多的.您可以添加,到.toml
配置文件.
# gitleaks.toml
title = "gitleaks config"
[[regexes]]
description = "AWS"
regex = '''AKIA[0-9A-Z]{16}'''
# 添加自定义
[[regexes]]
description = "zachs secret"
regex = '''terces shcaz'''
# 更多 自定义!
[[regexes]]
description = "1024-bit hexadecimal string (possible hash, key or token)"
regex = '''['\"][0-9a-fA-F]{256}['\"]'''
14.配置—— 白名单-whitelist 文件
假设我们正在审核包含一些音频编辑软件的存储库.如果我是一个赌徒,我敢打赌,这repo有一些音频文件。而我们希望忽略这些文件,因为我们可以安全地(不是真的)假设它们不包含密码。我们该怎么做? 只需提供 Gitleaks 配置即可.
# gitleaks.toml
title = "gitleaks config"
[[regexes]]
description = "AWS"
regex = '''AKIA[0-9A-Z]{16}'''
[whitelist]
files = [
"(.*?)(wav|wma|mp3|m4a|flac)$"
]
这个配置告诉 Gitleaks 搜索 AWS 密,,而审核不包括wav, wma, mp3, m4a, flac
文件.
15.配置-白名单commits
也许repo有一些commits,你有意想要忽略, 不管出于什么原因.你可以这样做
[[regexes]]
description = "Facebook"
regex = '''(?i)facebook.*['\"][0-9a-f]{32}['\"]'''
[whitelist]
commits = [
"21b59fab5d01942b389fcd6573bd17c61a1077fe",
"9272e1e556ca6a6721fedf7beb0066be5a55c6e3",
]
此配置设置 Gitleaks 搜索脸谱网密钥,如果扫描进入这些 SHA 码,忽略提交21b...
和927...
的SHA码.
16.配置——白名单 正则式
你可能想搜索所有的 AWS key, 但是忽略它们的一个子集(我不知道你为什么要这么做……但你可以)
[[regexes]]
description = "AWS"
regex = '''AKIA[0-9A-Z]{16}'''
[whitelist]
regexes = [
"AKAIMYFAKEAWKKEY",
]
使用此配置文件的Gitleaks审计,将看到一行包含 AWS 密钥, 然后检查是否存在相关的正则表达式白名单. 如果有正则表达式白名单,则忽略该行.在这种情况下,如果我们有一行包含AKAIMYFAKEAWKKEY
,那,它将被忽略,而所有其他 AWS 密钥仍然会被拾起.
17.配置-白名单分支
如果您正在对所有分支进行审计,那么您也可以使用白名单分支--all-ref
.
[[regexes]]
description = "AWS"
regex = '''AKIA[0-9A-Z]{16}'''
[whitelist]
branches = [
"develop",
"preview",
]