배드래빗(BadRabbit) 랜섬웨어 - 분석 및 예방책 소개

2017. 10. 26. 15:34새로운 소식/랜섬웨어 및 위협공지

 

어베스트에서 제공하는 랜섬웨어 예방 기능 소개



어베스트에서는 랜섬웨어에 대응하기 위해 기존의 파일 방어, 메일 방어, 웹 방어와 함께 랜섬웨어를 예방할 수 있는 기능인 랜섬웨어 감시 모듈을 탑재하고 있다. 참고로, 어베스트 인터넷 시큐리티 프리미어 제품에서 제공하고 있으며, 랜섬웨어를 예방하기 위한 설정 방법은 아래 링크를 참고한다.

 

 


2017년 10월 24일경, 배드래빗(BadRabbit)이라는 새로운 랜섬웨어가 출현하였는데, 분석결과 NotPetya 코드를 변형한 형태로 확인되었다. 배드래빗 랜섬웨어는 러시아 뉴스 사이트를 통해 유포되었다. 배드래빗은 WannaCry나 NotPetya와 같은 랜섬웨어에 비해 확산속도는 더딘 편이었다. 하지만, 우크라이나의 오데사 공항, 키예프 지하철 등 기반 시설로 확대되고 있는 상황이다.

 

배드래빗에 감염된 파일을 복구하려면 0.05 비트코인이 필요하며, 현재 시세로 약 276달러이다.

 

어베스트 위협 분석 데이터에 따르면 15개 국가에서 배드래빗의 감염 사례가 확인되었다. 가장 많은 감염이 발생한 나라는 러시아로 약 71%를 차지했으며 우크라이나가 14%, 불가리아가 8% 순으로 감염된 것으로 분석되었다.

 

미국, 폴란드, 루마니아 등 다른 중앙 및 동유럽 국가도 일부 피해를 입었지만, 피해 사례는 상당히 적은 편으로, 대략 1% 미만으로 계산되었다.

 

[

 

 

[배드래빗 감염 관련 지도]

 

 

배드래빗 감염 방식

 

배드래빗을 감염시키기 위해 공격자는 러시아의 인타르팍스(Interfax), 폰탕카(Fontanka)와 같은 유명한 언론 매체를 이용했으며, 워터링 홀 공격을 통해 방문자들을 감염시켰다. 랜섬웨어의 주요 목적이 금전적 이득이지만, 다른 의도로는 회사의 운영을 마비시킬 수 있는 효과적인 수단이라는 점이다. 기존 랜섬웨어 공격에서는 이러한 목적을 달성하였으며, 일부 대기업에서 시스템이 랜섬웨어에 감염된 이후 직원들이 귀가하는 사례도 발생했었다.

 

공격에 이용된 웹사이트에는 교묘하게 조작된 스크립트가 삽입되었으며, 방문한 사용자들이 가짜 Adobe 플래시 업데이트 설치 파일을 다운로드하도록 유도했다. 일단 실행할 경우에는 배드래빗에 감염되어 실행된다.

 

배드래빗에 감염되고 나면, 시스템에 연결된 네트워크에 있는 다른 컴퓨터로 감염을 확대시키려고 시도하게 된다. 배드래빗에는 간단한 형태의 로그인 정보를 가지고 있어 로컬 네트워크에서 간접적으로 감염을 확대시킨다. 게다가, Mimikatz(윈도우 비밀번호를 해킹하는 도구)를 이용하여 로그인 정보를 늘려가게 된다. 이 방법은 기존에 NotPetya에서 이미 이용되었던 방법이다. WannaCry, NotPetya와는 달리 SMB 프로토콜을 통해 감염을 확대시키며, 익스플로잇 코드는 현재까지 이용된 바가 없다. 내부 네트워크에서 감염되는 속도는 추정하는 비밀번호 또는 사전식 공격으로 유추하여 로그온하는데 걸리는 시간, 그리고 전체적으로 공개된 네트워크 공유에 따라 달라진다.

 

Mimikatz는 윈도우의 LSASS(Local Security Authiority Subsystem Service)라는 프로세스를 공격한다. 참고로, LSASS에는 사용자 계정과 관련된 비밀번호가 해쉬 값으로 저장되어 있으며 다른 컴퓨터에 공유된 폴더 등을 접근할 때에 인증 세션으로 이용된다. LSASS에 등록된 로그인정보는 세션이 유지되는 동안 다시 입력할 필요가 없다.

 

LSASS 프로세스가 이용하는 메모리에는 로그인 정보를 찾을 수 있으며, 덤프로 뜰 수 있다. 공격자는 원격에 있는 공유 폴더에 접근하기 위해 로그인 정보를 이용할 수 있는데 이 정보를 활용하여 배드래빗과 같은 랜섬웨어가 원격지 공유 폴더를 암호화하거나 다른 시스템으로 감염을 확대시킬 수 있다.

 

LSASS 프로세스에서 로그인 정보가 유출되지 않도록 하기 위해서는 LSASS를 윈도우 8.1 이상 운영체제에서 보호 모드로 동작시켜야 한다. 하지만, 이 옵션은 기본적으로 활성화되어 있지 않다.

 

 

감염 과정

 

배드래빗 개발자들은 새로운 코드를 개발하지 않고 기존에 널리 이용되었던 NoPetya 랜섬웨어의 코드를 대부분 이용했으며, 버그라던지지 새로운 요구사항에 맞게 일부를 개조한 정도이다.

 

배드래빗은 감염된 컴퓨터에서 디스크 및 파일을 모두 암호화한다. Windows Cryptogrphy(Crypto-API)를 이용하여 파일을 먼저 암호화한다. 동시에, Diskcrypt라는 디스크 암호화 소프트웨어를 PC에 설치하고 디스크를 암호화한 후에 재부팅을 기다리게 된다. 배드래빗이 사용한 Diskcript 프로그램은 정상적으로 이용하는 소프트웨어로 3년전에 출시된 버전이다.

 

Diskcrypt가 설치되는 동안에, 악성코드는 "cscc"라는 서비스를 추가한다. 만약 실패할 경우에는 윈도우에서 제공하는 "cdfs"(CD-ROM File System) 서비스를 하이재킹하게 된다.

 

배드래빗은 앞에서 언급한 바와 같이 파일을 암호화한다. 암호화된 파일은 원래의 폴더 위치에 그대로 저장되기 때문에 복호화키가 없는 경우 복구가 거의 불가능하게 된다. 어떤 랜섬웨어들은 암호화된 파일을 새로운 경로에 저장하고 기존 파일을 삭제하는 경우가 있다. 이러한 경우에는 삭제한 파일을 복구할 수 있는 가능성이 어느정도 있기 때문에 암호화의 피해 효과가 적어지게 된다.

 

배드래빗은 AES-128 암호화 기법을 통해 암호화하기 때문에 무차별 대입법을 이용하여 해독하는 것이 현실적으로 어렵게 된다. 또한, 감염된 PC의 모든 파일에 동일한 암호화키를 이용한다. 암호화된 파일은 내용의 끝부분에 "encrypted"라는 단어가 추가되어 표시된다.

 

암호화 키는 33바이트로 된 랜덤 값으로 CryptGenRandom 이라는 고성능 랜덤 값 생성기를 이용하여 생성한다. 이 키는 MD5 해시 함수를 통해 32 글자로 된 텍스트로 변환된다. 즉, AES-128 암호화의 복호화키가 MD5 해시값이다.

 

AES-128 키는 컴퓨터 이름, 도메인 이름, 표준 시간대 및 랜덤값(salt)를 조합하여 만들어진다. 악성코드 바이너리에 코딩된 RSA 공개키를 이용하여 암호화된다. 암호화된 결과는 X:\reame.txt (X: 는 하드 디스크 드라이브) 파일로 저장된다. "user-ID"로 저장되며, DiskCrypt로 디스크가 암호화된 경우라면 재부팅 시에 부팅하는 과정에서 "user-ID"를 볼 수 있다.

 

올해 7월에 전 세계를 강타한 NotPetya 랜섬웨어와는 달리 암호화키 생성 과정에서 버그가 보이지는 않는다. 즉, 배드래빗이 암호화한 파일은 손상되지 않았다는 의미이다.

 

 

 

안티바이러스 탐지 우회 기법

 

안티바이러스가 탐지하지 못 하도록 우회하기 위해서 랜섬웨어는 명령행 파서를 교묘하게 조작하여 이용하며, 예를 들면 다음과 같다. 만약 실제 명령행에 아래의 명령어가 입력되어 실행된다면 안티바이러스가 바로 탐지할 수 밖에 없다.

 

C:\Windows\system32\cmd.exe /c schtasks /Create /RU SYSTEM /SC ONSTART /TN rhaegal /TR "C:\Windows\system32\cmd.exe /C Start \"\" \"C:\Windows\dispci.exe\" -id 4294681185 && exit"

 

-> C:\Windows\dispci.exe -id 4294681185

 

어베스트 안티바이러스와 AVG 안티바이러스 제품에서는 Win32:Malware-gen 이름으로 진단 및 차단하여 이용자를 보호한다.


 

배드래빗 감염 예방법

 

안티바이러스 제품을 이용하여 배드래빗의 감염을 예방할 수 있다. 만약 시스템을 관리자로 로그인하여 이용하는 경우, "C:\Windows\cscc.dat"파일이 시스템에 저장되어 있는 경우에는 악성코드가 실행되지 않게 된다. 이 파일이 없는 경우 가짜로 생성하게 되면, 배드래빗이 감염되지 않도록 예방할 수 있다.

 

불행하게도 PC가 배드래빗에 감염된 경우에는 해독하는 방법이 공격자에게 돈을 주고 복호화키를 구하는 방법밖에 없게 되므로 사실상 불가능한 상태로 볼 수 있다.

 

배드래빗과 같은 랜섬웨어를 예방하려면 다음의 방법을 추천한다.

  • 컴퓨터, 스마트 폰 등 모든 장치에 안티바이러스 제품을 설치한다. 안티바이러스 제품은 랜섬웨어 뿐만 아니라 다양한 위협에 대해 예방할 수 있는 수단이다.
  • 이용 중인 소프트웨어를 최신으로 업데이트한다. 특히, Adobe와 같이 널리 이용되는 프로그램은 공격자들이 악성코드를 유포하기 위한 익스플로잇 코드로 활용되는 사례가 많으므로, 자주 업데이트 여부를 확인해야 한다.
  • 웹사이트 이용시 주의한다. 정상적인 웹사이트에서도 랜섬웨어와 같은 악성코드를 다운로드하는 경우도 많기 때문에 "파일을 다운로드할 때"에는 주의를 기울일 필요가 있다. 대부분의 사람들은 워드나 엑셀 문서에서는 악성코드가 감염되지 않는다고 생각하는데 오산이다. 만약 워드나 액셀에서 매크로가 실행되도록 설정된 경우라면 악성코드가 감염될 수 있는 가능성이 충분하다.
  • 백업을 자주 하라. 암호화로 인해 개인의 중요한 정보가 손상되는 것을 예방하기 위해 정기적으로 백업을 해야 한다. 특히, 백업을 한 디스크는 인터넷이 연결되지 않은 안전한 장소에 보관해야 한다.

 

출처: 어베스트 블로그(https://blog.avast.com/its-rabbit-season-badrabbit-ransomware-infects-airports-and-subways)

 

고맙습니다.