본문 바로가기

보안/온라인게임

[온라인 게임 해킹 분석 보고서] 카스퍼스키 (Caspersky) Winnti 사이버 범죄 조직 분석 결과 (번역)




0. 개요


사이버 범죄 조직 Winnti 게임회사를 손상시키는 시스템, 악성코드 사용을 위해 지적 재산 및 디지털 인증서를 훔치다.


오늘 카스퍼스키랩의 전문가 팀은 Winnti로 알려진 사이버범죄 조직이 행한 사이버 스파이 행위를 분석한 연구 결과 보고에 대해 발표한다.


카스퍼스키 랩의 보고서에 따르면 Winnti 그룹은 2009년 이래로 온라인 게임 산업에 있는 회사들을 해킹해왔다. 그리고 현재도 여전히 진행중이다.

그 그룹의 목표는 합법적인 소프트웨어 벤더사에 의해 서명된 디지털 인증서와 추가적으로 온라인 게임 프로젝트의 소스코드를 포함한 지적재산을 훔치는 것이다. 


Winnti 그룹의 악성 활동에 의해 최초로 주목을 끈 사건은 2011년 가을에 일어난 악성의 Trojan이 전세계 걸친 거대한 수의 엔드 유저 컴퓨터에서 탐지되었을 때 이다.


감염된 컴퓨터 모두를 연결시키는 링크는 대중 온라인 게임을 플레이하기 위해 사용되고 있었다. 사건 이후 유저의 컴퓨터를 감염시킨 악성 프로그램이 게임 회사 공식 서버의 정기 업데이트의 일부분이 었다는 사실로 드러났다. 게임 커뮤니티의 감염된 사용자와 멤버는 스파이-악성코드를 설치한 컴퓨터 게임 배포자를 의심했다. 그러나 그것은 후에 플레이어의 컴퓨터에 의해 악성 프로그램이 설치된 것으로 밝혀졌다. 실제로 사이버범죄조직은 컴퓨터 게임 회사를 타겟팅하고 있는 중이었다.


사용자에게 Trojan을 퍼뜨린 서버를 소유한 컴퓨터 게임 생산기업은 카스퍼스키 랩에 악성코드 분석을 요청했다. Trojan은 64비트 윈도우즈 환경에서 컴파일된 DLL 라이브러리로서 합법적으로 서명된 악성코드 드라이브를 사용했다. 그것은 기능적으로 완전한 Remote Administration Tool이었고 공격자가 사용자 모르게 희생자의 컴퓨터를  제어할 수 있게 하였다. 


Trojan은 유효한 서명을 가진 최초의 마이크로소프트 윈도우 7 64비트 버전 악성 코드 프로그램이었다.


카스퍼스키 랩의 전문가는 Winnti 그룹의 행위를 분석하기 시작했고 온라인 게임 산업 체에서 30개 이상이 Winnti 그룹에 의해 감염되었음을 발견했다. 그리고 이는 동남아시아의 온라인 비디오 게임을 만드는 소프트웨어 개발 회사가 대다수였다. 그러나 독일, 미국, 일본, 중국, 러시아, 브라질, 페루, 벨로루시 공화국에 위치해 있는 온라인 게임 회사들 또한 Winnti 그룹의 희생양으로 확인되었다.


카스퍼스키 랩의 전문가는 산업 스파이 행위와 더불어 Winnti 그룹이 불법적인 이익을 위해 사용할 수 있는 세가지의 수익 창출 계획을 알아냈다.


룬이나 골드와 같은 게임 통화 축적을 조작하여 이 것은 플레이어에 의해 사용되고 축적된 가상 머니는 실제 돈으로 변환된다.


의심없이 게임 화폐의 조작과 축적을 빠르게 하기 위해 온라인 게임 서버로부터 훔친 소스코드를 사용하여 게임 내의 취약점을 찾는다. 


자신의 불법 서버를 확장하기 위해 온라인 게임 서버로부터 훔친 소스코드를 사용한다.


현재의 Winnti 그룹은 여전이 활동중이며 카스퍼스키 랩의 조사 또한 진행중이다. 온라인 게임 산업과 인증 기관은 훔친 디지털 인증서의 해지를 지원하고 회사의 전문가 팀은 추가 감염된 서버를 식별하기 위해 꾸준히 보안 커뮤니티와 협력하고 있다.


카스퍼스키 랩의 연구가 포스팅하고 Winnti 그룹의 행위에 대해 보고하기 위해 완벽한 기술 분석을 포함했다. 


카스퍼스키 랩의 제품은 악성코드의 프로그램을 탐지하고 제거한다. 


Winnti 그룹에 의해 사용된 변형들은 Backdoor.Win32.Winnti, Backdoor.Win64.Winnti, Rootkit.Win32.Winnti, Rootkit.Win64.Winnti 로 분류된다.



1. 내용 요약


2011년 가을 카스퍼스키 lab에 의해 시작한 이 연구는 여전히 진행중이다. 이 연구 프로젝트의 주제는 전 세계의 민간 기업을 타겟으로 한 공격 시리즈 이다. 


이 연구에서 우리는 중국을 본거지로 하는 어떤 하나의 해킹 그룹 활동에 대해 말할 것이다. 이 그룹의 이름은 Winnti 이다. 


우리의 통계에 따르면 Winnti 그룹은 몇년 전부터 활동하기 시작하여 온라인 비디오 게임 업계에 대한 사이버 공격에 특화되어있다. 합법적인 소프트웨어 벤더 사의 디지털 인증서 뿐만 아니라 온라인 게임 프로젝트의 소스 코드를 훔치는 것이 이 그룹의 주요 목표이다. 게다가 그들은 (production gaming servers 를 포함하여) 네트워크 인프라와 개념 아이디어, 디자인 등과 같은 새로운 development 설치에 매우 관심이 있다. 


winnti 그룹에 의한 공격을 조사한 것은 우리가 처음이 아니다. 적어도 2010년에 미국의 한 아메리칸 비디오 게임 산업 회사로 알려져있는 HBGray 회사는 HBGary의 고객 중 한명의 Winti 그룹과 관련된 정보 보호 사건을 조사했다.



1) 시작하기 앞서


2011년 가을 Trojan이 수많은 컴퓨터에서 발견되었다. 그리고 그들 대부분이 대중적인 온라인 게임 플레이어에서 사용되었다는 사실이 밝혀졌다. 그리고 사용자의 컴퓨터에 올라와있는 악성코드의 일부는 게임의 공식 업데이트 서버에서 다운받은 정기 업데이트의 일부에 의한 것이 밝혀졌다. 일부는 심지어 배포자가 자청해 고객의 스파이가 된 것이라고 의심했다. 그러나 얼마 이후 그것은 사용자의 컴퓨터 실수로 악성프로그램이 깔린 것으로 밝혀졌다. 이 범죄는 사실 배포된 컴퓨터 게임과 개발한 회사를 목표로한 것이었다. 


악성코드가 배포된 서버의 소유자인 컴퓨터 게임 배포자는 업데이트 서버에서 발견된 악성 코드 프로그램의 분석을 카스퍼스키 Lab에 요청했다. 그 결과 이는 64비트 윈도우 환경에서 컴파일된 DLL 라이브러리 때문이었고 이는 유효하게 서명된 악성 드라이버이 의해 사용되었다. 


악성 DLL은 32비트 또는 64비트 운영체제에서 동작중인 값에 의해 감염되었다. 비록 어떠한 사건 시작도 탐지되지 않지만 그것은 사용자가 모르는 상황에서 64비트 뿐만 아니라 특정한 조건 하에서 32비트 환경에서도 동작하였다. 백도어 또는 RAT (Remote Administration Tool)페이로드가 담겨있는 DLL은 사용자 모르게 사이버 범죄조직에게 희생자 컴퓨터를 조종할 수 있는 능력을 주었다. 


이 악성 모듈은 우리가 본 유효한 디지털 시그니처와 더불어 마이크로소프트 윈도우 64비트 버전에서의 최초 Trojan이었다. 우리는 전에도 유사한 케이스를 보곤 했지만 우리가 보아온 이전의 사건은 모두 디지털 시그니처의 남용과 오로지 32비트의 애플리케이션에만 있었다.


연구의 초창기 단계의 악성코드 샘플의 수집에서 우리는 32비트와 64비트 환경의 수많은 유사한 백도어를 식별했었다. 이들은 다양한 방법에 의해 탐지되었다. 우리는 그들을 유사한 패밀리로 그룹화 했다. 시만텍은 이러한 악성 프로그램 이름을 최초로 보여주었다. 우리는 우리가 생성한 악성코드 패밀리의 이름(Backdoor.Win32(Win64).Winnti) 에 시만텍이 지어준 winnti 라는 이름을 그대로 유지시켰다. 이러한 RAT(remote administration tool)가 포함된 공격의 배후에 있는 사람들을 우리는 Winnti group이라 불렀다.


흥미롭게도 또 다른 디지털 시그니처가 대한민국(남한) 내의 게임 사(KOG 로 알려진 민간 기업)에 속해있었다. 이 회사의 주된 사업은 MMRPG (massively multi player online role-playing games) 이었고 처음 희생자의 비지니스 지역에서 식별되었다. 


우리는 KOG와 연락했다. 그들의 인증서는 악성 소프트웨어를 서명하기 위해 사용되고 유효한 서명으로 통보되었다. KOG의 인증서에 대해 논했고 그결과 그 인증서는 폐지되었다. 




2) 디지털 인증서 (Digital Certificates)


우리가 처음 도난당한 디지털 인증서를 발견했을 때 우리는 그 인증서의 도난 여부와 악성코드의 서명을 알아차리지 못했다. 이는 이후 다른 희생자를 공격하기 위한 수법이었다. 18개월 동안 우리는 12개의 디지털 인증서를 발견했다. 


추정컨데 중국에서 온 다른 해킹그룹에 의해 이러한 디지털 인증서가 공격에 사용되었음을 알아냈다. 대표적으로 2011년 대한민국의 네이트와 소셜 네트워크을 공격을 위해 공격자가 YNK 일본 게임사의 인증서를 디지털 상에서 서명한 방식의 Trojan을 사용한 예가 있다.

(http://www.bbc.co.uk/news/technology-14323787)


같은 회사의 디지털 인증서는 최근 2013년 3월에 Tibetan 과 Uyghur을 타겟으로한 Trojans에서 사용되었다. 

(https://www.securelist.com/en/blog/208194165/New_Uyghur_and_Tibetan_Themed_Attacks_Using_PDF_Exploits)


 사실상 이러한 스토리는 2011년 전부터 이어졌다. 우리는 이 Norman의 블로그 유사한 사건에 대해 포스팅한 글을 읽을 것을 추천한다.

(http://blogs.norman.com/2011/security-research/invisible-ynk-a-code-signing-conundrum)


동시간에 2013년 3월 Uyghur는 MGAME라 불리는 또 다른 게임 회사에 의해 디지털으로 서명된 다른 악성코드에도 타겟이 되었다.  

(http://www.fsecure.com/weblog/archives/00002524.html)


우리는 모든 이러한 도난당한 인증서의 근원지가 같은 Winnti라 불리는 그룹일 것이라 확신한다. 이러한 그룹은 다른 중국 해커 그룹과 긴밀한 관계를 가지고 중국의 블랙마켓에 인증서를 팔고 있다.


아래에는 다른 조직 활동 시 Winnti 그룹에 의해 사용된 디지털 서명과 회사 이름의 목록이다.


 Company 

 Serial 

 Country

 ESTsoft Corp

 30 d3 fe 26 59 1d 8e ac 8c 30 66 7a c4 99 9b d7

 South Korea

 Kog Co., Ltd.

 66 e3 f0 b4 45 9f 15 ac 7f 2a 2b 44 99 0d d7 09

 South Korea

 LivePlex Corp

 1c aa 0d 0d ad f3 2a 24 04 a7 51 95 ae 47 82 0a

 South Korea/Philippines

 MGAME Corp

 4e eb 08 05 55 f1 ab f7 09 bb a9 ca e3 2f 13 cd

 South Korea

 Rosso Index KK

 KK 01 00 00 00 00 01 29 7d ba 69 dd

 Japan

 Sesisoft

 61 3e 2f a1 4e 32 3c 69 ee 3e 72 0c 27 af e4 ce

 South Korea

 Wemade

 61 00 39 d6 34 9e e5 31 e4 ca a3 a6 5d 10 0c 7d

 Japan/South Korea/US

 YNK Japan

 67 24 34 0d db c7 25 2f 7f b7 14 b8 12 a5 c0 4d

 Japan

 Guangzhou YuanLuo

 0b 72 79 06 8b eb 15 ff e8 06 0d 2c 56 15 3c 35

 China

 Fantasy Technology Corp

 75 82 f3 34 85 aa 26 4d e0 3b 2b df 74 e0 bf 32

 China

 Neowiz

 5c 2f 97 a3 1a bc 32 b0 8c ac 01 00 59 8f 32 f6

 South Korea



3) 희생자


아마도 Advanced Persistent Threats (APT)은 아마도 높은 레벨의 기관(정부 에이전시, 군 - 경찰 조직, 발전소, 화학공장, 주요 시설 네트워크) 을 타겟으로 할 것이다. 그러한 인식은 정부 조직이나 기관이 평상시에 공격을 받고 있다는 뉴스에 의해 강조 되고 있고 최근 사이버 공격에 타겟이 되었던 거대한 규모의 구글, 어도비, 뉴욕 타임즈가 운영중임에도 불구하고 상업적인 회사가 위험에 있을 것으로 보지는 않는다.그러나 데이터가 화폐가 될 수 있는 회사는 APT 공격으로 부터 위험에 놓여있다. 특히 그 타겟은 정부, 정치, 군, 산업 조직이 아닌 게임 회사이다. 이것은 정확하게 우리가 여기에 문제화할 대상이다.


Winnti 샘플을 분석하는 것은 타겟이 누구이고 무엇인지를 식별하는데 도움을 주었다. 우리는 다음의 타겟이 될 공격에 익숙해지고 있음을 발견했다. Winnti 팀은 컴퓨터 게임을 개발하고 배포하는 회사를 감염시켰다. 이 사실로써 그 팀이 2009년 이후로 조용히 활동 중임을 알 수 있다.


즉 악성 프로그램 내의 태그와 같이 우리가 가지고 있는 처리 정보(C&C 도메인의 이름, 악성코드가 서명하기 위해 디지털 인증서가 도난 당한 회사, 그리고 탐지 통보가 왔었던 나라)를 판단해보면 우리는 Winnti 멀웨어에 최소 35개의 회사가 감염되었음을 말할 수 있다.


영향을 받은 회사가 위치해있는 나라는 다음 표와 같다.

 Asia

 Europe

 South America

 North America 

 China

 Belarus

 Brazil

 USA

 India

 Germany

 Peru

 

 Indonesia

 Russia

 

 

 Japan

 

 

 

 Philippines

 

 

 

 S. Korea

 

 

 

 Taiwan

 

 

 

 Thailand

 

 

 

 Vietnam

 

 

 


비록 동남 아시아에 집중되어 있긴 하지만 이 데이터는 Winnti 팀이 세계적으로 흩어져있는 게임 회사를 타겟으로 했음을 보여준다.



이 지리적 다양성은 매우 놀라운 일이다. 몇몇의 게임 회사들은 (배포사와 개발사) 국제적이었고 대표사와 사무실을 전 세계적으로 가지고 있었다. 또한 게임 회사가 협력을 위해 지역 다양화 됨은 일반적인 일이다. 게임이 어느 순간 초기 'home' 으로 부터는 떨어진 지역의 마켓으로 도달한다면 그것은 지역화 되어서 다른 퍼블리셔에 의해 배포된 것이다. 이러한 협력과정에서 그 파트너 회사는 배포 키트, 게임 리소스, 키트의 부품 등을 포함하여 게임 컨탠츠와 관련된 데이터를 교환하기 위해 서로 다른 네트워크 리소스 접근을 허락한다. 그 네트워크 내에 있는 어떠한 회사가 감염된다면 파트너 쉽 체인을 통해 쉽게 감염을 퍼뜨리는 식의 사이버 범죄가 이루어질 수 있다.



4) Winnti C&C Structure


조사하는 동안 우리는 수백개의 악성 프로그램 이상을 발견했다. 각각은 개별적으로 특정한 회사를 공격하도록 컴파일되어있었다. 다음과 같이 일반적으로 별도의 커맨드와 컨트롤 (C&C) 도메인은 각각 타겟으로 지정한 회사에게 지정되어 거의 모든 C&C 도메인이 배치되었다. 세컨드 레벨의 도메인은 DNS A-Record 없이 생성되었다. 즉 내용에는 IP 어드레스가 지정되지 않았다. 



(기본 C&C 도메인은 없거나 자신을 가리킴)


A-Record가 존재하는 경우에는 일반적으로 127.0.0.1 의 아이피가 지정되었다. C&C를 목적으로 사이버 범죄조직들은 게임 회사의 호스팅 도메인 사이트의 이름을 생성했는데 second 레벨의 도메인들이 매우 유사한 이름을 가지고 있는 사실은 주목할 가치가 있다. 그리고 악성의 사용자 도메인은 실제 게임 회사가 사용한 사이트와 같은 IP주소를 사용했다. 일부 경우에는 third 레벨의 도메인이 공격자의 C&C 서버를 가리키는 IP 주소를 사용했다.



(사이버 범죄조직들은 공격 대상의 도메인주소와 매우 유사한 도메인이름을 만들고 생성한 가짜 도메인은 정상적인 회사를 가리키도록함)

(사이버 범죄조직들은 가짜 도메인의 third 도메인을 만들어 C&C 서버의 아이피 주소를 기리키도록 함)


 - A record 란? Address Record는 IP 주소의 도메인이나 서브 도메인을 가리킨다.

 

 - 도메인 체계



Winnti 팀은 때론 그들의 C&C 유닛을 public 호스트에 등록하기도 한다. 확인된 샘플을 판단해보면 이러한 C&C 센터는 6600.org, 8866.org, 9966.org, ddns.net 같은 도메인의 서브도메인이다. 그 공격 타겟과 살고있는 나라들은 C&C 도메인, 서브도메인의 이름으로부터 다음 같이 추측할 수 있다.


ru.gcgame.info

kr.zzsoft.info

jp.xxoo.co

us.nhntech.com

fs.nhntech.com

as.cjinternet.us


서브도메인 ru, kr, jp, us는 C&C 서버가 러시아, 한국, 미국에 위치한 회사의 컴퓨터에 호스팅된 봇을 관리함을 의미한다. fs와 as는 공격대상 회사의 이름을 가리키는 문자이지만 서브도메인 ru, kr, jp, us는 C&C 서버가 러시아, 한국, 미국에 위치한 회사의 컴퓨터에 호스팅된 봇을 관리함을 의미한다.


Winnti의 악성프로그램이 C&C 셋팅 내에 192.168.1.136의 IP 주소를 가지고 있을 때도 있었다. 사이버 범죄조직들은 그것을 조종할 필요가 있지만 (악성 프로그램이 네트워크를 통해 퍼지고 있는 동안 그것은 감염되었을 것이다.) 이것은 인터넷 연결하지 않은 채로 어떠한시간에 감염된 컴퓨터가 있었음을 의미할 수 있다. 이러한 경우 사이버범죄조직들은 전용 로컬 C&C 서버에 들어가 C&C을 통해 희생자의 컴퓨터를 조종하기 위해 같은 로컬 네트워크에 인터넷으로 연결되어 있는 또다른 취약한 컴퓨터 상에서 존재했었다. 시스템 관리자는 종종 중요한 컴퓨터를 외부로 부터 분리시켜 놓는다. 이것은 우연의 감염 가능성을 감소시키지만 분명하게 말하면 항상 타겟이된 공격에서 도움을 줄수 있는 것은 아니다.

탐지 및 분석된 Winnti 샘플 내에서 우리는 36개의 독특한 C&C 도메인을 발견했다. 우리는 이러한 악성 패밀리로부터 일부 샘플만을 획득했기 때문에 아마 대부분은 Winnti C&C 도메인의 작은 일부분일 것이다. 이 도메인은 악성 프로그램이 타겟이된 공격에만 사용되고 많은 감염 자원에 대해 어떠한 정보도 얻을 수 없다. 이러한 이유로 우리는 알수 없는 공격 내에서 사용된 악성코드 샘플을 얻는 방법을 알아내지는 못했다.


번호

우리가 발견한 공격 내에서 사용된 도메인

1

newpic.dyndns.tv

2

update.ddns.net

3

nd.jcrsoft.com

4

cc.nexoncorp.us

5

kr.zzsoft.info

6

as.cjinternet.us

7

ca.zzsoft.info

8

sn.jcrsoft.com

9

lp.apanku.com

10

sshd.8866.org

11

ftpd.6600.org

12

tcpiah.googleclick.net

13

rss.6600.org

14

lp.zzsoft.info

15

lp.gasoft.us

16

eya.jcrsoft.com

17

ftpd.9966.org

18

kr.xxoo.co

19

wi.gcgame.info

20

tcp.nhntech.com

21

ka.jcrsoft.com

22

my.zzsoft.info

23

jp.jcrsoft.com

24

su.cjinternet.us

25

vn.gcgame.info

26

ap.nhntech.com

27

ru.gcgame.info

28

kr.jcrsoft.com

29

wm.ibm-support.net

30

fs.nhntech.com

31

docs.nhnclass.com

32

rh.jcrsoft.com

33

wm.nhntech.com

34

wm.myxxoo.com

35

ka.zzsoft.info

36

ad.jcrsoft.com

37

my.gasoft.us


Winnti에서 사용된 second 레벨의 도메인을 알기에 우리는 모든 third 레벨의 서브 도메인의 4글자까지 브루트 공격을 했다. 그리고 그들을 가리키고 있는 실제 서버의 IP 주소를 가지고 있음을 알아냈다. 통합 12개의 second 레벨의 도메인을 검색하면서 우리는 227개의 살아있는 third 레벨의 도메인을 찾아냈다. 그들의 상당수는 지금까지 모른채로 존재해왔던 Winnti 클래스 악성코드의 C&C 서버였다. 

12개의 second 레벨의 도메인에 대해 WHOIS 데이터를 분석하면서 우리는 다음의 사용된 이메일 주소 리스트를 발견했다.


evilsex@gmail.com

jslee.jcr@gmail.com

whoismydns@gmail.com

googl3@live.com

wzcc@cnkker.com

apanku2009@gmail.com


이러한 도메인의 일부는 구글 도메인과 같이 입증된 등록 데이터였다.

구글 회사는 다음과 같이 등록되어 있다.


Registrant: Google Inc.

 - 1600 Amphitheatre Parkway

 - Mountain View, California 94043

 - United States

 - +1.6503300100


도메인 등록 데이터를 판단해보면 Winnti 팀은 2007년 보다 전에 그들의 범죄 조직 활동을 시작했다.  일찍이 이 도메인들은 안티 바이러스 프로그램이라고 속이는 것으로 포함되었다. (FakeAV)  2009년 부터 도메인은 게임 회사들을 감염시키기 위해 사용되는 봇 목적의 C&C 서버를 호스팅하는 것으로 나타났다.

분명한 것은 사이버 범죄 조직들은 2010년 시작한 게임 회사의 네트워크 속으로 상대적으로 거대한 규모의 침투를 했었다.




5) Known Malware


공격자들이 가장 좋아하는 tool은 우리가 Winnti 라고 부르는 악성 프로그램이다. 그것이 처음 사용한 이후 부터 관계시키긴 했지만 우리는 모든 종류에 대해 1.x 또는 2.x로 2가지로 나눈다. 우리의 글은 이러한 도구의 2가지 종류를 설명한다. 두번째로 만들어진 2.x는 활동 영역 내에서 우리가 어떤 공격을 조사하면서 희생자에게 회사 망으로 부터 감염을 고립시키고 데이터전송을 방해하는데 도움을 주었던 공격 중 하나에서 사용되었다. 


추가적으로 우리는 중국에서 유래한 것으로 알려졌지만 이전 Tibetan 공격에서 사용되었던 PlugX로 알려진 백도어에 대한 사용을 관찰했다. 



6) 상업적인 이익


위에서 시작해온 것 같이 만약 사이버 범죄자들이 공격으로 이읻을 얻는 방법을 발견한다면 APT는 어떠한 상업 관련 회사들도 타겟으로 할 수 있다. 그렇다면 사이버 범죄자들이 게임 회사를 공격하여 불법으로 돈을 벌기 위한 방법은 무엇 일까? 가능한 정보에 근거하여 우리는 Wnnti 팀에 의해 사용될 수 있는 3가지의 수익 창출 방법을 단일화 했다. 


- 온라인 게임 내의 통화 및 금의 불공정한 축적과 가상 자금의 실제 돈 변환

- 포인트1과 연결된 게임 내 취약점을 찾기 위해 온라인 게임 서버로부터 소스코드 획득

- 미래의 불법 서버를 두기 위해 대중적인 온라인 게임의 서버로부터 소스코드를 획득 


예를 보면 컴퓨터 게임 회사의 감염을 조사하는 동안 우리는 악성코드가 특정한 서버를 목적으로 생성되었음을 발견했다. 그 악성 프로그램은 그것 속으로 코드를 주입해서 서버에서 돌고 있는 특정 프로세스를 찾고 있는 중이었다. 그런다음 프로세스 코드 내에서 기능 방해를 위해 명령어 호출을 감출 수 있는 2가지의 위치를 찾는다. 이러한 기능 방해를 사용하여 그 악성코드 프로그램은 2가지 장소 내에서 처리되는 프로세스 데이터를 수정하고 컨트롤을 뒤로 리턴한다. 그러므로 그 공격자는 정상의 서버 프로세스 실행을 변화시킨다. 불행하게도 그 회사는 타겟이 된 애플리케이션을 우리와 공유할 수 없었고 우리는 정확히 어떻게 이 악성 인터페이스가 게임 프로세스에 영향을 주었는지 말할 수 없었다. 그 회사는 공격자의 목표는 게임의 골드를 불법적으로 획득하는 것이라고 우리에게 말했다. 


이것과 같은 악성활동은 게임 자체에 부정적인 영향을 끼치고 유리하게 치팅하는 자에게 균형이 기울어버린다.  하지만 Winnti 팀에게 게임 경험에 도입한 어떠한 변화도 크게 눈에 띄지 않을 것이다. 결국 숙련된 균형을 유지하는 것은 주된 온라인 게임의 특성이다. 유저는 간단하게 만약에 그들이 다른 플레이어가 표준적이지 않은 방법을 사용하여 정상 게임 플레이 뒤에서 이익을 챙긴다면 플레이 하는 것을 멈추라고 할 것이다. 또는 개발자가 모르는 게임 내에서 보여주는 영향이나 리소느는 고유의 경쟁력을 잃어버리게 할 것이다. 동시에 그 공격자는 게임이 대중적도록 유지하게 할 것이다. 달리말하면 그들은 효과적으로 모든 시간을 돌아보고 금전적인 획득을 위해 게임 플레이를 감염시키기 위해 노력할 수 없을 것이다. 


Winnti 팀의 멤버는 인내심이 있고 조심스럽다. 사이버 범죄 조직은 감염된 회사와 수년동안 그들로부터 획득한 돈으로 그 온라인 게임 프로세스에 영향을 끼쳐왔고 그들은 자신에게 주목하지 않은 채로 이러한 방법들을 발견해왔다.  



2. Winnti 1.0 Technical Analysis




전체적인 구조는 위와 같다. 번역이 이상할 수 있으므로 위 그림을 참조해서 읽으면 이해가 좀 더 쉬울 것이다.


2.1 The Initial DLL


모든 것은 DLL을 가지고 시작한다. 그 DLL은 winmm.dll 또는 apphelp.dll 과 같은 표준 윈도우라이브러리를 흉내낸다. 대부분의 경우 탐지된 샘플은 그들 자신을 winmm.dll로 위장한다. 우리는 이 문서를 끝으로 이 악성 라이브러리의 이름을 고칠 것 이다.


합법적인 winmm.dll은 멀티미디어 기능을 제공하는 winndows 시스템 라이브러리이다. 그것은  %WINDIR%\System32  폴더 내에 위치해있다. 공격자는 기본 시스템 기능을 제공하는 라이브러리임을 생각했고 따라서 이 라이브러리는 어떠한 프로그램에 의해 로드된 확률이 매우 높다. 예를들어 winmm.dll은 운영체제가 시작하는 동안 실행되면서 windows 유저 인터페이스의 핵심역할을 하는 explorer.exe에 의해 로드된다.  


메카니즘은 악성코드가 간단한 방식인 것으로 시작한다. 만약 이러한 순수 애플리케이션이 윈도우즈의 winmm.dll (%WINDIR%\System32\winmm.dll에 위치해있다) 에 의존한다면 같은 이름을 가진(winmml.dll) 악성의 다른 라이브러리는 순수한 애플리케이션의 폴더 내에 위치하고 악성 라이브러리는 시스템 대신 로드될 것이다.


감염된 컴퓨터 제어에 대한 이점을 취하여 공격자는 악성 라이브러리를 %WINDIR% 폴더에 놓는다. 그 같은 폴더는 explorer.exe 를 포함한다. 이것은 공격자가 악성의 DLL이 시스템 시작과 동시에 로드됨을 보장할 수 있게 한다. explorer은 시스템이 시작함과 동시에 %WINDIR% 로부터 악성의 winmm.dll 을 로드 한다.


만약 본래의 라이브러리 대신 악성의 winmm.dll이 로드될 경우 어떻게하면 본래의 라이브러리를 의존 하는 프로그램이 정확하게 작동하게 할 수 있을까?  매우 쉽다. 그 악성 라이브러리는 %WINDIR%\System32로부터 본래의 winmm.dll을 프록시하여 작동하도록 디자인 되었다. 


사이버 범죄자는 모든 것들이 적절하게 동작하는 것을 보장하게 위해 바퀴(DLL 파일을 의미하는 듯)를 다시 만들지 않았다. 그들은 악성 코드를 분석하는 동안 보안 연구자에 의해 개발된 AheadLib라는 잘 알려진 도구에 의존했다.



이 프로그램은 악성 라이브러리를 분석을 용이하게 하기 위해 디자인 되었다.이것은 안티 바이러스 벤더에 의해 고용된 중국의 개발자에 의해 만들어졌다. 이 프로그램은 인풋으로 DLL 을 받아 라이브러리 내에 포함된 함수를 후킹하는 C 코드를 생성한다. 이 C 코드는 DLL로 다시 컴파일 된다. 이것은 프록시로 사용되고 악성 파일의 행위를 분석에 관한 유연한 방법을 제공한다.




 이 도구의 유연성은 분석하는 동안 악성 애플리케이션의 로직의 커스터마이징과 일부 디버깅 아웃풋을 제공하는 함수 코드의 오버로드를 가능하게 한다. 후킹된 함수가 호출되었을 때 원래의 함수에 의해 전해진 값을 알아내기 위해 일부 코드가 후킹된 함수의 파라미터를 보여주기 위해 추가 될 수 있다. 이 방법은 호출된 악성 애플리케이션의 동적 분석 내에서 사용된다. 




아이러니 하게도 악성코드 생성자는 악성 프록시 라이브러리를 생성함으로써 이것이 편리한 애플리케이션이 될 것임을 알아냈다. 그들은 AheadsLib 도구의 파라미터로 시스템 라이브러리(winmm.dll)을 지정하여 프록시 DLL을 생성하하는 C 파일 형태의 소스코드 원형을 만들어냈다. 악성 페이로드를 포함하는 일부 함수를 오버로딩 하여 공격자는 모든 시스템 DLL을 기능을 포함하는 완성된 악성 코드 일부를 생성했다.이상하게도 공격자는 그들의 악성코드 초기 버전에 있는 AheadLib 디버그 메세지를 위한 코드를 유지시켰다. (위의 스크린샷에 빨간색으로 표시되어 있다.) 이러한 문자열은 컴파일된 악성코드 바이너리 내에서 또한 발견될 수 있다. 




후에 이러한 플래그먼트는 AheadLib에 의해 생성된 C 파일로부터 제거 되었다



2.2 Control DLL


winmm.dll 악성 라이브러리는 그것의 바디 안에 또 다른 라이브러리를 유지한다. 이 것은 로컬 디스크 내에 다른 파일을 생성 하지 않은 채로 복호화되고 프로세스 메모리 내로 로드된다.  파일 버전 정보에 따르면 이 라이브러리의 원래 이름은 PlusDLL.dll 이다. 이것은 플랫폼의 메인 컨트롤 컴포넌트이다. 그 추가적인 DLL이 메모리 내에 적절하게 할당되었을 때 winmm.dll은 제어명령과 매개 변수(봇 세팅을 포함하는 문자열)를 함께 전달한다. 그 셋팅 문자열 또한 암호화된 형태 로 winmm.dll 바디 안 매직워드 PLUSUNIT 뒤에 위치해있다. 



복호화 후에 이 문자열은 다음을 포함한다.


url=lp.gasoft.us:80|ver=1018|tag=33|group=lp80wi


winnti 악성코드가 보안 연구자의 관심을 얻을 때 악성코드 생성자는 이러한 초기 셋팅을 저장하기 위해 쓰이는 방법을 수정하여 만들었다. 일부 샘플 내에서 그 셋팅관련 내용이 실행 파일 헤더 안에 숨겨져 있었다.



변형된 것 내에서 PLUSUNI의 매직 문자열이 수정되었다.



PlusDLL 라이브러리는 임베디드 드라이버를 가지고 있다. 그 드라이버는 %WINDIR%\System32\<drivername.sys> 파일 내에 저장되고 서비스에 등록되어 NtLoadDriver 시스템 API 기능에 의해 시작된다. 그것 들이 일어난 후에 레지스트리 등록 시 모든 레지스트리 엔트리가 생성되고 드라이버 파일은 제거 된다. 그 실행파일은 원래의 드라이버 이름("PortLess" 와 "PointFilter")을 보존하지만 감염시 사용되는 그 드라이버 파일은 "sp1itter.sys" 와 "acplec.sys"로 저장된다. 


드라이버의 목적은 악성코드에 의해 설립된 네트워크 연결을 숨기는 것이다. 예를들어 그 사용자가 설립된 네트워크 리스트를 체크한다면 (netstat -a 와 같은 tcp 뷰 프로그램을 사용하여) 봇이 제어 센터와 통신하는 동안 그 드라이버는 악성코드 연결을 숨기고 보호할 것이다. 이러한 접근은 많은 윈도우 플랫폼의 루트킷에 의해 사용된다. 


그 드라이버는 연결을 보호하기 위해 주소 리스트를 얻는 흥미로운 방법을 사용한다. 이러한 정보는 PlusDLL 컨트롤 라이브러리 내에서 이용 가능하다. 그것은 감염이 컴퓨터 내에서 active 중일 때 정상적으로 explorer.exe 프로세스의 컨택스트 내에서 작동한다. 주소 정보는 드라이버가 작동할 때 NtSetQuotaInformationFile API를 호출하여 유저의 스페이스에서 커널 스페이스로 보내진다. (PlusDLL 로부터) 


초기화하는 동안 드라이버는 NtSetQuotaInformationFile 함수를 후킹한다.



 그 함수가 호출되는 모든 시간에 드라이버는 그것의 파라미터를 체크한다. (정확하게 그것은 FileHandle 과 PVOID 버퍼 파라미터를 HANDLE 한다.)


 함수가 디스크 할당량을 설정할 것으로 예상될 때 FileHandle 파라미터는 하드 드라이브 파티션의 디스크립터를 Hold 한다.


버퍼 파라미터는 새로운 할당량을 서정하기 위한 정보를 가지는 메모리 버퍼이다. 드라이버는 FileHandle의 값이 -2와 동일한 지 체크한다. 시스템의 할당량을 정확하게 변경시키기 위해 NtSetQuotaInformationFile 함수를 호출할 때 그 디스크립터는 디스크 한개와 관계되어야 한다. 일반적으로 윈도우즈 시스템 내의 디스크립터는 양수이다. 그것은 명백하게 그 값이 -2와 동일할 수 없음을 의미한다. 음의 값은 드라이버가 NtSetQuotaInformationFile 함수가 라이브러리에 의해 호출되는 것을 탐지하게 하기 위해 PlusDLL 라이브러리에 의해 값이 설정 된다. PlusDLL는 NtSetQuotaInformationFile이 호출될 때 드라이버로부터 보호받기 위해 버퍼 파라미터를 통해 네트워크 주소에 대한 정보를 전송한다. 만약 FileHandle 가 -2가 아니라면, 드라이버내의 후킹된 함수는 시스템의 오리지날 NtSetQuoataInformationFile API 함수 코드를 전달한다. 그리고 모든 작업은 감염되지 않은 시스템인척 행해진다.



64비트 버전의 윈도우는 서명되지 않은 드라이버가 작동하는 것을 허락하지 않는다. 악성 드라이버의 64비트 버전은 훔친 인증서에 의해 서명되었다. winnti 그룹이 트랙킹 해온 시간 동안 우리는 그 그룹(반드시 드라이버만을 의미하지는 않는다)에 의해 악성코드를 서명하기 위해 사용된 11개의 인증서를 발견했다.  그들 중에 10개는 게임 산업의 다양한 회사들이 속해있었다.



2.3 Launching the main function 


위의 언급한바와 같이 PlusDLL 라이브러리는 컨트롤 모듈이다.

어떻게 사이버범죄조직이 악성코드의 DLL의 메인 태스크를 수행하는 트랜잭션을 구현했는지 살펴본다. 그들은 직접적으로 적절한 함수를 호출하거나 또는 그것을 실행하기 위한 별도의 쓰레드를 생성하는 방식으로 간단하게 호출할 수 있었다.


user32.dll 라이브러리에는  SetWindowStationUser  함수 코드가 수정되고 그 함수의 최초 명령어는 jmp <addr> 가 되었다. (여기서 <addr>는 PlusDLL 라이브러리 내에 있는 악성 라이브러리의 메인 기능이 구현된 함수 주소이다. )



이것이 수정된 즉 후 SetWindowStationUser 함수 주소에서 시작하는 코드를 실행하는 쓰레드가 생성되었다. (CreateThread) 그 결과 control이 이 함수로 전달되었고 삽입된 jmp <addr> 명령어는 PlusDLL 코드로 리턴하였다.



위와 같은 방법이 두가지 더 많은 기능을 실행시키기 위해 PlusDLL 라이브러리에서 사용된다. 한 방법은 네트워크 루틴을 초기화하기 위해 사용되고 다른 방법은 종료시 악성 프로그램 종료 프로시져를 실행하기 위해 사용된다. 유일한 차이점은 SetWindowStationUser 대신 user32.dll의 두 개의 다른 함수의 코드가 수정된 것이다. (EndTask 와 WinHelpW)


이것은 PlusDLL 내의 실제 함수 주소를 숨기기 위해 처리된 것 같다. 코드는 모든 함수 호출을 보는 자동 시스템 (sandbox 샌드박스)을 사용하여 실행 로그 기반으로 분석되었다. 이 트릭을 사용할 경우 오로지 SetWindowStationUser, EndTask, WinHelpW의 함수 주소로부터 실행된 쓰레드 실행 로그만 보여줄 것이므로 이는 잠재적으로 연구자들에게 혼란을 줄 수 있다. 


또 다른 가능성은 이것이 안티 에뮬레이션 기능이라는 점이다. 아마도 일부의 안티 바이러스 상품에서 빌드된 에뮬레이터는 이러한 leaps와 싸울 수 없을 것이다. 이러한 경우 에뮬레이션은 악성코드의 기능을 실행할 시 결과가 남지 않을 것이다. 이 또한 사이버범죄조직의 목적에 적합하다. 



2.4 Target Functionality


그래서 PlusDLL 컨트롤은 무엇인가? 타겟의 기능이 다른 파일에 구현되어있다는 것을 알 수 있다. 각 파일은 특정한한 리모트 컨트롤 기능을 제공하고 시스템이 켜질 때 마다 공격자의 서버로부터 다운로드 된다. 이러한 파일은 디스크에 저장되지 않고 레지스트리 내에 메모리로 직접 로드 된다.


드라이버가 실행된 후 이러한 동작이 시작할 때 PlusDLL은 감염된 시스템의 정보를 수집한다.감염된 컴퓨터의 독특한 식별자는 하드 드라이버에 대한 정보와 네트워크 어댑터의 MAC 어드레스에 근거하여 생성된다. (예) TKVFP-XZTTL-KXFWH-RBJLF-FXWJR) 그 공격자는 주로 컴퓨터의 이름, 악성 라이브러리에 로드된 프로그램, 리모트 데스크탑 세션에 대한 정보 (세션 이름, 클라이언트 이름, 유저 이름, 세션 시간) 에 관심이 있다.


모든 이러한 데이터는 버퍼에 수집되고 압축되어 공격자의 컨트롤 서버에 전송된다. 그 버퍼는 다음과 같은 모습을 보일 것이다.



봇으로 부터 온 초기 메세지 응답에서 컨트롤 센터는 이용가능한 플로그인 리스트를 전송했다. 플러그인은 특정한 리모트 컨트롤 함수를 제공하는 DLL 라이브러리이다. 봇은 그들을 메모리 내에 다운로드하고 이 라이브러리들을 전달한다.


다른 C2 서버들은 다른 플러그인을 push할 수 있다. 전체적으로 우리는 8가지의 기능의 라이브러리들을 발견했다.


 플러그인 이름

 플러그인 목적

 CmdPlus 

 시스템 커맨드 라인에 접근을 제공

 ListFileManager 

 파일 시스템 접근을 제공(디렉토리 컨텐츠를 목록화, 파일을 조작)

 ListProc 

 실행중인 프로세스를 목록화하고 종료시킴

 ListService 

 시스템 서비스를 목록화

 PortMap 

 포트 포워딩을 사용해 트래픽을 리다이렉트시킴

 RemoteDesktop 

 감염된 머신에서 리모트 데스크탑 서비스를 가능하게함

 Socks5Client 

 SOCKS5 프록시 서버를 사용하여 네트워크를 통해 데이터를 전송하기위한 라이브러리

 TransPlus 

 공격자가 파일 전송을 가능하게 함 (감염된 머신으로 부터 파일을 받고 감염된 컴퓨터에서 프로그램을 실행시킴)



2.5 Operation of the malicious platform 



독자들도 알 수 있듯이 사이버범죄 조직은 리모트 컴퓨터를 효과적으로 제어하기 위해 악성코드 도구의 전체 목록을 사용했다. 더구나 그들은 그들의 행동을 숨기는 방법을 취해왔다.  그 플러그인은 어디에서든 컴퓨터 메모리를 제외하고 명시적으로 보이지 않는다. 그들은 하드드라이브 내에 저장되지 않는다. 그 드라이버는 실행 후에 즉시 삭제된다. 이것이 실행되 었다는 것을 가리킬 수 있는 레지스트리 내의 모든 흔적들은 제거 된다. 오로지 초기의 DLL 만이 디스크 내에 남아있다. 이것은 전체적인 프로세스를 시작시키고 DLL을 제어하는 PlusDLL의 암호화된 버전을 포함한다.


이 아키텍처의 취약한 지점중 하나는 드라이버가 실행되기 전에 하드드라이브 내에 저장되는 것이다. 안티바이러스는 이러한 파일의 생성을 탐지할 수 있다.

상황은 악성의 드라이버가 서명 될 수 있다는는 사실에 의해 더 악화된다. (사실 우리가 탐지한 모든 Winnti 샘플에 있는 드라이버는 서명되었다.) 스스로를 서명하지 않은 드라이버가 안티 바이러스를 카운터하는 것을 의미하지는 않는다. 특정 안티 바이러스는 기본적으로 서명된 프로그램을 합법이라고 여긴다. 그래서 false positive의 확률을 최소화 시킨다.


카스퍼스키 랩의 제품은 다음과 같이 위에서 설명한 악성 프로그램을 탐지한다.


초기 DLL인 winmm.dll, apphelp.dll과 PlusDll.dll, 기능적인 로드될 수 있는 모듈(CmdPlus.dl)은 Backdoor.Win32.Winnti 와 Backdoor.Win64.Winnti.로 탐지된다.


드라이버 sp1itter.sys 와 acplec.sys는 Rootkit.Win32.Winnti 또는 Rootkit.Win64.Winnti.으로 탐지된다.



2.6 Communication with the C&C Server



데이터는 봇과 C&C 서버간의 통신이 진행되는 동안 전송한다. 온라인 데이터 전송 시 이것은 명시적인 형태로 그들 자신을 드러내지않는다. 비록 그들이 압축 알고리즘을 내재한 적절한 헤더를 포함하지는 않았지만 실제의 리모트 콘트롤은 실질적인 트래픽에 의해 생성될 수 있기 때문에 사이버범죄자들은 통신 데이터를 LZMA 알고리즘 방식으로 압축한다. 


데이터는 TCP 프로토콜로 전송된다. 우리가 분석한 샘플은 C&C 서버와 포트 53, 80, 443 사이에서 연결이 성립되었다. 이 포트 선택은 놀라운 것이 아니다. 그들은 DNS, HTTP, HTTPS와 각각 관련되어 있다. 세가지 모두 모든 동작에서 일상적으로 사용된다. 그래서 그들은 방화벽 정책 내에서도 사용이 가능하다. 게다가 거대한 양의 데이터는 일반적으로 이러한 포트를 통해서 전달된다. (포트 53을 제외한) 이는 악성의 트래픽이 눈에 띄지 않는 것을 쉽게 만든다.


비록 그 포트가 특정한 프로토콜과 관련되었지만 실제 악성 프로그램에 의해 생성된 트래픽 컨텐츠가 그들과 일치하지는 않는다. 일찍이 Winnti 플랫폼 버전은 다음과 같은 트래픽 구조를 보여준다. C&C와 통신할 때 전송된 데이터의 다음의 각 블록은 매직 넘버 0xdeadface와 함께 시작한다. (블록의 해쉬 (8바이트), 압축된 데이터의 크기(DWORD), 소스 데이터의 크기(DWORD), 마지막으로 실제 압축된 데이터)



이것은 백도어의 Winnti 패밀리의 또 다른 취약점이 드러난 곳이다. 데이터 구조에 의해 악성 네트워크 트래픽은 매직넘버 0xdeadface 와 같이 쉽게 발견될 수 있다. 사이버 범죄조직은 아마도 꽤 자주 희생자 컴퓨터 제어를 잃어버렸을 것이다. 기업의 시스템 관리자가 그들의 네트워크를 청소하고 IDS/IPS 시스템의 도움을 받아 데이터 패킷 내의 특별한 헤더로 침입을 식별했기 때문이다.


2011년 새로운 버전의 Winnti 백도어가 나타났고 기존과 같은 플랫폼 기반이지만 업데이트된 프로토콜(C&C와 통신을 위해 암호화 기능을 포함하는)이 사용되었다. 그래서 전송된 데이터는 더이상 고정적인 마크를 가지지 않았다. 암호화 이전에 그 데이터는 다음의 구조를 가진다. (이전 포맷과 매유 유사하다) 최초 4바이트는 매직넘버 0xaced1984를 취하고 그 다음에 DWORD의 데이터 패킷 디스크립션을, 다음은 DWORD 값(0), 이 후  전송블록의 8바이트의 해쉬값, 압축된 데이터 크기, 소스데이터의 DWORD 사이즈의 실제 압축된 데이터가 전달된다.



그 다음 그 데이터는 C&C로 전송된 양식 내의 랜덤한 DWORD 사이즈의 값을 가지고 정규 XOR로 암호화 된다. 데이터가 암호화 되었을 때 소스 데이터 내의 최초의 4 바이트가 0xaced1984로 표현하는 것을 알기 때문에 XOR 동작을 위한 키를 복구하는 것은 쉽다. 네트워크 트래픽 내에서 그것을 획득했을 때  이것은 어떻게 상위의 데이터(XORT 값은 0x002a7b2e 이다)가 보이는 것에 대한 그림이다.



암호화 키( XOR 동작으로 난독화 된 소스 데이터의 값)는 데이터의 플래그먼트가 전송될 때마다 다르기 때문에 winnti 백도어에 속해있는 전송된 데이터를 빠르게 식별하기에 고정적인 고유한 라벨은 네트워크 트래픽내에서 더이상 발견되지 않을 것이다.


어떤 프로토콜이 사용되든 (추가적인 암호화는 관계 없이) C&C와 봇 사이의 통신의 워크 플로우는 초기의 동작 스테이지가 동일하게 유지될 것이다.


- 봇은 이 처럼 자신을 서명한 첫 번째 데이터 블록을 전송한다.


- 응답시 C&C는 이용가능한 플러그인의 리스트를 다시 전송한다.


- 봇은 각 플러그인을 다운로드 하기 위해 한 번에 하나의 요청을 전송하여 플러그인 다운로드를 시작한다.


- C&C는 용청된 플러그인을 전송한다.


- 봇은 플러그인이 도착했다는 메시지를 전송한다.


우리는 여기를 주목해야 한다. 데이터 다운로드를 신속하게 하기 위해 이러한 플랫폼을 만든 자는 프로토콜 내에 꽤나 정교한 비동기적 데이터 전송을 구현했다. 예를 들어, 봇은 첫 번째 플러그인을 받은 메시지는 거의 모든 플러그인이 봇에 전송되었을 떄 C&C에 도착할 것이다.


악성의 페이로드를 다운로드하기에 봇은 플러그인을 메모리 내에 배치하고 그들을 초기화할 것이다. 이것은 희생자의 컴퓨터 전반의 리모트 콘트롤을 완성하기 위한 모든 설정이다. 봇은 준비 모드로 바뀌고 동작시키는 자의 연결을 기다리면서 empty 메시지를 15초마다 전송하여 C&C와의 통신을 유지한다.


따로 플러그인을 제공 한 후 더이상의 자동 작업은 C&C 서버에 의해 수행되지 않는다. 감염된 컴퓨터를 조사하기 위한 모든 작업은 공격자에 의해 수동으로 처리될 것이다.



3. Real Case Investigation (Winnti 2.0)


주목해라. 다음은 공격된 익명의 회사 중 하나로부터 승인을 받아 발표된다.실제 회사이름은 "CompanyXYZ" 또는 간단하게 XYZ로 대체되었다.


2012년 11월 21일 CompanyXYZ의 보안담당자는 카스퍼스키 랩이랑 연락하고 사이버 공격 사고에 대해 보고했다. 비정상적인 행위가 서버의 하나에서 발견되었다. 직원중 한 명은 그것은 계정 내에서 생성된 서버 내의 수상한 디렉토리를 통보했다. 폴더는 기업의 지적 재산으로 간주 된 정보를 가진 대규모 아카이브 파일을 가지고 있었다. 네트워크 트래픽 내에서 소프트웨어를 모니터링하여 이상징후를 확인했다.


몇몇의 의심스러운 네트워크 연결은 여러 컴퓨터 시스템으로 부터 설립되었다. 네트워크 도메인 컨트롤러를 포함킨 결과 회사의 리소스, 신뢰되는 네트워크와는 아무런 관련이 없었다.


의심스러운 연결은 port 443과 53에 의해 설립되었다. 아래는 보고된 IP 어드레스 리스트이다.


211.60.126.164 (Seoul, South Korea)


113.196.70.169 (Taipei Taiwan)


CompanyXYZ의 보안담당자는 사이트 내에서 분석을 했고 SysInternals Process Explorer 도구를 사용하여 의심스러운 연결을 초기화 하는 프로세스를 찾을 수 있었다. 연결은 시스템 프로세스(svchost.exe)에 의해 초기화되었다. 카스커스키 랩에 의해 공유되고 만들어지는 Process Explorer을 사용하여 프로세스 전체를 덤프했다. 우리의 팀은 즉시 제공된 프로세스 덤프 내에서 악성코드 검색을 시작했다.


다음 날 또 추정컨데 또 다른 감염된 컴퓨터의 svchost.exe 덤프가 제공되었다.


우리는 188.120.246.88:80 (Russia)의 감염된 머신의 의심스러운 연결에서 발견된 IP 주소와 port를 받았다.



------------------------------------------------------------------------------------


이 후 내용은 요약한 내용입니다. 전체 내용을 보고 싶은 분은 다음의 원본 문서를 참고하세요.


http://kasperskycontenthub.com/wp-content/uploads/sites/43/vlpdfs/winnti-more-than-just-a-game-130410.pdf


------------------------------------------------------------------------------------


1) 사건 배경


XYZ 회사(가명)의 정보보호 담당자는 수상한 징후가 발견되어 svchost.exe 프로세스의 메모리를 덤프하여 카스퍼스키 랩에 분석을 요청함


 - 서버에 의심스러운 디렉토리가 생성됨

 - 폴더 내에는 대용량의 압축 파일 존재 : 회사의 지적 재산권과 관련된 파일

 - 수상한 IP와 통신됨 (대만 : 113.196.70.169, 서울 : 221-60.126.164)

 - svchost.exe와 의심스러운 연결이 이루어짐



2) 분석 1단계


메모리 덤프(svchost.exe)에서 IP를 찾아냄






ip 조사를 통하여 중국어 기반의 윈도우 서버 2003가 올라와 있음을 확인


이후 이 IP에 관련된 도메인을 조사함



메모리 덤프 조사를 통해 추가적인 도메인 발견




 service.interdriver.net 

 service.googlefiles.net 

 service.dell-support.org 

 service.hp-supports.com


위와 같은 도메인이 발견되었음



 TimeDateStamp: "2011-10-13 07:21:50"


이 정보 근처에는 PE 헤더 정보가 있었는데 타임스탬프를 확인한 결과 빌드 시간 이전 부터 공격을 준비한 사실을 알게 됨. 또한 헤더 정보를 통해 64비트로 컴파일된 사실을 알 수 있었음



그리고 감염된 시스템에서 25기가바이트의 대용량 압축 파일을 다운로드 시도 흔적을 확인함 (차단시킴)



3) 공격 패턴 인식


메모리 내에 회사의 이름이 존재하였음을 발견 -> 이 회사를 공격하기 위해 미리 준비했었다는 사실을 확인함

C&C 서버를 2단계 도메인이 아닌 3단계 도메인을 사용함 

2단계 도메인은 127.0.0.1 이나 DDNS 도메인으로 할당시킴

이 패턴은 전형적인 Winnti 공격 패턴과 일치함



4. 결론


우리의 연구는 오랜 시간 중국 범죄 그룹의 거대한 규모의 사이버 스파이 조직적 행위에 관해 발표했다. 이러한 공격은 새로운 것이 아니다. 많은 다른 보안 연구자들은 중국의 다양한 사이버 범죄 그룹에 대한 세부내용을 발표해왔다. 그러나 현재의 해킹그룹은 다른 해킹 그룹과 달리 두드러지는 특징을 가진다. 


 - 디지털 시그니처의 거대한 남용 : 공격자들은 여러 회사를 공격하고 많은 디지털 인증서를 빼앗기 위해 하나의 희생자 회사의 디지털 시그니처를 사용한다.  


 - 64비트 커널 레벨로 서명된 루트킷의 사용


 - 엄청 나게 다양한 공공 인터넷 리소스의 남용 : 암호화된 형태로 악성코드를 위한 제어 명령을 저장하기 위해 


 - 공유/판매 중인 훔친 인증서 : Uyghur과 Tbetan activist를 공격하는 오브젝트를 가진 그룹을 위해 (이해가 안감)


 - 스파이 게임 산업에서의 훔쳐진 소스 코드와 다른 소프트웨어 개발자의 지적 자산


Winnti 해킹 그룹은 최초도 아니고 마지막도 아니다. 모두에게 이용가능한 우리의 연구 발표자료를 만듬으로써 전세계의 모든 종류의 조직 내에서 가해자의 도구와 전술을 알게 되어 우리는 이것이 보안 연구자들에게 지식을 퍼뜨리고 시스템 관리자와 보안 공무원에게 도움을 주길 희망한다. 우리의 공유된 지식이 IT 사회 기반 시설을 보호하는데 도움이 되길 희망한다. 우리는 우리의 메시지가 중국의 법집행 에이전시에게 도달하길 희망한다. 만약 현재의 연구가 범죄 조사에 충분하지 않으면 우리는 이것이 외국 나라와 중국의 비지니스에게 도달한 것으로 부터 어떠한 체크리스트의 최소 체크 항목이 되고 다른 악성활동을 예방하는데 쓰이길 희망한다.