메일 속 JPG 파일, 이미지가 아니라 악성코드였다?

안랩은 자사 이메일 허니팟 시스템을 통해 피싱 이메일을 통한 악성코드 유포 사례를 지속적으로 수집하고 있다. 최근에는 XwormRAT 악성코드가 스테가노그래피(Steganography) 기법을 활용해 유포되고 있는 정황이 포착됐다. 스테가노그래피는 이미지, 문서, 오디오 파일 등 정상적으로 보이는 파일 내부에 악성 스크립트를 숨겨 배포하는 방식으로, 사용자뿐만 아니라 보안 시스템조차 탐지하기 어려운 고도화된 기법이다.

 

아울러, XwormRAT은 변종 형태로 확산 중이며, VBScript 또는 JavaScript를 통해 실행된 후 정상 코드 내부에 악성 스크립트를 은밀히 삽입해 사용자가 쉽게 인지하지 못하도록 설계된 점이 특징이다. 이번 글에서는 XwormRAT의 유포 방식을 자세히 살펴본다.

 

 

최초 실행되는 VBScript 및 JavaScript는 내부에 포함된 파워셸(PowerShell) 스크립트를 추가 호출해 최종 악성코드를 다운로드 및 실행하는 구조를 갖는다.

 

[그림 1] 피싱 이메일 본문

 

[그림 2] 악성 스크립트 일부

 

내부에 포함된 악성 파워셸 스크립트는 베이스64(Base64) 인코딩 데이터와 더미 문자를 포함하고 있으며, 실행 과정에서 Replace() 함수를 이용해 더미 문자를 제거한 후 디코딩돼 실행되도록 구성됐다. 최종적으로 해당 파워셸 스크립트가 실행되면 외부 서버로부터 추가 악성코드를 다운로드 및 실행하는 방식으로 동작한다. 추가적으로 다운로드되는 파일에는 .NET 로더가 포함된 JPG 이미지 파일과 최종적으로 실행되는 악성코드가 포함돼 있다.

 

다운로드된 스테가노그래피 기법이 적용된 JPG 이미지 파일은 아래 [그림 3]과 같이 확인되며, 사용자 입장에서는 단순히 이미지가 실행된 것으로만 인지할 수 있다. 그러나 사실은 해당 이미지 파일로부터 .NET 로더가 은밀히 추출돼 실행된다.

 

[그림 3] 스테가노그래피 기법이 적용된 이미지 파일

 

앞서 언급한 블로그에서 설명된 바와 같이, 과거에 유포된 유형에서는 [그림 4]의 좌측 이미지와 같이 JPG 파일의 끝에 삽입된 “<<BASE64_START>>”와 “<<BASE64_END>>” 문자열 사이의 인코딩 데이터를 디코딩해 .NET 로더를 추출하고, 이를 통해 악성코드를 실행하는 방식이 사용됐다.

 

반면, 현재 유포 중인 변형된 유형은 아래 [그림 4]의 우측 이미지 내용처럼 JPG 이미지 파일 끝에 삽입된 비트맵(Bitmap) 이미지(0x42, 0x4d, 0x46, 0xC0 …생략)를 탐색한 후, 비트맵의 픽셀 데이터에서 R, G, B 값을 추출해 디코딩하는 방식으로 동작한다. 이후 악성코드 실행 과정은 기존 방식과 동일하게 진행된다.

 

[그림 4] (좌) 과거 버전의 스크립트 (우) 현재 유포 중인 버전의 스크립트

 

[그림 5] 최종 실행되는 XwormRAT 설정

 

스테가노그래피 기법은 XwormRAT 외에도 다양한 악성코드 유포에 활용될 수 있다. 따라서 사용자는 출처가 불분명한 이메일의 첨부 파일이나 링크를 무심코 열람하지 않도록 각별한 주의가 필요하다.

 

 

출처 : AhnLab

02-553-2331
견적 요청
카카오톡 문의