Hasty Briefsbeta

双语

Sneaky Git Commits

9 months ago
  • #security
  • #git
  • #version-control
  • Git合并提交可以包含任意修改,但这些修改不会在`git log -u`中显示,因此具有'隐蔽性'。
  • 可通过`git merge --no-commit`或`git commit --amend`命令创建隐蔽的合并提交。
  • Git官方文档警告不要滥用合并提交进行重大修改,但允许小的修复。
  • 文中描述了一个精心设计的供应链攻击场景:通过在合并提交中隐藏后门来绕过代码审查。
  • 可以通过重新执行每个合并操作并比较结果树来检查Git仓库历史中的隐蔽合并。
  • 语义冲突(例如函数调用新增与函数重命名)可能导致检测隐蔽合并时出现误报。
  • 对Linux内核(v6.14到v6.15版本)的分析显示不存在隐蔽合并,仅存在语义冲突。