오피스 DDE(Dynamic Data Exchange) 악성코드 취약점
문서 작성 프로그램인 워드, 엑셀, 한글 등 이 있는데 이런 문서 프로그램에는 매크로 기능이나 , JAVA, VBS 등의 기능들이 존재합니다.
이런 기능들을 악용하게 되면 파일 내에 악성코드를 심어서 유포할 가능성이 존재하게 됩니다.
악성코드 유포 방식은 DDE 기능을 통해서 유포될 수 있습니다.
DDE(Dynamic Data Exchange)란?
사용자의 편의를 위해 Windows에서 사용 가능한 응용 프로그램 간 데이터 전송을 위해 사용하는 기능입니다.
DDE를 통해 스크립트를 삽입한 문서를 열게 되면 "이 문서에 다른 파일을 참조하는 링크가 있습니다." 라는 문구가 나오게 됩니다.
공격자가 스크립트를 심어 메일 전송 > 사용자가 문서 열람 > 공격자가 원하는 명령어로 공격 실행
방식으로 악성코드를 심어두게 됩니다.
공격 실습
DDE 스크립트를 워드에 직접 삽입하여 공격해보는 실습을 해보도록 하겠습니다.
워드에서 삽입 탭으로 들어가 줍니다.
오른쪽에 "빠른 문서 요소" > "필드" 를 선택해 줍니다.
필드 이름으로 Formula를 선택해 주시고 확인을 클릭합니다.
나온 수식에 마우스 우클릭을 하시고 "필드 코드 토글" 이라는 메뉴를 선택해 줍니다.
{ } 사이에 DDEAUTO 코드를 입력해 주시면 됩니다.
저는 cmd에 notepad를 실행하는 명령어를 입력해 보겠습니다
. notepad.exe 대신 calc.exe 계산기 등으로도 테스트가 가능합니다.
{ DDEAUTO C:\\Windows\\System32\\cmd.exe "/k notepad.exe" }
위 코드를 입력해 주시고 저장을 해주고 나옵니다.
이제 문서를 열어 보시면 "이 문서에 다른 파일을 참조하는 링크가 있습니다. 연결된 파일의 데이터로 이 문서를 업데이트하시겠습니까?" 라는 문구가 나오면서 생각없이 예를 누르게 만들어 코드가 실행됩니다.
그러면 아까 작성한 스크립트가 실행되며 메모장(notepad.exe)이 열리는 것을 볼 수 있습니다.
예방법
이를 예방하기 위해서는 문서 자동 연결 업데이트 기능을 꺼줘야 합니다.
환경설정으로 들어가기 위해 파일을 클릭해 줍니다.
좌측 하단에 "옵션"을 클릭해 주세요
"문서를 열 때 자동 연결 업데이트" 이 항목이 기본적으로 켜져있는데 이 옵션을 꺼주도록 합니다.
그리고 나서 확인을 누르고 나와 주세요