令牌盗窃剧本

本文及其随附的决策树为安全分析员和事件回应者提供指导,以识别和调查组织中的令牌盗窃攻击。 随着组织不断提高其安全状况,威胁行动者会使用更复杂的技术来入侵资源。 需要快速响应,以调查、遏制和修正令牌盗窃攻击造成的损害。

当威胁行动者入侵并重播颁发给用户的令牌时,即使该用户满足多重身份验证,也会发生令牌盗窃攻击。 由于满足身份验证要求,威胁行动者可使用窃取的令牌获得对组织资源的访问权限。

了解详细信息:

先决条件

  • 访问 Microsoft Entra ID(以前名为 Azure AD)登录审核用户和服务主体的日志
  • 具有以下分配的 Microsoft Entra 角色之一的帐户:
    • 安全管理员
    • 全局管理员
    • 安全读取者
    • 全局读取者
    • 安全操作员

建议

尽管没有要求,但我们建议:

要求

配置 SIEM

安全信息和事件管理 (SIEM) 工具(例如 Microsoft Sentinel)具有集中式日志可见性。 配置 SIEM 以引入以下风险事件:

  • 登录日志和审核日志
  • Microsoft Sentinel 集成(预览版)介绍如何将 Microsoft Defender for Cloud Apps 与 Microsoft Sentinel(可缩放的云原生 SIEM 和 SOAR)集成,以便集中监视警报和发现数据。
  • Office 登录日志和审核日志
  • 配置相关警报

了解详细信息:

按照直接检测威胁中的指导,为威胁检测和响应配置 Microsoft Sentinel(或第三方 SIEM)规则。

了解详细信息:

  • 设置 Microsoft Entra ID 保护警报。 操作方式:导出风险数据介绍如何选择将数据存储更长时间,具体方式是更改 Microsoft Entra ID 中的诊断设置以将 RiskyUsers、UserRiskEvents、RiskyServicePrincipals 和 ServicePrincipalRiskEvents 数据发送到 Log Analytics 工作区、将数据存档到存储帐户、将数据流式传输到事件中心,或将数据发送到合作伙伴解决方案。

将 SIEM 与 Microsoft Defender for Cloud Apps 集成

默认情况下,已连接 Microsoft Defender for Cloud Apps 和 Microsoft Sentinel。 如果不使用 Microsoft Sentinel,请将 SIEM 连接到 Microsoft Defender for Cloud Apps,其中该应用支持 Microsoft Sentinel、ArcSight by Open Text 和一般的通用事件格式 (CEF)。

了解详细信息:

将 SIEM 与 Microsoft Graph API 集成

将 SIEM 连接到 Microsoft Graph 安全性 API。

  • 受支持的集成选项 - 编写代码连接应用程序以获得见解。 Microsoft Graph 安全性 API 概述介绍了主要功能并提供了代码示例。
  • 本机集成和连接器 - 由 Microsoft 合作伙伴构建
  • 连接器 - 适用于 API,通过 SIEM 解决方案、安全业务流程自动响应 (SOAR)、事件跟踪和服务管理 (ITSM)、报告等

调查

请查看以下部分,了解有关触发器、调查清单等的指导。 使用令牌盗窃工作流决策树,来帮助你调查和决策。

调查触发器

每个组织都有典型与非典型方案。 使用以下调查清单,来确定触发器或异常活动:

  • 标识
  • 登录日志
  • 审核日志
  • Office 应用
  • 与受影响用户关联的设备

如果确认这些用户活动有效,则没有违规。 如果无法确认它们有效,则假设出现违规并继续缓解操作。 通过在 Microsoft Sentinel 门户或 SIEM 中搜索和调查事件类型,来检测令牌盗窃尝试。

了解详细信息:

确保你收到以下事件的警报,这可能表示存在令牌盗窃攻击:

Microsoft Entra ID 保护功能具有以下触发器:

  • 异常令牌(脱机检测)- 检测到非典型令牌特征,或在不熟悉的位置使用令牌。 检测此行为的算法使用来自 Microsoft Entra ID 且具有 Microsoft 365 属性的数据。 此检测指示攻击者是否正在重播令牌。

  • 不熟悉的登录属性 - 与登录历史记录进行比较,登录异常。 用户登录属性不熟悉时,即会发生此事件。

  • 不熟悉的登录 - 发生非交互式登录。 加强对不熟悉的登录的审查,尤其是在检测到可疑设备时。 我们建议你立即注意检测非交互式登录。

  • 尝试访问主刷新令牌 (PRT) - 在 Windows 10 和 11 中,Microsoft Defender for Endpoint 检测到对 PRT 和关联项目的可疑访问行为。 检测会馈送到 Microsoft Entra 风险评分中,可控制资源条件访问。 此检测是一种低容量检测且并不常见。

  • Microsoft Defender XDR 检测 – 集成 Microsoft Entra ID 保护和 Microsoft Defender XDR 以在一个门户中查看检测结果。

    • 默认情况下,会启用安全运营中心 (SOC) 最相关的警报。 对于所有 Microsoft Entra IP 风险检测,或者要关闭集成,请在 Microsoft Defender XDR 警报服务设置中进行更改。

    Screenshot of the Show high impact alerts only option.

  • 可疑 URL - 用户可能已单击了网络钓鱼电子邮件链接。 可疑电子邮件可能是中间对手 (AiTM) 网络钓鱼工具包和攻击的开始。

    Screenshot of a list of suspicious activity.

  • 其他可疑行为 - Defender for Microsoft 365 高级搜寻者警报证据和警报表显示指示令牌失窃的操作。 查看日志以确定:

    • 用户下载的批量文件
    • 用户下载的异常文件
    • 向帐户添加多重身份验证或无密码凭证
    • 添加或编辑的邮箱转发规则

开始调查

在开始之前:完成并启用先决条件。 此外,此剧本假设 Microsoft 客户和调查团队可能没有可用的 Microsoft 365 E5 或 Microsoft Entra ID P2 许可证套件,或者尚未配置许可证。 因此,请注意提供的自动化指导。

对于此调查,假设你在以下方面有潜在的令牌盗窃泄露迹象:

  • 用户报表
  • Microsoft Entra 登录日志示例
  • Microsoft Entra ID 保护检测

调查清单

了解典型应用场景后,确定异常活动:

  • 标识
  • 登录日志 - 意外位置或设备
  • 审核日志 - 新注册的设备、其他多重身份验证选项或凭证更改。
  • Office 应用 - 自发生触发以来的更改
  • 设备 - 与受影响用户关联。 评估自事件触发以来的警报。

泄露或令牌盗窃的证据:用户确认

在确定可能被盗用的用户帐户之后,验证可疑活动。 此流程因组织而异,每个组织各不相同。

了解详细信息:

用户和/或设备调查

如果你认为帐户或多个用户帐户被盗用,请区分两个上下文之间的调查活动:用户会话和计算机设备。

用户调查清单

调查包含用户行为的日志。 如果出现以下情况,则存在可疑的用户活动:

  • 在 Microsoft Entra ID 保护或类似功能中,警报提示令牌盗窃
  • 添加到用户的其他凭证或设备
    • 记录要撤销的标识列表
  • 受影响的用户收到可疑电子邮件
  • 网络钓鱼调查提供有关识别和调查组织内部存在的网络钓鱼攻击的指导。
  • 受影响的特权帐户
    • 查看被盗用后所做的特权帐户更改
  • 收件箱规则创建
    • 记录可疑的邮箱规则
    • 被盗用的用户
    • 记录 IP 地址和用户帐户
    • 确定其他可能被盗用的帐户
    • 从可疑 IP 地址或用户代理字符串中识别其他身份验证

网络钓鱼或恶意电子邮件

如果有迹象表明存在钓鱼电子邮件或其他电子邮件,调查 Microsoft 365 中传递的恶意电子邮件介绍如何查找和调查可疑电子邮件信息。

攻击者 IP 地址或用户代理字符串身份验证

以下查询可以引用 Sentinel 中的表。 查找暂留迹象:多重身份验证注册、设备注册、邮箱转发规则或收件箱规则。

了解 Microsoft Entra 安全运营指南中的规则。

AADUserRiskEvents
| where RiskEventType contains "unfamiliar" or RiskEventType contains "anomalous"
| where IpAddress == "x"

或者,使用登录日志,获取具有相同 IP 地址的用户。

SigninLogs
| where IPAddress == "x"

对于特权用户,请确认时间窗口内的任何更改。

AuditLogs
| where TimeGenerated between (datetime(2023-03-01) .. datetime(2023-03-15))
| where InitiatedBy == "x"

特权帐户的身份验证方法更改

使用以下查询,查找用户安全信息中的任何更改,其中用户已获分配特权管理员角色。

Query
  let queryperiod = 14d;
  let queryfrequency = 2h;
  let security_info_actions = dynamic(["User registered security info", "User changed default security info", "User deleted security info", "Admin updated security info", "User reviewed security info", "Admin deleted security info", "Admin registered security info"]);
  let VIPUsers = (
      IdentityInfo
      | where TimeGenerated > ago(queryperiod)
      | mv-expand AssignedRoles
      | where AssignedRoles matches regex 'Admin'
      | summarize by tolower(AccountUPN));
  Audit logs
  | where TimeGenerated > ago(queryfrequency)
  | where Category =~ "UserManagement"
  | where ActivityDisplayName in (security_info_actions)
  | extend Initiator = tostring(InitiatedBy.user.userPrincipalName)
  | extend IP = tostring(InitiatedBy.user.ipAddress)
  | extend Target = 
tolower(tostring(TargetResources[0].userPrincipalName))
  | where Target in (VIPUsers)

可疑标识和异常

使用日志分析或 Sentinel(来自 Microsoft Entra ID 中的日志),发现可疑的标识和异常。

SigninLogs
    | where UserId == "x"
    | extend deviceId_ = tostring(DeviceDetail.deviceId)
    | extend displayName_ = tostring(DeviceDetail.displayName)
    | extend city_ = tostring(LocationDetails.city)
    | extend countryOrRegion_ = tostring(LocationDetails.countryOrRegion)
    | summarize min(TimeGenerated), max(TimeGenerated) by IPAddress, ResultDescription, deviceId_, displayName_, city_, countryOrRegion_, AppDisplayName

注意

并非所有 Microsoft Entra 活动生成警报在 SigninLogs 中都有相应的条目,如异常令牌检测所示。 我们建议你查看其他表,例如 OfficeActivityAuditLogs

OfficeActivity
    | where UserId == "x"
    | summarize min(TimeGenerated), max(TimeGenerated) by ClientIP, OfficeWorkload

Microsoft Defender XDR 的 CloudAppEvents 表中的活动

使用此方法取决于记录设置。

M365D AH
CloudAppEvents
| where AccountId == "x"
| summarize min(Timestamp), max(Timestamp) by IPAddress, CountryCode, City, Application

CloudAppEvents 介绍了高级搜寻架构,其中该架构包含 Microsoft Defender for Cloud Apps 涵盖的各种云应用和服务中的活动的相关信息。

AuditLogs、AzureActivity、AzureDevOpsAuditing 和 CloudAppEvents 中的恶意操作

确认攻击者访问的内容:标识文档、代码、仓库等。查看有关敏感信息或硬编码凭证的项目,如以下 SharePoint 示例所示。

OfficeActivity
    | where OfficeWorkload contains "SharePoint" (or other)
    | where ClientIP == "bad IP"
    | project TimeGenerated, Operation, OfficeObjectId

设备调查清单

调查记录设备行为的日志。 如果出现以下情况,则存在可疑的设备活动:

  • Microsoft Defender 门户:
    • 设备具有令牌盗窃相关警报。 搜索设备 ID:在 AlertId 上加入 AlertInfo |其中 DeviceId 为 x
    • 尝试访问主刷新令牌 (PRT)
    • 用户已安装可疑应用、扩展或最近浏览的可疑网站。 在 Microsoft Defender for Endpoint 警报中搜索可疑流程或文件。 警报可能包括可疑内容:从已知的正在兴起的威胁、进程名称、进程行为、启动的服务或计划任务活动植入进程。 有关可能的 C2 通信,请使用可能的命令和控制活动。
    • 调查 Microsoft Defender for Endpoint 警报介绍如何调查影响网络的警报、了解它们的含义以及如何解决这些警报。
  • 高级搜寻:
    • 设备具有来自可疑进程的传出网络连接。 在触发器窗口中查找异常传出活动。
    • 本地帐户已执行可疑活动

了解详细信息:

将设备与网络隔离

包含设备。 在 Microsoft Defender for Endpoint 中的设备上执行响应操作介绍如何通过隔离设备或收集调查程序包,对检测到的攻击快速做出响应。

攻击者访问的数据

数据丢失是指数据销毁或泄露。 发现攻击者访问的内容和数据机密性。 调查 SharePoint、OneNote、Azure DevOps。 轮换凭证。

数据丢失过程

使用灾难恢复计划有关攻击者访问公司数据的指导。 使用以下指南,来防止数据丢失,并改进或创建灾难恢复计划。

其他受影响的用户或设备:整个环境

查询整个环境的入侵指标。 例如,更多受影响的设备。 循环访问以确保发现受影响的用户和设备。

遏制状态

若发现另外一个用户、设备、应用程序或工作负载标识是恶意或被盗用的,则应执行操作来遏制攻击者。 如果遭到入侵,则可能不会立即滚动更新应用程序的凭证,也不会将其删除。

有时,收集攻击者详细信息比立即响应攻击更重要。 我们建议你考虑以下指导的顺序。 在此示例中,遏制或缓解优先于信息收集。

重要

确定禁用用户或设备帐户的安全性和业务影响。 如果数量太大,则请考虑迁移到恢复阶段。

包含任务列表

  1. 若帐户密码违规或者帐户密码泄露,则应予以更改。

  2. 阻止该用户。 在 Microsoft Entra ID 中撤销用户访问权限介绍如何在被盗用的帐户、员工离职和其他内部威胁等情况下撤销用户的所有访问权限。

  3. 在 Microsoft Entra ID 保护或类似功能中,将相关帐户标记为被盗用。

  4. 阻止攻击者 IP 地址。

    提示

    攻击者可以使用合法的虚拟专用网络 (VPN),这可能会在更改 IP 地址时产生更大的风险。 如果使用云身份验证,请阻止 Defender for Cloud Apps 或 Microsoft Entra ID 中的 IP 地址。 如果使用的是联合身份验证,则须在 Active Directory 联合身份验证服务 (ADFS) 前方的防火墙级别阻止该 IP 地址。

  5. 启用 MFA。 启用 Microsoft Entra 多重身份验证介绍如何在登录事件期间提示用户完成其他形式的身份识别。

  6. 为用户和登录风险,启用 Microsoft Entra ID 保护。 风险策略:Microsoft Entra ID 保护介绍 Microsoft Entra 条件访问中的风险策略,其中这些策略可以自动应对风险并允许用户自行修正检测到的风险。

  7. 确定被盗用的数据:电子邮件、SharePoint、OneDrive、应用。 Microsoft Defender for Cloud Apps 活动筛选器可以扫描活动及更新新活动。

  8. 维护密码安全机制。 密码指导白皮书为最终用户和标识管理员提供密码管理建议。

  9. 循环访问,直到发现受影响的帐户和设备,并停止攻击。

恢复

在调查和包含后,请使用以下部分进行指导。

修正任务列表

完成调查和遏制后,修正损坏:

  • 禁用受影响的用户和设备帐户
    • 撤销当前令牌
    • 重置密码
  • 禁用添加的凭证和/或设备
    • 修正受感染的设备
  • 禁用可疑电子邮件规则
  • 回退被盗用特权帐户所做的更改

删除新增的凭证和设备

在重新启用受影响的帐户之前,请使用以下指导。 删除使用 Microsoft Entra 身份验证方法图形 API 添加的凭证。

若要删除用户电子邮件身份验证方法,请运行以下 Graph 调用:

DELETE /users/{id | userPrincipalName}/authentication/emailMethods/{id}

或者,删除添加的验证身份验证方法运行:

DELETE /users/{id | userPrincipalName}/authentication/microsoftAuthenticatorMethods/{microsoftAuthenticatorAuthenticationMethodId}

了解详细信息:

删除标识的用户帐户注册的设备。 使用以下 REST API 调用:

DELETE /devices/{id}
DELETE /devices(deviceId='{deviceId}')

攻击者访问的数据包含更多凭证

如果已启用 Microsoft Purview,请扫描环境。 将“所有凭证”实体定义与被盗用的帐户配合使用。 按照以下凭证滚动部分中所述,滚动标识的凭证。

了解详细信息:

过期并轮换泄露的机密

轮换与标识的用户或设备凭证关联的机密。

保护环境中的标识

以下文章提供有关如何保护标识的详细信息。

令牌失窃根本原因

有时,无法发现根本原因。 我们建议你完成调查,以产生可以显示根本原因的详细信息。 恢复后,可以执行更多调查步骤来帮助确定根本原因。

调查 Microsoft 365 中传递的恶意电子邮件介绍如何查找和调查可疑电子邮件信息。

后续步骤

*令牌盗窃工作流决策树