복잡하게 만들어져 분석 및 크래킹 불가...MS가 탐지까지는 성공
[보안뉴스 문가용 기자] 윈도우 디펜더 ATP 기능으로 핀피셔(FinFisher)라는 스파이웨어를 탐지할 수 있다고 마이크로소프트가 발표했다. 핀피셔는 독일의 기업인 핀피셔 GmbH(FinFisher GmbH)가 정부 기관만을 위해 합법적으로 만든 스파이웨어로 핀스파이(FinSpy)라고도 불린다. 출시된 것이 이미 5년 정도 되었으며, 여러 감시 및 추적 공격에서 발견된 바 있다.

[이미지 = iclickart]
작년 9월 핀피셔는 .NET 프레임워크에서 발견된 제로데이 취약점인 CVE-2017-8759를 익스플로잇하며 여러 시스템에 침투했다. 이를 발견했던 보안업체 이셋(ESET)은 인터넷 서비스 제공업체들이 핀피셔 배포에 연루되었을 수 있다고 주장하기도 했다.
핀피셔 스파이웨어는 크래킹하기에 너무나 복잡한 멀웨어로 알려져 있다. 하지만 마이크로소프트는 “탐지가 불가능하다는 뜻은 아니”라고 발표했다. 오피스 365의 고급 위협 보호(Office 365 ATP)와 윈도우 디펜더 ATP로도 탐지할 수 있다는 것이다. 두 기능 모두 아직 출시되지 않은 것으로, 윈도우 7과 윈도우 8.1 기기들에 올 여름부터 적용될 예정이다.
핀피셔는 각종 탐지 방해, 분석 방해 기능을 탑재하고 있다. 가상 기기를 탐지하는 기능 역시 여러 가지 보유하고 있어, 샌드박스로 유도하는 것도 쉽지 않다. 안티 디버깅 기능과 자체 방어 수단까지 갖추고 있어 단단하다. 많은 보안 전문가들이 분석을 시도했다가 좌절하기 일쑤였다.
또한 핀피셔 제작자들은 ‘스파게티 코드’라고 하는 지속적인 코드 점프 기술을 통해 프로그램의 플로우도 이해하기 어렵게 해놨으며, 분해를 전문으로 하는 프로그램에서 오류가 발생하도록 유도했다고 한다. 그래서 마이크로소프트 역시 “핀피셔 크래킹 전용 툴이 필요하다”고 설명했다.
크래킹 시도를 하면서 마이크로소프트가 제일 먼저 발견한 건 연산 부호 명령어들로, 맞춤형 가상 기기 프로그램을 사용해 해석하는 데 성공했다고 한다. 32개의 루틴들이 발견됐고, 각각의 루틴들이 다 다른 연산 부호와 기능들을 도입하고 있었다. 이 연산 부호와 기능들을 핀피셔가 실행 가능한 것이었다.
마이크로소프트는 “이런 식의 구성 때문에 기존 멀웨어 분석 툴을 가지고는 분석이 불가능하다”며 “안티 디버깅 기능과 분석 방해 기능마저 있어 동적 분석 툴도 제대로 통하지 않는다”고 설명한다.
“각각의 가상 명령들은 특정 데이터 구조에 저장되어 있는데, 이 데이터 구조에는 가상 기기로 제대로 읽고 실행할 때 필요한 모든 정보들이 들어있습니다. 가상 기기 핸들러는 ASLR(address space layout randomization) 덕분에 다른 코드 블록들을 생성하고 재배치된 코드를 처리할 수 있습니다. 또한 코드 실행을 다른 영역에서도 실시할 수 있고요.”
핀피셔는 감염 1단계에서 샌드박스 환경을 탐지한다. 여러 가지 항목들을 확인해 샌드박스 환경이 아니라는 것을 확인하면 네 가지 라이브러리를 디스크로부터 임포트 해 읽어 들인다. ntdll.dll, kernel32.dll, advapi32.dll, version.dll이다. 그리고 이들을 메모리 내에서 다시 매핑하고, 디버거를 무력화시킨다.
다음으로 핀피셔는 샌드박스 확인을 한 번 더 한다. 핀피셔 제조사들이 특수한 샌드박스 솔루션들을 염두에 둔 것으로 보인다. 또한 가상 기기 환경(VM웨어나 하이퍼V)도 점검해 디버거 실행 여부를 확인한다. 이런 꼼꼼한 확인 과정을 다 거쳐야만 다음 단계로 진행된다.
다음 단계는 32비트와 64비트로 나뉜다. 32비트에서는 독특한 로딩 원리가 발동되고 한 가지 기능이 엑스포트 된다고 마이크로소프트는 설명한다. 64비트에서는 다른 로더와 가상 기기가 구축되면서 이전 단계와 비슷한 작업이 실시된다. 차이점이 있다면 연산 부호가 조금 다르다는 것이다. “32비트에서는 코드 실행 기능이 엑스포트 되고, 64비트에서는 3단계 멀웨어가 복호화 됩니다.”
3단계에서는 멀웨어가 설치되고 오랫동안 시스템에 머무르기 시작한다. 여기서는 가상 기기를 사용하거나 난독화 기술을 발휘하지 않는다. 신기한 건 관리자 권한이 활성화된 상태에서 멀웨어가 설치되는 것인데, 멀웨어 내에서 권한 상승 공격 코드가 발견되지는 않았다. 여기까지 해서 시스템 내에 정착하면, 핀피셔를 통해 공격자들은 추가 페이로드를 계속해서 전송할 수 있다. 그러므로 4, 5, 6단계의 공격이 이어진다.
마이크로소프트는 여전히 핀피셔에 대한 분석을 이어가고 있다. 아직 완전한 방어법을 발견한 건 아니지만, 여름에 발표할 “ATP 기능들로 탐지가 가능하다는 것까지만 알아냈다”고 한다. 공략이 힘든 핀피셔를 보안 커뮤니티가 어떤 식으로 막아낼 것인지 귀추가 주목되고 있다.
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>