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

     [유형-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