Case
러시아에게 공격받는 Adobe
2017 10 25
  • Facebook
  • Twitter
  • Copy URL

Adobe Flash는 웹에 스며있는 역사적인 플랫폼이다. 이전부터 꾸준히 사용되어 오면서, 웹 애니메이션, 배너, 게임에 이르기까지 사용 목적, 범위도 다양하게 쓰인다. Adobe Flash는 Windows 기반의 거의 모든 컴퓨터에 설치되어 있으므로, 전 세계 사용자 중 91.5%의 컴퓨터에는 Adobe Flash가 설치되어 있다고 보면 된다.[1] 이처럼 긴 역사와 많은 사용자를 보유하고 있기 때문에 Adobe Flash를 통한 악용되는 사례도 만만치 않게 있다.[2] 최근, 카스퍼스키 랩(Kaspersky Lab)은 10월 10일에 고급 공격 방지 시스템을 통해 익명의 공격자로부터 Adobe Flash와 관련된 제로데이 공격이 있었다고 발표했다.[3]

이미지를 불러오는데 실패했습니다.

카스퍼스키랩의 연구원들 말에 따르면, 10월 10일에 익명의 해커들이 Flash의 제로데이인 CVE-2017-11292를 통해 손상된 Microsoft Word 문서를 사용하여 FinSpy 악성 코드를 유포했다고 밝혔다.[4] 이에 앞서 카스퍼스키랩은 사용된 제로데이 취약점을 발표하고 Adobe와 협력하여 보안 패치도 발표했다.[5] 한편으로 보안 업체인 Proofpoint의 한 연구원은 10월 18일, 보안 패치를 하기 전에 이 취약점을 통한 공격이 있었다고 발표했다.[6] Proofpoint 말에 따르면 러시아 정부가 후원하는 해커 그룹인 APT28로 추정되며, 주로 미국과 유럽을 대상으로 정부와 항공 우주와 관련된 회사에 변조된 Microsoft Word가 첨부된 피싱 메일을 확인했다고 한다.[7] 하지만 두 업체의 얘기가 살짝 엇갈린다. 카스퍼스키랩에서는 이러한 발표에 대해 APT28가 아닌 BlackOasis APT 그룹을 배후로 예측했다.[8]

카스퍼스키랩에 따르면, BlackOasis APT 그룹은 중동 정치에 관련된 다양한 인물과 지역에 관심이 많았다고 한다. 여기에는 UN 국제 연합, 야당 블로거나 활동가, 지역 뉴스 특파원 등의 인물이 포함되어 있으며, 석유, 돈세탁 등 기타 불법 행위를 기반을 둔 문서를 보내며 행동해왔다고 한다. 러시아, 이라크, 아프가니스탄, 나이지리아, 리비아, 요르단, 튀니지, 사우디 아라비아, 이란, 네덜란드, 바레인, 영국 및 앙골라 등 여러 국가가 BlackOasis의 피해국으로 보고 있으며, 이번에도 비슷한 공격패턴으로 BlackOasis일 것이라고 얘기했다.[9] 반면, Proofpoint는 이 공격의 배후를 APT28에 두고 있지만 왜 그들이라고 말하지는 않았다.[10] 하지만 보안업체가 공통으로 말하는 것은 어쨌든 이번 사건의 배후로 러시아와 관련이 있다는 것이다. 아무튼, 이에 대해서는 누가 그런 것인지 정확히 밝혀지지 않았고, 범인이 나와야지 누가 그랬는지 알 수 있지 않을까 한다.

자, 공격 흐름을 알아보도록 하자. 공격은 악의적으로 변조된 Office Word 문서를 메일에 첨부하여 전달하는 것으로 시작된다. 이 문서에는 CVE-2015-7645, CVE-2016-1019, CVE-2016-4117 및 CVE-2016-7855와 같은 다양한 Flash 취약점으로 악용되어 만들어진 문서로[11], SinSpy 설치 패키지를 호스팅하는 역할을 한다.[12] 좀 더 정확히 들어가서, 문서에는 Flash 공격코드가 포함된 ActiveX 개체가 포함되어 있으며, Flash 객체에는 FinSpy에서 사용자 정의를 추출할 수 있는 ActionScript가 포함되어 있다. 익스플로잇은 ‘com.adobe.tvsdk.mediacore.BufferControlParameters’ 클래스에 존재하는 메모리 손상의 취약점으로 메모리 내에서 임의의 코드를 읽고 쓰는 작업을 수행할 수 있다. 따라서 이를 이용하여 두 번째 단계 쉘 코드를 실행할 수 있게 되는데, 첫 번째 단계 쉘 코드에서는 바이러스 백신 제품의 탐지를 피하고자 설계되었다. 또한, 초기 쉘 코드의 주요 목적인 두 번째 단계의 쉘 코드를 다운로드한다. 두 번째 단계의 쉘 코드를 다운 받아지면 ‘mo.exe’파일에서 페이로드인 ‘FinSpy’를 다운로드 하게 된다.[13][14]

‘mo.exe’는 FinSpy 악성코드의 최신 버전으로 합법적으로 도청 작업에 사용하기 위해 국가 및 기타 기관에서 판매된다. 이는 기존에 있었던 FinFisher의 새로운 변종으로, 연구자들은 사용자 정의 패커와 가상 머신을 포함하여 코드를 실행하는 등 악성 코드 분석이 더욱 어려워진 악성코드다. 아무튼, FinSpy가 성공적으로 실행되면 5개의 파일이 이동되는데, 각각  AdapterTroubleshooter.exe, 15b937.cab, install.cab, msvcr90.dll, d3d9.dll 파일이 ‘C:\ProgramData\ManagerApp\’ 위치로 복사된다.[15][16]

이때, ‘AdapterTroubleshooter.exe’파일은 유명한 DLL 검색 순서 하이재킹 기술을 사용하는데, 이는 사용에 합법적인 바이너리다. 이 중에서 ‘d3d9.dll’파일이 악성 코드로, 실행 시에 바이너리에 의해 메모리에 로드되고, 나머지 DLL은 FinSpy를 Winlogon 프로세스에 추가하는 역할을 한다. FinSpy는 추가로 제어 및 데이터 추출을 하기 위해 3개의 C2 서버를 호출하는데, 이때 이전에 공개된 2개의 취약점을 사용한 것으로 조사되었다. 이 C2서버 중 하나는 2017년 9월에 FireEye가 발표한 CVE-2017-8759와 함께 사용되었으며, 이는 BlackOasis APT이 사용한 공격과 밀접하게 연결되어 사용되었다고 한다.[17][18]

이처럼 2015년 중반부터 제로데이 익스플로잇을 지원하는 공격이 나타나고, 많은 이가 이와 같은 공격이 앞으로도 계속 증가할 것으로 보고 있다.[19] 그렇다면 이런 사건이 의미하는 바가 무엇이고, 이러한 제로데이 공격을 포함한 공격은 어떻게 방어해야 할까. 이처럼 CVE-2017-11292와 같은 비슷한 취약점은 Flash용 killbit을 사용하여, 해당 애플리케이션을 의존하는 모든 응용 프로그램에서 이를 비활성화 할 수 있다. 하지만 killbit을 따르지 않는 응용 프로그램에서는 Flash 객체를 로드 할 수 있으므로 시스템 전체를 쉽게 수행할 수 없다고 한다. 또한, 플래시에 의존하는 다른 필요한 리소스를 손상시킬 수 있으며, 타사 소프트웨어에 대한 공격으로부터 사용자를 보호하지는 못한다고 하니 타사의 소프트웨어는 비슷한 것이 필요하지 않을까 한다. 또한, 현재로서 액세스 정책을 설정하고, 백신, 네트워크 모니터링 등 화이트리스트를 포함한 다층 접근 방식을 구현하여 보호하는 것이 지금으로썬 가장 의미 있는 방어법으로 생각된다.[20]

유성경 yuopboy@grayhash.com