탈로스, 타나토스 랜섬웨어 무상복구툴 공개

탈로스타나토스 랜섬웨어 무상복구툴 공개

게시일: 2018.6.26 오전 08:00(PDT)


 블로그는  Edmund BrumaghinEarl Carter  Andrew Williams 작성하였습니.


요약


Cisco Talos는, 지난 수 개월 동안 진행되었던 여러 악성코드 공격을 통해 유포되고 있는 랜섬웨어 변종인 Thanatos를 분석하였습니다. 우리는 연구 결과로서 피해자들이 이 악성코드에서 복구하도록 도와주는 새로운 무료 암호 해독 도구를 발표하였습니다. 공격자들이 여러 Thanatos 버전을 활용해왔는데, 이는 무모하게 유포되었던 여러 버전을 이용하여 사이버 범죄자들이 개발하고 있는 진화 중인 위협임을 나타냅니다. 일반적으로 유포되는 다른 랜섬웨어와는 달리 Thanatos는 비트코인과 같은 단일 암호화폐를 사용하여 돈을 요구하지 않습니다. 대신에 비트코인 캐시(BCH), Zcash(ZEC), Ethereum (ETH) 등의 형태로 돈을 요구하는 것으로 파악되었습니다. 


또한 이 랜섬웨어가 활용하는 암호화 프로세스 내의 문제점 때문에 피해자가 돈을 지불하더라도 악성코드 개발자는 데이터를 피해자에게 되돌려줄 수 없습니다. 이전의 보고서들에서는 이것이 우발적 상황임을 지적하는 것처럼 보이지만, 특정한 공격들에서는 일부의 경우 이것이 유포자 측에서 의도한 것임을 보여주는 것처럼 보입니다. 이 위협에 대응하여 Talos는 Thanatos에 사용되는 파일 암호화 방법의 설계 약점을 이용하는 무료 암호 해독 도구인 ThanatosDecryptor를 발표합니다. 이 유틸리티는 데이터가 이 랜섬웨어로 감염된 경우에도 피해자가 자신의 데이터에 다시 액세스하기 위해 사용할 수 있습니다.


기술 상세정보


Thanatos 지속적 진화


Thanatos 랜섬웨어 유포를 위해 사용되는 여러 공격을 추적하여 분석함으로써 Talos는 이 악성코드의 여러 가지 다른 버전을 파악하였는데, 이는 악성코드 개발자가 적극적으로 계속 발전시키고 있음을 나타냅니다. 주된 차이점은 피해자에게 감염되었음을 알리고 돈을 공격자에게 지불하도록 지시하기 위해 사용되는 랜섬 노트(ransom note)에서 직접 확인할 수 있습니다. 금년 2월 중순에 유포되었던 Thanatos 버전 1은 피해자의 데스크탑에 README.txt로 저장되는 매우 원시적인 랜섬 노트를 특징으로 합니다.



이 Thanatos 버전의 랜섬 노트는 단순히 사용자에게 파일이 암호화되었음을 알리고 0.01 비트코인(BTC)을 지정된 비트코인 지갑에 지불하도록 지시합니다. 샘플별로 다른 지갑 주소를 사용하지 않고, Talos가 분석했던 이 Thanatos 버전의 모든 샘플에는 동일하게 하드코드된 지갑 주소가 있습니다. 지불 처리를 이메일 기반으로 수작업으로 수행하는 것으로 보이며, 이는 공격자가 LockyCerber 등 보다 유명한 랜섬웨어 패밀리들에 비하여 제한적인 리소스와 랜섬웨어 생성 및 유포 기법을 보유하고 있음을 나타냅니다. 


버전 1의 유포가 관찰된 직후에 악성코드 유포 공격을 통해서 Thanatos 버전 1.1의 유포가 시작되었는데, 대부분의 버전 1.1 유포는 2018년 2월과 4월 사이에 발생했습니다. 업데이트된 이 Thanatos 버전에는 피해자가 지불 시 사용할 수 있는 암호화폐의 유형과 관련하여 몇 가지 주요 차이점이 있습니다.



위의 랜섬 노트 스크린샷에 표시된 바와 같이 Thanatos 버전 1.1은 BTC, ETH, BCH를 사용하여 돈을 지불하는 것을 지원합니다. 또한 이제 악성코드에 피해자로 하여금 이메일을 통해 공격자에게 전송하도록 지시하는 고유한 MachineID가 포함되어 있습니다. 


흥미롭게도 Talos가 분석했던 여러 샘플에서 랜섬 노트가 몇 번 변경되었습니다. 아래는 이 악성코드에서 사용되었던 랜섬 노트의 또 하나의 예입니다. 공격자가 피해자와 통신하기 위해 사용하는 이메일 주소가 변경된 점에 주목하십시오. 또한 공격자는 Zcash 형태로 지불을 처리한다고 언급하고 있습니다. 다른 랜섬 노트에는 다른 암호화폐가 열거되어 있는 것과 대비됩니다.



공격자가 피해자를 감염시키고 시스템에서 데이터 액세스를 불가능하게 만들기 위해 사용하는 유포 메커니즘에 대한 조사를 통해, 우리는 적어도 이 특정한 경우에서 공격자는 피해자에게 어떠한 데이터 암호 해독 방식을 제공할 의도가 없었음을 나타내는 흥미로운 공격을 파악하였습니다. 악성코드는 Discord 채팅 플랫폼을 사용하여 피해자에게 전송하는 채팅 메시지에 첨부되어 피해자에게 전달되었던 것으로 보입니다. Discord는 두 명 이상의 참가자들 사이의 직접 통신을 허용하는 음성 및 문자 채팅 플랫폼입니다. 첨부된 악성코드 호스팅 URL은 다음과 같습니다.

hxxps://cdn[.]discordapp[.]com/attachments/230687913581477889/424941165339475968/fastleafdecay.exe

이 경우에 사용된 파일명은 "fastleafdecay.exe"였는데, 이는 비디오 게임 Minecraft에 있는 동일한 이름의  모드처럼 보이게 하여 피해자가 악성코드를 실행하도록 속이려는 의도를 나타낼 수 있습니다. 이 샘플을 실행하자 다음과 같은 랜섬 노트가 피해자에게 표시되었습니다.


위의 스크린샷에 표시되었듯이, 악성코드 작성자가 지불에 대한 지시를 포함시키지 않았고 대신에 암호 해독이 불가능함을 언급하고 있는데, 이 특정한 경우는 금전적 동기로 실행하지 않고 피해자 시스템의 데이터를 파괴하기 위해 사용한 것임을 나타냅니다. 흥미롭게도 이 샘플에 그대로 있던 PDB 경로는 Talos가 분석했던 다른 샘플들과 달랐습니다. 이 경우 PDB 경로는 다음과 같았습니다.


        C:\Users\Artur\Desktop\csharp - js\косте пизда\Release\Thanatos.pdb


대부분의 다른 샘플에는 아래 PDB 경로가 포함되었습니다.


        D:\Work\Thanatos\Release\Thanatos.pdb


또한 Talos는 아래 PDB 경로가 포함된 디버그 모드에서 컴파일된 샘플을 확인하였습니다.


        D:\Работа\Локер шифровчик\Thanatos-master\Debug\Thanatos.pdb


Thanatos 작동  암호화 프로세스


피해자 시스템에서 실행되면 Thanatos는 %APPDATA%/Roaming 내에 생성되는 하위 디렉토리에 자신을 복사합니다. 하위 디렉토리 이름과 실행 파일 이름은 시스템 업타임을 기준으로 무작위로 생성되며 악성코드를 실행할 때마다 달라집니다.


Thanatos는 현재 사용자의 프로필 내에 있는 아래 디렉토리를 반복적으로 검색하여 암호화할 파일들을 식별합니다.


데스크탑

문서

다운로드

즐겨 찾기

음악

OneDrive

그림

동영상


많은 랜섬웨어 패밀리가 암호화를 지원하는 특정 파일 확장자 목록을 보유하고 있지만, Thanatos는 확장자가 있는 모든 파일을 암호화합니다. 악성코드가 있는 모든 파일에 대해 GetTickCount에 대한 호출을 통해 감염 시스템의 실행 시간 밀리초를 기준으로 암호화 키를 도출합니다. 악성코드는 그 다음에 AES(Advanced Encryption Standard)-256을 사용하여 파일을 암호화하고 암호화 키를 폐기합니다. 암호화 키 폐기 프로세스는 요구한 돈을 지불한 경우에도 공격자가 암호가 해독된 데이터에 대한 액세스 권한을 제공할 수 없도록 합니다. 암호화된 파일은 .THANATOS 파일 확장자로 파일 시스템에 기록되고, 원래 파일들을 삭제됩니다.


또한 악성코드는 iplogger라고 하는 외부 웹사이트를 활용합니다. 이 웹사이트는 URL에 액세스하는 시스템들에 관한 정보 추적에 사용할 수 있는 맞춤형 URL을 제공합니다. 이 하드코드된 URL을 사용하여 HTTP GET 요청을 함으로써 공격자는 Thanatos로 감염된 모든 다른 시스템들에 관한 정보를 확보할 수 있습니다.



HTTP GET 요청은 모두 아래 사용자 에이전트를 사용하여 수행됩니다.

 

        Mozilla/5.0 (Windows NT 6.1) Thanatos/1.1



Talos는 분석된 다양한 Thanatos 샘플에 하드코드되었던 아래의 iplogger URL을 확인하였습니다.


        hxxp://iplogger[.]com:80/1CUTM6


        hxxp://iplogger[.]com:80/1t3i37


Thanatos와 관련된 랜섬 노트는 README.txt 파일명을 사용하여 감염된 사용자의 데스크탑에 저장됩니다. 시스템을 부팅할 때마다 메모장 응용 프로그램으로 랜섬 노트가 표시되도록 레지스트리 항목이 생성됩니다. 레지스트리 키의 위치는 다음과 같습니다.


        HKCU\Software\Microsoft\Windows\CurrentVersion\Run



이 내용을 제외하고는, 악성코드가 자체 실행을 위한 지속성을 확보하지는 않습니다.


ThanatosDecryptor


앞서 설명했듯이 피해자의 시스템에서 파일 암호화에 사용되는 암호화 키는 최근 시스템 부팅 이후의 밀리초 수를 기준으로 도출됩니다. 이 값은 32비트 수이며, 암호화 키도 유효한 32비트라는 점을 의미합니다. 또한 32비트 값으로 저장할 수 있는 최대 밀리초 수는 약 49.7일분이며 이는 패치 설치, 시스템 재부팅 및 기타 요인들로 인하여 다수의 시스템 평균 업타임보다 많습니다. 따라서 시간 측면에서 볼 때 무차별 키 값 대입 방식은 효과를 보기 어렵습니다.


또 다른 최적화는 대략 하루에 한 번씩 시스템 업타임이 Windows 이벤트 로그에 기록된다는 사실에 기반할 수 있습니다. Thanatos가 암호화 파일의 생성 날짜를 수정하지 않으므로, 주요 검색 공간이 감염에 이르는 24시간 기간 내의 밀리초 수만큼으로 더욱 줄어들 수 있습니다. 초당 평균 100,000회의 대입 횟수를 감안할 경우(이는 테스트에 사용되는 가상 시스템의 기준선임), 이 조건에서 암호화 키를 성공적으로 복구하는 데에 약 14분이 소요됩니다.


Talos는 Thanatos 피해자가 감염된 시스템에 저장된 데이터와 파일에 대한 액세스를 다시 확보하려는 시도를 위해 활용할 수 있는 복호화 유틸리티 발표합니다. 이것은 Thanatos 랜섬웨어의 버전 1 및 1.1를 대상으로 Talos가 관찰한 현재 알려진 모든 Thanatos 샘플에서 테스트를 수행했습니다. 


참고: 파일을 최대한 빨리 복호화하려면 ThanatosDecryptor를 원래 감염된 시스템에서 악성코드로 생성되었던 원래 암호화된 파일에 대해 실행해야 합니다.


이 복호화 유틸리티는 현재 아래 유형의 파일들을 지원합니다.


이미지: .gif, .tif, .tiff, .jpg, .jpeg, .png

동영상: .mpg, .mpeg, .mp4, .avi

오디오: .wav

문서: .doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf, .odt, .ods, .odp, .rtf

기타: .zip, .7z, .vmdk, .psd, .lnk


이 복호화 툴은 먼저 랜섬웨어와 동일한 디렉토리를 검색하여 .THANATOS 파일 확장자가 포함된 파일들을 검색합니다. .THANATOS 파일 확장자가 포함된 파일의 경우 이 툴은 감염 중에 그대로 남아 있는 원래 파일 확장자를 확보하여 이를 지원되는 파일 유형 목록과 비교합니다. 지원되는 파일 유형일 경우 복호화 툴이 해당 파일을 복호화 대상큐에 지정해 놓습니다. 


또한 ThanatosDecryptor는 Windows 이벤트 로그 업타임 메시지를 파싱함으로써 암호화된 파일 생성 시간 메타데이터를 사용하여 암호 해독의 시작 값을 결정합니다. 이 값은 암호화 키 도출을 위해 사용되며, AES 암호 해독 작업은 파일 내용을 대상으로 수행됩니다. 그 결과로 파악된 바이트 수를 특정 파일 유형의 유효 파일 헤더로 알려진 값과 비교합니다. 양자가 일치하지 않을 경우, 암호 해독 프로세스가 성공하지 못한 것이므로 암호화 키의 초기 값을 증가시켜 프로세스를 반복합니다. 성공하면 원래 파일을 파일 시스템에 기록하고 원래 파일 이름이 복구됩니다. 한 개 파일의 암호 해독이 성공하고 나면, 서로 매우 유사하기 때문에 ThanatosDecryptor가 해당 암호 해독 시도의 초기 값을 추가 파일에 대한 암호 해독 시도의 출발점으로 사용합니다. 


ThanatosDecryptor를 실행하려면 여기서 ThanatosDecryptor 프로젝트를 다운로드하여 릴리스 디렉토리에서 찾을 수 있는 ThanatosDecryptor.exe를 실행하십시오. 추가 정보와 예시 출력은 여기서 얻을 수 있습니다.


돈을 원하는가… 그렇지 않은가


앞서 언급했듯이 여러 Thanatos 공격과 관련 샘플을 통해 볼 때, 이 위협의 배후에 있는 공격자는 지불 요구를 지원하는 암호화폐 유형을 변경하였습니다. 다양한 지갑 및 관련 암호화폐를 분석한 결과, 시간 경과에 따라 이 악성코드 공격의 규모와 성공에 관하여 몇 가지 흥미로운 정보가 나타났습니다. 모든 샘플에서 악성코드에 수반되는 랜섬 노트에 표시된 지불 지시에는 아래 암호화폐 지갑이 열거되어 있습니다.


비트코인 ($BTC):

1HVEZ1jZ7BWgBYPxqCVWtKja3a9hsNa9Eh

1DRAsxW4cKAD1BCS9m2dutduHi3FKqQnZF


이더리움($ETH):

0x92420e4D96E5A2EbC617f1225E92cA82E24B03ef


비트코인 캐시 ($BCH):

Qzuexhcqmkzcdazq6jjk69hkhgnme25c35s9tamz6f


ZCash ($ZEC):

t1JBenujX2WsYEZnzxSJDsQBzDquMCf8kbZ


비트코인 지갑을 분석하는 과정에서 우리는 공격자가 피해자로부터 단 한 건의 지급액도 수령하지 않았음을 확인했습니다. 사실 분석 대상인 샘플에 가장 빈번히 표시된 지갑(1HVEZ1jZ7BWgBYPxqCVWtKja3a9hsNa9Eh)조차도 유효한 비트코인 지갑이 아니었습니다. 이는 피해자가 비트코인을 사용하여 지불을 시도했어도 지불이 불가능했음을 의미합니다. 두 번째 지갑(1DRAsxW4cKAD1BCS9m2dutduHi3FKqQnZF)에서는 입출금 트랜잭션이 전혀 없었습니다.



마찬가지로 표시되었던 비트코인 캐시 지갑에서 단 한 건의 거래를 확인할 수 없었습니다.



Thanatos와 관련된 랜섬 노트 중 하나에 표시된 Zcash 지갑을 분석할 결과, 몇 건의 거래가 있었지만 이 지갑에 수취된 총 ZEC 금액은 2.24767084(약 미화 450 달러)에 불과했습니다.



마지막으로 공격자가 사용했던 이더리움 지갑에서도 몇 건의 트랜잭션이 확인되었습니다. 하지만 그 총액은 우리가 여러 위협 환경에서 정기적으로 관찰하는 보다 성공적 랜섬웨어 공격에 비하여 낮은 수준이었습니다. 이 지갑에서 수취한 총 ETH 금액은 0.52087597(약 미화 270 달러)에 불과했습니다.



위 내용은 무작위로 확인한 모든 샘플에서 공격자가 지갑을 통해 수취한 돈은 총 미화 720 달러에 불과하다는 것을 의미합니다. 수취된 암호화폐가 Thanatos 감염 결과로서 돈을 지불하는 피해자들과 직접 관련된 것이라면, 다른 경제적 동기를 가진 사이버 범죄  활동과 비교할 때 의미 있는 수익을 창출하지 못했음이 명확합니다.


결론


금전적 이익이든 아니면 데이터 파괴가 목적이든 간에 공격자들은 지속적으로 사용자들을 목표로 삼고 있습니다. 이 악성코드는 사용자 누구나 쉬운 목표가 될 수 있음을 입증해줍니다. 정교한 공격자가 아니더라도 대혼란을 야기할 수 있습니다. 또한 이용 가능한 공격 벡터는 끊임 없이 공급되고 있습니다. 이 경우 예를 들면 공격자는 Discord 채팅 플랫폼을 활용하였습니다. 그러므로 보안을 심각하게 생각하고, 개인용 또는 업무용이든 간에 시스템의 보안 유지를 위한 조치를 취하는 것이 중요합니다. 이들 공격 중 다수가 사용자들을 활용하기 때문에, 알 수 없는 출처에서 수신된 첨부 파일을 열거나 잘 모르는 링크를 클릭할 때 주의해야 합니다. 


대응


고객이 위협을 탐지하고 차단하는 데 유용한 기타 솔루션은 다음과 같습니다.



AMP(Advanced Malware Protection)는 공격자가 사용하는 악성 프로그램이 실행되는 것을 방지하는 데 이상적입니다.


CWS(Cisco Cloud Web Security) 또는 WSA(Web Security Appliance) 웹 검사 솔루션은 악성 웹사이트에 대한 접속을 방지하고 이 공격 수법에 사용되는 악성 프로그램을 탐지합니다.


Email Security는 해커가 공격의 일환으로 보낸 악성 이메일을 차단할 수 있습니다.


차세대 방화벽 (NGFW), 차세대 침입 방지 시스템(NGIPS),  Meraki MX같은 네트워크 보안 어플라이언스는 위협과 관련된 악성 트래픽을 감지할 수 있습니다.

AMP Threat Grid는 악성 바이너리를 식별하고 모든 Cisco 보안 제품에 보호 기능을 구축하는 데 효과적입니다.


Talos의 인터넷 보안 게이트웨이(SIG)인 Umbrella는 사용자가 회사 네트워크 안팎에서 악성 도메인, IP 및 URL에 연결하는 것을 방지합니다.


Open Source Snort Subscriber Rule Set 고객은 Snort.org에서 최신 룰 팩을 구매해 다운로드함으로써 최신 상태를 유지할 수 있습니다.


YARA 서명


또한 Talos는 Thanatos 랜섬웨어 패밀리와 관련된 샘플 식별을 위해 사용할 수 있는 아래의 YARA 서명도 제공합니다.

rule Thanatos


  


{


        strings:


  


        $s1 = ".THANATOS\x00" ascii


        $s2 = "\\Desktop\\README.txt" ascii


        $s3 = "C:\\Windows\\System32\\notepad.exe C:\\Users\\" ascii


        $s4 = "AppData\\Roaming" ascii


        $s5 = "\\Desktop\x00" ascii


        $s6 = "\\Favourites\x00" ascii


        $s7 = "\\OneDrive\x00" ascii


        $s8 = "\\x00.exe\x00" ascii


        $s9 = "/c taskkill /im" ascii


        $s10 = "Software\\Microsoft\\Windows\\CurrentVersion\\Run" ascii


  


        condition:


        6 of ($s1, $s2, $s3, $s4, $s5, $s6, $s7, $s8, $s9, $s10)


IOC(Indicators of Compromise, 침해 지표)


파일 해시 (SHA256)


bad7b8d2086ac934c01d3d59af4d70450b0c08a24bc384ec61f40e25b7fbfeb5

fe1eafb8e31a84c14ad5638d5fd15ab18505efe4f1becaa36eb0c1d75cd1d5a9

8df0cb230eeb16ffa70c984ece6b7445a5e2287a55d24e72796e63d96fc5d401

97d4145285c80d757229228d13897820d0dc79ab7aa3624f40310098c167ae7e

55aa55229ea26121048b8c5f63a8b6921f134d425fba1eabd754281ca6466b70

02b9e3f24c84fdb8ab67985400056e436b18e5f946549ef534a364dff4a84085

241f67ece26c9e6047bb1a9fc60bf7c45a23ea1a2bb08a1617a385c71d008d79

0bea985f6c0876f1c3f9967d96abd2a6c739de910e7d7025ae271981e9493204

42748e1504f668977c0a0b6ac285b9f2935334c0400d0a1df91673c8e3761312


URL


hXXps://cdn[.]discordapp[.]com/attachments/230687913581477889/424941165339475968/fastleafdecay.exe

hXXp://iplogger[.]com:80/1CUTM6

hXXp://iplogger[.]com:80/1t3i37


사용자 에이전트



Mozilla/5.0 (Windows NT 6.1) Thanatos/1.1