CryptoWall에 해당하는글 2

사이버보안 업계에서는 누군가 대규모 맬웨어공격을 성공시킬 때마다 그 배후자에 대해 분노와 경외감을 동시에 느끼는 것이 일반적이다. 랜섬웨어가 바로 그러한 경우다. 랜섬웨어는 2009년 초부터 서서히 번지기 시작했지만 랜섬웨어의 의미를 재정립하고 그 위협을 새로운 수준으로 끌어올린 건 바로 CryptoWall이다. 초기 랜섬웨어는 정상파일로 가장한 감염파일이 파일공유사이트를 통해 배포되는 식으로 전파됐다. 랜섬웨어가 다운로드되면 사용자 기기에서 실행되어 사용자 데이터를 암호화하거나 기기 자체를 잠가 버리게 된다. 여기에서는 CryptoWall이 전통적인 방어대책인 안티바이러스를 어떻게 회피했는지에 대해 살펴보고자 한다.

 

1단계: 사전작업

 

오늘날 모든 기업에서 가장 널리 사용되는 수단은 바로 커뮤니케이션이다. CryptoWall 제작자들은 공격진입지점으로 활용하기 위해 인터넷에서

(주로 마케팅사이트를 통해 알려지는) 공개된 회사 이메일주소를 수집해 왔다. 그리고 이들 이메일주소에 대해 피싱이메일이 전송됐다. 이들 피싱이메일은 수신자 측에서 중요 이메일이기 때문에 제대로 열람해야 한다고 착각하도록 위장됐다. 이들 이메일은 대체로 CryptoWall 랜섬웨어에 대한 직접다운로드 링크 또는 첨부물을 포함하고 있으며 물론 수신자는 이를 알지 못한다. 사용자가 이 링크나 첨부물을 클릭하는 즉시 암호화 과정이 개시된다. 아래는 booking.com 이메일로 위장된 랜섬웨어 첨부 이메일의 예시다.

 

Booking.com 이메일 예시

 

2단계: Cryptowall 4.0 최신버전 해부

 

Cryptowall 4.0

Md5 해시값: e73806e3f41f61e7c7a364625cd58f65

 

CryptoWall은 다음과 같은 시스템정보를 수집한다.

∘ ComputerName

∘ UserName

∘ SystemDrive serial number

∘ CPU INFO (using PROCESSOR_IDENTIFIER)

∘ Number of CPUs (using PROCESSOR_Level)

∘ Revision Number of CPU (using PROCESSOR_REVISION)

∘ OS Major version

∘ OS Minor version

∘ IsWow64

∘ Keyboard Layout

 

로딩된 모듈에는 윈도 Crypto API(CRYPTSP), 윈도7 Windows 7 Enhanced Cryptographic Provider(RSAENH)에 관련된 DLL이 있다. 이를 통해 CryptoWall이 암호화에 관련된 활동을 개시하리라는 사실을 짐작할 수 있다.



CryptoWall은 위 시스템정보를 활용하여 다음과 같은 API 시퀀스를 통해 피해자 PCmd5 해시를 생성한다.

∘ CryptAcquireContext

∘ CryptCreateHash ; Algorithm ID = CALG_MD5 0x00008003, hash key: nonkeyed algorithm (0)

∘ CryptHashData

∘ CryptGetHashParam

 

그 예시는 아래와 같다.




 

CryptoWall은 아래와 같은 API를 사용하여 새로운 프로세스인 Explorer.exe에 코드를 주입하게 된다.

∘ ZwCreateSection

∘ ZwMapViewOfSection

∘ ZwAllocateVirtualMemory

∘ ZwWriteVirtualMemory

∘ ZwProtectVirtualMemory

∘ ZwQueueApcThread

∘ ZwResumeThread

 

CryptoWall%APPDATA% 폴더의 원본파일에 대한 사본을 생성하고 AutoStart 레지스트리 입력을 생성하게 된다. 주입된 코드는 시스템 보호를 해제하는 역할을 하며 또한 시스템의 숨은 사본을 삭제하고 새로운 프로세스인 svchost.exe에 코드를 주입한다.

 

숨은 사본을 제거하여 파일복구서비스 불능화

 

- AV Limitation: - Emulation TimeOut

 

시스템복구 불능화

 

암호화과정은 svchost.exe에서 이어진다. 이 프로세스에서는 CnC(command and control, 명령통제) 서버와 통신하기 위해 필요한 명령을 구현한다. 또한 이상의 시스템정보를 수집하고 피해자 PCmd5 해시를 생성하여 이를 통해 CnC 서버와 통신하게 된다.

 

일부 CnC 서버:

 

CnC 서버

 

네트워크 커뮤니케이션은 HTTP를 사용하되 암호화된다. I2P URL을 통해 다음 I2P 프록시 중 하나에 접속을 시도하게 된다. 이 접속이 성공하면 POST 요청과 암호화된 스트링 요청을 전송하게 된다.


 

CryptoWall은 다음과 같은 정보를 설정파일 내부에 보관한다.

∘ Received public key binary data

∘ TXT

∘ HTML

∘ PNG

 

위 정보 중 마지막 3개 파일은 파일암호화 프로세스 이후 피해자 시스템의 각 폴더에 쓰여진다.

∘ Normal file behavior

∘ Payload after multiple layers of encryption

 

3단계 - 자동차에 열쇠를 놓고 나온 상황

 

자동차 안에 열쇠가 놓인 채로 문이 잠긴다면 무척 난감하다. 열쇠를 코앞에 두고도 방법이 없어서 따로 기사를 불러야만 하거나 도구를 기가 막히게 쓸 수 있어야만 한다. 랜섬웨어가 딱 이렇다. 사용자의 소중한 정보와 데이터가 인질로 잡혀 공개될 위기에 있는 와중에 이를 막기 위한 방법이 없기 때문이다.

 

HELP_YOUR_FILES.HTML

 

CryptoWall은 암호화를 끝내고 나서 사용자에게 상황을 설명하고 복호화수단 구매방법을 안내하는 메시지를 전송한다.

 

CryptoWall에 대해 보다 상세한 정보는 아래 링크 참조.

https://blog.threattrack.com/cryptowall-4-targets-bookings-com-customers/

 

 

4단계 랜섬웨어 대비솔루션 모색

 

다행인 점은 바로 CryptoWall 감염의 징후가 발견된다면 이를 막을 수 있는 기회가 적지 않다는 것이다. 우선 이메일의 경우 기존 보안대책을 회피하는 맬웨어를 포착하도록 설계된 지능형 이메일보안솔루션은 랜섬웨어를 유포시키는 랜섬웨어나 취약점악용을 탐지할 수 있는 훌륭한 방책이다. 이를 통해 CryptoWall에 의한 데이터 탈취 및 암호화를 방지할 수 있다. 그리고 네트워크 방어를 강화할 수도 있다. 발견된 위협을 식별하고 이를 네트워크 이상활동과 연관시키는 지능형 보안솔루션은 데이터를 지킬 수 있는 중요한 자산이다. ThreatTrack이 개발한 ThreatSecure Network는 엔드 간 네트워크 가시성을 제공하며 실시간탐지를 통해 랜섬웨어 배포 그리고 이에 대한 CnC 서버와 관련된 악성 IP 주소를 거치는 트래픽을 잡아낼 수 있다.


<참고: ThreatTrack 보안솔루션>




ThreatTrack Security Labs, The Day the Earth Stood Still for CryptoWall, 5. 25. 2016.

https://blog.threattrack.com/the-day-the-earth-stood-still-for-cryptowall/

 

번역: madfox




참고링크 


<유료안티바이러스 제품소개>

COMMENT : 0 TRACKBACK : 0

날짜

2016. 6. 1. 14:13

 

짐작할 수 있듯 랜섬웨어에 대해 가장 많은 질문은 바로 "이제 어쩌지?". 무엇을 할 수 있었는지 그리고 했어야 하는지에 대한 온갖 지식은 랜섬웨어에 감염되고 나서야 밀려온다. "매크로 설정"을 사용하라는 설명을 무시했을 수도 있고 문제의 이메일을 애초에 그냥 지워 버렸을 수도 있으며 최근에 할인행사를 하던 USB 백업드라이브를 구매했어야 한다는 식이다.

 

그러나 모든 파일이 암호화되고 공격자 측에서 이 소중한 파일을 복호화하는 키를 제공하는 대가로 비트코인 300달러어치를 요구하고 있는 최악의 상황이 닥치면 어떻게 해야 할까. 이 때 오프라인 백업도 없고 보존하려는 파일은 죄다 사용 불가능한 상태로 하드디스크에 갇혀 있는 상황이라고 가정한다. 이 경우 돈을 내지 않고도 파일을 복구할 수 있는가. IT 문제가 다 그렇듯 이에 대한 대답은 "경우에 따라 다르다"가 된다.

 

피해복구방법: 지름길

 

랜섬웨어 공격자는 프로그래밍 과정에서 종종 실수를 하게 되는데 이 경우 무료복구가 가능한 지름길이 생기게 된다. 예를 들어 최초의 랜섬웨어 공격이 발생했던 1989/1990년 사례를 보면 공격자가 파나마의 정해진 주소로 378달러의 은행수표를 보내도록 요구한 적이 있다. 그런데 이 공격자는 모든 컴퓨터에 적용되는 암호화키를 사용하는 간편한 방법을 택했으며 그 결과 AIDS Information Trojan이라는 이름의 해당 맬웨어를 해제할 수 있는 무료툴이 금방 등장하게 됐다. 최근 리눅스기반 랜섬웨어의 사례도 이와 유사한데 이 사례에서는 프로그래머가 공격대상이 되는 여러 서버에 대해 모두 다른 암호화키를 사용했으며 이는 동일한 파일 사본도 다르게 암호화되는 결과로 이어졌다. 하지만 이들은 유사난수생성(pseudo-random number generator, PRNG)이라고 알려진 알고리즘을 통해 암호화키를 생성했는데 이 알고리즘은 최초 암호화대상의 타임스탬프(시점기록, timestamp)를 통해 작동하는 방식을 취했다. 이렇게 보면 복호화키 또한 공격대상 측에서 만들어내는 게 가능했다.

 

일반적인 오프라인 백업 없이도 분리 디스크나 클라우드를 통해 암호화된 데이터의 전부 또는 일부를 복구할 수 있는 길도 있다. 예를 들어 윈도의 경우 파일의 숨은 사본을 만들 수 있는데 이는 일종의 온라인 백업으로 파일의 과거 버전을 간편하게 관리할 수 있는 수단이기도 하다. 숨은 사본은 이름이 지정된 볼륨스냅샷서비스(Volume Snapshot Service, VSS) 파일로 저장된다. VSS 파일은 일부 랜섬웨어에 대해 빠른 복구대책이 될 수 있으나 요즘은 대부분의 랜섬웨어가 데이터 암호화를 실행하기 전에 시스템명령 조작을 통해 VSS 파일을 삭제하기 때문에 이렇게 복구가 가능해지는 경우는 거의 없다.

 

결국 랜섬웨어 공격이 발생했을 경우 해당 맬웨어를 식별할 수 있다면 일단 돈을 지불하지 않고도 복구를 할 수 있는 지름길이 있을지에 대해 알아볼 필요는 있다. 하지만 솔직히 말하자면 "요즘은 그런 간편한 해결은 거의 불가능하기 때문에 최악의 상황을 예상해야 할 것이다."

 

피해복구방법: 돌아가는 길

 

정상적인 프로그램이 기존 파일을 수정할 경우 우선은 해당 파일의 사본을 생성한 다음에 그 사본을 수정하고 나서 원래 파일을 삭제하는 과정을 거친다. 이 원리를 활용한다면 프로그램이 파일을 처리하는 중에 작동 중단될 경우 해당 파일을 복구하는 데 도움을 받을 수 있다.

 

만약 공격자가 이러한 과정을 거쳐 파일을 암호화한다면 공격대상 운영체제의 일반적인 파일삭제 기능을 사용한다는 가정 하에 기존 파일 중 일부를 삭제하지 않는 경우가 있을 수도 있다. 이는 대부분의 운영체제가 삭제된 파일에 곧바로 덮어쓰지 않기 때문이다. 운영체제 대부분은 덮어쓰기에 소요되는 시간을 줄이기 위해 삭제된 기존 파일이 차지하던 디스크공간을 "재사용 가능"으로 표시하며 따라서 일정기간 동안은 삭제된 기존 파일의 복구가 가능한 경우가 많다.

 

하지만 파일삭제 누락은 복불복의 성격이 강하다. 이 방법을 제대로 거치려면 데이터포렌식 전문가를 동원하여 돈과 시간을 들여야 하며 이 경우에도 실망스러운 결과만 남을 수도 있다. 사실 포렌식 전문가의 고용은 살인사건 수사와 같이 아주 중요한 경우에나 있을 법한 일이다. 그리고 랜섬웨어 공격이 발생하고 나면 공격자가 요구하는 금액보다 데이터복구비용이 더욱 많이 나올 수도 있음을 염두에 둬야 한다.

 

물론 랜섬웨어 공격자 역시 피해자가 돈을 안 내고 파일을 복구하는 결과를 원치 않으며 따라서 코딩에 그렇게 심혈을 기울이지는 않는다. 랜섬웨어는 대체로 기존 파일에 그대로 덮어쓰며 이를 통해 기존 데이터가 남아 있을 여지를 최대한 없앤다. 그러나 이론적으로 생각한다면 기존 파일에 덮어쓴다고 해도 실제로는 기존 데이터가 있던 디스크 영역에 덮어쓰지 않는 경우일 수도 있다. 몇몇 운영체제와 일부 디스크의 경우 이른바 wear levelling이라고 하여 디스크 작성영역을 임의로 변경한다. 플래시메모리를 사용하는 고체(solid state) 디스크는 전자 수준에서서의 마모로 인해 성능이 저하될 수 있으며 따라서 동일한 메모리 셀에만 계속 작성할 경우 기기 수명이 줄어들 수 있다. 이를 완화하는 대책이 바로 wear levelling이다. 따라서 디스크영역 수준이나 심지어 디스크 펌웨어 수준으로 파고들어가서 논리적으로는 덮어씌워졌으나 물리적으로는 보존된 상태의 데이터를 찾아내는 방법은 기술적으로 분명 가능한 일이다.

 

그러나 다시 말하지만 이 방법은 자존심을 죽이고 공격자에게 돈을 지불하는 방법보다 훨씬 불확실하고 아주 많은 비용을 지출할 수도 있음을 상기해야 한다.

 

암호화 해제

 

랜섬웨어 공격을 무력화시킬 마지막 방법으로 공격자가 사용한 암호화 자체를 해제하는 방법이 있다. 앞서 언급했듯 랜섬웨어 공격자는 프로그래밍 과정에서 종종 실수를 저지르거나 약한 암호화를 사용하거나 혹은 강한 암호화라도 잘못 사용함에 따라 암호분석학적인 틈(backdoor)을 남겨놓는 경우가 있다. 물론 이들이 정상적으로 암호화를 적용했다면 이를 해제하는 건 사실상 불가능하며 그 이유는 다음과 같다.

 

CryptoWall이나 Locky와 같은 대부분의 랜섬웨어는 다음과 같은 수법으로 작동한다.

공격자가 운영하는 서버에 접속하여 공격대상 컴퓨터에 고유한 RSA 공개키를 다운로드

각 파일에 대한 임의의 AES 키를 생성하고 해당 파일을 암호화

해당 AES 키를 RSA 공개키로 암호화하고 공격대상 파일과 암호화된 복호화키를 함께 저장

 

위 내용이 단번에 이해가 안 된다고 염려할 필요는 없다. 이 수법은 RSA 암호화 알고리즘이 두 개의 키를 가지고 작동한다는 데 착안하고 있다. 공개키로 데이터를 암호화하기 때문에 오로지 개인키만이 해당 데이터를 복호화할 수 있다. 바꿔 말하자면 만약 공격자가 클라우드에서 RSA 공개-개인키 쌍을 각 컴퓨터별로 생성하고 공개키만 배포하게 된다면 피해자 파일을 암호화한 AES 키를 복호화하기 위해 필요한 고유의 개인키는 오로지 공격자만이 보유하게 된다.

 

그렇다면 RSA 공개키로 곧바로 암호화를 하지 않고 어째서 굳이 AES 키를 다시 사용하는가. 이는 RSA 키의 작동속도가 느리기 때문에 AES처럼 훨씬 빠른 알고리즘을 사용하는 임의의 키와 같은 소량의 데이터를 암호화할 경우에 적합하기 때문이다. 한편 파일마다 다른 키를 사용하는 이유는 무엇인가. 이는 모든 파일의 암호화가 다를 경우 컨텐츠가 동일하다 해도 하나의 파일에 사용된 복호화 단서를 다른 파일에 적용할 수 없기 때문이다.

 

이 말인즉 돈을 내지 않고 피해파일을 모두 복구하는 일은 다음과 같다.

RSA 공개-개인키 알고리즘을 해체하여 각 파일에 대한 AES 키 복구

각 파일에 대한 AES 암호화 알고리즘을 일일이 해체

 

이렇게 어렵고 불확실한 과정을 거치기보다는 차라리 그냥 돈을 지불하는 방법이 속이 편할 수도 있다.

 

최종 선택지

 

여기까지의 내용만을 본다면 그냥 돈을 지불하는 게 낫다는 식으로 보일 수도 있다. 하지만 돈을 지불할 경우 이는 범죄자를 먹여살리는 셈이 되기 때문에 돈을 지불하지 않는 길을 권고한다. 사실 랜섬웨어 공격을 당하고 나서 모든 파일을 없애고 처음부터 다시 시작한다는 결정을 내린다면 이는 "힘내라"는 말과 함께 격려를 받을 만한 결단이다. 이 글의 요지는 암호화된 파일이 정말로 필요하고 백업과 같은 예비대책을 전혀 세우지 않은 상태라면 돈을 지불하는 외에 달리 선택지는 없다는 데 있다.. 물론 이 글에서는 여전히 돈을 지불하지 않는 길이 낫다는 논지를 유지하나 각자의 결정을 존중할 수밖에 없는 일이다(데이터의 존폐가 경각에 걸린 상황에서 자존심을 세우기란 어렵다). 그런 상황이 오지 않는 게 가장 바람직하지만 비교적 타협의 여지가 없다는 식으로 설명한다면 경각심 측면에서 도움이 될 수 있다는 판단에 따라 글의 흐름이 위와 같이 전개됐다. 결국 "예방이 치료보다 낫다"는 말이다.

 

랜섬웨어 예방요령

 

주기적으로 백업하고 최신 백업사본을 격리하여 보관. 파일이 갑자기 사라질 수 있는 원인으로는 랜섬웨어 외에도 화재, 홍수, 절도, 기기고장, 실수에 의한 삭제 등 수많은 요인이 있을 수 있기 때문이다. 백업사본을 암호화한다면 백업기기가 탈취되는 경우에도 염려할 필요가 없다.

이메일로 수신된 문서 첨부물에 대한 매크로 적용 해제. 수많은 맬웨어는 문서첨부물을 통해 침입하며 사용자로 하여금 매크로(내장된 문서스크립트)를 설정하도록 유도한다. 그냥 안 하면 된다. 마이크로소프트의 경우 이미 수년 전 보안조치로 매크로 자동실행 해제를 기본설정으로 적용했다.

마이크로소프트 오피스 뷰어 설치. 뷰어 어플리케이션을 사용하면 워드나 엑셀을 직접 사용하지 않고도 문서파일을 살펴볼 수 있다. 특히 뷰어는 매크로를 전혀 지원하지 않기 때문에 실수로 매크로를 작동시킬 염려도 없다.

요청하지 않은 첨부물 주의. 문서파일을 통해 맬웨어를 보내는 공격자는 사용자가 확신할 수 있기 전에는 파일을 열어서는 안 되는 동시에 확신을 하려면 그 파일을 열 수밖에 없다는 딜레마를 악용한다. 의심의 여지가 있다면 그 파일은 그냥 버려야 한다.

필요 이상의 로그인 권한을 부여하지 말 것. 가장 중요한 부분은 바로 관리자권한 로그인상태를 필요 이상으로 방치하지 말아야 한다는 점이며 관리자권한을 보유한 상태에서는 브라우징, 문서 열기를 비롯한 "통상적 작업" 활동을 피해야 한다.

신속히 그리고 자주 패치 확인. 문서 매크로를 통해 침투하지 않는 맬웨어는 대체로 오피스, 웹브라우저, 플래시 등 인기 어플리케이션의 보안허점을 악용한다. 패치가 빠르게 이루어질수록 공격자가 악용할 수 있는 허점도 줄어들게 된다.


<참고: 랜섬웨어 차단 가능한 AVG 안티바이러스>

 

 

 

Paul Ducklin, Got Ransomware? What Are Your Options?, 3. 3. 2016.

https://nakedsecurity.sophos.com/2016/03/03/got-ransomware-what-are-your-options/

 

번역: madfox




참고링크 


<유료안티바이러스 제품소개>

COMMENT : 0 TRACKBACK : 0

날짜

2016. 4. 26. 14:46

위로가기