AIㆍML / 보안 / 오픈소스

깃허브에 AI 학습용 데이터 공유하다가...MS의 ‘38TB 데이터 유출 사건’의 전말

Shweta Sharma | CSO 2023.09.21
사이버 보안 업체 위즈(Wiz) 산하 위즈 리서치(Wiz Research)의 보고서에 따르면 마이크로소프트의 AI 연구팀이 깃허브 저장소에 게시된 ‘공유 접근 서명(Shared Access Signature, SAS)’ 링크를 통해 38테라바이트에 달하는 개인 데이터를 실수로 노출했다. 

위즈 리서치는 클라우드에서 호스팅되는 데이터를 노출하는 잘못 구성된 스토리지 컨테이너가 없는지 조사하던 중 이 저장소를 발견했다. ‘robust-models-transfer’라는 이름의 저장소는 마이크로소프트 AI 연구팀이 이미지 인식을 위한 오픈소스 코드와 AI 모델을 제공하는 데 사용됐으며, 이를 위해 저장소 사용자에게 애저 스토리지 계정에서 모델을 다운로드할 수 있는 링크가 제공됐다. 

이 URL이 오픈소스 모델 이상의 액세스를 허용했다. URL이 전체 스토리지 계정에 접근할 수 있는 권한을 갖도록 구성돼 개인 데이터가 노출된 것. 보고서는 “해당 애저 스토리지 계정에는 마이크로소프트 직원의 개인용 컴퓨터 백업을 포함한 38TB의 추가 데이터가 포함돼 있었다. 백업에는 마이크로소프트 서비스 비밀번호, 비밀키, 마이크로소프트 직원 359명이 보낸 3만 개 이상의 팀즈 메시지 등 민감한 개인 데이터가 있었다”라고 전했다.  

보고서는 중요한 정보에 액세스할 수 있도록 잘못 구성된 SAS 링크로 초래된 실수는 정확히 무엇이 잘못됐는지 이해한다면 쉽게 방지할 수 있다고 강조했다.  
 
ⓒGetty Images Bank
 

잘못 구성된 SAS 토큰

학습 코드에 활용할 AI 모델을 제공하기 위한 목적이었던 저장소는 사용자에게 SAS 링크를 통해 모델 데이터 파일을 다운로드하고 스크립트에 입력하도록 했다. 이를 위해 마이크로소프트 개발자는 ‘SAS 토큰’이라는 애저 매커니즘을 활용했다. 해당 메커니즘을 사용하면 검사 시 여전히 비공개인 것처럼 보이지만, 애저 스토리지 계정 데이터에 액세스 권한을 부여하는 공유 가능한 링크를 만들 수 있다.

마이크로소프트가 사용한 토큰은 실수로 추가 스토리지에 액세스할 수 있도록 허용했을 뿐만 아니라, 읽기 전용 대신 ‘전체 제어’ 권한을 허용하는 잘못된 구성을 가지고 있었다. 다시 말해, 공격자가 액세스하면 애저 스토리지 계정의 모든 개인 파일을 볼 수 있을 뿐만 아니라 기존 파일을 삭제하거나 덮어쓸 수 있었다. 
 
'robustnessws4285631339' 스토리지 계정 아래에 노출된 컨테이너 ⓒWIZ

애저에서 SAS 토큰은 애저 스토리지 데이터에 사용자 정의 가능한 액세스 권한을 부여하는 서명된 URL로, 읽기 전용부터 전체 제어까지 다양한 권한을 부여할 수 있다. 단일 파일, 컨테이너, 전체 스토리지 계정에 적용될 수 있으며, 선택적으로 만료 시간을 설정할 수 있다(만료되지 않도록 설정할 수도 있다).  

보고서는 “‘학습 코드에 사용할 AI 모델 제공’이라는 저장소의 원래 목적을 고려할 때 전체 액세스 구성이 특히 흥미롭다”라면서, “다운로드할 AI 모델 데이터 파일의 형식은 텐서플로우 라이브러리에서 만든 형식인 ckpt다. 이는 설계상 임의 코드 실행이 쉬운 파이썬의 피클(Pickle)을 사용해 포맷됐다. 다시 말해, 공격자가 이 스토리지 계정의 모든 AI 모델에 악성 코드를 삽입할 수 있었다는 이야기다”라고 덧붙였다. 
 

관리가 어려운 SAS 토큰

SAS 토큰의 세분화는 너무 많은 액세스 권한을 부여할 위험을 초래한다. 마이크로소프트 깃허브 사례에서 토큰은 전체 계정 권한을 영구적으로 완전히 제어할 수 있도록 했다. 마이크로소프트 저장소는 서비스 SAS 및 사용자 위임 SAS를 포함하는 3가지 유형의 SAS 토큰 중 하나인 ‘계정 SAS 토큰(Account SAS token)’을 사용해 각각의 서비스(애플리케이션) 및 사용자 액세스를 허용했다. 

위즈 보고서에 따르면 계정 SAS 토큰은 사용 권한, 위생, 관리 및 모니터링 측면에서 취약하기 때문에 상당히 위험하다. SAS 토큰 권한은 과도한 권한 혹은 광범위한 액세스 범위를 통해 스토리지 계정에 높은 수준의 액세스 권한을 부여할 수 있다. 위생 문제는 만료 문제가 있는 토큰을 포함한다. 이때 만료 문제란 조직이 만료 기간이 상당히 길거나(때로는 영구적인) 토큰을 기본값으로 활용하는 것을 일컫는다. 

계정 SAS 토큰 관리 및 해지는 매우 어렵다. 보고서는 “SAS 토큰은 클라이언트 측에서 생성된다. 따라서 애저가 추적하는 활동이 아니다. 생성된 토큰은 애저 객체가 아니다. 애저 내에서 이런 토큰을 추적하거나 모니터링할 공식적인 방법은 없다. 얼마나 많은 토큰이 발행됐고, 현재 사용되고 있는지 파악하기 어렵다”라고 설명했다. 
 

권장 사항

위즈 보고서는 보안 및 거버넌스 부족 관련 문제를 고려해 계정 SAS의 외부 공유는 피하라고 권고했다. 어쩔 수 없이 외부 공유를 해야 한다면, 중앙 집중식으로 정책을 관리하고 해지할 수 있도록 저장된 액세스 정책으로 서비스 SAS(Service SAS)를 선택해야 한다. 콘텐츠를 시간제한 방식으로 공유한다면, 사용자 위임 SAS의 만료 기간을 7일로 제한해야 한다. 외부 공유가 불가피할 때 전용 스토리지 계정을 생성하는 것 또한 좋은 방법이 될 수 있다. 

아울러 보고서는 스토리지 계정에서 스토리지 분석 로그를 활성화해 활성 SAS 토큰 사용량을 추적하라고 조언했다. “결과 로그에는 서명 키와 할당된 권한을 포함해 SAS 토큰 액세스의 세부 정보가 포함된다. 하지만 로그에는 활발히 사용된 토큰만 표시되며, 로깅을 활성화하면 추가 비용이 부과된다. 활동이 많은 계정의 경우 비용이 많이 들 수 있다”라고 덧붙였다. 

애저 메트릭(Azure Metrics)을 사용해 최대 93일 동안 이벤트를 위한 스토리지 계정의 SAS 토큰 사용량을 모니터링할 수도 있다. 위즈 보고서에 의하면 기밀 검색 도구도 아티팩트 및 공개 자산에서 유출되거나 과도한 권한이 부여된 SAS 토큰을 탐지하는 데 유용할 수 있다. 
editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

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

Copyright © 2024 International Data Group. All rights reserved.