그들은 어떻게 정상 엑셀 파일을 감염시켰을까

최근 ASEC은 정상 엑셀 파일을 감염시키는 악성코드들의 유포 사례를 확인했다. 이런 유형의 악성코드는 정상 엑셀 파일을 감염시키는 바이러스 기능뿐만 아니라, 다운로더, DNS 스푸핑 등의 추가 악성 행위까지 수행하고 있었다.

이번 글에서는 정상적인 엑셀 파일을 감염시키고 바이러스를 전파하는 두 가지 유형의 악성코드를 살펴본다.

 

 

ASEC이 확인한 악성코드들은 공통적으로 엑셀 파일 내부에 포함되어 있는 VBA(Visual Basic for Applications) 코드를 통해 바이러스 전파를 시도한다. 감염된 엑셀 파일을 실행할 경우 악성코드는 바이러스 전파를 위해 VBA 코드가 포함된 엑셀 파일을 시작 경로에 드랍된다. 향후 다른 엑셀 파일을 실행할 경우 시작 경로에 드랍된 악성 엑셀파일이 자동으로 실행되어 바이러스 전파 및 추가 악성 행위가 가능하다. 바이러스 감염 이후 악성코드의 유형에 따라 다운로더와 DNS 스푸핑 등의 악성 행위가 발현될 수 있다.

 

다운로더 유형의 악성코드와 DNS 스푸핑 유형의 악성코드에 대해 자세히 알아보자.

 

1. 다운로더 유형의 악성코드
다운로더 유형의 악성코드는 [그림 1]과 같이 VBA 코드 상에서 바이러스 전파 및 추가적인 악성행위를 위한 코드가 정의되어 있다.

 

[그림 1] 파일 내부 악성 VBA 코드

 

파일 내부의 악성코드는 다음 그림과 같이 통합 문서 열람 이벤트 발생 시 자동 실행되는 프로시저인 Workbook_Open() 내부에, 바이러스 전파를 위한 “d2p” 프로시저와 다운로더 로직이 포함된 “boosting” 프로시저(Procedure)를 호출하는 방식으로 악성 행위를 수행한다.

 

[그림 2] 악성 VBA 코드의 Workbook_Open

 

바이러스 전파 로직이 위치한 d2p 프로시저는 아래 그림과 같이, 엑셀 시작 경로위치에 “boosting.xls” 파일명으로 바이러스 전파를 위한 엑셀파일을 생성한다. 따라서 사용자가 엑셀 파일을 실행할 경우 “%AppData%\Microsoft\Excel\XLSTART\boosting.xls” 경로에 드랍된 악성코드가 자동 실행되어 현재 열람중인 엑셀 파일을 감염시킬 수 있다.

 

[그림 3] 바이러스 전파를 위한 코드

 

“boosting.xls” 파일의 바이러스 전파는 아래와 같이 일정 시간이 경과한 후 실행되며, 실행 시 해당 파일 내에 정의된 원본 코드를 삭제한다. 이후 감염을 위한 코드와 추가 악성행위를 위한 코드를 해당 엑셀파일의 Workbook_Open 프로시저에 정의한다.

 

[그림 4] 바이러스 전파 코드

 

다운로더 유형의 악성코드의 경우, 감염 이후 [그림 5]와 C2로부터 코인마이너 관련 실행 파일을 다운로드 받아 실행한다.

 

[그림 5] 다운로더 기능

 

다운로더 유형의 악성코드는 “%AppData%\Microsoft\Excel\XLSTART\boosting.xls”파일 존재 여부를 검사한 후, 파일이 존재하지 않을 경우 바이러스 전파 및 추가 악성 행위를 수행한다. 따라서 해당 경로에 0바이트 크기로 더미 파일이 존재한다면 악성 행위의 발현을 사전에 차단할 수 있다.

2. DNS 스푸핑 유형의 악성코드
DNS 스푸핑(DNS Spoofing)​ 유형의 악성코드는 VBA 코드 상에서 바이러스 전파 및 추가 악성 행위를 위한 코드가 정의되어 있다.

다만 앞서 소개한 다운로더 유형과는 달리 DNS 스푸핑​ 유형의 악성코드는 바이러스 전파를 위해 엑셀 시작 경로에 드랍되는 악성 엑셀 파일명이 accerlate.xls로 다르다. 또한 바이러스 전파 이후 파일 다운로드가 아닌 host 파일 변조를 통해 DNS 스푸핑​을 수행한다는 점에서 차이가 있다.

 

[그림 6] DNS 스푸핑 기능

안랩은 두 가지 유형의 악성코드와 다운로드되는 실행 파일을 다음과 같이 진단하고 있다. 또한 악성 엑셀 파일이 접속하는 악성 C2 주소를 ASD 네트워크를 통해 효과적으로 차단하고 있다.

 

 

출처 : AhnLab