新闻详情

新闻详情

首页 / 资讯中心 / 详情

如何把 TruffleHog 接入 GitLab CI 并在合并请求事件中拦截凭证泄露?

发布时间:2026/9/13 21:46:03来源:尧图网络
如何把 TruffleHog 接入 GitLab CI 并在合并请求事件中拦截凭证泄露?
如何把 TruffleHog 接入 GitLab CI 并在合并请求事件中拦截凭证泄露【免费下载链接】trufflehogFind, verify, and analyze leaked credentials项目地址: https://gitcode.com/GitHub_Trending/tr/trufflehog如果你的仓库托管在 GitLab 上希望开发者每次创建 Merge RequestMR时自动扫描代码中的凭证并在发现有效密钥时让流水线失败、阻止合并可以把 TruffleHog 的官方 GitLab CI 作业接入你的.gitlab-ci.yml。TruffleHog 的 README 中给出了一个可直接使用的 YAML 示例作业只在merge_request_event触发时运行用--fail参数让扫描到结果时以退出码 183 结束配合allow_failure: false使 MR 流水线变红。下面按“写入配置 → 理解每个参数 → 判断结果”的顺序把这条路径走一遍。准备条件一个 GitLab 项目且你有权编辑项目根目录下的.gitlab-ci.yml新建或追加内容。GitLab Runner 能拉取alpine:latest镜像并具备访问外部网络的出站能力作业在before_script中会安装系统包并下载 TruffleHog 安装脚本。在.gitlab-ci.yml中添加 MR 扫描作业README 给出的示例配置如下可直接追加到现有流水线文件末尾stages: - security security-secrets: stage: security allow_failure: false image: alpine:latest variables: SCAN_PATH: . # Set the relative path in the repo to scan before_script: - apk add --no-cache git curl jq - curl -sSfL https://raw.githubusercontent.com/trufflesecurity/trufflehog/main/scripts/install.sh | sh -s -- -b /usr/local/bin script: - trufflehog filesystem $SCAN_PATH --resultsverified,unknown --fail --json | jq rules: - if: $CI_PIPELINE_SOURCE merge_request_event各部分的用途stages: - security新增一个独立的security阶段。如果你的流水线已经定义了stages列表把security加入该列表并把作业挂到该阶段即可避免 GitLab 因未知 stage 报错。rules中的$CI_PIPELINE_SOURCE merge_request_event是整个拦截的关键作业只在创建新 MR 时触发README 原文明确说明 “This job runs only when the pipeline source is a merge request event, meaning its triggered when a new merge request is created.”before_script分两步apk add --no-cache git curl jq安装依赖随后通过官方安装脚本 install.sh 把trufflehog二进制安装到/usr/local/bin。副作用说明这一步会向系统写入二进制文件并访问外网下载安装脚本属于作业容器内的操作不作用于 Runner 宿主机。script里对$SCAN_PATH运行trufflehog filesystem输出经--json格式化为 JSON 后由jq美化便于在流水线日志里阅读。SCAN_PATH默认为.即扫描整个检出的仓库目录和文件。如果只想扫某个子目录例如./src修改这个变量即可。关键参数含义--resultsverified,unknown控制输出哪类结果。README 中参数说明为verifiedconfirmed valid by API、unknownverification failed due to error默认值是verified,unverified,unknown。该示例只输出这两类即只关注“经 API 验证有效”和“验证因错误无法确认”的凭证。--failREADME 说明该标志 “Exit with code 183 if results are found.”即只要按--results输出了结果进程就以 183 退出。README 的 Exit Codes 一节对应列出0无错误无结果1遇到错误、来源可能未完成扫描183无错误但发现了结果且仅在--fail时返回。allow_failure: falseGitLab 侧配置保证 183 这类非零退出码会让作业和流水线失败从而在 MR 上形成拦截。--json | jq仅影响日志展示格式不改变拦截逻辑。需要注意的边界filesystem扫描的是 CI 中已检出的工作目录README 对该 GitLab 示例的描述是 “were scanning for live secrets in all repository directories and files”即扫描的是 MR 分支的当前文件内容而非提交历史。凭证是否被“验证”需要 TruffleHog 向对应服务商 API 发起请求验证依赖网络可用。验证接入是否生效确认作业按预期触发在仓库中创建任意 MR打开该 MR 关联的流水线应能看到security-secrets作业出现在security阶段。普通 push 触发的流水线上不应出现该作业这是rules的条件结果。确认拦截链路在 MR 分支中提交一个包含有效凭证的测试文件运行trufflehog filesystem后若按--results输出结果--fail使退出码为 183allow_failure: false使该作业失败MR 流水线变为红色合并即被阻止。区分扫描错误与发现结果退出码 1 表示“an error was encountered. Sources may not have completed scans.”这属于扫描本身出错如网络问题导致安装或验证请求失败与“发现凭证”183是不同情况排查时应先看作业日志判断属于哪一类。可选调整只扫部分目录修改SCAN_PATH变量为相对路径如./src。调整输出范围把--results改为 README 参数说明中列出的其他组合例如加入unverifieddetected but not verified或filtered_unverified。安装脚本支持校验与指定版本README 给出-v参数校验签名需已安装 cosign和在命令末尾追加ReleaseTag like v3.56.0的形式来固定版本可按需替换before_script中的安装行。【免费下载链接】trufflehogFind, verify, and analyze leaked credentials项目地址: https://gitcode.com/GitHub_Trending/tr/trufflehog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Genkit JS 智能体人机协同(Human-in-the-Loop)实战:用 Interrupt 暂停 Agent 轮次并在恢复点继续执行 2026/9/13 22:19:08

Genkit JS 智能体人机协同(Human-in-the-Loop)实战:用 Interrupt 暂停 Agent 轮次并在恢复点继续执行

Genkit JS 智能体人机协同(Human-in-the-Loop)实战:用 Interrupt 暂停 Agent 轮次并在恢复点继续执行 【免费下载链接】skills Agent Skills for Google products and technologies 项目地址: https://gitcode.com/GitHub_Trending/skills2…

阅读更多 →
Megatron-LM 首次训练实战指南:从最小分布式循环到 LLaMA-3 FP8 训练与数据预处理 2026/9/13 22:19:08

Megatron-LM 首次训练实战指南:从最小分布式循环到 LLaMA-3 FP8 训练与数据预处理

Megatron-LM 首次训练实战指南:从最小分布式循环到 LLaMA-3 FP8 训练与数据预处理 【免费下载链接】Megatron-LM Ongoing research training transformer models at scale 项目地址: https://gitcode.com/GitHub_Trending/me/Megatron-LM 本文是 Megatron-LM…

阅读更多 →
Flink高级之侧输出流Side Output原理及代码实现:从OutputTag到多流分发 2026/9/13 22:19:08

Flink高级之侧输出流Side Output原理及代码实现:从OutputTag到多流分发

摘要:一条实时数据流里总混着正常、异常、迟到、需监控四类数据,传统 filter 方案要遍历 N 遍、逻辑散落 N 个算子;Flink 侧输出流(Side Output)用一次遍历完成多路分发。这篇文章拆透侧输出:从 1N 流模型、…

阅读更多 →
论文格式老被退回?格式错误的4步自查清单 2026/9/13 22:19:08

论文格式老被退回?格式错误的4步自查清单

论文格式被学校退回,是毕业季最常见的返工原因之一。与其一次次改完再交、再被退回,不如按一份固定清单逐项自查。这篇把格式错误拆成 4 个步骤:先定位退回原因,再按「整体版式 → 正文细节 → 引用著录 → 图表表格」四层逐项排查…

阅读更多 →
海底海参检测数据集介绍、下载及YOLO/VOC/COCO训练格式转换 2026/9/13 22:19:08

海底海参检测数据集介绍、下载及YOLO/VOC/COCO训练格式转换

海底海参完整数据集下载目录 同时包含三种主流标注格式:COCO JSON、VOC XML、YOLO TXT 海底海参检测数据集🌊:数据集介绍、下载📥 | 目标检测 | 水平框📌|原始图像✅|VOC标签✅ | COCO 标签✅…

阅读更多 →
Ingress NGINX 注解风险等级与作用域全解:annotations-risk 治理指南 2026/9/13 22:16:07

Ingress NGINX 注解风险等级与作用域全解:annotations-risk 治理指南

Ingress NGINX 注解风险等级与作用域全解:annotations-risk 治理指南 【免费下载链接】ingress-nginx Ingress NGINX Controller for Kubernetes 项目地址: https://gitcode.com/GitHub_Trending/in/ingress-nginx 导读 Ingress NGINX Controller 通过 ngin…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞