본문 바로가기

Network, Security

SAML(Security Assertion Markup Language), SSO(Single Sign On)

SAML(Security Assertion Markup Language)

SAML은 인증 정보 제공자와 서비스 제공자 간의 인증 및 인가 데이터를 교환하기 위한 XML 기반의 개방형 표준 데이터 포맷이다. 네트워크를 통해 여러 컴퓨터에서 보안 자격 증명을 공유할 수 있도록 하는 공개 표준으로 SAML이 기술하는 가장 중요한 요구사항은 웹 브라우저 통합인증인 SSO(Single Sign On)이다. SSO는 한번의 인증으로 여러 컴퓨터의 자원, 서비스를 사용할 수 있도록 해주는 기능이다. SSO는 인트라넷(폐쇠적 내부 망) 수준에서 일반적으로 동작하지만, 인트라넷 밖으로 확장하는 것은 문제가 있으며 상호 운용 사유 기술들이 범람하게 되었다.

한 대의 컴퓨터가 하나 이상의 다른 컴퓨터를 대신해 몇 가지 보안 기능을 수행할 수 있도록 하는 프래임워크로 인증과 권한 부여기능이 있다. 인증은 요청한 사용자가 정당한 사용자인지 확인하는 절차이고 권한 부여는 해당 사용자에게 설정된 권한을 확인하는 것으로 콘텐츠에 접근할 수 있는 권한이 있는지 확인한다.

SAML은 3개의 역할이 있다. 주체(일반적인 사용자), 인증 정보 제공자(Identity provider, IdP), 서비스 제공자(Service Provider, SP)가 있다. 이사이에 인증 정보 전송 시 SAML 어설션 형태로 전송하는데, 어설션은 전송하는 인증 정보가 한 컴퓨터에서 다른 컴퓨터로 전송될 때의 XML 문서이다. 최종적으로 인증 정보 제공자가 요청한 사용자는 정당한 사용자라고 판단하여 서비스 제공자에게 응답을 하면 서비스 제공자는 주체에게 서비스를 제공하게 된다. SAML 어설션은 전송시 보안을 위해 암호화할 수 있다. SAML과 관련된 모든 용어는 OASIS에서 제공하는 SAML 문서를 통해 확인할 수 있다. docs.oasis-open.org/security/saml/v2.0/saml-glossary-2.0-os.pdf

SAML 과정

 

SSO(Single Sign On)

SSO는 협업 소프트웨어(그룹 웨어)의 사용에서 예를 들수 있다. PC에 로그인 후 응용 프로그램, 그룹웨어 등을 사용할 때마다 추가적인 로그인을 해야한다면 사용자는 여러개의 아이디, 패스워드를 만들어야하고 기억해야할 번거러움이 있다. 이때, SSO를 사용하면 한번의 로그인으로 해당 PC의 자원과 응용프로그램 등을 사용할 수 있는 것이다. SSO을 이용하면 편리성이 증가하지만 보안에서 편리성과 안전성은 반비례 하여 치명적으로 다가올 수 있다. 그래서 이중 인증을 추가로 사용하여 약간의 편리성을 내려두고 안전성을 확보할 수 있는 방법이 있다. 이중 인증에는 생체 인증등을 통한 인증과 1회용 패스워드를 사용하는 등의 방법이 있다.

OAuth, OpenID 등과 같은 인증 스킴과 혼동할 수 있는데 OAuth는 인터넷 사용자들이 비밀번호를 입력하지 않고 다른 사이트에 자신들의 정보나 접근 권한을 부여하는 공통의 수단으로 웹 로그인 시 네이버아이디로 로그인, 카카오톡으로 로그인 등이 있다. 이때, SSO과 차이점은 SSO은 한번의 로그인으로 서비스, 자원을 모두 사용할 수 있는 반면, OAuth는 다른 웹사이트에 접속 시 매번 계정 정보를 넘겨줘야 한다는 차이점이 있다. 즉, 다른 웹에서 서비스 이용시 하나의 아이디로 추가적인 로그인을 해줘야 서비스를 이용할 수 있는 것이다.

그룹 웨어는 협업 소프트웨어라고도 하며 기업 등에서 여러 환경의 PC가 여러 사람들과 협업하여 문서 작업, 프로젝트 등을 진행할 수 있도록 환경을 제공하는 소프트웨어이다. 프로젝트 관리로 유명한 협업도구는 슬랙이 있고 코드 관리, 버전 관리 등은 Git이 있다. 이외에 화상 회의 시스템도 그룹웨어의 일종이라고 할 수 있다.

 

2021년 01월 보안 사고

솔라윈즈 사태 이후 새롭게 발표한 사고 내용이다. 공격자들이 SAML 인증 토큰을 남용했다는 내용이다. 인증 토큰을 사용한 증거를 찾아냄으로써 알려졌으며 공격자가 SAML에 접근 성공할 경우 인증 시스템이 완전히 망가질 수 있으므로 전체적인 네트워크 재구축이 필요한 시점이라고 한다. SAML 접근에 성공했다는 의미는 해당 환경의 공유되는 자원에 대해 신뢰성이 완전히 망가졌다는 의미이다. 때문에 솔라윈즈의 오리온 소프트웨어 사용중인 기업의 경우 포렌식 분석과 C&C 접속 내역 등 분석이 필요하며 침입의 흔적이 발견되지 않았다면 오리온 소프트웨어를 최신 업데이트하여 지속적으로 사용할 수 있다. 하지만 접속 흔적이 발견되면 전체적인 네트워크를 재구성해야할 필요가 있다.

아래 링크는 MS에서 발표한 SAML 침해사고 가이드라인이다.

www.microsoft.com/security/blog/2020/12/21/advice-for-incident-responders-on-recovery-from-systemic-identity-compromises/

 

Advice for incident responders on recovery from systemic identity compromises - Microsoft Security

Customers across the globe are asking for guidance on recovering their infrastructure after being impacted by Solorigate. DART walks you through remediation steps as well as some longer term mitigations.

www.microsoft.com

 

반응형