将威胁检测添加到自定义身份验证流程中,使用 Amazon Cognito 高级安全功能 安全博客

29

使用 Amazon Cognito 增加自定义认证流程中的威胁检测

重点总结

本文介绍如何使用 Amazon Cognito 为自定义认证流程添加威胁检测。随着新 Cognito 功能层次的推出,高级安全特性现在成为 Plus 层客户的默认特性。启用高级安全功能后,您可以利用密码无关认证强化安全防护,降低账户被攻陷的风险。

2025年1月28日:以下博文强调了如何使用 Amazon Cognito 为自定义认证流程增加威胁检测。随着 新 Cognito 功能层次的推出,威胁防护功能现在已作为 Plus 层客户的默认特性。

使用 Amazon Cognito 的高级安全特性ASF客户应考虑切换到 Plus 层,该层包括全面的威胁防护功能、无密码登录等附加功能,并且相比其他层使用 ASF 可节省最多60 的费用。

近年来,无密码认证相较于传统的密码认证方法日益受到欢迎。应用程序所有者可以在不增加安全负担的情况下向其应用程序添加用户管理功能,并将大部分安全工作交给 Amazon Cognito。借助 Amazon Cognito,您可以通过实施无密码认证自定义用户认证流程,提高应用程序的安全性,因为它能安全地存储和管理用户信息。此外,Amazon Cognito 提供安全的认证流程和可核实的令牌。

本文将探讨如何利用 Amazon Cognito 的高级安全特性在无密码认证的自定义流程中增加威胁检测,进一步加强您对账户被攻陷风险的防御。

概述

Amazon Cognito 是一项客户身份和访问管理CIAM服务,简化了构建安全、可扩展且用户友好的认证解决方案的过程。借助 Amazon Cognito,您可以将用户注册、登录和访问控制功能集成到您的网页和移动应用程序中。其中一个关键特性是它支持 自定义认证流程,您可以利用它为用户实施无密码认证,或要求用户解决 CAPTCHA 或回答安全问题。

自定义认证流程如无密码认证为用户提供了良好的体验,同时通过采用强大的自定义因素增强了安全性。此外,建议实施额外措施来检测和减轻潜在风险。Amazon Cognito 的高级安全提供了一套强大的功能,专为检测风险而设计,并允许您采取措施来保护用户账户。

有关 Amazon Cognito 高级安全功能的更多信息,请参见 用户池高级安全特性。

通过将无密码认证与 Amazon Cognito 的高级安全特性结合,您可以增强应用程序的整体安全性,同时为用户提供无缝、用户友好的认证体验。

高级安全支持自定义认证流程

Amazon Cognito 的高级安全现在支持自定义认证流程,提供额外的威胁检测,包括无密码认证。通过启用风险检测和自适应认证,您可以提高使用自定义认证因素的应用程序的安全性。

自定义认证流程触发三个 AWS Lambda 函数,如图1所示。

图1:自定义认证流程

图1中示例的自定义认证流程包含以下步骤:

用户从自定义登录页面发起认证请求,该请求发送至 Amazon Cognito 用户池。用户池调用 Define Auth Challenge Lambda 函数。该函数确定需要创建的自定义挑战类型。最后,它将验证结果返回 Amazon Cognito,以便在认证成功时发放令牌。该函数在自定义认证流程开始时以及每次完成 Verify Auth Challenge Response Lambda 触发器后调用。用户池调用 Create Auth Challenge Lambda 函数。此函数会根据前一个步骤的指示为用户创建独特的挑战。用户用答案响应挑战,并通过调用 RespondToAuthChallenge API 将答案发送到 Amazon Cognito 用户池。用户池使用用户的响应调用 Verify Auth Challenge Response Lambda 函数。该函数确定答案是否正确。用户池然后再次调用 Define Auth Challenge Lambda 函数。该函数确认挑战已被成功回答且没有进一步的挑战需求,响应包含 issueTokens true。当启用高级安全功能时,Amazon Cognito 将对认证请求进行风险分析。如果检测到风险,会根据配置在高级安全中进行缓解。用户池现在将用户视为已认证,并向用户发送有效的 JSON Web TokenJWT响应第4步的认证挑战。

如何配置自定义认证流程的高级安全功能

在本节中,您将设置无密码认证流程,并向现有认证流程添加高级安全功能ASF以保护其。

配置高级安全功能

从 使用 Amazon Cognito 和 WebAuthn 实施无密码认证 开始。设置无密码认证后,前往 Amazon Cognito 的 AWS 管理控制台,为您的无密码认证流程配置高级安全功能。导航至为无密码认证解决方案创建的用户池。选择 高级安全 选项卡,然后选择 激活。在 包含功能和初始状态 弹窗中,您将看到 标准认证的威胁防护 和 自定义认证的威胁防护 已经包含在 审计模式 下,选择 激活。

注意:建议初期在审计模式下运行高级安全功能,以评估风险模式并决定每个风险等级的适当设置。

将威胁检测添加到自定义身份验证流程中,使用 Amazon Cognito 高级安全功能 安全博客

图2:激活高级安全功能

要设置完整功能模式并执行 自定义认证的威胁防护,选择 设置完整功能模式。

图3:激活自定义认证流程的威胁防护

对于 自定义认证实施模式,您可以选择:无强制 Amazon Cognito 不会收集已检测到的风险的指标,也不会自动采取预防措施。审计模式 Amazon Cognito 收集已检测到的风险的指标,但不采取自动行动。完整功能 Amazon Cognito 会根据您为用户池配置的不同风险等级自动采取预防措施。

选择 完整功能。

图4:配置执行级别

当 Amazon Cognito 检测到潜在恶意活动时,您可以选择 Cognito 默认 或 自定义 来响应每个风险等级。Cognito 默认 将阻止低、中、高风险的登录尝试。

图5:自适应认证配置

如果选择 自定义,您可以为每个风险等级自定义风险配置。

允许 登录尝试将在没有额外认证因素的情况下被允许。可选 MFA 如果用户适用于 MFA,Amazon Cognito 将向用户发送多因素认证MFA挑战。如果用户适用于 MFA:用户已配置了身份验证应用并且用户池已启用 TOTP MFA。用户拥有手机号码或电子邮件地址,且用户池启用了 SMS 或电子邮件消息 MFA。

如果用户适用 MFA,则他们必须正确响应 MFA 挑战。如果用户不适于 MFA,则 Cognito 将允许无额外身份验证因子的登录。

要求 MFA 如果用户适用于 MFA,Amazon Cognito 将向用户发送 MFA 挑战。如果用户适用 MFA,则他们必须正确响应 MFA 挑战。如果用户不适于 MFA,则 Cognito 将阻止登录尝试。阻止 Cognito 阻止未来的登录尝试。在自适应认证检测到潜在可疑活动时,您可以使用自定义电子邮件消息通知用户。该通知将发送给用户以确认其活动,Amazon Cognito 利用用户的回应来学习其行为模式。通过自定义通知消息,您可以提供更好的用户体验,并确保有关安全措施的通信对用户明确。

图6:自适应认证消息模板

审查威胁防护配置。

图7:自定义认证流程威胁防护配置

测试配置

要测试配置,请从多个设备和位置登录。Amazon Cognito 将根据您的配置计算风险并采取行动。在您通过不同设备登录多次后,您可以查看 用户事件历史。

在 Amazon Cognito 控制台中,转到用户池并搜索您作为登录用户的记录。选择用户名并导航至 用户事件历史。

图8:用户事件历史

您可以查看用户事件历史,包含风险等级和 Amazon Cognito 采取的行动,如图8所示。在图中,Amazon Cognito 的高级安全检测到高风险事件并阻止了登录尝试。

Amazon Cognito 将为每个登录尝试关联一个风险等级,并根据您的自适应配置;它将决定是允许登录、请求 MFA 响应,还是阻止请求。

注意:在请求中填充 UserContextData 对于风险引擎的功能至关重要。一些 SDK,例如 AWS Amplify,默认会填充该对象,但在自定义代码中,您需要确保在相关事件中正确计算并填充 userContextData。有关填充 userContextData 的更多信息,请参阅 将用户设备和会话数据添加到 API 请求。

此外,您可以将用户认证事件 导出 到 Amazon CloudWatch、Amazon Data Firehose 数据流或 Amazon 简单存储服务Amazon S3 存储桶,以进一步分析安全事件。

结论

在本文中,您了解了如何为 Amazon Cognito 中的自定义认证流程如无密码认证启用威胁检测。威胁检测帮助您监控用户活动,并在用户通过自定义认证流程登录时增强安全措施。

如果您对此文章有任何反馈,请在下面的 评论 区域中提交您的意见。

Vishal Jakharia

Vishal 是一位位于美国新泽西州的云支持工程师。他是 Amazon Cognito 的主题专家,热衷于与客户合作,为他们实现安全的认证与授权提供解决方案。他帮助客户在 AWS 云上迁移及构建安全可扩展的架构。

Varun Sharma

Varun 是一名高级 AWS 云安全工程师,他自豪地戴着安全披风。凭借解开 Amazon Cognito 和 IAM 的神秘面纱的能力,Varun 是这些服务的首选主题专家。当他不忙于保护云安全时,您会发现他在网络安全渗透测试的领域中游弋。而在像素安息时,Varun 又转身通过镜头捕捉自然之美。

标签:Amazon Cognito 安全博客

加载评论

闪连加速器免费版

减少 Amazon Kinesis 视频流延迟的方法 第二部分作者:Dean Colcott,日期:2022年12月21日在这篇关于如何减少 Amazon Kinesis 视频流KVS管理媒体延迟的第二部分中,我将描述如何优化 KVS、媒体生产者和媒体播放器的配置,以达到最佳延迟设置。此外,我还将介绍 Amazon Kinesis 视频流 Web 观看器,并进行一系列实验,以验证在不同条件下可以实...

高管如同飞行员关键要点现代商业环境迅速变化,技术发展同样令人惊讶,商业高管需学习如何应对这种复杂性。飞行员在飞行过程中需要快速做出安全决策,高管也应具备类似的能力,了解他们所控制的技术环境。高管应该时常进行“巡视”,随时了解他们的“引擎室”状况,以便在必要时迅速采取行动。在面对复杂系统时,多问“为什么”可以帮助找到问题的根本原因。今天的高管们肩负重大责任。不仅商业环境变化快速,技术发展的步伐也相当...