쉽고 간편하게 개발 작업을 할 수 있게 해 주는 플랫폼에서 데이터가 새나오고 있다. 알고 보니 사용자들이 지나치게 후한 권한을 아무에게나 부여하고 있어서였다.
[보안뉴스 문정후 기자] 개발을 쉽고 간편하게 할 수 있게 해 주는 로우코드 플랫폼인 MS 파워페이지스(Power Pages)에서 심각한 취약점이 발견됐다. 이를 통해 개인 식별 정보가 권한 없는 사용자에게 노출될 수 있는 것으로 분석됐다. 특히 파워페이지스 사용 기업 측에서 익명 계정에 과도한 권한을 부여할 경우가 위험하다고 한다. 이 문제에 대해 보안 업체 앱옴니(AppOmni)가 보고서를 작성해 발표했다.
[이미지 = gettyimagesbank]
“지난 9월 대량의 데이터가 인터넷에 노출되어 있는 사례를 발견했습니다. 원인을 분석했더니 MS 파워페이지스 웹사이트의 접근 제어 설정이 잘못되어 있었습니다.” 파워페이지스는 로우코드 기반의 SaaS 플랫폼으로, 사용자가 MS 인프라 상에서 웹사이트를 구축해 외부로 공개할 수 있게 해 준다고 앱옴니 측은 설명한다. 이런 플랫폼이 사용되는 이유들은 다음과 같다고 앱옴니는 설명을 이어간다.
1) 역할 기반 접근 제어(RBAC)가 가능하다. 이는 기본적으로 제공되는 보안 기능 중 하나다. 2) MS의 데이터버스(Dataverse)를 데이터베이스로서 자동으로 활용하는 게 가능하다. 3) 직접 코딩을 하는 대신 드래그 앤 드롭 방식으로 개발을 쉽게 할 수 있다.
하지만 이러한 장점의 이면에는 ‘보안 책임’이 존재한다. “적절히 관리되지 않을 경우 파워페이지스와 같은 데이터 중심 웹 애플리케이션을 클라우드에서 배포했다가 심각한 문제를 초래할 수 있거든요. 저희의 연구에 따르면 이미 이러한 경우의 수는 수없이 존재하는 것으로 밝혀졌습니다. 이미 수백만 건의 민감한 데이터가 공공 인터넷에 노출되어 있으니까요.”
어떤 데이터가 왜 노출되는가 로우코드 개발과 앱 배포를 돕는 플랫폼에서 데이터가 유출된다고 했을 때, 정확히 어떤 정보가 외부로 새어나갈 수 있을까? 앱옴니는 다음과 같이 답한다. 1) 내부 파일과 웹사이트에 등록된 사용자들의 민감 정보 2) 이름, 이메일 주소, 전화번호, 실거주지 주소 등의 개인 식별 정보 3) 일부 경우이긴 하지만 영국 의료보험의 근무자 관련 정보 110만 건(이메일, 전화번호, 주소 등).
앱옴니가 분석했을 때 이런 정보들이 플랫폼에서 외부로 빠져나가는 건 크게 두 가지 이유에서라고 한다. “접근 제어를 제대로 설정하지 못하는 게 첫 번째 이유입니다. 익명 사용자에게 지나친 권한을 부여할 때 특히 위험할 수 있습니다. 또 사용자가 정의하는 비밀번호가 너무 쉬울 때도 문제가 됩니다. 이런 경우 파워페이지 API를 사용하여 데이터베이스 내 기록들을 쉽게 추출할 수 있습니다.”
파워페이지스의 기본 아키텍처, 역할 앱옴니는 사용자들이 파워페이지스의 기능뿐만 아니라 기본 구조를 이해할 때 보안이 강화될 수 있다고 설명한다. 다만 파워페이지스의 원리를 깊숙하게 이해할 필요까지는 없으며 ‘데이터 유출’과 관련된 측면에서만 아는 것으로도 충분하다고 덧붙인다. “특히 ‘역할 기반 접근 제어’에 대해 아는 것이 중요합니다.”
앱옴니의 설명에 의하면 파워페이지스 플랫폼에는 기본적으로 세 가지 역할이 존재한다고 한다. 이 기본 역할은 파워페이지스 사이트에서 삭제하거나 비활성화 할 수 없다. “모든 사용자들은 로그인을 하든 말든 이 세 가지 역할 중 하나를 부여 받게 됩니다. 세 개의 역할은 서로 다른 권한을 가지고 있습니다. 데이터 유출의 사안에 있어서 특히 중요한 건 세 개 중 ‘익명 사용자(Anonymous User)’와 ‘인증된 사용자(Authenticated User)’입니다. 이 두 가지를 이해하는 게 중요합니다.”
익명 사용자는 인증되지 않은 모든 개인을 나타내며, 로그인을 하지 않기 때문에 보안 사고의 원인이 될 때가 많다. “하지만 인증된 사용자는 로그인을 한 사용자입니다. 또 인증된 사용자 대부분 ‘공개 등록(public registration)’이 활성화 되어 있는 상태입니다. 공개 등록이 활성화 되면 누구든지 사이트에서 계정을 생성할 수 있고, 계정을 만든 사용자는 인증된 사용자 역할과 함께 이와 관련된 더 높은 권한을 받게 됩니다. 내부에서 활동하기 위한 역할이라기보다 외부적인 역할이라는 개념이 강합니다.”
그렇기 때문에 사용자들은 이러한 두 가지 역할에 대한 이해도를 바탕으로 현재의 설정을 검토하고 필요할 경우 재정립 할 필요가 있다는 게 앱옴니의 설명이다. 하지만 이 두 가지 역할에 대해 알고 있는 것만으로 안전한 설정을 하기에는 부족하다. 정보가 노출되는 여러 가지 주요 원인들도 알아둘 필요가 있다. 이에 대해 앱옴니는 다음과 같이 정리한다.
1) 웹 API에 정보를 과도하게 노출시킨다 : 권한을 설정할 때 노출 범위를 너무 크게 정하면 이런 일이 발생한다. 웹 API를 많이 사용하는 조직이라면 Webapi/