开发人员把生产API密钥提交到远程Git仓库,五分钟后发现并在新提交中删除该文件。此时正确的处置顺序是()。
Git新提交删除文件不会自动抹掉旧提交、分支、缓存和克隆中的密钥。最先要做的是让旧密钥失效;历史清理可减少继续暴露,但不能替代撤销和轮换。
选项分析
错误。旧提交和外部克隆仍可能保留密钥。
错误。说明文档不能阻止旧密钥被调用。
错误。等待会扩大攻击窗口。
正确。先使泄露凭据失效,再处理传播范围、证据和预防措施。
本题为什么容易错
Git不是普通网盘,删掉当前文件并不等于历史消失。更关键的是,即使历史完全清理,也无法召回已经被他人复制的密钥。
简短答案
API密钥提交到Git后又删除文件,为什么仍必须立即轮换,正确答案是 D(立即把密钥视为已泄露,撤销或受控轮换并更新调用方,再清理历史、审计异常使用并加强密钥扫描)。Git新提交删除文件不会自动抹掉旧提交、分支、缓存和克隆中的密钥。最先要做的是让旧密钥失效;历史清理可减少继续暴露,但不能替代撤销和轮换。
易混淆概念对比表
| 概念 | 本题判断 | 区别要点 | 记忆提示 |
|---|---|---|---|
| 文件在最新版本中已删除,因此不再处理 | 本题干扰项 | 错误。旧提交和外部克隆仍可能保留密钥。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 只修改README,声明不要使用该密钥 | 本题干扰项 | 错误。说明文档不能阻止旧密钥被调用。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 先等待一个月,确认没人使用后再说 | 本题干扰项 | 错误。等待会扩大攻击窗口。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 立即把密钥视为已泄露,撤销或受控轮换并更新调用方,再清理历史、审计异常使用并加强密钥扫描 | 本题正确答案 | 正确。先使泄露凭据失效,再处理传播范围、证据和预防措施。 | 看到题干核心场景时优先联想到它 |
本题易混淆选项怎么区分
- 文件在最新版本中已删除,因此不再处理:错误。旧提交和外部克隆仍可能保留密钥。
- 只修改README,声明不要使用该密钥:错误。说明文档不能阻止旧密钥被调用。
- 先等待一个月,确认没人使用后再说:错误。等待会扩大攻击窗口。
知识点详解
泄露响应先确定密钥权限、环境和暴露时长,立即撤销或轮换,并审计访问日志。历史重写、缓存清理和搜索其他副本用于降低残留暴露;后续应去除硬编码并启用推送保护。
备考速记
删Git记录是擦掉钥匙照片,轮换密钥才是真正换锁。
Git历史 在Secret Scanning场景中的作用
若支付接口密钥被提交,可先签发权限等价的新密钥,更新生产和任务调用并验证,再撤销旧密钥;随后查询旧密钥在暴露窗口内的调用来源。
同类题怎么考
- 判断Git中删除密钥文件是否足以完成处置。
- 选择生产凭据泄露后的正确优先顺序。
Git历史 在信息安全工程师软考中的考法
看到凭据进入远程仓库,默认按已泄露处理。选项若只谈删除文件、不谈撤销轮换,通常不完整。
解题思路
这题问的不是代码里还有没有密钥,而是泄露出去的那把钥匙还能不能开门。只删文件不换锁没有意义,选D。
考点定位
若直接撤销会中断生产,可先生成新密钥、切换并验证调用方,再撤销旧密钥;优先级仍是尽快消除旧凭据可用性。
易错提醒
- 历史重写后强制推送,却未通知已有克隆仓库同步清理。
- 轮换密钥但漏掉定时任务和灾备环境,造成业务中断。
- 处置过程中把完整密钥再次贴进聊天或工单。
备考提示
- 固定顺序:判泄露、换凭据、查使用、清历史、加预防。
- 预防可使用密钥管理服务、短期凭据和提交前或推送时扫描。
你可能还想了解
- Git删除文件后密钥还会泄露吗?
- API密钥泄露先清历史还是先轮换?
- 怎样防止密钥提交到代码仓库?
本文小结
生产密钥进入远程Git后应立即视为泄露,优先撤销或轮换并审计使用;删除当前文件和清理历史都不能替代密钥失效。