2020-07-06 05:45 (월)
구글프로젝트제로 Tavis Ormandy, 블리자드 게임서 DNS 리바인딩 공격 가능 취약점 발견
상태바
구글프로젝트제로 Tavis Ormandy, 블리자드 게임서 DNS 리바인딩 공격 가능 취약점 발견
  • hsk 기자
  • 승인 2018.01.24 12:01
이 기사를 공유합니다

게이머 컴퓨터에 악성코드 실행시켜 익스플로잇할 수 있는 심각한 취약점

coding-1841550_640.jpg
유명 화이트햇 해커이자 구글 프로젝트 제로 연구원인 Tavis Ormandy가 블리자드에서 원격 공격자가 게이머 컴퓨터에 악성코드를 실행시켜 익스플로잇할 수 있는 심각한 취약점을 발견했다. 이 취약점으로 수백만대의 PC가 위험에 노출되어 있다. 매달 약 5억명의 사용자가 World of Warcraft, 오버워치, 디아블로, 하스스톤, 스타크래프트 등 블리자드 엔터테인먼드가 만든 인기 온라인 게임을 하고 있다.

블리자드 게임을 하는 것은 매우 간단하다. 플레이어는 ‘Blizzard Update Agent(블리자드 업데이트 에이전트)’라는 클라이언트 애플리케이션을 설치하기만 하면 된다. 이 애플리케이션은 1120 포트에서 HTTP 프로토콜을 통해 JASON-RPC(JSON으로 인코딩된 원격 프로시저 호출) 서버를 실행하고 설치, 제거, 설정 변경 명령어와 업데이트 및 기타 유지 보수 관련 옵션을 허용한다.

Ormandy는 “모든 블리자드 게임은 블리자드 업데이트 에이전트라는 공유 도구와 함께 설치되고, 아마 이 유틸리티를 설치했을 5억명이 매월 invester.activision.com을 사용한다.”고 Chromium 스레드에 썼다. 또 “에이전트 유틸리티는 로컬호스트 1120 포트의 JSON RPC 서버를 만들고 설치, 제거, 설정 변경, 업데이트 및 기타 유지보수 관련 옵션에 대한 명령을 허용한다. 블리자드는 맞춤 인증 체계를 사용하여 RPC가 합법적인 소스에서 왔는지를 확인한다.”고 덧붙였다.

Ormandy는 블리자드 업데이트 에이전트가 DNS 리바인딩 공격에 취약하는 것을 보여줬다. 공격자는 해당 공격을 통해 어떤 웹사이트든지 통신할 수 있도록 인증된 DNS 이름을 생성할 수 있고, 로컬호스트로 확인하도록 한다. 로컬 블리자드 업데이트 서비스는 클라이언트가 요청하고 응답했던 호스트 이름의 유효성을 검사하는데 실패한다.

실질적으로 웹사이트는 외부 서버와 로컬 호스트 사이의 다리 역할을 수행한다. 이것은 어떤 웹사이트든지 에이전트에 권한 상승된 명령을 보낼 수 있음을 의미한다. 공격자는 DNS 리바인딩 공격을 통해 DNS 엔트리를 127.0.0.1로 통제하에 있는 웹페이지로 바인딩하고, 사용자를 속여 방문하게 한다. 이후 해커는 원격으로 자바스크립트 코드를 사용하는 블리자드 업데이트 에이전트에 권한 상승된 명령을 보낼 수 있다.

Ormandy는 블리자드 클라이언트에 대한 DNS 리바인딩 공격을 실행하는 PoC 코드를 공개했다. “나는 rbndr.us라는 테스트를 위한 도메인을 가지고 있다. 해당 페이지를 사용해 호스트 이름을 생성할 수 있다.(https://lock.cmpxchg8b.com/rebinder.html) 여기서 나는 127.0.0.1과 199.241.29.277을 오가기 위해 7f000001.c7f11de3.rbndr.us 사용했다.”고 말했다.

그는 “해당 익스플로잇은 네트워크 드라이브 사용을 가능하게 한다. 또한 다운로드를 목적지로 설정하거나 브라우저가 dll, datafiles 등을 설치하도록 할 수도 있다. 나는 매우 간단한 데모를 만들었다.(참고: http://lock.cmpxchg8b.com/yah4od7N.html)"라고 썼다.

12월에 해당 취약점을 발견하고 블리자드에 보고했지만 처음에는 아무런 응답이 없었다고 한다. 전문가에 따르면 블리자드는 클라이언트 버전 5996에 대한 부분적인 미티게이션을 제공했다고 하며, Ormandy는 이와 같은 회사의 행동에 실망했다. 그는 “블리자드는 이메일에는 답장을 하고 있지만 12월 22일 이후로 소통을 중단했다. 그들은 더 이상의 질문에 답하지 않고 있고, 버전 5996은 조용히 패치되었다.”라고 말했다. 블리자드의 솔루션은 클라이언트 명령 줄을 질의하고 exename의 32비트 FNV-1a 문자열 해시를 얻어 블랙리스트 여부를 확인하는 것으로 보인다.

Ormandy는 “그들에게 화이트리스트 호스트네임을 제안했지만, 그들이 제공한 솔루션은 너무나도 간단했다. 블리자드가 나에게 알리거나 자문을 구하지 않고 패치한 것은 안타깝다”고 언급했다. 그가 해당 이슈를 공개한 이후, 블리자드는 QA 환경에서 현재 유효성이 검증된 더 강력한 호스트 헤더 화이트리스트 수정으로 버그를 해결했다고 전했다.

★정보보안 대표 미디어 데일리시큐!★