信息安全工程师 · 高频练习

API密钥提交到Git后又删除文件,为什么仍必须立即轮换?

中级 单选题 第 1122 题 较难 信息安全工程师密钥泄露Git历史凭据轮换Secret Scanning
题目

开发人员把生产API密钥提交到远程Git仓库,五分钟后发现并在新提交中删除该文件。此时正确的处置顺序是()。

A 文件在最新版本中已删除,因此不再处理
B 只修改README,声明不要使用该密钥
C 先等待一个月,确认没人使用后再说
D 立即把密钥视为已泄露,撤销或受控轮换并更新调用方,再清理历史、审计异常使用并加强密钥扫描
题目类型:原创高频练习题 用途:用于帮助理解信息安全工程师相关考点和答案解析,不等同于官方真题。
正确答案
D
答案解析

Git新提交删除文件不会自动抹掉旧提交、分支、缓存和克隆中的密钥。最先要做的是让旧密钥失效;历史清理可减少继续暴露,但不能替代撤销和轮换。

选项分析

A

错误。旧提交和外部克隆仍可能保留密钥。

B

错误。说明文档不能阻止旧密钥被调用。

C

错误。等待会扩大攻击窗口。

D

正确。先使泄露凭据失效,再处理传播范围、证据和预防措施。

本题为什么容易错

Git不是普通网盘,删掉当前文件并不等于历史消失。更关键的是,即使历史完全清理,也无法召回已经被他人复制的密钥。

先看结论

简短答案

API密钥提交到Git后又删除文件,为什么仍必须立即轮换,正确答案是 D(立即把密钥视为已泄露,撤销或受控轮换并更新调用方,再清理历史、审计异常使用并加强密钥扫描)。Git新提交删除文件不会自动抹掉旧提交、分支、缓存和克隆中的密钥。最先要做的是让旧密钥失效;历史清理可减少继续暴露,但不能替代撤销和轮换。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
文件在最新版本中已删除,因此不再处理 本题干扰项 错误。旧提交和外部克隆仍可能保留密钥。 看到该词不要急着选,先判断是否真正解决题干问题
只修改README,声明不要使用该密钥 本题干扰项 错误。说明文档不能阻止旧密钥被调用。 看到该词不要急着选,先判断是否真正解决题干问题
先等待一个月,确认没人使用后再说 本题干扰项 错误。等待会扩大攻击窗口。 看到该词不要急着选,先判断是否真正解决题干问题
立即把密钥视为已泄露,撤销或受控轮换并更新调用方,再清理历史、审计异常使用并加强密钥扫描 本题正确答案 正确。先使泄露凭据失效,再处理传播范围、证据和预防措施。 看到题干核心场景时优先联想到它
本题易混淆选项怎么区分
  • 文件在最新版本中已删除,因此不再处理:错误。旧提交和外部克隆仍可能保留密钥。
  • 只修改README,声明不要使用该密钥:错误。说明文档不能阻止旧密钥被调用。
  • 先等待一个月,确认没人使用后再说:错误。等待会扩大攻击窗口。
复习

知识点详解

泄露响应先确定密钥权限、环境和暴露时长,立即撤销或轮换,并审计访问日志。历史重写、缓存清理和搜索其他副本用于降低残留暴露;后续应去除硬编码并启用推送保护。

备考速记

删Git记录是擦掉钥匙照片,轮换密钥才是真正换锁。

Git历史 在Secret Scanning场景中的作用

若支付接口密钥被提交,可先签发权限等价的新密钥,更新生产和任务调用并验证,再撤销旧密钥;随后查询旧密钥在暴露窗口内的调用来源。

拓展

同类题怎么考

  • 判断Git中删除密钥文件是否足以完成处置。
  • 选择生产凭据泄露后的正确优先顺序。
Git历史 在信息安全工程师软考中的考法

看到凭据进入远程仓库,默认按已泄露处理。选项若只谈删除文件、不谈撤销轮换,通常不完整。

解题思路

这题问的不是代码里还有没有密钥,而是泄露出去的那把钥匙还能不能开门。只删文件不换锁没有意义,选D。

考点定位

若直接撤销会中断生产,可先生成新密钥、切换并验证调用方,再撤销旧密钥;优先级仍是尽快消除旧凭据可用性。

易错提醒

  • 历史重写后强制推送,却未通知已有克隆仓库同步清理。
  • 轮换密钥但漏掉定时任务和灾备环境,造成业务中断。
  • 处置过程中把完整密钥再次贴进聊天或工单。

备考提示

  • 固定顺序:判泄露、换凭据、查使用、清历史、加预防。
  • 预防可使用密钥管理服务、短期凭据和提交前或推送时扫描。

你可能还想了解

  • Git删除文件后密钥还会泄露吗?
  • API密钥泄露先清历史还是先轮换?
  • 怎样防止密钥提交到代码仓库?

本文小结

生产密钥进入远程Git后应立即视为泄露,优先撤销或轮换并审计使用;删除当前文件和清理历史都不能替代密钥失效。