OAuth 攻击呈上升趋势。去年12 月,微软威胁情报团队观察到威胁参与者滥用 OAuth 应用程序来接管云服务器并挖掘加密货币,在商业电子邮件泄露后建立持久性,并使用目标组织的资源和域名发起垃圾邮件活动。
什么是 OAuth(开放授权)?
OAuth(开放授权)是一种广泛采用的标准,可促进对互联网资源的安全和委托访问,旨在解决第三方应用程序的用户身份验证和授权挑战。OAuth 允许用户授予另一个应用程序对其资源的有限访问权限,例如个人数据、在线帐户和 SaaS 环境中的其他敏感项目,而无需共享其凭据。
OAuth 对于在 SaaS 应用程序之间实现无缝且安全的连接至关重要。当用户尝试将第三方 SaaS 应用程序连接到其帐户(例如,将生产力工具链接到云存储服务)时,OAuth 是中间身份验证机制。用户被重定向到 SaaS 提供商的身份验证服务器,在其中登录并授予第三方应用程序访问特定数据的权限。然后,第三方应用程序会收到一个访问令牌,它可以使用该令牌在定义的范围内与用户的数据进行交互,同时保持其安全性和隐私性。这种去中心化和基于代币的方法增强了 SaaS 应用程序互连环境中的安全性和用户控制。
OAuth 集成用于改进工作流程、添加功能并提高原始应用程序的可用性。然而,当威胁行为者部署时,它们非常危险且难以检测。正如 Microsoft 最近观察到的以及 Adaptive Shield 研究人员今年早些时候指出的那样,威胁行为者可以创建一个表面上看起来可信的应用程序,但包含不必要的高风险权限请求。一旦用户将其连接到他们的应用程序,该应用程序就可以自由地在其权限集中执行任何操作。
必须保护 SaaS 堆栈中的三个域才能成功防止 OAuth 攻击。
保护 SaaS 免受 OAuth 攻击
OAuth 攻击凸显了实施强大的访问控制、保护用户帐户以及监控异常或可疑活动的重要性。
1.实施强有力的访问控制
SaaS 安全始于访问控制。这限制了谁和什么可以创建用户帐户。
OAuth 集成的核心是可以代表用户访问数据并具有定义的权限集的云应用程序。例如,当 Microsoft 365 用户将 MailMerge 应用程序安装到其 Word 时,他们实际上已为该应用程序创建了一个服务主体,并授予其广泛的权限集,包括读/写访问权限、保存和删除文件的能力以及能够访问多个文档以方便邮件合并。
组织需要为 OAuth 应用程序实施应用程序控制流程,并确定应用程序(如上例所示)是否获得批准。我们经常看到威胁行为者滥用此方法并引入恶意应用程序,其处理程序可以使用授予的权限进入 Microsoft 365、Google Workspace、Salesforce、Slack 等,下载数据和文件并使用 SaaS 恶意软件来保持持久性。
可以实施多种访问控制来防止未经授权的 OAuth 集成。虽然并非每个应用程序都具有所有这些选项,但大多数应用程序应至少具有其中一种配置以防止 OAuth 攻击。
● 创建允许或禁止连接到应用程序的白名单和审批流程应用程序;
● 防止在未经批准的情况下集成任何请求高风险范围的第三方应用程序;
● 维护和审查 OAuth 集成的日志;
● 如果可能,任何第三方集成都需要管理员批准。
2. 强化用户账户身份安全
身份是边界,不安全的 SaaS 用户可能会被威胁行为者以多种方式利用。在成功进行网络钓鱼或密码喷射攻击后,威胁行为者可以轻松访问具有与受害者相同的权限集的应用程序。
一旦进入,他们就可以快速将其恶意应用程序连接到中心应用程序并授予其高权限。即使他们失去了对中心应用程序的访问权限,他们的恶意应用程序仍将与其原始权限集连接。
Storm-0324 是一个恶意威胁组织,以这种方式利用 Microsoft Teams。利用 Teams 松懈的安全设置,威胁行为者组织能够以外部用户身份发送 Teams 消息、冒充员工进行网络钓鱼攻击、启动恶意软件并修改发送消息的内容,而不会留下任何痕迹。
安全团队应该通过两个不同的视角来看待用户安全。第一个是他们访问应用程序的方式。应用程序应配置为需要多重身份验证 ( MFA ) 和单点登录 (SSO)。密码策略应遵循领先标准的建议,并且应禁用所有用户对应用程序的本地访问。
其次,安全团队需要通过强化全局和用户配置来减少 SaaS 攻击面 - 在上面的示例中,组织本可以阻止外部用户发送消息。
一旦用户进入应用程序,第三个镜头就会跟随用户。如果帐户已被威胁行为者接管,或者用户的行为违背了公司的最佳利益并构成威胁,则监视用户活动的行为和操作异常可以帮助提高警惕。这个镜头称为身份威胁检测和响应 (ITDR),对于在造成损害之前检测威胁至关重要。
保护用户帐户(无论是在用户访问应用程序的方式还是在应用程序内的行为方面)是防止 OAuth 攻击在应用程序内获取购买的关键部分。
3.监控第三方应用程序活动
安全团队必须监控和管理连接到 SaaS 堆栈的所有第三方应用程序,并全面了解 OAuth 集成期间请求的范围。他们应该通过客户端 ID 和密钥验证 OAuth 客户端,以确保只有注册和经过身份验证的客户端才被授予访问权限。休眠的应用程序应该断开连接,由已取消配置的用户安装的应用程序也应该断开连接。
此外,安全团队应审查应用程序活动。当 OAuth 集成应用程序出现可疑行为时,自动化工具应扫描日志并报告。例如,显示异常访问模式或地理异常的应用程序应被视为可疑。API 调用的突然增加、从新位置访问数据、频繁请求新的访问令牌以及应用程序权限的反复更改也都是恶意应用程序的迹象。
安全团队应定期检查其日志,以查看其 OAuth 应用程序的行为是否符合预期,并删除那些可疑或休眠的应用程序。
威胁参与者想要您的 SaaS
SaaS 应用程序包含近 70% 的企业数据。对于希望通过攻击获利的威胁行为者来说,它们是一个非常诱人的目标。OAuth 应用程序很容易被安全团队忽视,并被授予网络犯罪分子进行攻击所需的访问权限。
为了实现真正的 OAuth 安全,组织必须定期审核和审查 OAuth 权限,并教育用户了解来自应用程序本身的网络钓鱼攻击的危险。自动化 OAuth 监控对于健康的 SaaS 生态系统也至关重要。