已合并
新增gitleaks敏感信息检测 #953
新增gitleaks敏感信息检测 #953
已合并
lichunyang创建于 7月14日
lichunyang
lichunyang成员
7月14日

合入来源

问题/功能描述

新增gitleaks敏感信息检测

修改方案描述

引入gitleaks在线扫描工具
新增pre-commit/.gitleaks.toml配置,继承官方全部检测规则
配置pre-commit钩子,提交前自动扫描密钥硬编码风险。

是否涉及UT/ST

开发自检

likedislike
Pull Request已成功合入, 合并人@zhangjinshi
(感谢 lichunyang 的贡献)
atomgit-bot
atomgit-bot
7月14日 评论:

变更摘要

此次 PR 为项目新增了 Gitleaks 敏感信息检测能力,通过在 pre-commit 阶段引入本地离线二进制扫描,自动拦截代码中意外提交的密钥、凭证等敏感数据。核心改动包括:在 .pre-commit-config.yaml 中注册 gitleaks-offline-scan hook,并新增 pre-commit/.gitleaks.toml 配置文件,该配置继承 Gitleaks 内置全部默认检测规则,同时预留了全局白名单、自定义规则、规则禁用等扩展入口。

主要改动

  • 新增 pre-commit Gitleaks 扫描 hook:在 .pre-commit-config.yaml 中注册 local 类型的 gitleaks-offline-scan hook,入口为 ./gitleaks 二进制,采用 protect 模式并启用 --verbose 与 --redact 参数,配置指向 pre-commit/.gitleaks.toml,仅在 pre-commit 阶段触发。
  • 新增 Gitleaks 配置文件 pre-commit/.gitleaks.toml:通过 [extend] 中 useDefault = true 继承工具内置全部密钥检测规则(如 AWS、Git、SSH、OBS 等),当前未禁用任何规则,也未新增自定义规则。
  • 预留全局白名单框架:使用新版语法 [[allowlists]] 定义白名单结构,当前以占位正则 ^$ 保证语法合规,同时以注释形式给出路径白名单、停用词(stopwords)和提交白名单的示例写法,便于后续按需启用。
  • 设定全局扫描参数:配置 minEntropy = 3.0(最低熵值阈值)、redact = true(输出时脱敏)、maxMatchLength = 2048(最大匹配长度)、scanGitHistory = false(不扫描 Git 历史),当前仅针对暂存区变更进行检测。
  • 注释中提供扩展指引:配置文件中以注释形式展示了如何通过 disabledRules 批量禁用内置规则、如何新增 [[rules]] 自定义业务检测规则(如华为云 OBS AK/SK),以及如何在代码中使用 # gitleaks:allow 行内注释或 # gitleaks:skip-file 文件级注释进行局部屏蔽。
likedislike
不准确?
atomgit-bot
atomgit-bot
7月14日 评论:

代码审查

审查完成总结

对本次 PR 涉及的 2 个变更文件 逐一审查完毕:

文件 审查结果
.pre-commit-config.yaml 发现 1 个 P1 问题 — ./gitleaks 二进制文件在仓库中不存在,合入后将阻塞所有开发者的 git commit 操作
pre-commit/.gitleaks.toml 无问题 — TOML 语法正确,配置项合理,注释详尽

发现统计

优先级 数量
P0 0
P1 1
P2 0
P3 0

整体风险评估

中等风险。新增的 gitleaks 敏感信息检测配置本身设计合理(继承内置规则、提供白名单框架、注释示例清晰),但核心依赖 ./gitleaks 二进制文件缺失,会导致所有开发者在合入后无法正常提交代码。建议在二进制分发方案就绪前,参照同文件中 ruff-check/pylint/bandit 的做法,将 stages 临时设为 [manual]。

类型 数量
🔴 阻塞 1
🟡 建议 2

⛔ 需要修改

likedislike
不准确?
ascend-robot
ascend-robot成员7月14日进行代码检视1
pre-commit/.gitleaks.toml
@@ -0,0 +71,2 @@
71+# 方式1:仅屏蔽当前单行密钥告警(推荐)
72+# access_key = "AKXXXXXXXXXXXXXXXXXXXX" # gitleaks:allow
73+#
ascend-robot
ascend-robot7月14日评论:

此条代码评论区间+71至+73

【openlibing.ci】识别到代码检查告警抑制注释,匹配工具:gitleaks,请Committer检视其合理性。

likedislike
ascend-robot
ascend-robot成员
7月14日 评论:
流水线 PR-pipeline_memfabric_hybrid#4335 [ commitID:780b3607 ] 已完成
阶段 任务名 状态 详情
编译构建 Build_memfabric-hybrid ✅ >>>
Build_memfabric-hybrid-bazel ✅ >>>
恶意代码检查 Antipoison_mf ✅ >>>
编码安全与规范检查 pre-commit ✅ >>>
CodeCheck_mf ✅ >>>
开源片段检查 SCA_mf ✅ >>>
开发者测试 UT_memfabric-hybrid ✅ >>>
流水线 PR-pipeline_memfabric_hybrid ✅ >>>
此流水线已支持下列评论快捷指令,仅PR创建者和白名单成员评论有效
  • compile : 运行流水线
  • retry : 重试流水线所有失败子任务
  • retry <任务名> : 仅重试指定失败子任务
  • stop : 停止流水线
likedislike
此处折叠了44条消息 查看更多
lichunyanglichunyang成员
7月14日 修改了pull request 的描述
Zzhangjinshi成员
7月14日 通过审查
Zzhangjinshi成员
7月14日 解决了最后一个问题
Zzhangjinshi成员
7月14日 关闭了关联的issue
Zzhangjinshi成员
7月14日 合入了pull request