SSO统一身份认证SAML安全绕过漏洞 关联5个供应商6个CVE

SSO统一身份认证机制SAML近日爆出安全绕过漏洞SAML与OAUTH、OPENID、CAS齐名。攻击者利用SAML漏洞无须知道受害者密码,就可以通过他的账户验证。该漏洞关联到6个CVE ID,目前影响5个供应商。美国CERT发出预警通告

https://www.kb.cert.org/vuls/id/475445

SAML是什么

该漏洞影响SAML(安全断言标记语言),SAML这是一种基于XML的标记语言,通常用于在各方之间交换身份验证和授权数据。

SAML在单点登录(SSO)解决方案中具有最重要的用途,即允许用户使用单一身份登录帐户。与其他共享身份验证方案(如OAuth,OpenID,OpenID Connect和Facebook Connect-SSO)不同,它将用户的身份存储在用户拥有帐户的中央服务器上。

当用户尝试登录到其他企业应用程序时,这些应用程序(服务提供商 – SP)通过SAML向本地SSO服务器(身份提供商 – IdP)发出请求。

SAML漏洞出在XML注释处理引起的缺陷

在今天晚些时候发布的一份报告中,Duo Labs的研究人员发现了一个设计缺陷,影响了各种SSO软件和一些旨在支持基于SAML的SSO操作的开源库。

缺陷是这些库如何处理在SAML响应请求中插入的XML注释。例如,研究人员已经注意到,如果攻击者以破坏用户名的方式在用户名字段中插入注释,攻击者可能会访问合法用户的帐户。

攻击者利用这个漏洞的唯一条件,只需要在受害者的网络上拥有一个注册账号,这样它就可以查询SAML提供者并伪造请求,

“以不同用户的身份欺骗SAML系统并进入身份验证”

https://duo.com/blog/duo-finds-saml-vulnerabilities-affecting-multiple-implementations

缺陷影响到多个供应商及开源库

Duo Labs的研究人员表示,他们发现了多个容易遭受此类攻击的SSO供应商,以及使用以下库之一来解析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

美国CERT给出的受影响范围更大

Vendor Status Date Notified Date Updated
Clever, Inc. Affected 24 Jan 2018 26 Feb 2018
Duo Security Affected 22 Feb 2018
OmniAuth Affected 24 Jan 2018 06 Feb 2018
OneLogin Inc Affected 24 Jan 2018 27 Feb 2018
Shibboleth Consortium Affected 24 Jan 2018 06 Feb 2018
AssureBridge Not Affected 27 Feb 2018
Okta Inc. Not Affected 29 Jan 2018 27 Feb 2018
Box Unknown 23 Feb 2018 23 Feb 2018
Cisco Unknown 23 Feb 2018 23 Feb 2018
Danish e-Infrastructure Cooperation (WAYF) Unknown 24 Jan 2018 24 Jan 2018
Entr'ouvert Unknown 24 Jan 2018 24 Jan 2018
GitHub Unknown 24 Jan 2018 24 Jan 2018
Google Unknown 23 Feb 2018 23 Feb 2018
Microsoft Unknown 23 Feb 2018 23 Feb 2018
Pivotal Software, Inc. Unknown 24 Jan 2018 24 Jan 2018

但是,Duo Labs表示,该漏洞影响基于SAML的SSO提供商的方式不同。Duo Labs团队表示:

“该漏洞并不总是可以利用,.SAML [身份提供商]和[服务提供商]通常都是可配置的,所以有很大的增加或减少影响的空间。

研究人员建议禁用敏感网络上用户帐户的公共注册,并手动审查每个用户,以避免攻击者首先在内部网络上注册帐户。

如果这是不可能的,网络管理员可以配置一个可接受的电子邮件地址域名的白名单,以限制谁可以在网络上注册,尽管这不是一个可靠的保护措施,而确定的攻击者会找到解决办法。

而且如果你采用了双因子认证机制(2FA)解决方案保护的帐户,攻击是不可能的。

发表评论