新闻快讯
< >

SAML漏洞:允许攻击者以其他用户身份实现登录

E安全3月4日讯 美国网络安全公司 Duo Labs 与美国计算机紧急响应小组协调中心(简称CERT/CC)的安全研究人员们日前发布安全公告,详尽描述了新的 SAML 安全漏洞。此项漏洞允许恶意攻击者在无需知晓受害者密码内容的前提下以合法用户身份完成登录验证。

SAML安全漏洞允许攻击者以其他用户身份实现登录-E安全

此项漏洞影响到 SAML(即安全声明标记语言),这是一种基于 XML 的标记语言,常被用于在各方之间交换身份验证与授权数据。
SAML 最为重要的用例体现在单点登录(简称SSO)解决方案当中。此类解决方案允许用户利用单一身份实现帐户登录。与其它共享身价验证方案(例如OAuth、OpenID、OpenID Connect 以及 Facebook Connect)不同,单点登录会将用户的身份信息存储在用户帐户所在的中央服务器当中。
当用户尝试登录其它企业应用时,对应应用(即服务供应方,简称SP)会通过 SAML 向本地单点登录服务器(即身份供应方,简称IdP)发送请求。

缺陷源自XML注释处理机制

同一天,Duo Labs 研究人员发布另一份报告显示,他们发现的了一个设计缺陷,该缺陷影响到各类单点登录软件以及部分用于支持基于 SAML 的单点登录操作的开源库。此项缺陷源自这些库在处理 SAML 响应请求时向其中插入 XML 注释的设计特点。

举例来说,一旦攻击者以对用户名造成破坏的方式向用户名称内插入注释,则有可能将借此获得访问合法用户帐户的能力。

攻击利用这项安全漏洞的惟一先决条件,在于其需要在受害者网络当中拥有一个注册帐号。通过这种方式,攻击者即可查询 SAML 供应方并伪造请求,从而“作为其他用户进行身份验证,最终骗过 SAML 系统”。

受此缺陷影响的多家供应商、开源库

Duo Labs 的研究人员们表示,他们发现了多家易受此类攻击活动影响的单点登录供应商。具体来讲,使用以下库以解析 SAML 基于 XML 身份验证的供应商皆存在安全风险:

  • OneLogin - python-saml - CVE-2017-11427

  • OneLogin - ruby-saml - CVE-2017-11428

  • Clever - saml2-js - CVE-2017-11429

  • OmniAuth-SAML - CVE-2017-11430

  • Shibboleth - CVE-2018-0489

  • Duo Network Gateway - CVE-2018-7340

Duo Labs 方面表示,此项缺陷并不会影响到全部基于 SAML 的单点登录方案供应商。因为这项缺陷在很多情况下几乎不可能被利用。SAML 身份供应方与服务供应方通常拥有极高的可配置性,管理人员能够对影响范围进行有效控制。

如何避免受到漏洞影响?

研究人员们建议称,用户应禁用敏感网络上的用户帐户公开注册机制,并以手动方式审查每一位用户,从而避免攻击者抢先在其内部网络当中完成帐户注册。

如果无法实现上述目标,网络管理员则可配置一份可接受的电子邮件地址域名白名单,从而限制哪些人能够在网络之上注册。不过这种办法同样不是特别可靠,某些攻击者仍能找到有效的回避方法。

此类攻击不会影响到受双因素身份验证(简称2FA)解决方案保护的帐户。

更新:感兴趣的朋友可以点击此处查看Duo Labs方面发布的技术报告,CERT/CC亦将稍后通过此条链接发布相关处理建议(皆为英文原始链接)。

E安全注:本文系E安全独家编译报道,转载请联系授权,并保留出处与链接,不得删减内容。联系方式:① 微信号zhu-geliang ②邮箱eapp@easyaq.com
@E安全,最专业的前沿网络安全媒体和产业服务平台,每日提供优质全球网络安全资讯与深度思考,欢迎关注微信公众号「E安全」(EAQapp),或登E安全门户网站www.easyaq.com , 查看更多精彩内容。