未授权策略聚焦:通过第三方身份提供商获取初始访问 安全博客
非法策略聚焦:通过第三方身份提供者获取初始访问权限
by Steve de Vera 和 Mike Saintcross 于 2024年11月04日 发表在 高级 (300) 和 安全、身份与合规性永久链接评论
关键要点
本文探讨了网络威胁者利用客户配置初始访问权限的最新策略。识别和分析 AWS CloudTrail 中的安全事件为发现潜在的威胁活动提供了机会。防止第三方身份提供者的未经授权的访问是维护账户安全的关键。安全是 Amazon Web Services (AWS) 和客户之间的共同责任。作为客户,您选择的服务、连接它们的方式以及运行解决方案的方式都可能影响您的安全态势。
为了帮助客户履行责任并找到适合其业务的正确平衡,AWS 在共享责任模型下提供强大的默认配置、提供如 AWS WellArchitected Framework 和 客户合规指南 的指导,并提供 多种安全服务。
作为我们工作的组成部分,AWS 客户事件响应团队 (AWS CIRT) 观察到各种威胁行为者利用意外的客户配置所使用的策略和技术。理解这些策略可以帮助改善设计决策、提升响应计划,并帮助在环境中发生此类情况时进行检测。
本文将深入探讨网络威胁者利用特定客户配置或设计进行未经授权的 AWS 账户资源使用的最新技术。我们将解释这些技术、导致机会的客户配置,以及您可以使用的 AWS 特性和服务来帮助减轻影响。
技术概述
身份联合是两个实体之间建立信任以验证用户并传达授权访问资源所需信息的系统。简单来说,该可选功能允许您为所有用户和组使用一个中央系统身份存储。请注意,您可以在一个 AWS 账户中同时配置多个身份提供者。随后,您可以通过使用这种信任关系来授予这些身份对您 AWS 资源的访问权限。
事件的前提条件
为了让威胁行为者在此类安全事件中获得 AWS 账户的初始访问,必须配置第三方身份提供者IdP来通过联合管理对 AWS 账户或组织中的多个 AWS 账户的访问。威胁行为者还必须具备向客户的身份存储写入的能力例如,他们可以创建用户、或已攻陷足够特权的用户等。
当配置 IdP 用于访问 AWS 账户时,可以向通过 IdP 认证的用户授予对该 AWS 账户中资源的访问权限。这意味着 AWS 会利用与 IdP 的预配置信任,进行用户身份识别例如,用户名、密码和多重身份验证MFA。在此技术中,威胁行为者利用第三方 IdP 用户的访问权限获得认证,通过该权限修改和创建客户的 AWS 账户资源。假如威胁行为者能够在 IdP 的身份存储中创建用户,或者已经获取了已存在于身份存储中的特权用户的凭证,则此场景是可能的。
检测和分析机会
在这种情况下,您可以通过多种方式找到威胁行为者活动的证据。但是,客户面临的挑战在于区分威胁行为者采取的行动与正常运营过程中采取的行动。客户行动及威胁行为者活动的主要证据来源为 AWS CloudTrail,但 Amazon GuardDuty 和 AWS Config 也可提供相关的检测信息。
AWS CloudTrail
您的调查应首先审查 CloudTrail 事件历史中的特定 API 调用。以下是与此策略相关的一些调用包含各种请求参数和字段值的列表。
请记住,在安全事件期间,可能会出现其他 API 调用,这些调用可能指示潜在的威胁行为者活动。在这篇文章中,我们只关注与此初始访问策略有关的 API 调用。
在组织管理账户中,威胁行为者利用的操作包括:
UpdateTrail:该操作用于更新 CloudTrail 路径设置,例如您正在记录的事件以及用于日志传递的存储桶。威胁行为者会使用此 API 端点更改或减少后续 API 调用的日志记录。PutEventSelectors:此 API 调用用于配置为特定 CloudTrail 路径选择的事件。AWS CIRT 在某些情况下观察到此操作的事件选择被配置为停用对 管理事件 的记录,并在其他情况下仅记录读取事件与写入事件如 DeleteBucket 和 RunInstances 相对。事件记录中的 requestParameters 字段概述了请求的选择配置,如图1所示。图1:事件选择设置为只读
图2展示了 PutEventSelectors 操作的 CloudTrail 事件记录,其中 includeManagementEvents 参数设置为 false。
图2:事件选择中 includeManagementEvents 参数设置为 false
StartSSO:当威胁行为者初始化 IAM 身份中心以扩展其在组织中的访问权限时,此操作被记录。此事件显著,因为这是一个不常见的操作,如果此事件之前未被授权,则可以引起对潜在恶意活动的警觉。CreateUser:该 API 调用在威胁行为者创建用户时被记录。虽然 CreateUser 操作可以使用 iamamazonawscom 的 eventSource,但如果此 API 是由身份存储发出的,则 eventSource 将列为 ssodirectoryamazonawscom。该事件如图3所示并未实际包含创建的用户名。然而,它确实包含了您可以使用的元素来确定创建的用户名。图3:创建用户事件的 CloudTrail 事件记录
通过使用 AWS CLI,您可以通过以下命令使用 identityStoreId 和 userId 检索 CreateUser 操作请求的实际用户名:
飞机加速器永久免费版bashaws identitystore listusers identitystoreid lt insertidentityStoreIdgt query Users[UserId==lt insertuserIdgt]UserName
图4显示了使用该命令的结果。
图4:从 UserId 确定身份存储用户名
使用此用户名在成员账户中筛选 CloudTrail 事件历史。这将减少显示的事件,聚焦于该特定用户所采取的行为,使事件的行动图谱更加清晰。
CreateGroup 和 AddMemberToGroup:第一个操作在特定身份存储中创建一个组,而第二个操作向该组添加成员请注意,这两个具体操作使用 ssodirectoryamazonawscom 的 event source。CreatePermissionSet:该操作在指定的 IAM 身份中心实例内创建一组权限,可应用于组织中的成员账户以启用对该成员账户中资源的访问。通过 permission set 授权的会话期限由 sessionDuration 值指示在图5中,此值设置为最长的12小时。图5:CreatePermissionSet 操作的 CloudTrail 事件记录
要具体了解在 Permission Set 创建过程中分配了哪些策略,您可以在 AWS 管理控制台中查找该权限集,或使用以下 AWS CLI 命令 aws ssoadmin listmanagedpoliciesinpermissionset,使用 IAM 身份中心实例 ARN 和权限集 ARN 作为参数。此 CLI 命令仅显示AWS 管理的策略。要查看客户管理的策略或内联策略,使用 aws ssoadmin getinlinepolicyforpermissionset 或 aws ssoadmin listcustomermanagedpolicyreferencesinpermissionset CLI 命令。图6显示了该命令的输。
图6:确定权限集的策略
CreateAccountAssignment:此 API 调用为使用指定权限集的 AWS 成员账户分配对主体的访问权限,通常是先前操作中创建的权限集。此操作的请求参数如图7所示包含目标账户 IDtargetId 字段、permissionSetArn 以及 principalType用户或组。此活动在多个成员账户中多次记录,每次记录有所不同。图7:CreateAccountAssignment 的 CloudTrail 事件
当威胁行为者在组织的管理账户中调用 CreateAccountAssignment 操作时,以下操作会自动在组织的成员账户中采取:
CreateSAMLProvider:创建一个支持 SAML 20 的身份提供者。AttachRolePolicy:将指定的管理策略附加到指定的 IAM 角色。CreateRole:在 AWS 账户中创建一个新角色。CreateAccessKey:此操作用于为威胁行为者控制下的用户创建访问密钥。GetFederationToken:威胁行为者假设前一步中提到的用户身份,调用 GetFederationToken API 操作以创建临时凭证。这些临时凭证随后被威胁行为者用于继续以新的身份进行未经授权的操作,如通过 GetFederationToken 事件中指定的 name 参数所标识见图8。GetFederationToken 事件还包括其他详细信息,例如分配给会话的策略、会话的持续时间以及从 GetFederationToken 调用生成的 accessKeyID。图8:GetFederationToken 的 CloudTrail 事件
CredentialChallenge、CredentialVerification 和 UserAuthentication:这些操作是 IAM 身份中心的 登录过程 的一部分,当用户通过 IAM 身份中心登录时会显示在 CloudTrail 中。Authenticate:此 API 调用与 IAM 身份中心登录过程相关,指示在 CloudTrail 事件记录中的 userIdentityuserName 字段中被认证的用户,如图8所示。图9:被认证用户的名称
Federate:当用户通过 IAM 身份中心 AWS Access Portal 登录并选择 管理控制台 选项时,这个 API 调用会记录在 CloudTrail 中,如图9所示。如果选择 命令行或编程访问 选项,则不会记录 Federate 事件。图10:通过 AWS Access Portal 登录

此外,您可能会在组织的成员账户中看到与此策略相关的以下操作:
AssumeRoleWithSAML:此事件记录与第7点中的 CreateSAMLProvider 操作相关。它返回一组临时安全凭证,供通过 SAML 身份验证响应已认证的用户使用。ConsoleLogin:当用户登录 AWS 管理控制台时,此操作会由 CloudTrail 记录。Amazon GuardDuty
如果启用了 Amazon GuardDuty,当 CloudTrail 路径配置为停止记录时,会触发 StealthIAMUser/CloudTrailLoggingDisabled 的发现。GuardDuty 还可以告知您账户中观察到的异常 API 请求,类型为 InitialAccessIAMUser/AnomalousBehavior。有关发现类型的更多信息,请参阅 了解 Amazon GuardDuty 发现。
AWS Config
您可以配置 AWS Config 规则来监控和评估特定 AWS 配置的合规性。例如,cloudtrailsecuritytrailenabled 规则将检查根据安全最佳实践定义的 CloudTrail 路径,例如同时记录读取和写入事件,以及记录管理事件。您可以将这些规则与 Amazon Simple Notification Service (Amazon SNS) 主题进行配置,以便在出现不合规事件时 提供通知。也可以创建自定义规则,以监控和评估其他配置。有关如何创建 AWS Config 自定义规则 的更多信息,请查看 AWS Config 自定义规则的说明。
减轻事件影响
如果威胁行为者能够向您的身份存储写入数据,不论是通过被攻陷的第三方服务、被攻陷的身份存储,还是因为威胁行为者创建了身份存储,您需要确保您控制着特权操作。在尝试消除联合访问向量之前
在 Amazon RDS for SQL Server 中跨账户备份和恢复透明数据加密数据库 数据库
在 Amazon RDS for SQL Server 中跨账户备份与恢复透明数据加密数据库主要要点Amazon RDS for SQL Server 简化了 Microsoft SQL Server...
通过使用 Amazon Bedrock 构建精心设计的生成式 AI 解决方案,实现卓越运营 机器学习
利用 Amazon Bedrock 实现业务卓越关键要点大型企业正在制定战略,以在整个组织中利用生成式人工智能 (AI) 的力量。采用生成式 AI 时面临数据隐私和安全、法律合规及运营复杂性等一系列挑...