컴퓨터 파일을 인질로 삼은 후 돈(비트코인)을 요구하는 랜섬웨어(Ransomware)의 기세가 올해에도 식을 줄을 모르고 있다.
2월부터 꾸준히 유포되고 있는 Locky 랜섬웨어에 이어 파일을 암호화한 뒤 스크립트를 이용해 목소리로 사용자에게 친절하게 비트코인을 요구하는 “Cerber 랜섬웨어”(이하 Cerber)의 감염 사례가 최근 꾸준히 접수되었다. Cerber의 유포경로는 주로 광고 서비스의 정상적인 네트워크를 이용하여 악성코드를 유포하는 “멀버타이징(Malvertising)”으로 알려져 있으며, “러시아 지하 시장”에서는 Cerber가 해커들에게 활발하게 판매되고 있는 것으로 파악된다.
Malvertising 에 사용된 도메인 일부는 다음 [표-1]과 같다.
Malvertising에 사용된 도메인 |
||||
angryfire.top
angrypack.top
asidewait.top
asklists.top
bidgood.top
|
bulkask.top
byfails.top
darkwoman.top
daysis.top
doubtnext.top
|
fewpieces.top
fitforget.top
flattank.top
fliedman.top
hostdoors.top
|
joinsseen.top
losefate.top
mapquote.top
mixplanet.top
quickwise.top
|
sadshame.top
thatan.top
turnedway.top
vagueland.top
wifestood.top |
[표-1] Malvertising에 사용된 도메인
아래의 [그림-1]은 Cerber의 동작을 보여준다.
[그림–1] 악성코드 주요기능 및 동작과정
이전에 유포 되었던 Cryptowall, Teslacrypt, Locky 랜섬웨어와 Cerber와의 가장 큰 차이점은 PE 파일의 리소스 영역 안에 미리 RSA 공개키를 보관해 둔다는 것이다. RSA 공개키 뿐만 아니라 감염 대상, 감염 방법 등도 함께 저장되어 있어 시스템 감염을 위해 따로 C&C와의 실시간 통신을 할 필요가 없다. 공격자 입장에서는 편의성이 좋아진 것이다.
또한 Cerber에 감염되면 암호화한 파일의 확장자를 “.cerber”로 변경하며, [그림-2]와 같이 “# DECRYPT MY FILES #.vbs” 라는 이름의 비주얼 베이직 스크립트를 생성하여 “당신의 파일이 암호화 되었습니다.”라는 경고문구를 직접 읽어주는 방법을 사용한다.
[그림–2] Cerber 음성 안내문
“# DECRYPT MY FILES #.vbs” 파일과 함께 생성되는 “# DECRYPT MY FILES #.html”과 # DECRYPT MY FILES #.txt” 파일은 암호화된 복호화를 위한 페이지 URL을 제공해 주는데, 파일 복호화 및 비트코인 결제를 진행하기 위해서는 익명성을 보장해 주는 “토르 웹 브라우저”를 설치한 후 [그림-3]의 빨간색 주소(“http://비트코인 결제 페이지/PC_ID” 형식이다.)로 접속하라는 안내가 되어 있다.
[그림–3] Cerber Bitcoin 안내 페이지
접속 시에는 간단한 국가 확인 및 인증 후에 파일 복구를 위해 0.75.BTC(약 36만원)에서 2.48BTC(약 120만원)의 비트코인을 지불하라는 문구가 게시되어 있다.
[그림–4] Cerber Bitcoin 결제 페이지
다음으로 Cerber가 어떠한 동작기능을 가지고 있는지 간단히 알아보자.
UAC 우회
Cerber는 암호화를 진행하기 전 UAC(User Access Control) 우회여부를 확인한다. UAC란 Windows Vista이상 운영체제의 보안기능 중 하나로써 관리자 수준 권한이 필요한 작업이 수행될 경우 사용자에게 알려주는 기능이다. Vista 이상 운영체제에는 사용자의 동의과정을 거친 후 프로세스가 관리자 권한을 가질 수 있다.
Cerber는 이 과정을 회피하기 위하여 UAC 우회를 시도하는데, [표-2]와 같이 레지스트리 값을 확인하여 UAC 기능이 존재하는지 확인한다.
UAC 레지스트리 존재 유무 확인
|
HKLMSoftwareMicrosoftWindowsCurrentVersionpoliciessystem
– Value: EnableLUA
|
[표-2] 암호화 대상 드라이브
레지스트리를 확인한 다음으로 UAC 우회가 가능한 PE 파일을 “%windir%system32“ 경로에서 찾아 임시폴더에 복사한 후, 프로그램 코드 진입점에 Cerber를 실행 시키는 코드를 삽입 하여 UAC를 우회한다. 또한 동작 중인 프로세스에 SeDebugPrivilege API를 호출하는 코드를 삽입하여 모든 프로세스에 대한 접근권한을 획득한다.