데이터 탈취를 위해 악용하는 MOVEit Transfer 제로데이 취약점
Mandiant
*본 아티클의 원문은 2023년 6월 2일 Google Cloud 블로그(영문)에 게재되었습니다.
맨디언트는 Ipswitch에서 개발한 파일 전송 소프트웨어인 MOVEit Transfer의 제로데이 취약점이 데이터 도용을 위해 광범위하게 악용되고 있는 것을 발견하였습니다. 이 취약점은 2023년 5월 프로그레스 소프트웨어 코퍼레이션에서 발표하였고 CVE-2023-34362로 지정되었습니다. 맨디언트는 한 사고 대응에 참여해 이 취약점에 대한 초기 분석을 수행하였습니다. 분석에 따르면 익스플로잇 초기 증거는 2023년 5월 27일에 발생하여 웹 쉘을 배포 및 데이터 도난으로 이어졌습니다. ��몇 사례에서는 웹 쉘 배포 후 몇 분 내에 데이터 도난이 발생했습니다. 맨디언트는 MOVEit Transfer의 제로데이 취약점을 이용한 활동이 캐나다, 인도, 미국 지역의 여러 산업계 조직을 노리는 위협 행위자 집단인 UNC4857의 소행으로 봅니다. UNC4857의 기회주의적이고 데이터 탈취 활동과 일치하는 부분이 많기 때문입니다. 이를 전제로 놓고 볼 때 MOVEit Transfer의 제로데이 취약점을 악용한 침해를 당한 조직은 며칠 또는 몇 주 안에 랜섬웨어 이메일을 받을 수 있을 것으로 보입니다.
- 위협 행위자들은 MOVEit Transfer 소프트웨어의 합법적인 구성 요소인 human.aspx로 가장하는 파일 이름을 가진 LEMURLOOT 웹 쉘을 배포하고 있습니다. 맨디언트의 관찰에 따르면 LEMURLOOT 웹 쉘과 상호작용하기 전에 합법적인 guestaccess.aspx 파일에 대한 여러 차례의 POST 요청이 있었습니다. 이는 SQLi 공격이 해당 파일로 향하고 있다는 것을 보여줍니다.
- 맨디언트는 파일 이름이 human2.aspx 및 _human2.aspx인 LEMURLOOT 샘플을 관찰했습니다. 2023년 5월 28일부터 human2.aspx라는 이름을 가진 다양한 샘플이 바이러스토탈(VirusTotal)에 업로드되었습니다. 이외에도 이탈리아, 파키스탄, 독일 등 여러 국가에 공개 리포지토리에 LEMURLOOT 샘플이 업로드되었습니다. 이를 볼 때 MOVEit Transfer를 악용하는 UNC4857의 활동이 캐나다, 인도, 미국 외에 다른 국가에도 영향을 끼쳤다는 것을 알 수 있습니다.
- LEMURLOOT는 파일과 폴더를 열거하고, 구성 정보를 검토하고, 하드코딩된 이름으로 사용자를 생성 또는 삭제하는 명령을 생성하는 등의 MOVEit Transfer 소프트웨어 실행 시스템을 침해하기 위한 맞춤형 기능을 제공합니다. 초기 분석에 따르면 LEMURLOOT 웹 쉘은 MOVEit Transfer 소프트웨어를 설치한 시스템에 사용자가 업로드한 데이터를 훔치는 데 사용된 것으로 나타났습니다.
- 맨디언트는 MOVEit Transfer 소프트웨어를 설치한 피해자의 시스템에서 대량의 파일이 도난당한 여러 사례를 확인하였습니다. 또한, LEMURLOOT는 MOVEit Transfer 소프트웨어 설정에서 자격 증명을 포함한 애저(Azure) 스토리지 블롭(Blob) 정보를 훔칠 수 있습니다. 따라서 이 취약점을 악용하는 공격자는 애저 블롭 스토리지에 저장한 데이터를 훔칠 수 있습니다.
- 대부분의 경우 LEMURLOOT를 전송하는 스캔 및 익스플로잇은 5.252.188.0/22 범위의 IP 주소에서 시작되었지만 웹 쉘과의 상호작용 및 데이터 도난은 다른 시스템에서 발생하였습니다. 이러한 2단계 작업을 지원하는 데 사용된 호스트 중 상당수는 5월 19일에서 22일 사이에 생성된 인증서가 있는 RDP 서비스를 호스팅했습니다.
MOVEit Transfer의 제로데이 취약점을 악용한 침해 활동에 대한 분석은 현재 진행 중입니다. 분석 내용은 맨디언트 어드밴티지(Mandiant Advantage)의 CAMP.23.037 페이지에 반영될 예정이며 추가 정보가 입수되면 블로그 게시물도 업데이트할 예정입니다. 이 포스팅과 함께 맨디언트는 MOVEit Transfer 취약점을 완화하기 위한 가이드를 만들었습니다. 이 문서에는 다음과 같은 지침이 담겨 있습니다.
- 격리 조치
- 애플리케이션 및 인프라 강화
- 로깅 및 헌팅 권장 사항
LEMURLOOT 분석
LEMURLOOT는 MOVEit Transfer 소프트웨어와 상호작용하도록 맞춤화된 C#으로 작성한 웹 쉘입니다. 이 맬웨어는 하드코딩된 비밀번호를 통해 들어오는 연결을 인증하고, MOVEit Transfer 소프트웨어를 설치한 시스템에서 파일을 다운로드하고, 애저 시스템 설정을 추출하고, 자세한 기록 정보를 검색하고, 특정 사용자를 생성 및 삽입하거나, 동일한 사용자를 삭제하는 명령을 실행할 수 있습니다. LEMURLOOT와 상호작용하는 시스템으로 반환되는 데이터는 gzip으로 압축됩니다.
인증 및 데이터베이스 연결
LEMURLOOT는 먼저 들어오는 HTTP 요청에 헤더 필드 X-siLock-Comment와 샘플에 따라 달라지는 36자 GUID 형식의 값이 포함되어 있는지 확인합니다. 이 GUID를 비밀번호로 사용하며 예상 헤더 필드와 값을 전달하지 않는 클라이언트에는 HTTP 404 상태 코드를 반환합니다.
올바른 비밀번호가 LEMURLOOT에 전달되면 연결이 성공해 작업을 수락할 수 있음을 나타내는 헤더 응답 X-siLock-Comment와 값 주석을 보냅니다. 이 맬웨어는 SystemSetting.DatabaseSettings()를 사용해 검색한 설정으로 실행 호스트에서 SQL 서버에 연결합니다. 그다음 연결 클라이언트에서 수행한 데이터를 처리하여 다음 HTTP 헤더 필드(X-siLock-Step1, X-siLock-Step2, X-siLock-Step3)에서 예상되는 명령을 구문 분석합니다.
X-siLock-Step1명령 시퀀스
- X-siLock-Step1의 헤더 필드 값이 -1인 경우 LEMURLOOT는 애저 블롭 스토리지 계정과 관련 키 및 컨테이너를 포함한 애저 시스템 설정을 MOVEit Transfer에서 검색해 반환합니다. 그런 다음 SQL 쿼리를 수행하여 파일, 파일 크기, 폴더, 파일 소유자 및 교육기관 이름 데이터를 검색합니다. 결과 데이터는 gzip으로 압축되어 LEMURLOOT와 상호작용하는 클라이언트에 반환됩니다.
- X-siLock-Step1의 헤더 필드 값이 -2인 경우 다음과 같은 명령으로 LoginName과 RealName이 "Health Check Service"로 설정된 사용자 계정을 삭제합니다.
X-siLock-Step2, X-siLock-Step3 명령 시퀀스
X-siLock-Step2의 헤더 필드 값이 -1 또는 -2가 아닌 경우 맬웨어는 X-siLock-Step2, X-siLock-Step3의 값을 파싱하여 fileid 및 folderid라는 변수에 저장합니다. fileid 및 folderid의 값이 null이 아닌 경우 맬웨어는 로컬 MOVEit Transfer 시스템에서 동일한 값을 가진 파일을 검색해 gzip으로 압축한 다음 연결 클라이언트로 반환합니다. fileid 및 folderid의 값이 null인 경우 LEMURLOOT는 권한 수준이 "30"이고 InstID="X-siLock-Step1"에서 설정된 값으로 기존 계정을 식별하려고 시도합니다. 그렇지 않으면 무작위로 생성된 사용자 이름과 LoginName과 RealName이 "Health Check Service"로 설정된 새 계정을 생성합니다. 이 계정은 활성 MOVEit Transfer 소프트웨어 세션에 삽입됩니다.
속성 분석
초기 수준의 분석을 해본 결과 아직 UNC4857과 기존 위협 클러스터 간에 구체적인 중복이 있다는 증거는 없었습니다. 그러나 UNC4875가 사용하는 전술, 기법, 절차(TTP)와 FIN11 데이터 탈취 활동과 관련된 TTP 간에는 몇 가지 주목할 유사점이 있습니다. 예를 들어 UNC4857과 FIN11 위협 클러스터로 의심이 가는 UNC2546은 모두 제로데이 취약점을 사용해 파일 전송 시스템을 표적으로 삼은 후 맞춤형 웹 쉘로 데이터를 탈취했습니다. 또한, 맨디언트는 최근 CLOP와 관련된 최소 한 명의 공격자가 SQL 인젝션 작업을 위해 파트너를 찾는 것을 관찰하였습니다. 그러나 현재 UNC4857과 FIN11 사이에 관계가 있는지 확인할 수 있는 충분한 증거는 없습니다. 새로운 활동에 대한 지속적인 분석을 통해 추가적인 통찰력을 얻을 수 있습니다.
시사점
맨디언트는 민감한 데이터를 표적으로 삼는 다양한 동기를 가진 위협 행위자들을 일상적으로 관찰하고 있습니다. 예를 들어 국가가 후원하는 위협 행위자들은 정책 연구, 군사 및 정부 파일, 지적 재산, 개인 식별 정보를 보유한 기관에 지속적인 관심을 보이고 있습니다. 또한, 사이버 범죄자들은 갈취 작업을 통해 훔친 정보로 수익을 창출하거나, 언더그라운드 포럼에 판매용으로 게시하거나, 비즈니스 이메일 침해와 같은 2차 작업에 활용할 수 있습니다. 맨디언트는 현재 이번에 식별한 활동을 알려진 위협 행위자의 소행으로 단정할 충분한 증거를 확보하고 있지는 않습니다. 하지만 이번 활동은 FIN11이 주도하여 파일 전송 소프트웨어를 표적으로 삼아 대량의 데이터 유출 사고를 일으키고, 훔친 데이터를 CLOP^_-LEAKS 데이터 유출 사이트(DLS)에 게시하겠다고 협박한 사건을 떠올리게 합니다. 여러 사례에서 FIN11은 데이터 탈취 후 몇 주 후에 CLOP^_-LEAKS 데이터 유출 사이트에 데이터를 게시하지 않는 대가로 금품을 요구하는 이메일을 보냈습니다. 이번 활동의 경우 피해 조직에 몸값을 요구하는 연락이 아직 오지 않았습니다. 아마 위협 행위자들이 여러 피해자와 동시에 협상할 여력이 부족하거나 하는 이유가 있을 것으로 보입니다. 만약 이번 위협 행위의 목표가 몸값 갈취인 경우 피해 조직은 앞으로 며칠 또는 몇 주 내에 훔친 데이터에 대한 몸값을 흥정하는 이메일을 받을 것으로 예상됩니다.
끝으로 본 포스팅 작성에 참여한 저자와 CVE-2023-34362 익스플로잇 관련해 고객을 돕기 위해 노력하고 있는 수십 명의 컨설턴트 그리고 맨디언트 FLARE 팀의 Raymond Leong에게 감사의 말씀을 드립니다.
탐지
다음 YARA 룰은 적절한 성능을 보장하고 오탐의 위험을 낮추기 위해 사전 테스트 및 검증을 거친 것이 아닙니다. 이 룰은 LEMURLOOT 페이로드 식별을 위한 위협 헌팅의 출발점으로 삼기 위해 만든 것입니다. 맬웨어 제품군이 변경되면 조정이 필요할 수 있습니다.
컴파일된 LEMURLOOT DLL 탐지 룰
LEMURLOOT ASP.NET 스크립트 탐지 룰
침해 지표 - LEMURLOOT 샘플
-Mandiant, 작성자: Nader Zaveri, Jeremy Kennelly, Genevieve Stark, Matthew McWhirt, Dan Nutting, Kimberly Goody, Justin Moore, Joe Pisano, Zander Work, Peter Ukhanov, Juraj Sucik, Will Silverstone, Zach Schramm, Greg Blaum, Ollie Styles, Nicholas Bennett, Josh Murchie