Offcanvas

보안 / 악성코드 / 클라우드

“타 계정의 클라우드 DB에 접근 가능” · · · 위즈 연구진, 애저 포스트그레SQL DBaaS 취약점 발견

2022.05.03 Lucian Constantin  |  CSO
위즈 연구진이 발견한 두 가지 취약점은 서버 상에서 패치되었지만, 아직 방심하기는 이르다. 
 
ⓒChakis Atelier / Romolo Tavani / Getty Images

클라우드 보안 업체 위즈(Wiz)의 연구진이 마이크로소프트의 애저 포스트그레SQL(Azure PostgreSQL)에서 두 가지 취약점을 발견했다. 이 취약점이 연쇄적으로 공격당할 때 클라우드에 호스팅된 다른 데이터베이스에 접근이 가능해진다는 경고다. 데이터베이스 복제와 관련된 기능을 악용해 엑스트라 레플리카(ExtraReplica)라고 불리는 이 잠재적 공격 방식은 두 가지 취약점을 겨냥한다. 바로 사용자의 데이터베이스를 호스팅하는 컨테이너 내에서 악성 코드를 실행할 수 있는 권한을 부여하는 권한 상승 취약점과 시스템 복제 서비스를 악용하여 다른 데이터베이스에 접근할 수 있는 권한을 탈취하는 인증 우회 취약점이다.  

이 취약점은 이미 서버상에서 패치되었으며 사용자가 특별히 취해야 할 조치 사항은 없다. 하지만 이번 취약점을 발견한 위즈 연구진은 마이크로소프트에게 아이솔레이션 모델(isolation model)에 관련된 문서와 서비스 아키텍처에 관한 더 자세한 내용을 기업 고객에게 제공해야 한다고 권고했다.  클라우드 서비스에 온보딩하기 전에 위험 요인을 더 잘 검토해볼 수 있어야 한다는 이유에서다.

데이터베이스로부터 기반 시스템에 침투 
’애저 데이터베이스 포 포스트그레SQL’는 30년이 넘은 관계형 오픈소스 데이터베이스 엔진 포스트그레를 기반으로 구동되는 관리형 데이터베이스 서비스(Database-as-a-Service, DBaaS)다.  포스트그레SQL은 안정성, 고가용성 그리고 확장성을 강점으로 하는, 복잡하게 짜인 소프트웨어다. 마이크로소프트는 싱글 서버(Single Server), 플렉서블 서버(Flexible Server) 그리고 하이퍼스케일(Hyperscale, Citus) 이렇게 3가지의 포스트그레SQL 배포 방식을 제공한다. 

플렉서블 서버를 사용하면 단일 애저 가용 영역 또는 여러 가용 영역에서 고가용성을 선택하거나 필요에 따라 서버 및 버스트 가능한(burstable) 컴퓨팅 계층을 중지 및 시작하여 비용을 최적화할 수 있다. 데이터베이스 엔진은 리눅스 가상 머신 내의 컨테이너에서 실행되는 반면, 데이터 파일은 애저 스토리지(Azure Storage)에 상주한다. 스토리지는 데이터 내구성을 보장하는 데이터베이스 파일의 세 가지 로컬 중복 동기 복사본을 만들어 유지 및 관리한다.

포스트그레SQL 엔진의 기능 중 하나는 데이터베이스 쿼리로 기본 시스템 명령을 실행하는 것이다. 위즈 연구진은 사용 환경을 파악하기 위해 서버에 등록하고 데이터베이스 내부에서 쿼리를 실행했다. 그 결과 서비스가 제공한 데이터베이스 사용자에게 bash 명령과 같은 코드를 실행하는 데 필요한 권한이 없다는 것을 확인할 수 있었다. 이어 연구진은 포스트그레SQL 내에서 권한을 상승시킬 수 있는 잠재적인 방법에 관한 이전 연구를 찾다가 결국 마이크로소프트의 서비스에서 버그를 발견했다.

“연구를 진행하는 동안 애저가 포스트그레SQL 엔진을 변경했다는 점을 발견했다”라고 연구진은 블로그에서(링크) 언급했다. 연구진은 “애저는 권한 모델을 강화하고 새로운 기능을 추가하기 위해 포스트그레 엔진에 이러한 변경 사항을 적용했을 가능성이 크다. 우리는 이 변경 사항의 버그로 침투하여 슈퍼유저(superuser)로서 임의의 쿼리를 실행할 수 있다는 취약점을 발견했다. 슈퍼유저 권한을 획득하여 OS 수준의 명령을 실행할 수 있었다”라고 설명했다. 

이 취약점은 1월에 마이크로소프트에 보고된 후 패치됐다. 그러나 연구진은 아직 취약점에 관한 세부 정부를 공개하지 않겠다는 입장이다. 다른 공급업체가 포스트그레SQL 엔진에 유사한 변경사항을 적용해 동일한 버그를 발생시킬 수 있다는 우려에서다.

이후 연구진은 pg_ident.conf를 살펴보고 발급된 CN(common name)을 확인하여 클라이언트 인증서의 유효성을 검사하기 위한 정규 표현식(regular expression)을 찾았다. 이것은 일반적으로 도메인 또는 하위 도메인의 이름이다. 이 연구에서는 클라이언트 연결이 replication.eee03a2acfe6.database.azure.com과 일치하는 인증서를 제공하는 경우 복제 사용자로 연결을 허용하도록 데이터베이스가 구성됐다. 보통 이런 경우 eee03a2acfe6은 특정 데이터베이스 인스턴스에 고유한 식별자이므로 이러한 인증서는 자체 데이터베이스에 대한 접근 권한만 제공한다. 그러나 연구진은 유효성 검사를 통과할 azure.com을 소유하지 않았기 때문에 신뢰할 수 있는 인증 기관에서 이러한 인증서를 얻는 것은 불가능했다. 

그러나 연구진은 정규 표현식이 (.*) 스트링으로 끝나는 점에서 오류를 발견했다. 이는 Replication.eee03a2acfe6.database.azure.com에 대한 인증서뿐만 아니라 replication.eee03a2acfe6.database.azure.com.something-else.com에 대한 인증서와도 일치함을 의미한다. 따라서 연구원은 예상 하위 도메인과 일치하지만 자신이 소유한 도메인에 있는 인증서를 디지서트(DigiCert)에서 획득하려 해봤다. 결과는 또 성공적이었다. 연구진은 전체 읽기 권한이 있는 복제 서비스로 자체 데이터베이스에 연결할 수 있었다.

즉 내부 네트워크를 통해 다른 데이터베이스로 연결하는 것과 복제 계정의 권한을 사칭하는 것이 가능했다.  다른 고객의 데이터베이스에 접근하는데 남은 과제는 대상 데이터베이스에 할당된 eee03a2acfe6과 같은 고유 ID를 찾아 얻는 것과 일치하는 CN이 있는 인증서를 얻는 것뿐이었다. 이 인증서는 SSL을 통해 연결할 때 대상 데이터베이스 서버의 인증서에 포함되어 있기 때문에 얻기 전혀 어렵지 않았다. 인증서 기반 클라이언트 인증에서 클라이언트와 서버는 각자의 인증서를 서로에게 제시하여 ID를 확인하고 암호화된 연결을 설정한다. 

또한 이 인증서들은 인증 기관에서 발급하여 공개적으로 신뢰할 수 있어 인증서 투명성 로그에 게시된다. 따라서 사용자 지정 애저 하위 도메인이 알려진 경우 대상 데이터베이스와 연결된 고유 식별자를 찾는 데 사용할 수도 있다.

이런 공격은 동일한 지역의 데이터베이스에서만 효과적이지만, 특정 데이터베이스에 대한 애저 가용성 지역도 해당 데이터베이스를 호스팅하는 서버의 IP 주소를 보면 쉽게 알아낼 수 있다. 그러면 잠재적 해커는 같은 지역에 계정을 생성하기만 하면 된다.

엑스트라 레플리카의 시사점 
애저 포스트그레SQL 싱글 서버 제품도 첫 번째 권한 상승 취약점에 영향을 받았다. 하지만 복제 서비스를 사용하는 교차 계정 인증 우회에 영향을 받지는 않았다. 또한 플렉시블 서버 인스턴스는 프라이빗 액세스(브이넷 통합)용으로 구성된 경우 영향을 받지 않았다. 브이넷(VNet)은 애저의 가상 네트워크 기능이다.

애저 포스트그레SQL 데이터베이스 계정을 처음 구성할 때 사용자는 허용된 IP 주소(기본 옵션)를 통한 공개 액세스 또는 브이넷을 통한 비공개 액세스 중에서 네트워크 연결 기본 설정을 선택해야 한다. 이는 애플리케이션이 데이터베이스와 통신하는 방식에 따라 달라지며 브이넷 옵션을 선택하는 사용자 수는 정확하게 파악하기 어렵다. 

위즈 연구진에 따르면 마이크로소프트는 이 취약점에 얼마나 많은 사용자가 잠재적으로 영향받을 수 있을지 밝히지 않았다. 마이크로소프트는 취약점을 악용하려는 공격 시도는 아직 발견되지 않았다고 말했다.

위즈 연구원은 "마이크로소프트를 포함한 다른 CSP는 일반적으로 현재 사용하는 아이솔레이션 모델 및 아키텍처에 대한 문서를 게시한다"라며 "그러나 우리는 포스트그레SQL 플렉서블 서버에 대한 공식 문서가 부족하여 사용자가 이러한 서비스에 온보딩할 때 위험을 평가하기 어렵다는 것을 알게 됐다. 이는 애저만의 문제가 아니다. 다른 클라우드 제공업체도 제한된 수의 서비스에 대해서만 아이솔레이션 모델을 공유하는 경향이 있다”라고 덧붙였다. 

연구진은 클라우드 제공업체는 아이솔레이션 아키텍처를 더 투명하게 공개해야 하고 사용자는 서비스를 사용하기 전에 제공업체에 관련 문서를 요청해야 한다고 말했다.

연구진은 또한 소프트웨어 보안 결함과 달리 클라우드 서비스의 취약성 및 잘못된 구성에는 CVE ID가 할당되지 않아 추적하거나 모니터링하기 더 어렵다고 지적했다. 이 때문에 최근 클라우드 보안 문제 및 사고에 대한 데이터베이스를 생성하기 위한 자발적 커뮤니티까지 생겨나고 있다. ciokr@idg.co.kr
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.