6월 동안 잠시 활동이 주춤했던 록키(Locky) 랜섬웨어가 보안 솔루션을 우회하는 기술을 탑재하며 더욱 위협적으로 활동을 재개했다.파이어아이에 따르면, 올해 6월 1일까지 록키 랜섬웨어는 스팸 메일을 통해 가장 많이 유포되는 랜섬웨어로서 악명을 높였다. 그러나 1일 이후 3주 간 정체기를 가지며 활동이 잠잠해지는 듯 했으나. 자바 스크립트 다운로더와 록키 페이로드 등을 업데이트하며 더욱 위협적으로 활동을 재개했다.

▲ 2016년 록키 랜섬웨어의 스팸 활동
록키 랜섬웨어는 특히 한국의 사용자를 대상으로 공격을 집중하고 있어 국내 기업 및 사용자들의 주의가 요구된다. 실제로 파이어아이가 밝힌 지난 6월 21일부터 23일 사이 국가별 탐지 내역을 살펴보면 한국은 일본, 미국에 이어서 록키 랜섬웨어의 스팸 이메일이 가장 많이 유포된 국가였다.

록키 랜섬웨어가 유포하는 스팸 메일은 흔히 미지불된 인보이스를 송부하는 메일을 가장하고 있다. 그러나 첨부된 ZIP파일에는 인보이스 대신 자바 스크립트로 쓰여진 록키 다운로더를 포함하고 있어, ZIP파일을 확인하려 실행하면 록키 랜섬웨어에 감염되는 것이다.

▲ 2016년 6월 21-23일 록키 랜섬웨어 국가별 스팸 유포

파이어아이에 따르면, 이번에 활동을 재개한 록키 랜섬웨어는 다운로더와 록키 페이로드에 몇 가지 업데이트가 이루어졌다. 록키 랜섬웨어의 자바 스크립트 다운로더는 타깃 시스템을 감염시키기 위해 다음의 과정을 따른다.

1. 록키 페이로드를 호스팅하는 URL들을 반복 실행한다.
2. 페이로드를 실행하는 URL중 하나로의 연결이 실패하면, URL들을 계속해서 반복 실행하기 전 1,000ms 동안 활동을 멈춘다.
3. 페이로드를 복호화하기 위해, XOR 기반 복호화 루틴을 이용한다.
4. 복호화된 바이너리가 미리 설정된 사이즈인지 확인한다. 복호화된 바이너리를 실행하기 위해서는 파일 크기가 143,360 바이트 이상이며 153,660바이트 이하여야 한다.
5. 바이너리의 처음 두 바이트가 헤더 시그니처로 ‘MZ’를 포함하고 있는지 확인한다.
6. 명령줄 매개 변수 ‘123’을 입력해 복호화한 페이로드를 실행한다.

▲ 록키 랜섬웨어의 스팸 메일
다운로드된 록키 랜섬웨어가 제대로 실행되기 위해서는 명령줄 인수(command-line arguments)가 필요하다. 파이어아이가 분석한 샘플에서는 자바 스크립트 기반 다운로더 단계에서 명령줄 매개 변수(command line parameter) ‘123’ 이 바이너리에 전달된다. 이 명령줄 인수 값은 랜섬웨어 코드 언패킹(unpacking) 단계에서 이용된다. 정상적인 바이너리는 통과된 인수 값을 확인하거나, 예상되는 값과 명령줄 매개 변수를 비교하여 인증에 실패하면 정상 종료된다.

그러나 록키 랜섬웨어의 경우 프로그램이 종료되지 않으며 명령줄 매개 변수로 받은 값을 바이너리로 정의된 상수 값으로 추가한다. 또한, 이 상수와 매개 변수 값의 합은 복호화 과정에 이용된다. 만일 명령줄 인수가 통과되지 않으면, 0을 상수에 추가한다. 이 경우 복호화 과정을 위한 상수가 불일치됨에 따라, 복호화된 코드가 유효하지 않게 돼 프로그램 충돌을 일으킨다. 이렇듯, 록키 랜섬웨어는 감염의 두 번째 단계를 진행하기 위해서 첫 번째의 다운로더 단계에 의존한다.

조남욱 기자
저작권자 © 데일리그리드 무단전재 및 재배포 금지