AK泄露检测

更新时间:
复制 MD 格式

云安全中心通过实时检测 GitHub 平台公开源代码中存在的阿里云账号或 RAM 用户的访问密钥 AccessKey(以下简称 AK)信息,识别 AK 是否泄露并提供告警。本文介绍 AK 泄露检测的原理及处理方法。

功能原理

适用范围

  • 检测平台:仅支持检测 GitHub 平台公开源代码中的 AK 泄露,暂不支持其他代码托管平台。

  • 检测对象:阿里云账号(主账号)及 RAM 用户的 AccessKey(包括 AccessKey ID 和 AccessKey Secret)。

通知方式

云安全中心根据泄露的 AccessKey ID(以下简称 AK)和 AccessKey Secret(以下简称 SK)是否有效,采用不同的通知方式:

重要

只有 AK 和 SK 同时泄露时,第三方才可能利用该访问密钥,进而获取该账号下所有资源的控制权。

通知条件

通知方式

AK 泄露,无论 SK 是否有效。

AK 泄露检测页面告警

SK 泄露且有效

  • 语音通知:根据设置的接收人实时发送。

  • 控制台弹框提示:访问阿里云控制台首页或多数云产品控制台时会弹框提示。

  • 告警通知:根据已配置的通知方式(站内信、邮件或短信)发送。

image

配置 AK 泄露告警通知

云安全中心默认开启 AK 泄露告警通知,可通过短信、语音、邮件、站内信等方式发送告警。

修改通知方式

  1. 访问云安全中心控制台-系统配置-通知设置,在页面左侧顶部,选择需防护资产所在的区域:中国内地非中国内地

  2. 短信/邮件/站内信页签中,找到 AccessKey 泄露情报,选择需要的 通知方式

说明

AK 泄露风险较高,为及时接收通知,建议选中所有通知方式。具体操作,请参见通知设置

添加通知接收人

默认仅账号联系人会收到通知。如需其他联系人接收告警,可通过以下方式添加:

  • 短信、邮件、站内信:

    基本接收管理页面的安全消息 > 云盾安全信息通知区域,修改消息接收人。

    说明

    修改此处的消息接收人后,会对云安全中心的其他通知项同时生效,也会对 DDoS 防护和 Web 应用防火墙等产品的消息通知项生效。

  • 语音:

    语音接收管理页面的安全消息 > 账号安全告警区域,修改消息接收人。

处理 AK 泄露事件

收到 AK 泄露告警通知后,表示阿里云账号或 RAM 用户的 AK 和 SK 信息已外泄。请按以下步骤处理:

步骤一:手动处理泄露事件

云安全中心不支持自动处理 AK 泄露事件,需要先在外部完成以下操作:

  1. 删除或隐藏 GitHub 上的泄露内容:联系相关人员删除或隐藏包含 AK 信息的文件、仓库或代码。

  2. 在 RAM 控制台处理泄露的 AccessKey:在确保核心业务不受影响的前提下,删除或禁用已泄露的 AccessKey,并创建新的 AccessKey。具体操作,请参见删除RAM用户的AccessKey禁用RAM用户的AccessKey

步骤二:在控制台标注处理状态

手动处理完成后,在云安全中心控制台对该 AK 告警事件进行状态标注:

  1. 访问云安全中心控制台-风险治理-AK泄露检测

  2. 单击目标事件操作列的 处理,选择以下处理方式之一,并单击 立即处理

处理方式

适用场景

我已手动删除

已泄露的 AccessKey 不再继续使用,已删除。

我已手动禁用 AK

已泄露的 AccessKey 仍需继续使用,但需要临时使其失效。选择此方式后,可在 RAM 控制台重新启用该 AccessKey。

说明

如果 AK 已在 RAM 控制台禁用,云安全中心将自动同步 AK 的禁用状态,AK 泄露事件状态变为"我已手动禁用"。

加白名单

该事件为误报或可以安全忽略。选择后状态变为已加白名单,事件进入已处理列表。

需要恢复检测时,可从已处理列表进入 AK 泄露详情页,取消白名单即可。

查看 AK 调用记录

通过查看 AK 调用记录,可以确认 AK 泄露后是否被攻击者利用,从而了解泄露的影响范围。下文介绍通过操作审计服务按时间线查看 AK 调用事件的操作步骤。

说明

如需查看 AK 访问某个云产品的调用记录,可以使用操作审计的 AccessKey 审计功能。具体操作,请参见 查询 AccessKey 日志

  1. 云安全中心控制台 AK 泄露检测页面,获取需要查看的 AccessKey ID。

  2. 登录操作审计控制台。

  3. 在左侧导航栏,选择 事件 > 事件查询

  4. 在顶部导航栏选择要查询事件的地域。

  5. 选择类型为 AccessKey ID,输入待查询的 AccessKey ID,并选择查询时间段。

  6. 查看该 AccessKey ID 的调用事件列表,单击目标事件操作列的查看详情,可查看事件的详细记录信息。

    关于管控事件参数的更多信息,请参见 管控事件结构定义

持续关注 AK 异常调用

处理完 AK 泄露事件后,建议持续关注 AK 调用是否异常,防止类似事件再次发生,并在泄露发生时快速响应,缩小事件影响范围。

从攻击视角监测 AK 异常调用

云安全中心基于安全攻防经验和大模型,可检测常见的 AK 调用异常。例如:调用 AK 的 IP 地址在近期发起过攻击行为、该 IP 在云上批量调用多个用户的 AK、调用的 API 较为敏感且该 AK 出现过泄露等。

  1. 登录云安全中心控制台

  2. 在左侧导航栏,选择检测响应 > 告警。在控制台左上角,选择需防护资产所在的区域:中国内地非中国内地

    说明

    若已开通 Agentic SOC,请选择Agentic SOC > 管理 > 告警

  3. 将告警类型选择为云产品威胁检测,查看是否存在 AK 异常调用告警。

    说明

    如果存在 AK 异常调用告警,需要查看详情,及时确认该 AK 调用是否为正常行为。

  4. (可选)配置安全告警通知。

    进入云安全中心控制台 系统设置 > 通知设置 页面,配置安全告警的通知方式,以便及时收到 AK 调用异常告警。免费版仅支持配置站内信通知方式。具体操作,请参见 通知设置

监测阿里云账号调用 AK 等异常

操作审计服务提供内置告警,可监控阿里云账号调用 AK 及 AK 异常调用。在操作审计控制台启用内置告警 AK 使用的异常频率告警Root 账号 AK 使用检测,以便在出现 AK 异常调用时收到通知。具体操作,请参见 设置事件告警

基于历史行为检测 AK 异常调用

操作审计服务提供的审计事件洞察(Insights 事件)功能,可基于历史行为分析调用率异常的 AK,及时发现异常行为。开通并查看 Insights 事件的具体操作,请参见 通过操作审计控制台查询 Insights 事件

使用建议

  • 不使用阿里云账号(主账号)AccessKey。更多信息,请参见 不使用主账号 AccessKey

  • 避免将 AccessKey 信息硬编码到代码中,可通过配置环境变量的方式管理 AccessKey。更多信息,请参见 凭据的安全使用方案

  • 使用私有的 GitHub 代码仓库管理代码,或搭建企业内部代码托管系统,防止源代码和敏感信息泄露。