# 组织对泄露的敏感信息的修复工作

通过安全活动和警报分配，系统化地组织和管理泄露机密的修复工作。

## 介绍

在本教程中，你将为泄露的机密组织修正工作。 你将了解如何：

* 创建安全活动以跟踪补救工作
* 基于所有权分配警报
* 监视修正进度
* 与利益干系人沟通

## 先决条件

* 必须为你的组织同时启用 GitHub Secret Protection 和 secret scanning。 请参阅“[定价与激活 GitHub Secret Protection](/zh/code-security/securing-your-organization/understanding-your-organizations-exposure-to-leaked-secrets/protect-your-secrets)”。
* 必须有可用的现有 secret scanning 警报。

## 步骤 1：查看 机密扫描警报

在采取行动之前，需要了解组织安全警报的当前状态。

1. 在 GitHub 上，导航到组织的主页面。

2. 在组织名称下，单击 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security and quality** 该选项卡。

3. 在左侧边栏中的“查找”下，单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-chevron-down" aria-label="chevron-down" role="img"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg> 右侧的 **Secret scanning** 符号。

4. 在下拉列表中，选择 `Default`。
   `Default` 与支持的模式和指定的自定义模式相关。

5. 或者，可以选择 `Generic` 查看非结构化机密（如密码）。 但是，泛型模式通常比默认模式生成更多的误报，因此，请考虑在解决高优先级泄漏后查看这些警报。

6. 查看未关闭警报的总数以及受影响的存储库数量。

7. 使用筛选器识别最紧急的警报，并确定修正工作的优先级。
   * 若要显示 **公共** 存储库中的泄漏，请使用 `publicly-leaked`。
   * 若要显示在同一组织或企业内的 **多个存储库** 中找到的机密泄漏，请使用 `is:multi-repository`。
   * 若要显示仍然 **有效的**机密，请使用 `validity:active`。
   * 若要按特定的 **service** 凭据（AWS、Azure、GitHub）进行筛选，请使用 `provider:`。
   * 若要按特定 **令牌类型**进行筛选，请使用 `secret-type:`。

8. （可选）在“见解”下的边栏中，单击 **Secret scanning** 以查看：
   * 最常被阻止或绕过的机密类型
   * 阻止推送次数或绕过操作最多的存储库

## 步骤 2：创建安全活动

可以设置安全活动，以便在多个存储库中组织和跟踪修正工作。

1. 导航到你的组织并单击 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-shield" aria-label="shield" role="img"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg> Security and quality**。
2. 在左侧面板中，选择“ **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-goal" aria-label="goal" role="img"><path d="M13.637 2.363h-.001l1.676.335c.09.018.164.084.19.173a.25.25 0 0 1-.062.249l-1.373 1.374a.876.876 0 0 1-.619.256H12.31L9.45 7.611A1.5 1.5 0 1 1 6.5 8a1.501 1.501 0 0 1 1.889-1.449l2.861-2.862V2.552c0-.232.092-.455.256-.619L12.88.559a.25.25 0 0 1 .249-.062c.089.026.155.1.173.19Z"></path><path d="M2 8a6 6 0 1 0 11.769-1.656.751.751 0 1 1 1.442-.413 7.502 7.502 0 0 1-12.513 7.371A7.501 7.501 0 0 1 10.069.789a.75.75 0 0 1-.413 1.442A6.001 6.001 0 0 0 2 8Z"></path><path d="M5 8a3.002 3.002 0 0 0 4.699 2.476 3 3 0 0 0 1.28-2.827.748.748 0 0 1 1.045-.782.75.75 0 0 1 .445.61A4.5 4.5 0 1 1 8.516 3.53a.75.75 0 1 1-.17 1.49A3 3 0 0 0 5 8Z"></path></svg> 市场活动**”。
3. 单击“ **创建活动 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-triangle-down" aria-label="triangle down icon" role="img"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg>**”，然后选择以下任一项：
   * 选择预定义的 Secrets 活动模板。
   * 使用自定义筛选器定位特定警报（例如， `is:open provider:azure` 或 `is:open validity:active`）。
4. 查看警报（最多 1000 个），并根据需要调整筛选器。
5. 单击“ **另存为** ”并选择“ **发布宣传活动**”。
6. 填写市场活动信息，然后单击“ **发布市场活动**”。

## 步骤 3：将警报分配给团队成员

创建活动后，你希望将每个警报分配给负责修复它们的开发人员。

1. 在活动页面上，单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-chevron-right" aria-label="Toggle to expand or collapse the repository view" role="img"><path d="M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z"></path></svg>，以展开存储库并查看其警报。
2. 单击警报以打开其详细信息页。
3. 在右侧栏中，单击 **“分配者**”。
4. 选择要修复警报的开发人员。 通常，这是提交机密的人员或检测到泄露的存储库管理员。 它们必须具有写入访问权限。

## 步骤 4：监视修正进度

分配警报后，需要定期跟踪市场活动进度，以确保及时完成。

1. 在您的推广活动页面, 查看推广活动摘要。 你会知道的：
   * **活动进展**：已关闭的警示数量（已修复或已取消），或者仍需审阅的警示数量。
   * **状态**：活动截止日期之前的天数
2. 您可以浏览活动详细信息：
   * 展开任何存储库以查看其警报修正进度。
   * 将 **“分组依据** ”设置为 **“无** ”以显示所有警报的列表。
   * 使用筛选器专注于特定存储库或警报。
3. 根据未关闭警报最多或近期进展不足的存储库识别需要重点关注的领域，并联系相应的存储库维护人员或负责人以获取支持。

## 步骤 5：与利益干系人沟通

在整个修正过程中，应让利益相关者了解定期更新的进度。 可以使用市场活动仪表板中的信息来帮助生成这些更新。

1. 进入广告活动仪表板。
2. 确定要在报表中包含的信息。 请考虑以下关键指标：
   * 本周解决的警报
   * 剩余未处理的警报
   * 正常进度与有风险项
   * 值得注意的成就或阻碍
3. 将指标合并到更新中，然后通过电子邮件、Slack、Teams 或安全会议分发。

## 步骤 6：记录修正过程

最后，应创建标准化过程，使将来的修正工作更高效。

1. 开发针对特定机密类型的指南。 例如：
   * **AWS 凭据**：如何轮换访问密钥和更新服务
   * **GitHub 令牌**：如何撤销和重新生成 Personal Access Tokens
   * **API 密钥**：特定于服务的轮换过程
   * **数据库凭据**：安全轮换，不会中断服务
2. 创建修正清单。
   1. 验证机密是否已实际泄露。
   2. 确定机密是否仍然有效。
   3. 吊销或轮换已泄露的机密。
   4. 使用旧机密更新所有系统。
   5. 测试系统是否能使用新凭据正常运行。
   6. 记录事件和修正步骤。
   7. 将警报标记为已解决。
3. 建立升级路径。
   * 定义何时升级到安全领导。
   * 确定不同机密类型的领域专家。
   * 为严重泄漏创建事件响应过程。