2014년 12월 발견된 랜섬웨어 악성코드 중, National Security Bureau(국가안보국: NSB)를 가장하여 사용자에게 돈을 요구하는 형태가 올해 1월 ASEC 블로그(http://asec.ahnlab.com/1020)에 소개되었다. 해당 랜섬웨어에 의해 감염된 파일들은 고유한 알고리즘에 의해 백업된 형태로 존재하며, 백신프로그램으로 치료가 가능한 형태라는 점이 특이한 부분이라 할 수 있다. 일부 백신업체에서는 이러한 특징을 바탕으로 해당 악성코드에 대한 진단명을 (VIRus + RansomLOCK = VIRLOCK)으로 명명한 것으로 추정된다.

악성코드 감염이 완료된 후, 사용자에게는 아래의 [그림-1]과 같은 "불법 소프트웨어가 탐지되어, 시스템 사용을 차단하였습니다."라는 메시지를 화면에 보여준다. 메시지 내용에는 차단된(Blocked) 파일의 개수를 명시하고 있으며, 돈을 지불하지 않을 경우 차단한 파일들을 모두 제거할 것이라는 경고가 존재한다. 복구를 위해 공격자가 요구한 지불 금액은 미화 250 달러이며, BitCoin 으로 지불할 수 있도록 한다. 지불이 완료되면 4~5일 내에 차단이 해제될 것으로 나와있다.

[그림-1] 악성코드 감염 후 사용자에게 보여지는 화면

해당 악성코드에 감염된 후에는 윈도우 탐색기 등 특정 윈도우를 강제 종료하는 기능으로 인해 사용자가 정상적인 컴퓨터 사용이 어려우며, 작업관리자를 통해 제한적으로 프로그램 실행이 가능하다. 악성코드 제작자는 컴퓨터 사용을 제한하기 위해 이러한 강제 종료기능을 수행하며, 메시지 화면 하단에는 돈을 지불하는 데 필요한 프로그램들(Internet Browser, Notepad)만 제한적으로 실행할 수 있도록 별도의 메뉴가 존재함을 알 수 있다. 아래의 [그림-2]는 해당 악성코드 내에서 특정 윈도우("Microsoft Windows")를 찾아 강제종료(WM_CLOSE = 0x10)하는 코드 부분을 나타낸다.

[그림-2] 특정 윈도우 강제종료

메시지 내용에서처럼 감염이 이루어지면, 해당 시스템의 이미지파일(*.gif, *.jpg, *.bmp, *.png), 문서파일(*.doc, *.ppt), 음악파일(*.wma) 뿐 아니라 실행파일(*.exe), 압축파일들(*.zip)도 정상적으로 사용이 불가능한 형태가 된다. 아래의 [그림-3]은 악성코드에 의해 이미지 파일들이 모두 실행파일(exe) 형태로 변경된 것을 확인할 수 있다.

[그림-3] 변경된 이미지파일들

위 [그림-3]의 윈도우 탐색기에서 사용자에게 보여지는 파일은 "공.bmp"이지만, 종류 항목이 "응용 프로그램"으로 되어있어 실행파일로 변경되었음을 알 수 있다. 명령창(CMD.EXE)을 통해 정확한 파일이름을 확인해보면, 변경된 파일명은 "공.bmp.exe" 임을 알 수 있다. 이렇게 보이는 이유는 악성코드에 의해 폴더 옵션이 변경되어 발생한 증상으로 아래의 [그림-4]에서처럼 설정 변경을 통해 원래 파일명을 확인할 수 있다. ("도구->폴더옵션->알려진 파일 형식의 파일 확장명 숨기기" 체크)

[그림-4] 폴더옵션 변경

이렇게 실행파일로 변경된 이미지파일은 실행 시, 정상적으로 이미지 내용이 사용자에게 보여짐을 알 수 있다. (%TEMP%폴더에 생성한 BAT 파일을 통해 원본 이미지 실행) 하지만, 이는 악성코드에 의해 일시적으로 원본파일이 만들어진 후, 실행되어 보여진 것으로 생성 및 실행과 동시에 바로 해당 파일을 삭제하는 코드가 존재하여 원본 파일을 복구할 수 없도록 한다. 이처럼 해당 악성파일에 감염 시, "원본파일명" + ".exe" 확장자를 붙인 형태로 파일명이 변경된다. 이렇게 변경된 실행파일들은 악성코드 자신이며, 다형성 엔진을 통해 감염 시 매번 다른 형태를 갖는다. 아래의 [그림-5]는 감염된 2개의 이미지 파일들에서 서로 다른 부분들을 나타낸다.

[그림-5] 다형성 형태의 악성코드

해당 악성코드는 감염 증상이 일반적인 랜섬웨어 형태와 유사하지만, 가장 큰 차이점은 돈을 지불하여 전달받은 복호화키를 통해 변경된 파일들을 복구하는 방식이 아닌, 백신 프로그램을 통해 복원이 가능하다는 점이다. 감염 전 원본파일들(gif, bmp, wma, exe, zip 등)은 악성코드에 의해 고유한 알고리즘으로 암호화되어 백업되어 있다. 복원을 위해서는 다형성 코드를 에뮬레이팅(Emulating) 하고 복호화하는 과정을 거쳐야 한다. 아래의 [그림-6]은 악성코드에 의해 감염된 파일(EXE 실행파일 형태)의 PE(Portable Executable) 구조를 나타낸다. 총 2개의 섹션헤더를 갖고 있으며, 속성(Characteristics) 값이 모두 0xC0040020 인 것이 특징이다.

[그림-6] 감염된 파일의 PE구조

감염 전 원본파일이 백업된 곳은 PE구조 상의 ".text" 섹션(Section)이며, 아래의 [그림-7]은 메인코드 시작(Entry Point)을 기준으로 백업된 원본파일을 복호화하는 과정을 나타낸다.

[그림-7] 백업된 원본파일 복원과정

다형성 형태의 코드는 EntryPoint 코드부분("Decoder (A)")이며, ".text" 섹션의 시작위치(0x401000) 부터 0x401250 까지 부분(0x250 크기)을 복호화하는 기능을 수행한다. 이후, 1차 디코딩 과정을 통해 생성된 "Decoder (B)" 부분으로 분기하며, 해당 코드에서는 0x401250 부터 0x401743 까지를 복호화하는 2차 디코딩 과정을 수행한다. 이렇게 두 번의 복호화 과정을 통해 원본파일 치료에 필요한 메타정보("원본파일 치료테이블")를 얻게 된다. 아래의 [그림-8]은 암호화된 상태의 원본파일이 복호화 과정을 통해 복원된 부분을 나타내며, 내부에는 원본파일 데이터 외에 감염 전 원본파일 이름정보("AhnRpt.exe")도 함께 존재함을 알 수 있다.

[그림-8] 복호화를 통해 추출한 원본파일

아래의 [그림-9]는 감염상태의 파일들과 치료 후 파일들을 나타내며, 치료 후에는 파일 유형 및 크기가 변경됨을 알 수 있다.

[그림-9] 치료 전/후 비교화면

해당 랜섬웨어에 감염된 파일들은 다형성 엔진에 의해 매번 다른 형태를 나타내며, 감염된 파일들 중 하나라도 진단을 놓칠 경우 재감염되는 현상이 발생하게 된다. 또한, 변경된 파일들을 단순히 악성코드로 판단하여 삭제할 경우, 원본파일을 복구하지 못하여 큰 피해를 볼 수 있다. 실제로 랜섬웨어를 통해 감염된 원본파일을 백신프로그램으로 복구하는 것이 불가능한 경우가 대부분이나, NSB 랜섬웨어처럼 치료가 가능한 형태도 확인되었으므로 이러한 경우에 한해서는 백신프로그램을 통해 치료하는 작업이 필요하다.

 

 - V3 진단명: Win32/Nabucur (엔진버전: 2015.02.16.02)

 

실제 V3 Lite 제품으로 감염된 파일들을 진단/치료 테스트한 동영상 정보는 다음과 같다.

 

[공격자 C&C 주소]

악성코드 내부에 총  3곳의 C&C 주소가 존재하며, 순차적으로 접속을 시도한다. 변형마다 IP 주소는 동일하며, 포트정보만 '666' 혹은 '9999' 2가지 형태가 확인되었다.

(1) 200.xx.164.69:666 (Bolivia)
(2) 200.xxx.204.12:666 (Bolivia)
(3) 190.xxx.45.170:666 (Bolivia)

 

[주요 백신업체 진단현황]

- Virus:Win32/Nabucur.A(Microsoft)
- Virus.Win32.PolyRansom.a(Kaspersky)
- W32.Ransomlock.AO!inf(Symantec)
- Trojan.Obfus.3.Gen(BitDefender)
- PE_VIRLOCK.F(Trend Micro)
- W32/VirRansom(McAfee)
- TR/Crypt.XPACK.Gen7(AntiVir)
- Win32:VirLock(Avast)
- W32/VirRnsm-A(Sophos)
- Win32/Cryptor(AVG)

 

[참고사이트]

- http://malwarefixes.com/remove-national-security-bureau-virus-nsb-ransomware/
- http://asec.ahnlab.com/1020

Creative Commons License
Creative Commons License
Posted by yhayoung