마이크로소프트 오피스 제품에서 애플리케이션 사이에서 데이터 전달을 위해 제공하는 프로토콜인 DDE (Dynamic Data Exchange)를 이용하여 페이로드를 전달하는 문서 파일은 VBA 매크로 코드를 이용하지 않고도 악성 기능을 수행할 수 있는 방법이다. 2017년 하반기부터 본격적으로 이러한 DDE를 이용한 악성 워드, 엑셀 등의 문서 파일이 유포되었고, 그해 12월 마이크로소프트는 워드만 DDE 기능을 기본적으로 비활성 하였다. 반면 엑셀에 대해서는 DDE 비활성화를 하지 않았으며 다음과 같은 수식(Formula) 표현으로 여전히 calc 프로세스를 실행하는 cmd 커맨드를 실행할 수 있다. 


=cmd|'/C calc'!A0


+cmd|'/C calc'!A0


-cmd|'/C calc'!A0


@SUM(A1:A2)*cmd|'/C calc'!A0


엑셀에서 수식은 일반적으로 사용하는 "=" 외에도 "+" 와 "-" 그리고 연산을 함께 덧붙인다면 "@" 문자로도 시작할 수 있다. "+" 와 "-" 문자는 연달아 있더라도 한 개의 수식 시작 문자로 인식된다. 엑셀과 cmd (DDE 프로토콜을 통해 엑셀은 클라이언트, cmd는 접속 대상 원격 서버가 된다) 애플리케이션 사이의 데이터 전달 과정에서 데이터를 읽어 cmd 커맨드를 실행할 수 있는 것이다. 


안랩 ASEC은 최근 몇 개월동안 위와 같은 DDE를 이용한 악성 엑셀 파일이 스팸 메일 등을 통해 다수 유포되는 정황을 확인하였다. 특히 엑셀 통합문서인 *.xls 나 *.xlsx 형태가 아닌 쉼표로 분리되는 텍스트 형태의 *.csv 파일 형식을 이용하였다. 이 때문에 정해진 파일 포맷이 아니기 때문에 "\r\n" 개행이나 무의미한 랜덤 문자 등을 다수 삽입해 파일 크기 등을 늘리는 등 그 유형을 다양하게 하여 백신 제품의 진단을 우회하였다. 유포 당시 확장자는 엑셀 프로그램으로 인식 및 실행될 수 있게 *.csv, *.xls, *.slk 등 다양하였다.


개행을 파일 앞에 다수 삽입한 유형

개행과 랜덤 문자를 다수 삽입한 유형

악성 엑셀 파일이 DDE를 이용해 cmd 커맨드를 실행하게 되면 Powershell 프로세스 또는 bitsadmin 등을 이용하여 웹 리소스에 접근하여 악성 파일을 추가 다운로드 받는다. 다운로드 받은 최종 페이로드는 *.jar 확장자로 유포되는 Adwind 계열의 원격제어 백도어 파일이 가장 많았으나, 정보유출 목적의 실행 파일을 다운로드 하는 *.ps1 나 *.vbs 확장자의 스크립트 파일도 확인되었다.


참고로 실행 과정에서 DDE를 이용하여 원격 데이터에 접근하려고 하는 오피스 문서를 실행할 때, 사용자에게 원격 데이터 접근을 위해서 CMD.EXE 와 같은 응용 프로그램을 수행하는 것을 허용할 것인지 확인하는 메시지 창이 뜬다. 의심스러운 메일에 첨부된 엑셀 파일일 경우에는 아래 창에서 "아니오" 를 클릭하여 악성 프로세스가 실행되는 것을 방지하여야 한다.


사용자에게 CMD.EXE 프로세스 실행 여부 확인 - "아니오" 클릭

안랩은 DDE를 이용하여 악성 기능을 수행하는 엑셀 파일에 대해 다음과 같은 진단명으로 진단하고 있다. 

  • XLS/Presenoker.Gen (2018.12.12.03)
  • XLS/Downloader 


Posted by 분석팀