Google Apps에 사용된 SAML의 취약점 공개

title; Google SAML Single Sign on vulnerability
link; http://www.armandoromeo.com/2008/09/google-saml-single-sign-on.html

Google은 자사의 'Google Apps APIs" 인증 방식으로 SAML 2.0 프로토콜을 사용하고 있습니다. SAML 2.0은 OASIS 표준으로 SSO(Single Sign-On)에 관련된 국제 표준입니다. Google 뿐만 아니라 여타 많은 기관에서 SAML을 지원하고 있죠.

그런데 지난 8월 27일에 열린 6th ACM Workshop onFormal Methods in Security Engineering (FMSE 2008) 에서 Google Apps API에 적용된 SAML의 보안 취약점을 지적한 논문이 실렸습니다. US-CERT와 NIST는 즉시 취약경고문을 공개했고, Google은 이미 6월에 해당 내용을 접수하여 취약점을 보완했습니다.

Formal Analysis of SAML 2.0 Web Browser Single Sign-On: Breaking the SAML-based Single Sign-On for Google Apps

간단히 취약경고문을 살펴보니 Google의 IDP(Identity Provider)가 발급하는 SAML assertion에는 SP(Service Provider)의 신원이 생략되었다는군요. 원래는 SP의 신원이 assertion에 명시되어, 해당 SP에게만 유효합니다. 또한 Google의 SP는 assertion에 명시된 SP의 신원을 체크해야 하는 작업도 수행하지 않습니다. 그러면 해당 assertion을 수신한 SP는 이 assertion을 이용하여 다른 SP에도 사용할 수 있습니다.

In the Google Single Sign on (SSO)implementation, the authentication response did not include the identifier of the authentication request or the identity of the recipient. This may allow a malicious service provider to impersonate a user at other service providers.[1]

논문에서 간단히 그림으로 설명해둔 부분만 발췌해 봤습니다. 원래는 아래 그림의 A3 메시지처럼 assertion 안에 'SP'가 명시되어 있어야 합니다. SP는 수신한 assertion을 파싱하여 자신에게 발급된 것임을 확인할 수 있습니다.


아래 그림은 공격 시나리오입니다. i라는 악의적인 SP가 bob(사용자)인 것처럼 google에 접근하여 assertion을 발급받습니다. A3메시지를 보면 assertion에 SP명이 포함되어 있지 않습니다. 이 때문에 i는 bob의 assertion을 조작하여 google에 보낼 수 있게 됩니다.

왜 그런 실수를 했는지는 모르겠지만, 명백히 구현상의 실수죠. 논문에 따르면, 연구원들은 SATMC(SAT-based Model-Checking)라는 보안 프로토콜 분석툴을 이용하여 Google이 구현한 SAML 프로토콜의 취약점을 몇가지 발견했습니다. 흥미로운 내용이라서 금주 내에 꼭 읽어봐야겠습니다.

SATMC has revealed a severe security flaw in the protocol used by Google that allows a dishonest service provider to impersonate a user at another service provider. We have also reproduced this attack in an actual deployment of the SAML-based SSO for Google Applications. This security flaw of the SAML-based SSO for Google Applications was previously unknown.[2]

레퍼런스
[1] http://www.kb.cert.org/vuls/id/612636
[2] http://www.ai-lab.it/armando/pub/fmse9-armando.pdf

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by S_H_Kim | 2008/09/10 23:11 | 기타 ID 동향 | 트랙백(1)

Tracked from Korean Ident.. at 2008/09/15 15:59

제목 : Google을 믿을 수 있나?
title; Hole in Google SSO service link; http://www.identityblog.com/?p=1011 Google Apps에 사용된 SAML의 취약점 공개 에서 Google 이 구현한 SAML 프로토콜의 취약점을 소개했습니다. Microsoft의 Kim Cameron도 관련 포스팅을 했네요. But according to the research done by the paper’s authors, t......more

◀ 이전 페이지다음 페이지 ▶