오래된 MS Office의 RTF 취약점, 여전히 위협적

CVE-2017-0199 원격 코드 실행

이 취약점은 마이크로소프트의 워드(Word) 등 오피스 프로그램과 워드패드가 특별하게 조작된 .rtf 파일을 잘못 처리하는 데 있다. 성공적으로 악용(exploit)될 경우 원격 코드 실행이 가능해, 결국 해커가 PC를 완전히 제어하게 된다. 프로그램 설치, 파일 보기/편집/삭제, 계정 만들기 등이 포함된다.

이 취약점이 특히 위험한 이유는 사용자의 상호 작용이 필요 없다는 것이다. 단지 악성 문서를 열거나 심지어 미리 보기 상태에서도 exploit code가 작동한다.

악성 오피스 문서는 흔히 매크로를 이용한다. 따라서 사용자의 매크로 허용이 필요하다. 이 취약점은 매크로와 상관이 없기 때문에 사용자의 허용이 필요 없다.

제한된 보기 권장

다만, 오피스의 보안 기능인 제한된 보기(protected view)는 어느 정도 방어 효과를 보였다. 이 기능은 외부에서 온 파일 등 잠재적인 위험성이 있는 파일을, 편집이나 인쇄가 불가능한 읽기 전용 모드로 여는 것이다. 기본적으로 활성화돼 있고, 옵션에서 보안 센터 항목에 숨겨져 있기 때문에 대부분 이미 사용하고 있을 것이다.


초기 악성 문서는 제한된 보기 경고에서 편집을 허용하지 않으면 실행되지 않았다. 그러나 점점 이를 우회하는 악성코드가 나오게 된다.

또 하나, 사용자의 주의를 끄는 표식이 있다. 외부 링크를 포함하고 있으니, 이를 허용하겠냐고 묻는 것이다. 그러나 이미 악성코드가 작동한 후이기 때문에, 사용자가 허락을 하든 말든 달라질 게 없다. 어떤 경우에는 원래 문서 창을 자동으로 닫아서, 이 경고 메시지 자체를 숨기기도 한다.


패치 발표 후 더 기승

이에 대한 패치가 나온 것은 2017.4.11일이었다. 그러나 2016년부터 공격 시도가 탐지됐었다. 패치 발표 며칠 전에는 Dridex 악성코드를 다운로드하는 악성 문서 샘플이 대량으로 발견됐다. 제로 데이(zero day) 취약점이었던 것이다.

그런데 이상한 점이 있다. MS의 취약점 권고문에 따르면, 패치 이전에 악용된 적이 없고 실제 악용 가능성도 비교적 적은 것으로 나와 있다(참4). 나는 항상 이 부분을 눈여겨 보는데, 대부분 정확한 정보를 제공해 왔다. 같은 날 패치된 CVE-2017-0210에 대해선, 패치 이전에 실제 악용된 적이 있음을 명확히 밝히고 있다.

내 생각엔 이렇다. 패치 이전에 나타난 익스플로잇 코드들은 제대로 작동하지 않은 것 아닐까. 패치 발표 이후에, 변경된 코드를 비교 분석해서 정교한 익스플로잇 코드를 만들 수 있었던 것으로 보인다. 이런 방법은 실제로 해커와 보안 전문가들이 많이 사용한다. 패치가 나오면 재빨리 적용해야 하는 이유이다.

어쨌거나 패치 발표 이후에 이를 악용하려는 악성코드가 다수 등장하게 된다. 제한된 보기도 우회하는 등 발전하기도 했다. 이런 시도는 지금까지도 계속 되고 있는데, 최근엔 MuddyWater라는 악명 높은 해커단이 이 취약점을 새로이 이용하기 시작했다.

웹 오피스 이용

나는 외부에서 온 오피스 문서는 One drive나 Google drive 같은 클라우드에 업로드해서 연다. 이들 클라우드에는 오피스 문서를 지원하는 웹 애플리케이션이 제공된다. 웹 버전의 오피스는 기능이 제한적이고, 복잡한 표 같은 것은 제대로 표시하지 못하는 단점도 있다. 그러나 외부 문서 열람용으로는 충분히 쓸만하다.

내 PC에는 오피스 패키지가 있다. 그럼에도 불구하고 이렇게 하는 데는 이유가 있다. 먼저 웹 버전 오피스는 간단하다. 데스크탑용 패키지는 강력한 기능을 제공하지만, 그러다 보니 코드가 복잡해 질 수 밖에 없다. 소프트웨어의 복잡성은 취약점을 야기하는 주요 원인이 된다. 결국 웹 오피스는 취약점에 노출될 가능성이 비교적 작다.

다음으로 웹 브라우저에서 구동되는 오피스의 코드는 대부분 서버에서 실행된다는 점이다. 물론 클라이언트 PC에서 실행되는 부분도 있겠지만, 이를 통해 PC의 파일 시스템에 접근하는 것은 어려운 일일 것이다. 웹 오피스의 취약점에 더해 브라우저의 취약점까지 동시에 악용해야 하기 때문이다.

그리고 외부 문서 작업용 계정은, 주력 계정과 별개로 따로 만들어 사용하는 것이 좋다고 생각한다. 클라우드에서 실행되는 프로그램의 취약점을 이용해, 인증 토큰이나 사용자 파일을 탈취하는 악성코드의 출현도 생각해 볼 수 있기 때문이다. 물론 아직 이런 클라우드 악성코드가 있다는 얘기는 들은 적 없다. 나의 상상일 뿐이지만, 클라우드의 이용이 일반화됨에 따라 사이버 범죄자들이 그냥 보고만 있지는 않을 것이다.

또한 PDF 문서도 이런 식으로 이용하면 좋겠다. 흔히 악성 문서 파일 하면 오피스 문서를 떠올리지만, pdf 문서 역시 이에 못지 않게 많이 악용되고 있다.


참고 자료
  1. The MuddyWater APT Group Adds New Tools to Their Arsenal
  2. New Technique Recycles Exploit Chain to Keep Antivirus Silent
  3. Office Exploit Gets New Life With PowerPoint Variation
  4. CVE-2017-0199 | Microsoft Office/WordPad Remote Code Execution Vulnerability w/Windows
  5. Critical Office Zero-Day Attacks Detected in the Wild
  6. Cisco Coverage for CVE-2017-0199 

댓글

이 블로그의 인기 게시물

마이크로소프트 4K 무선 디스플레이 어댑터(MS WDA 3) 리뷰

와이파이(Wi-Fi) 보안 설정

엑셀 필터 상태에서 복사와 잘라내기