[Threat Analysis] APT 공격, 맥 OS도 타깃으로 삼아
맥 악성코드 Revir, Imuler 분석
| 지난 2012년 4월 발생한 대규모 ‘플래시백(Flashback)’ 감염 사태는 맥킨토시(이하 맥) 사용자들을 혼란에 빠뜨렸다. 맥은 악성코드의 위협으로부터 자유로울 것이라는 기대를 한 순간에 무너뜨렸기 때문이다.
|
해외 보안업체가 발표한 바에 따르면 2012년 발견된 맥 악성코드가 121개에 달한다. 이는 전년과 비교할 때 두 배 이상 늘어난 수치다.
[그림 1] 2012년도 맥 악성코드 동향(출처 : F-Secure)
더구나 이들 악성코드들을 분석한 결과 내부 정보를 외부로 유출할 수 있는 '백도어'가 전체의 85%에 달하는 것으로 집계됐다. 이들 백도어 악성코드 샘플 중 일부는 APT(Advanced Pesistent Threat) 공격에 이용된 것으로 추측된다. 무엇보다 맥 OS를 겨냥한 백도어 악성코드가 이미 지난 2011년부터 꾸준히 나타났다는 점에 주목할 필요가 있다.
APT 공격에 이용되는 것으로 추정되는 Revir
맥 악성코드 중 하나인 'Revir'는 지난 2011년 9월 ‘바이러스토탈(Virus Total)’을 통해 알려졌다. 이 악성코드가 주목을 끄는 것은 최근 번지고 있는 APT 공격에 이용된 것으로 추측되고 있기 때문이다.
[그림 2] 해외 보안 벤더(F-Secure) 블로그에 설명된 Revir 관련 내용
Revir 악성코드에는 중국과 일본의 영유권 분쟁에 관한 내용으로 위장한 PDF가 포함돼 있었다.
[그림 3] 중국과 일본의 영토 분쟁 내용의 PDF를 포함한 Revir
또 Revir는 내부에 디버깅을 목적으로 하는 출력 메시지를 포함하고 있다. 이는 공격자가 악성코드를 제작하는 과정에서 백신 탐지 여부 등을 확인했다는 것으로, 맥 악성코드가 생각보다 면밀한 공정을 거쳐 제작되고 있음을 추측하게 한다.
[그림 4] 개발 중인 것으로 보이는 악성코드
Revir는 발견 이후, 여러 변형이 나타났다. 2012년 3월 러시아 모델 사진과 9월 음란 사진, 11월 티베트 승려 사진 파일 등 잇따라 사진파일로 위장한 변형들이 나타난 것. 이들은 최초 Revir와 동일한 제작자이거나 동일한 그룹에서 제작한 것으로 유추된다.
아직까지 이들 악성코드가 어떻게 유포되었는지 명확히 밝혀진 사실은 없다. 다만 여러 정황으로 미루어볼 때, 특정 공격 대상을 정하고 메일 등을 통해 악성코드가 첨부된 파일을 발송하는 방식을 취한 것으로 추측된다.
이는 최근 발견된 맥 악성코드들을 살펴보면 더 명확하게 드러난다. 지난 2012년 6월 위구르 운동가들을 상대로 한 표적 공격([그림 5])에도 메일을 통해 맥 악성코드가 유포됐다. 당시 메일에는 그림파일과 악성코드가 함께 압축파일 형태로 첨부돼 있었다. 이 같은 고전적인 방식은 실제 공격이 성공할 가능성은 낮지만 맥 악성코드 유포에도 사용되고 있다는 측면에서 의미가 있다.
[그림 5] 위구르 운동가를 대상으로 한 타깃 공격 추정 메일
Revir의 특징
Revir가 최종 다운로드하는 파일은 백도어 기능을 지닌 ‘Imuler’다. Revir 변형의 기본적인 기능 및 특징은 다음의 [표 1]로 정리된다. Revir 변형을 기능과 특징에 따라 4가지로 구분한 것이다. Revir변형은 주로 백도어를 다운로드하거나 암호화된 백도어를 포함하는 형태임을 알 수 있다.
[표 1] Revir 변형의 특징
이들 가운데 두드러지게 나타나고 있는 맥 악성코드는 사진(그림)파일로 위장한 악성코드다. 이에 따라 이번 글에서는 사진 파일을 위장한 버전인 ‘Revir.B’를 통해 Revir의 구성과 동작방식 등을 구체적으로 살펴보고자 한다.
Revir의 구성
Revir.B는 다른 맥 응용프로그램(이하 앱)들과 동일한 구성을 띄고 있다. 실제 실행되는 악성코드는 MacOS 디렉터리 내의 ‘FileAgent’다.
[그림 6] Revir 앱 구성
MacOS 내에 ‘.confr’ 파일과 ‘.conft’이 존재한다. .confr은 사용자에게 보이는 그림파일이며 .conft는 암호화된 백도어다. 참고로 Finder에서는 ‘.’로 시작하는 파일은 나타나지 않는다. 다시 말해, Finder에서 볼 수 없다면 검색 시 해당 파일이 표시되지 않기 때문에 사용자는 해당 파일의 존재를 확인할 수 없다.
[그림 7] MacOS 내 파일들
사용자가 앱을 실행하면 FileAgent가 실행되며 .conft 파일을 복호화한 뒤, ‘/tmp/.mdworker’로 복사한다.
[그림 8] FileAgent 실행 및 관계도
.confr에서 복사한 그림파일을 여는 스크립트를 Launch-IORF98에 생성하여 그림파일이 나타나도록 한다.
[그림 9] /tmp 폴더에 생성되는 파일들
Revir 변형마다 사용한 사진이 제각각 다른데, 그만큼 타깃 사용자들의 이목을 잡아 끌 수 있는 사진의 선택에 신경을 쓴 것으로 해석된다. Revir.B 역시 .confr 파일에 남아프리카공화국의 한 잡지에 실린 러시아 모델의 사진을 사용했다.
[그림 10] Revir.B 내 발견된 특정 문자열
악성코드 제작자는 이에 그치지 않고 코드 내부에 ‘FILEAGENT 1.0’이라는 문자열을 남겨놓았다. 악성코드 제작자가 버전 등을 확인하기 위해 남겨둔 문저열로 판단된다. .conft는 ‘RC4’로 암호화돼 있으며 복호화되면 .mdworker를 생성한다.
[그림 11] RC4 암호 해제
[그림 12] 암호화 상태(위)와 암호 해제 상태(아래) 비교
| 참조 : RC4는 1987년 RSA 시큐리티(RSA Security)의 론 리베스트(Ron Rivest)에 의해 설계 된 암호화 알고리즘으로, 공식적으로는 Rivest Cipher 4으로 명명 되었지만 Ron’s Code로도 불리기도 한다. RC4는 스트림 암호(Stream cipher)에서 가장 널리 사용 되며, SSL(Secure Sockets Layer)이나 WEP(Wired Equivalent Privacy)와 같은 프로토콜(Protocol)들에서 사용되고 있다. RC4는 빠른 속도와 간결한 알고리즘이라는 장점을 가지고 있는 반면 최근 시스템들에서의 사용에 있어서 알고리즘의 취약성이 문제점으로 제기되기도 한다. |
백도어 Imuler의 동작방식
/tmp/.mdworker에 생성되는 Imuler는 시스템 정보를 유출하는 백도어다. Imuler는 맥 OS X가 실행될 때 자동 실행되며, 추가로 다른 파일을 다운로드하고 C&C서버와 통신, 명령을 수행한다. 이를 도식화하면 다음의 다섯 단계로 표현할 수 있다.
|
1. 자기 복제 및 plist 생성 → 2. 다운로드 → 3. 초기화 → 4. 통신 → 5. 명령 수행 |
1. 자기 복제 및 plist 생성
Imuler는 ‘사용자/Library/LaunchAgents’에 스스로를 ‘checkvir’로 복제하고 checkvir.plist 파일을 생성한다. ‘LaunchAgents’에 등록된 프로그램은 부팅 과정에서 자동 실행된다.
|
/users/%s/library/LaunchAgents/checkvir |
[그림 13] LaunchAgents 내 생성 파일들
C&C 서버 주소를 ‘/Users/[사용자]/Library/.confback’에 저장한다. 현재까지 알려진 주소는 ‘www.sugarsbutters.com’이다. 앞서 밝힌 바 있는 변형 중에서는 ‘www. teklimakan.org’에 접속하는 것도 있다.
[그림 14] C&C 서버 주소 설정
2. 다운로드
C&C 서버 주소인 ‘www.sugarsbutters.com/CurlUpload’에서 ‘/tmp/CurlUpload’로 파일 다운로드를 시도한다. 다만 2013년 2월 테스트 결과, 해당 주소에서 더 이상 다운로드가 이뤄지지 않았다.
[그림 15] 파일 다운로드
3. 감염 시스템에 대한 정보 초기화
해당 악성코드는 감염된 시스템의 ID를 생성한 뒤, 로그인ID와 감염 시스템의 IP 주소, uname 등을 통해 OS 버전 정보 등을 탈취해 악성코드 제작자에게 전송한다.
[그림 16] 감염 시스템 정보 초기화
4. 통신
C&C 서버에 접속해 명령을 받아오는 과정에서 curl 을 이용한다. 이는 데이터 전송과 관련한 프로그램을 빠르게 작성하는 데에 사용되는 커맨드라인툴(Command line tool)이다.
이 툴은 프로토콜 지원에 필요한 클라이언트 제작을 도와주는 libCURL을 제공하기도 한다. libCURL를 이용하면 데이터와 관련 프로그램을 빠르게 전송이 가능하다. libCURL은 아래 [표 2]와 같이 easy라는 이름의 인터페이스를 제공한다.
[표 2] libCURL 인터페이스
악성코드는 다음과 같은 방식으로 C&C 서버와 통신한다.
|
v6 = curl_easy_init(); // 데이터를 업로드 하기 위해 context 생성 |
[그림 17] 악성코드가 C&C 서버와 통신한 내용
5. 명령 수행
현재 해당 C&C 서버에 접속이 되지 않는 관계로, 정확한 기능을 확인하기는 어렵다. 그러나 지금까지 분석한 정보를 토대로 유추할 때 [표 3]과 같은 기능이 있을 것으로 추정된다. 이들 기능은 감염된 시스템에서 정보를 탈취하는 명령들이다.
[표 3] 백도어 기능
맥 악성코드의 피해 예방책은?
지금까지 실제 발견된 바 있는 맥 악성코드를 중심으로 그 성격과 기능을 살펴보았다. 이를 통해 맥 악성코드도 윈도우 악성코드와 마찬가지로 사용자 정보 탈취를 시도한다는 것을 확인할 수 있었다. 그렇다면 맥 악성코드의 피해를 예방하기 위한 방안은 과연 무엇일까.
우선 ‘확장자 확인’이 있을 수 있다. Finder 설정에서 확장자를 볼 수 있게 해둬야 한다는 것이다. 사용자가 악성코드 파일을 데이터 파일로 착각해 클릭하기 전, 한번 더 확인할 수 있도록 조치하는 것이다. Finder의 ‘환경설정’을 선택한 뒤, ‘모든 파일 확장자 보기’를 클릭하면 된다.
[그림 18] Finder에서 확장자 보기를 설정한 경우
[그림 19] Finder 환경 설정
아울러 최신 버전의 OS X의 게이트키퍼(Gatekeeper)를 통해서도 사용자가 직접 다운로드한 응용프로그램의 실행을 제한할 수 있다. Mountain Lion은 ‘Mac App Store 및 확인된 개발자’가 기본으로 설정돼 있다. 이 때문에 좀 더 강력한 보안을 원하는 사용자들은 ‘Mac App Store’에서 다운로드한 응용프로그램만 하는 것으로 설정하면 된다. 다만 Mac App Store에 모든 응용프로그램이 존재하지는 않는다.
[그림 20] Mountain Lion 보안 설정
맥 악성코드는 수적으로 크게 늘고 있는 데다가, 형태도 점차 고도화되고 있다. 특히 APT 공격에 이용되는 악성코드가 증가하고 있어 맥 사용자들을 위협하고 있다. 이 같은 상황을 고려할 때, ‘맥도 더 이상 안전지대가 아니다’라는 인식의 전환이 무엇보다 절실한 것으로 보인다. 국내 기업 및 기관에서도 맥 사용자가 증가하고 있는 만큼, 이에 대한 보안 솔루션과 보안 정책 마련이 필요한 시점이다.@
- AhnLab분석 1팀 차민석 책임연구원