핵심 요약
- 기업용 싱글 사인온(SSO)의 사실상 표준이었던 SAML 프로토콜의 설계 결함과 퇴출 필요성을 다룬 보안 분석 글입니다.
- SAML의 기반인 XML 전자서명 검증 구조가 지나치게 복잡해 수많은 취약점(XSW, XXE 등)을 양산하고 현대 환경에 맞지 않는다는 지적입니다.
- 모래 위에 쌓은 복잡한 레거시 SAML 대신 OpenID Connect(OIDC) 등 현대적인 대체 프로토콜로 전환해야 한다고 제언합니다.
요약 기업용 싱글 사인온(SSO)의 표준으로 오랫동안 군림해 온 SAML(Security Assertion Markup Language) 인증 프로토콜을 이제는 완전히 퇴출해야 한다는 보안 업계의 강한 비판이 제기됐습니다. 2000년대 초반 대학가와 기업 IT 환경에서 웹 서비스 인증 문제를 해결하기 위해 도입된 SAML은 옥타(Okta), 원로그인(OneLogin), 듀오(Duo) 등 수십억 달러 규모의 기업용 신원 인증 시장을 일구는 핵심 기반이 되었지만, 태생적인 설계 결함과 과도한 복잡성으로 인해 무너져 내리고 있다는 지적입니다.
보안 전문가들은 SAML의 가장 근본적인 문제로 기반 기술인 XML과 XML 전자서명(XML signature validation) 체계를 꼽습니다. 위원회 주도로 4개의 서로 다른 XML 보안 규격을 한데 억지로 욱여넣으면서 프로토콜 자체가 지나치게 방대해진 데다, 현대의 간결한 JSON과 달리 XML은 태그, 네임스페이스, 스키마, CDATA 등 처리해야 할 복잡도가 지나치게 높습니다. 이로 인해 XXE, 엔티티 확장(Billion Laughs), DTD를 통한 SSRF, 각종 인젝션 공격 등 고전적인 취약점에 노출되기 쉽습니다.
특히 치명적인 결함은 'XML 서명 래핑(XSW)' 공격입니다. 이는 서명 유효성 검증과 실제 데이터 파싱 사이의 불일치를 악용해 공격자가 원하는 신원으로 인증을 조작할 수 있는 기법으로, 2012년에 이미 자동 검증 논문이 나올 정도로 오래된 공격군임에도 불구하고 여전히 현업 구현체들에서 완전히 해결되지 않고 있습니다. 대다수 구현체가 아무도 뜯어보지 않는 오래된 C 언어 기반 라이브러리(libxmlsec)에 의존하고 있어 모래 위에 성을 쌓은 꼴이라는 평가입니다.
글쓴이는 과거 듀오(Duo)의 온프레미스 액세스 게이트웨이(DAG) 제품을 개발하며 SAML 명세를 수년간 파고들었던 경험을 밝히며, 이 끔찍한 복잡성을 견뎌낼 것이 아니라 이제는 OpenID Connect(OIDC)와 같은 현대적인 대안으로 전환해야 한다고 강조했습니다.
Sponsored · 광고