파일의 액세스 권한을 변경하는 매트릭스 랜섬웨어
랜섬웨어가 점점 고도화되는 가운데 파일의 접근 권한까지 변경하는 매트릭스(Matrix) 랜섬웨어가 국내에 유포되고 있다. 매트릭스 랜섬웨어는 접근 권한이 없는 파일일지라도 CALS, ATTRIB 프로그램을 이용하여 파일에 대한 접근 권한을 변경하거나 관련 속성을 제고하여 암호화를 수행하기 때문에 사용자들의 각별한 주의가 필요하다. 이 글에서는 매트릭스 랜섬웨어의 감염 기법에 대해 자세히 소개한다.
지난 4월 7일 안랩의 악성코드 위협 분석 및 클라우드 진단 시스템인 ASD(AhnLab Smart Defense)는 매트릭스 랜섬웨어가 국내에 유포되고 있음을 확인했다. 매트릭스 랜섬웨어는 RIG-익스플로잇 킷(RIG-Exploit Kit)에 의해 유포되고 있으며, CVE-2016-0189/IE_VB, CVE-2015-2419/IE _JSON 취약점을 이용한다. 해당 취약점에 노출된 사이트에 접속하는 사용자의 시스템은 RIG-익스플로잇 킷에 의해 감염될 가능성이 있다.
‘매트릭스 랜섬웨어’란 이름은 매트릭스 랜섬웨어의 첫 번째 버전에 감염되면 암호화된 파일의 확장자가 ‘matrix’로 변경됐기 때문에 붙여진 이름이다. 하지만 현재 유포되고 있는 세 번째 버전은 암호화한 파일의 확장자를 변경하지 않는다.
매트릭스 랜섬웨어 역시 감염되면 랜섬 노트가 생성된다. HTA 파일 형태인 랜섬 노트에는 ‘사용자는 미연방 정보부의 법률을 위반했다. 체포되지 않으려면 돈을 지급하라’는 내용의 메시지가 나타난다.
[그림 1] 매트릭스 랜섬웨어 감염 시 생성되는 랜섬 노트의 내용
랜섬웨어가 실행되면 [표 1]과 같은 파일들을 생성하고 %temp% 경로에 자신을 복제한 파일과 그 파일을 삭제하는 배치 파일을 다량 생성한다.
생성되는 파일 중 ‘elst’ 확장자를 갖는 파일을 살펴보면 [그림 2]와 같은 내부 데이터를 갖는다. 정보들은 C&C 주소에 업로드된다. 특히 ‘[PRIORITY] – [PRIORITY_END]’ 사이의 내용은 랜섬웨어 제작자가 관심을 갖는 확장자(dbs, dbf, dbx, mdb, mdf, sdf, xls, doc, ods, odt, pdf, jpg, txt)를 포함하고 있다.
[그림 2] [랜덤 16자리].elst 파일의 내부 데이터
또한 C 드라이브, 네트워크 드라이브, USB 드라이브 등 파일 시스템 드라이브들을 검색하면서 발견한 확장자 목록은 ‘[ALL] - [ALL_END]’ 사이의 태그에 저장하며, 확인한 드라이브 목록은 ‘[PLACES] - [PLACES_END]’ 사이의 태그로 구분하여 저장한다.
[표 2] *.elst 파일 내부 구분자
[그림 3]의 WhatHappenedWithFiles.rtf는 감염시킨 폴더 내부마다 생성되는 랜섬 노트다. TAVAb1nrt1pLc2ui 옆 16자리(8바이트) 숫자는 사용자의 아이디(모자이크 처리한 부분)를 나타낸다. 랜섬웨어 제작자는 사용자 아이디 정보를 이용하여 사용자를 식별하는 것으로 보인다.
[그림 3] WhatHappenedWithFiles.rtf
매트릭스 랜섬웨어는 암호화에 필요한 파일들을 %APPDATA% 경로에 생성하고, 드라이브를 탐색하며 감염시킬 파일 목록을 메모리에 저장한다. 이때 폴더 이름, 파일 확장자에 따라 감염 여부를 결정한다.
[표 4] 감염 제외 파일 확장자
[표 3]과 [표 4]에서 언급한 파일 확장자, 폴더 이름을 제외한 나머지 파일들에 대해 암호화를 수행하며 네트워크가 차단된 상태에서도 사용자 시스템을 감염시킨다.
랜섬웨어의 감염 코드를 살펴보면 암호화하려는 파일 크기를 먼저 구하고 암호화하는데, 파일 크기를 0x4로 나누어 특정 부분을 암호화한다. 따라서 4바이트 이하의 파일은 감염 목록에서 제외된다.
[그림 5] 매트릭스 랜섬웨어의 파일 암호화 과정
[그림 5]에서 명시된 것처럼 파일 크기를 0x4로 나누었을 때 암호화가 이루어지는 부분은 1, 2, 4번째 부분이다. 그리고 원본 파일의 끝에 ‘[감염자 아이디].sek'의 데이터(총 크기 0x3DC)와 암호화된 0x10C만큼의 데이터가 덧붙여져서 파일은 원본 크기에서 0x4E8(0x3DC + 0x10c)만큼 더 더해진다.
매트릭스 랜섬웨어는 파일 끝의 0x4E8 위치에 0xD1CD9549 문자열을 확인하여 파일의 암호화 여부를 확인한다.
[그림 6] 매트릭스 랜섬웨어에 의해 암호화된 txt 파일
매트릭스 랜섬웨어가 다른 랜섬웨어 구별되는 가장 큰 특징은, 시스템에 존재하는 파일들을 감염시킬 때 특정 파일에 대해 접근 권한이 없으면 CACLS, ATTRIB 프로그램을 이용하여 파일에 대한 권한 변경 및 관련 속성을 제거하는 기능을 수행한다는 점이다. 이 때 사용하는 명령어는 [표 5]와 같다.
[표 5] ACL 권한 변경 기능 명령어
이 명령어는 파일에 대한 모든 권한을 %사용자명%에 부여하고 ATTRIB 명령어를 통해 해당 파일에 대한 읽기, 숨김, 보관 속성을 지우는 기능을 수행한다.
매트릭스 랜섬웨어는 파일 암호화 기능 외에도 WMIC 호출을 통해 볼륨 쉐도우를 삭제할 수 있는 기능과 암호화된 파일의 정보를 C&C 서버에 전달할 수 있는 기능을 갖고 있다.
[표 6] WMIC 명령어 수행
[표 7] 볼륨 쉐도우 삭제 기능
현재 랜섬웨어의 DNS 서버가 차단되어 있어 어떤 정보를 유출하는지 확인할 수 없지만, 분석 결과 [표 8]을 참고하여 어떠한 정보들이 유출되는지 예상할 수 있다.
먼저 매트릭스 랜섬웨어는 C&C 서버의 /uploadexlit.php 페이지에 elst 파일 내 저장된 데이터를 전송한다. 이 때 전송되는 데이터는 앞서 언급한 것처럼 사용자 시스템에 존재하는 파일들의 확장자 정보와 시스템 내에서 암호화시킬 확장자 정보다.
/addrecord.php 페이지에는 사용자 이름, 감염 아이디 정보 등을 전달한다. /addrecord.php 페이지에 전달되는 정보에 대해서는 [표 9]를 참고한다.
랜섬웨어의 특성상 완벽한 복구 방법이나 예방법은 없지만, 피해를 최소화하기 위해서 윈도우(Windows) 보안 패치 및 V3 백신 프로그램을 업데이트하여 항상 최신 버전 상태로 유지하는 것이 중요하다. 어도비 플래시 플레이어(Adobe Flash Player) 취약점을 이용하여 감염되는 경우도 있기 때문에 플래시 플레이어도 업데이트하여 항상 최신 버전 상태로 유지해야 한다.
또한, 신뢰할 수 없는 출처의 메일 등에 첨부되어 있는 파일의 실행이나 확인되지 않은 웹 페이지 방문 시 사용자의 각별한 주의가 필요하다.
V3 제품에서는 매트릭스 랜섬웨어를 다음과 같은 진단명으로 탐지하고 있다.
<V3 제품군의 진단명>
Trojan/Win32.Matrixran (2017.04.08.00)
- AhnLabASEC 분석팀