안랩 온라인 보안 매거진 -...

32
Next - Generation MSS 2013. 4 안랩 온라인 보안 매거진

Upload: others

Post on 26-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

Next - Generation MSS

2013. 4

안랩 온라인 보안 매거진

2

3

8

1 4

1 6

2 6

2 8

3 0

월간 2013. 4

C O N T E N T S

S P E C I A L R E P O R T

차세대 원격 보안 관제

APT 대응, 전문가에게 맡겨라!

T H R E AT A N A LY S I S

3.20 APT 공격 관련 부팅 장애 타입별 악성코드 상세 분석

P R O D U C T I S S U E

AOS, 인터넷 뱅킹 인증부터 해킹 방지까지

T E C H R E P O R T

안드로이드 포렌식(2)

‘디지털’ 증거의 ‘물리적’ 수집

A H N L A B ' S PA R T N E R

(주)비츠코리아

도전정신의 꽃을 피우다

A H N L A B N E W S

안랩, 글로벌 어워즈서 2관왕 쾌거

APT 대응 기술 특허 ‘주목’

스마트폰 보안 기술 특허 2종 획득

S TAT I S T I C S

2013년 2월 보안 통계 및 이슈

3

안랩이 2013년 1월에 출시한 차세대 원격관제 서비스에 업계의 이목이 집중되고 있다. 특정 기업이나 기관을 노린 고도화된 지능형

타깃 위협, APT(Advanced Persistent Threat)가 잇달아 발생하고 있기 때문이다. 안랩의 차세대 원격관제 서비스는 일반적인 원격

관제가 갖는 탐지•대응의 기술적 한계를 극복함으로써 APT 공격과 같은 지능화된 공격에 대해 신속한 대응이 가능하다. 네트워크

보안부터 서버, 엔드포인트까지 모니터링 범위를 확대한 안랩의 차세대 원격관제 서비스의 등장 배경부터 차별점까지 면밀하게 살펴

본다.

S P E C I A L R E P O R T

안랩 차세대 원격관제 서비스 본격화

APT 대응, 전문가에게 맡겨라!

고도화된 지능형 타깃 위협 APT란 공격자가 기업이나 조직 등 특정 대상을 노리고 취약한 시스템을 이용해 침투한 후 장기간에 걸쳐 다양한 공

격 기법을 활용해 피해자 몰래 주요 정보를 유출하고, 시스템을 무력화하는 공격을 일컫는다. [표 1]은 최근 몇 년 간 전세계 보안의 화두로 등장

한 APT의 대표적인 국내•외 사례다.

차세대 원격관제 서비스

발생 시기 공격 대상 공격 내용

해 외

2008 년RBS 월드페이

해킹

- 영국 RBS은행 시스템을 해킹하여 복제카드 생성

- 공격 흔적을 은폐하기 위해 시스템 데이터를 파괴

2010 년 1 월오퍼레이션

오로라

- 2009년 6월부터 6개월 간 구글, 다우케미칼, 모건스탠리 등의 회사를 대상으로 소프트웨어

소스코드와 같은 중요 데이터 탈취 목적

- IE 제로데이 취약점(MS10-002) 및 사회공학기법 이용

2010 년 9 월이란 원전 공격

(Stuxnet)

- 지멘스의 산업 자동화 제어시스템인 스카다(SCADA)시스템 악성코드

- 이동식 디스크(USB)를 통해 폐쇄망인 스카다 시스템에 악성코드 유포

- 4개의 제로데이 취약점을 이용하여 장기간에 걸쳐 시스템에 침투

2011 년 2 월글로벌 에너지 기업 해킹

(Night Dragon)

- 2009년 11월부터 최소 1년 이상 카자흐스탄, 그리스, 대만, 미국에 위치한 글로벌 에너지

기업을 대상으로 조직적인 공격 진행

- 공개된 웹 서버 해킹을 통한 악성코드 유포, 사회공학기법을 이용해 타깃 기업의 임직원들에게

악성코드 배포

- 감염된 내부 시스템을 통해 중요 시스템의 사용자 계정 및 비밀번호를 탈취해 기밀 문건, 중요

정보 탈취

2011 년 3 월 EMC/RSA

- 어도비 플래시 플레이어의 제로데이 취약점을 이용한 악성코드 제작

- 사회공학기법으로 EMC/RSA 직원에게 악성코드 유포 및 내부 시스템 침투

- 해커가 내부 직원의 PC를 원격에서 제어하면서 정보 수집

- 중요 정보를 확보하고, 정보를 암호화한 후 FTP를 이용해 외부로 유출

2011 년 3 월 G20 파일 공격- 프랑스 정부를 대상으로 G20 관련 정보가 담긴 파일을 공격

- 150명 이상의 외교관 PC에 공격 피해 발생 추정

4

IT분야 전문 리서치 기관 가트너(Gartner)에서는 APT 공격을 [그림 1]과 같이 정의하고 있다.

[표 1] 국내•외 주요 APT 사례

해 외

2011 년 3 월유럽연합 위원회

서버 공격

- 벨기에 브뤼셀 EU 위원회 서버

- 피해는 공개되지 않음

2011 년 4 월소니 PSN

해킹

- 플레이스테이션 네트워크(PSN) & 큐리오 시티 해킹

- 7700만 건의 회원 개인정보 유출

2011 년 4 월 오크리지 연구소 해킹

- 미국 에너지부 산하의 국립 오크리지 연구소의 기술 데이터 1G 유출

- 사회공학기법의 일종인 스피어 피싱을 통해 악성코드 유포

- 감염된 내부 PC 2대를 통해 1주일 간의 잠복기를 거쳐 원격 서버에서 데이터를 수집 및 전송

2011 년 4 월 엡실론 이메일 침해- 미국 마케팅 기업 엡실론의 고객 명단 및 이메일 주소 등 고객사 라이브 전자 메일 주소

수백만 개 유출

2012 년 2 월 Bit9 해킹 - Bit9 서명 인증서를 도용해 고객 네트워크에 악성코드 삽입

2012 년 2 월뉴욕타임즈

해킹

- 사회공학기법의 일종인 스피어 피싱을 통해 악성코드 유포

- 모든 뉴욕타임즈 임직원의 이메일 비밀번호 탈취

- 중국 원자바오 총리의 부정부패에 대한 기사 보도 후 공격 발생

2011 년 4 월H 금융사

개인정보 유출

- 해커 그룹이 퇴사자의 관리자 계정 및 비밀번호 획득

- 보조 서버인 광고 메일 발송 서버, 정비 내역 조회 서버에 침입해 화면 복사 프로그램과 해킹

프로그램을 통해 175만 명의 고객 정보 유출

2011 년 7 월N 포털

개인정보 유출

- 유틸리티 소프트웨어 취약점을 이용한 악성코드 유포

- 내부 PC 감염을 통해 DB관리자 권한 획득

- 3500만 명의 고객 정보 유출

2011 년 11 월N 게임사

개인정보 유출

- 게임 서비스 백업 서버 해킹

- 1322만 명의 회원 이름과 아이디, 주민등록번호, 비밀번호 등 유출

[그림 1] 가트너의 APT 정의

5

가트너의 정의에서 알 수 있는 APT의 키워드는 ▲사회공학적 기법 ▲명확한 타깃(공격 목표) 설정 ▲제로데이 공격(Zero-Day Exploit) ▲보안 솔

루션 우회 등이다. 이를 중심으로 전통적인 보안 위협과 APT로 대표되는 최근의 고도화된 보안 위협의 차이를 살펴보면 [표 2]와 같다.

[표 2] 전통적인 보안 위협과 고도화된 보안 위협의 특징 비교

전통적인 보안 위협 고도화된 보안 위협

악성코드 단일한 악성코드모듈화된 악성코드

부가 기능 업데이트

피해 발생 감염 PC에 국한된 피해장기간에 걸친 은닉

2차 전이 공격

공격 대상 불특정 다수 특정 대상

일반적인 보안 관제 서비스의 APT 대응 한계

보안 위협의 진화에 발맞춰 보안 관제 서비스 또한 발전을 거듭하며 기업의 정보 자산을 효과적으로 보호해왔다. 그러나 최근 몇 년 사이의 위

협 동향은 지금까지와 비교하기 어려울 만큼 지능화, 고도화됨에 따라 기존의 원격 보안 관제 서비스로는 이를 탐지하고 대응하는 데 한계가 나

타나기 시작했다.

1. 네트워크 레이어 중심의 관제

일반적으로 원격 보안 관제는 네트워크 보안 장비에 대한 서비스를 제공하는 형태다. 대부분의 네트워크 보안 장비는 네트워크의 상단, 즉 백본

(back-bone)에 설치되어 보안 장비에서 발생하는 알려진 이벤트에 대한 탐지 및 대응을 수행한다. 이는 곧, 네트워크 내부에서 발생하거나 백

본을 통하지 않는 통신에 대해서는 탐지가 어렵다는 것을 의미한다.

그러나 APT와 같은 최근의 보안 위협은 외부에서 네트워크를 직접 공격하기 보다는 사회공학적 기법을 이용해 내부 사용자를 통해 공격을 진행

하는 경우가 대부분이다. 따라서 네트워크 레이어 중심의 기존 원격 보안 관제로는 이에 대한 탐지 및 대응이 어렵다.

2. 대응 범위의 한계

원격 보안 관제의 주요 목적은 보안 장비에 대한 전문적인 탐지 및 대응이다. 내부 시스템 및 클라이언트는 대응의 범위에 포함되지 않는다. 따

라서 외부에서의 공격을 탐지하고 방어하더라도 내부 시스템에서 악성코드를 격리하는 등의 대응을 수행하기가 어려울 뿐만 아니라 시스템이

나 사용자에 어떠한 영향이 발생했는지 파악하는 것도 쉽지 않다. 일반적인 원격 보안 관제 서비스는 고객사 보안 관리자에게 상황을 보고하고

조치를 권고하는 역할을 수행한다.

3. 대량의 이벤트 로그

모든 보안 관제 시스템은 대량의 보안 로그를 처리하도록 설계 및 구축된다. 그러나 최근에는 고도화된 위협 분석을 위해 기존에는 수집하지 않

았던 정보들까지 수집해야만 한다. 또한 다양한 보안 장비가 추가 도입되면서 관제 시스템이 처리해야 하는 보안 로그가 막대한 양으로 증가하

게 되었다. 기존의 관계형 데이터베이스로는 응답 속도를 보장하기 어려울 정도로 대용량 로그가 발생하는 환경으로 변화한 것이다.

4. 복잡한 구성으로 인한 탐지 대상 증가

얼마 전까지 대부분의 보안 장비는 네트워크 구간에서 ‘방화벽 – DDoS 대응 장비 – IDS/IPS – 웹방화벽’과 같은 형태로 구성됐다. 이들 장비의

가용성을 보장하기 위해 이중화(HA)로 구성하기도 했다. 그러나 공격의 형태와 유입 경로가 다각화됨에 따라 보안 장비 및 솔루션, 서비스 또한

다양화되면서 탐지하고 관리해야 하는 대상이 늘어나고 있다. 특히 보안 장비의 위치도 네트워크 구간에서 시스템 내부까지 확대되면서 구간 별

탐지 대상이 증가하고 있다. 따라서 기존의 원격 보안 관제 프레임워크로는 더 이상 이 같은 다양한 구성과 장비, 솔루션을 감당하기 어려운 상

황에 이르렀다.

안랩 차세대 관제 서비스

APT를 비롯한 최근의 고도화된 위협에 대응하기 위해서는 기존의 원격관제에 다차원적인 관제 기법이 추가적으로 적용돼야만 한다. 안랩은 다

양한 연구를 거쳐 지난 2013년 1월, 다차원적인 관제 기법을 추가 도입한 ‘차세대 보안 관제 서비스’를 선보였다. 안랩의 차세대 원격 보안 관제

서비스는 ▲악성코드 다운로드 모니터링 ▲시스템 정보 수집 ▲패킷 모니터링 ▲플로우(flow) 분석 등에 대해 중점적으로 연구한 결과를 토대

로 고도화된 위협에 대응하기 위한 더욱 강력한 보안 체계를 제공한다.

1. 악성코드 다운로드 모니터링

지금까지 알려진 모든 APT 사례에는 알려진 악성코드와 함께 제로데이 악성코드, 즉 알려지지 않은 악성코드가 사용됐다. 안랩은 클라우드 기

반의 악성코드 분석 시스템 ASD(AhnLab Smart Defense)를 이용해 실시간으로 악성코드를 모니터링하고 있으며 7억 개에 달하는 파일 데이

터베이스를 보유하고 있다. 이를 기반으로 한 안랩의 관제 서비스는 외부에서 유입되는 악성코드뿐만 아니라 기업 내부에서 전파되는 악성코드

도 모니터링이 가능하다.

2. 시스템 정보 수집

일반적인 원격 보안 관제는 악성코드나 그 외 공격 기법에 의해 시스템 내부에서 파일, 프로세스, 계정 등이 생성될 경우 이를 탐지할 수 있는

방법이 마땅치 않다. 안랩은 기존 보안 관제의 장점인 프로세스는 유지하면서 시스템에서 발생하는 이벤트도 수집해 탐지 및 대응하는 전용 에

이전트를 설치할 예정이다.

3. 패킷 모니터링

관제를 통한 탐지 내역에 대한 상세 분석을 수행하기 위해 네트워크 패킷을 수집하고 이벤트에 대한 원시 패킷(RAW Packet)을 분석한다. 이로

써 탐지 내역의 상세 분석뿐만 아니라 보안 장비가 탐지하기 어려운 부분에 대해서도 상당한 보완이 가능할 것으로 전망된다.

4. 플로우 분석

SNMP(Simple Network Management Protocol)를 이용한 트래픽 모니터링 툴 MRTG(Multi Router Traffic Grapher)의 경우, 해당 장비의 포

트 별 IN/OUT 트래픽에 대해서는 모니터링이 가능하지만 개별 IP의 트래픽에 대해서는 확인하기가 쉽지 않다. 넷플로우(NetFlow) 기법을 이용

하더라도 부분적으로만 확인이 가능하다. 이와 관련해 안랩은 IP 별 세션 및 트래픽을 탐지 및 대응하는 시스템을 구축했다. 이를 통해 이벤트가

발생한 IP에 대해 세션을 재구성하거나 사용된 트래픽을 확인함으로써 대량의 데이터가 이동했는지 등을 확인할 수 있다.

안랩 관제 서비스의 APT 대응은 다르다!

안랩은 APT의 과정을 ▲공격 시도 ▲공격 성공 ▲확산 ▲정보 유출 등 4단계로 구분하고 있다.

1. 공격 시도: 외부에서 공격자가 내부 사용자를 대상으로 사회공학기법 등 다양한 방법을 이용해 공격을 시도하는 단계

2. 공격 성공: 외부의 공격자가 내부 사용자나 시스템을 확보함으로써 1차적으로 내부 침투에 성공한 단계

3. 확산: 공격자가 성공 단계에서 확보한 사용자 권한이나 시스템을 이용하여 내부의 다른 시스템, 특히 관리자 시스템이나 DB 시스템 등 주요

시스템을 찾는 동시에 악성코드를 전파하는 단계

4. 정보 유출: 내부 주요 시스템을 확보하여 목표했던 주요 정보를 외부로 유출하는 단계

이러한 구분을 토대로 안랩은 다양한 APT 시나리오를 구성했다. 각각의 시나리오는 개별적으로 운영되기도 하고 시나리오 간의 연결을 통해 새

로운 시나리오 구성하기도 한다. 안랩은 이러한 시나리오를 토대로 APT를 비롯해 진화하는 공격에 효과적으로 대응할 수 있는 시스템을 구축

했다. 또한 시나리오에 새로운 공격 기법을 지속적으로 반영 및 보완함으로써 향후 발생하는 더욱 진화된 공격 기법을 탐지 및 대응하는 역량을

강화해나간다는 전략이다.

[그림 2] 안랩의 APT 대응 관제 시나리오 예시

6

또한 안랩의 차세대 원격관제 시스템은 기존의 원격관제 시스템과 함께 [그림 3]과 같이 새로운 프레임워크와의 병렬 구조로 운영되어 고도화된

위협에 대한 다차원적인 대응을 구현한다.

7

[그림 4] 차세대 원격 보안 관제의 차별점

일반적인 원격관제와 안랩의 차세대 원격관제의 차이를 요약한다면, 차세대 원격관제는 네트워크 보안뿐만 아니라 서버와 엔드포인트 PC의 패

킷, 트래픽, 악성코드까지 모니터링한다는 것이다. 기존 원격관제에 비해 모니터링하는 범위가 확대됐으며 탐지 및 분석 기술도 진일보했다. 이

로써 지능적인 탐지 우회 기법이나 알려지지 않은 공격, APT 공격까지 원격에서 모니터링하고 신속하게 대응이 가능하다. 1999년 국내 최초로

보안 관제 서비스를 시작한 안랩은 원격관제 분야에서 새로운 패러다임을 제시함으로써 서비스의 질적 향상을 도모하고 고객들에게 차별적인

가치를 제공하고 있다.

[그림 3] 안랩 차세대 관제 시스템 프레임워크

8

주요 방송사 및 금융 기관을 대상으로 발생한 3•20 APT 공격은 하드디스크 파괴 및 시스템 부팅 장애에 따른 전산망 마비라는 초유의 사태를

야기했다. 안랩은 사건 발생 즉시, 자사 시큐리티대응센터(AhnLab Security Emergency response Center, 이하 ASEC)를 중심으로 즉각적인

대응 체제에 돌입, 전산망 마비의 원인인 악성코드의 실체 파악에 나섰다.

ASEC 분석 결과, 3•20 APT 공격과 관련된 부팅 장애는 악성코드의 종류 및 구조 등을 기준으로 크게 4가지 타입으로 구분이 가능하다. 다음은

부팅 장애 타입별 악성코드를 상세하게 분석한 내용이다.

3•20 APT 공격의 부팅 장애 타입별 악성코드 구성도

HDD 파괴 등 피해 결과는 유사, 이용된 악성코드는 각기 달라

2013년 3월 20일 오후 2시 경, 주요 방송사들의 사내 PC들이 동시에 다운되더니 재부팅이 되지 않는 사태가 벌어졌다.

같은 시각, 일부 금융 기관에서도 직원들의 PC에서 파일이 삭제되는 현상이 나타나는 등 전산 장애가 발생했다.

분석 결과, 악성코드에 의해 부팅 관련 영역인 MBR(Master Boot Record)이 파괴된 것이었다. 그러나 하드디스크 파괴 및 부팅 장애

를 유발한 악성코드의 종류와 구조, 동작 방식은 피해 기업별로 각기 달랐다. 타깃에 따라 치밀한 준비를 한 공격임을 짐작케 하는 대

목이다.

3 • 20 APT T H R E A T A N A L Y S I S

3•20 APT 공격 관련 부팅 장애

타입별 악성코드 상세 분석

[그림 1] 부팅 장애 타입별 악성코드 구조도

9

‘PRINCIPES’라는 문자열을 반복하여 덮어씀으로써 논리 드라이브를

파괴한다. 이 쓰레기 데이터는 약 5.3MB 간격으로 100KB씩 덮어쓰

며, 각 논리 드라이브마다 스레드를 생성하여 파괴한다.

■ 메이저 버전 6인 경우(Windows 7, Windows VISTA 등)

- 물리 디스크 파괴

위의 메이저 버전 5의 경우와 동일한 증상이 발생한다.

- 모든 논리 드라이브의 파일 내용을 삭제

모든 논리 드라이브의 파일 내용을 ‘PRINCPES’ 문자열로 반복하

여 덮어써서 원본 파일 내용을 제거한 다음, 모든 파일을 DeleteFile

API로 삭제하고 모든 디렉토리를 RemoveDirectoryA API로 삭

제한다. D:\부터 차례대로 드라이브의 파일 시스템을 제거한 뒤,

마지막으로 C:\에서 파일 시스템을 제거한다. 그러나 C:\의

%SystemDirectory%, %ProgramData%, %ProgramFiles% 등 세

경로의 파일은 제거하지 않는다.

5. 논리 드라이브 파괴 후 시스템을 재부팅한다.

[그림 3] 물리 디스크 관련 명령

[그림 4] 디스크를 덮어쓰기 위한 문자열 PRINCPES 조합

[그림 5] PRINCPES 문자열로 덮어쓴 MBR 영역

[그림 6] PRINCPES 문자열로 덮어쓴 VBR 영역

A 타입: AgentBase.exe

[그림 2] 파일매핑 오브젝트를 이용한 동기화

A 타입의 부팅 장애와 관련해 이용된 악성코드는 AgentBase.exe 파

일로, 다음과 같은 동작을 수행한다.

1. 파일매핑 오브젝트로 동기화하여 하나의 프로세스만 실행되도록

한다.

‘JO840112-CRAS8468-11150923-PCI8273V’라는 이름의 파일매핑

오브젝트(FileMapping Object)의 존재 여부를 확인하여 단 한 개의

프로세스만 실행되도록 한다.

2. 특정 파일 존재 여부에 따라 하드디스크 파괴 여부를 결정한다.

분석 과정에서 ‘%SystemDirectory%\TEMP\~v3.log’라는 이름의 파

일 존재 여부를 확인하는 코드가 확인되었으나 해당 파일은 수집되지

않았다. 이 파일은 실제 제품에서 사용하는 파일과는 무관하다.

3. 보안 소프트웨어(Anti-Virus)의 프로그램 프로세스를 강제 종료한다.

WinExeC API로 아래와 같은 Taskkill 명령을 호출하여 보안 소프트웨

어 프로그램의 프로세스를 종료시킨다.

Taskkill /F /IM pasvc.exe

Taskkill /F /IM clisvc.exe

4. 윈도우 버전에 따라 각각 아래와 같은 하드디스크 파괴 스레드

(Thread)를 구동한다.

■ 메이저 버전 5인 경우(Windows XP, Windows 2003 Server 등)

- 물리 디스크의 MBR(Master Boot Record)과 VBR(Volume Boot

Record) 등을 쓰레기 데이터로 덮어쓴다.

- 최대 10개까지 물리 디스크(\\PHYSICALDRIVE0 ~ \\PHYSI

CALDRIVE9)를 열어 각 물리 디스크의 MBR과 VBR을 ‘PRINCPES’

이라는 문자열을 반복하여 덮어쓴다. 확장 파티션을 사용하고 있는

시스템의 경우, 각 파티션의 VBR까지 파괴한다([그림 3], [그림 4],

[그림 5], [그림 6]).

- 쓰레기 데이터를 덮어써서 논리 드라이브를 파괴한다.

B:\부터 Z:\ 까지 모든 논리 드라이브 중에서 드라이브 타입이

DRIVE_REMOVABLE 또는 DRIVE_FIXED인 드라이브의 데이터에

10

논리 드라이브 파괴를 시작한 뒤 5분이 지나면 ‘Shutdown –r –t 0’ 커

맨드 라인(Command Line)을 실행하여 시스템을 재부팅한다. 그러나

앞서 하드디스크가 파괴된 상태이므로 시스템은 재부팅 되지 않는다.

[그림 7] 즉시 시스템을 재부팅하기 위해 Shutdown –r –t 0 실행

[그림 8] ~TEMP₩~v3.log 파일 존재 여부 확인

B 타입: ApcRunCmd.exe, AgentBase.exe, ~pr1.tmp

B 타입의 부팅 장애를 유발한 악성코드는 드롭퍼인 ApcRunCmd.exe

파일과 윈도우 시스템의 하드디스크를 파괴하는 AgentBase.exe 파

일, Unix 계열의 OS에서 파일 시스템을 파괴하는 ~pr1.tmp 파일 등

으로 구성되어 있다. 앞서 설명한 AgentBase.exe 파일을 제외한 B

타입의 주요 파일을 살펴본다.

ApcRunCmd.exe

1. 드롭퍼인 ApcRunCmd.exe 파일은 %Temp% 폴더에 다음의 파일

을 생성한다.

● AgentBase.exe: MBR을 파괴하는 파일

● alg.exe: UPX로 패킹된 형태로, SSH 명령을 사용하기 위한 PuTTY

plink 프로그램

● conime.exe: UPX로 패킹된 형태로, SCP 연결을 위한 PuTTY

pscp 프로그램

● ~pr1.tmp: UNIX 계열 시스템의 디스크를 파괴하는 스크립트

2. AgentBase.exe를 실행한다.

%Temp% 폴더에 ~TEMP\~v3.log 파일이 존재하지 않으면,

%Temp% 폴더에 생성한 AgentBase.exe 파일을 실행하여 MBR 및

디스크를 파괴한다.

① 운영체제 버전에 따라 각각 다음 경로에서 환경설정 파일의 존재

여부를 확인한다.

■ 메이저 버전 5인 경우(Windows XP, Windows 2003 Server 등)

C:\Documents and settings\Administrator\Local Settings\

Application Data\Felix_Deimel\mRemote\confCons.xml

■ 메이저 버전 6인 경우(Windows 7, Windows VISTA 등)

C:\Users\AppData\Local\Felix_Deimel\mRemote\confCons.

xml

② 환경설정 파일이 존재할 경우 다음과 같은 문자열에 해당하는 내

용을 추출한다.

Username="root"

Protocol="SSH"

Password=

Hostname

Descr

Panel

Port

Password

3. 원격관리 툴의 환경설정 파일 정보를 획득하여 원격접속을 실행한다.

(1) 원격접속 관리 툴 mRemote 존재 여부 확인

③ 스레드를 생성한 후, 획득한 문자열을 조합한 다음의 명령을 실행한다.

SCP(Secure Copy)의 Putty 버전인 pscp를 이용해 - batch 옵션으로

대화형 프롬프트가 나타나지 않도록 한다. 이 상태에서 루트 계정으

로 아래와 같이 ~pr1.tmp를 호스트의 /tmp/cups에 복사한다. ~pr1.

tmp는 유닉스/리눅스 시스템의 디스크 파괴와 관련된 파일로, 상세

한 내용은 별도로 설명한다.

[그림 9] 스레드 생성 후 명령 실행

Putty의 커맨드(Command) 버전인 plink를 –batch 옵션을 통해 대

화형 프롬프트가 나타나지 않도록 한 후 루트 계정으로 호스트의 /

tmp/cups에 실행권한을 주고, /tmp/cups를 실행한다.

%Temp%\conime.exe -batch -P [port] -l root -pw [passwd]

%Temp%\~pr1.tmp [host]:/tmp/cups

%Temp%\alg.exe -batch -P [port] -l root -pw [passwd] [host]

"chmod 755 /tmp/cups;/tmp/cups"

공격자는 커맨드에서 SSH와 SCP를 이용하기 위해 드롭퍼에 plink와

pscp를 포함시킨 것으로 보인다.

(2) 원격접속 관리 툴 SecureCRT 존재 여부 확인

① 운영체제 버전에 따라 각각 다음 경로에서 환경설정 파일의 존재

11

여부를 확인한다.

■ 메이저 버전 5인 경우(Windows XP, Windows 2003 Server 등)

C:\Documents and settings\Administrator\Application Data\

VanDyke\Config\Sessions\*.ini

■ 메이저 버전 6인 경우(Windows 7, Windows VISTA 등)

C:\Users\AppData\Roaming\VanDyke\Config\Sessions\*.ini

② 환경설정 파일이 존재할 경우 다음과 같은 문자열에 해당하는 내

용을 추출한다.

③ 스레드를 생성한 후, 획득한 문자열을 조합한 다음의 명령을 실행한다.

~pr1.tmp

~pr1.tmp 파일은 Unix 계열 OS의 파일 시스템을 파괴하기 위한

BASH Shell 파일로, AIX Unix, HP Unix, Solaris, Linux 등의 시스템

대상으로 다음과 같은 공격을 수행한다.

● AIX Unix: DD 명령어를 이용해 디스크의 10MB 마다 NULL로 덮

어쓴다.

● HP Unix: DD 명령어를 이용해 디스크의 8MB 마다 NULL로 덮어

쓴다.

● Solaris: rm 명령어를 이용해 /kernel, /usr/adm, /etc, /home, /

(Root) 폴더를 차례로 삭제한 후, DD 명령어를 이용해 디스크의

80MB 마다 NULL로 덮어쓴다.

● Linux: rm 명령어를 이용해 /kernel, /usr, /etc, /home 폴더를 차

례로 삭제한다.

C 타입: kv _d[1].tmp, OthDown.exe, vmsinit.ini, mb_join[1].gif

S:"Protocol Name"=SSH

S:"Username"=root

D:"Session Password Saved"=00000001

S:"Hostname"=

S:"Password"=

D:"[SSH2] Port"=

%Temp%\conime.exe -batch -P [port] -l root -pw [passwd]

%Temp%\~pr1.tmp [host]:/tmp/cups

%Temp%\alg.exe -batch -P [port] -l root -pw [passwd] [host]

"chmod 755 /tmp/cups;/tmp/cups"

C 타입의 부팅 장애 유발 악성코드는 드롭퍼인 kv _d[1].tmp 파일과

AgentBase.exe(A 타입) OthDown.exe(C 타입)

하드디스크 파괴 여부

결정 관련

• ~TEMP\~v3.log 파일의

존재 여부 확인• 이에 따라 하드디스크 파괴

여부를 결정하는 기능 존재

-

하드디스크 파괴를 위

해 덮어쓰는 문자열PRINCPESHASTATI

HASTATI

하드디스크 파괴를 수행하는 OthDown.exe 파일, 하드디스크 파괴

변종인 mb_join[1].gif 파일, 환경설정을 위한 vmsinit.ini 파일 등으

로 구성되어 있다.

kv _d[1].tmp

1. 보안 소프트웨어를 강제 종료한다.

아래의 명령을 실행하여 사용자 몰래 보안 소프트웨어 프로그램의 프

로세스를 종료시킨다.

● taskkill /F /IM vrfwsvc.exe● taskkill /F /IM vrptsvc.exe● taskkill /F /IM vrscan.exe● taskkill /F /IM hpcsvc.exe● taskkill /F /IM hsvcmod.exe● taskkill /F /IM vrfwsock.exe● taskkill /F /IM vrmonnt.exe● taskkill /F /IM vrrepair.exe● taskkill /F /IM vrmonsvc.exe

2. 보안 소프트웨어 관련 파일을 삭제한다.

C 타입의 피해 기업이 이용 중인 보안 소프트웨어와 관련된 아래의

파일들을 삭제한다.

3. 아래와 같이 레지스트리를 설정한다.

4. 파일을 생성한다.

드롭퍼 내부에 압축 파일 형태로 존재하는 OthDown.exe와 vmsinit.

ini를 아래의 경로에 생성한다.

● OthDown.exe : MBR을 파괴하는 파일

%ProgramFiles%\Hxxxx\SiteServer\vismsupdate\vms1014.zip● vmsinit.ini : 환경설정 파일

%ProgramFiles%\Hxxxx\SiteServer\vismsupdate\update.zip

OthDown.exe

OthDown.exe는 시스템의 하드디스크를 파괴하는 파일로, A 타입의

AgentBase.exe와 동일한 기능을 수행하는 반면, [표 1]과 같은 차이

를 보인다.

%ProgramFiles%\Hxxxx\SiteClient\VrDown.exe

%ProgramFiles%\Hxxxx\SiteServer\VrPatch.exe

%ProgramFiles%\Hxxxx\SiteServer\ptUpdate.exe

%ProgramFiles%\Hxxxx\SiteServer\vismsupdate\update.zip

%ProgramFiles%\Hxxxx\SiteServer\vismsupdate\vms1014.zip

HKLM\Software\VMS\3.0\SiteServer\General\CenterServer

"hahaha"

HKLM\Software\VMS\3.0\SiteServer\CfgInfo\ISMS

"56be65cd"

12

vmsinit.ini

vmsinit.ini는 환경설정 파일로, 아래와 같이 vms1014.zip 파일을 다

운받아 OthDown.exe를 생성한다.

mb_join[1].gif

mb_join[1].gif는 하드디스크 파괴 샘플의 또 다른 변종 파일로, 앞서

설명한 AgentBase.exe와 달리 [그림 10]과 같이 PRINCPES 문자열

에 ‘I’ 대신 ‘!’ 문자를 사용하고 있다.

MBR 파괴 실행

시점즉시 실행

2013년 03월 20일 14시 이후에

MBR 파괴

[표 1] A 타입과 C 타입의 하드디스크 파괴 파일 비교

[1014]

FileDescription=

LinkFileName=None

FileVersion=3.5.0.9

RealFileName=OthDown.exe

RealFileSize=24576

DownFileName=vms1014.zip

DownFileSize=7282

UpdateDate=2010/10/14 23:00

FileDirectory=%InstallDir%

Language=Korean

AgentBase.exe(A 타입) mb_join[1].gif(B 타입)

하드디스크

파괴를 위해

덮어 쓰는 문자열

PRINCPESHASTATI

PR!NCPESHASTATI

[표 2] 하드디스크 파괴 변종 파일의 차이점

[그림 10] 문자열 변형 PR!NCPES

D 타입: Update.exe, schsvcsc.dll, schsvcsc.exe

D 타입에 사용된 악성코드는 드롭퍼인 Update.exe, 하드디스크 파괴

와 관련된 schsvcsc.dll, 그 외 schsvcsc.exe 등으로 구성되어 있다.

[그림 11]은 D 타입의 특징적인 파일 흐름을 설명한 것이다. Update.

exe가 System32 폴더에 schsvcsc.exe와 schsvcsc.dll 등 두 개의 파

일을 생성하고 schsvcsc.exe를 실행하면, schsvcsc.exe는 Lsass.exe

프로세스에 schsvcsc.dll을 삽입(injection)한다. 삽입된 schsvcsc.dll

은 힙(Heap)을 할당 받은 후, 자체에 인코딩되어 있는 코드를 디코딩

하여 힙에 생성해 스레드로 구동한다. 이때 구동되는 스레드가 하드디

스크를 파괴한다.

[그림 11] D 타입의 파일 상세 흐름도

[그림 12] 레지스트리 셸(Shell) 값

Update.exe

1. schsvcsc.exe가 자동 실행되도록 한다.

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\

Winlogon 경로의 레지스트리에 셸(Shell) 값을 explorer.exe,

schsvcsc.exe로 등록함으로써 schsvcsc.exe를 자동 실행한다.

2. schsvcsc.exe와 schsvcsc.dll을 생성한다.

Windows System32 폴더에 schsvcsc.exe와 schsvcsc.dll이라는 이

름의 파일을 생성한다. 이때, 이들 두 파일의 파일 생성 시간 정보를

Kernel32.dll의 시간 정보와 동일하게 설정한다.

3. 생성한 schsvcsc.exe를 실행한다.

앞서 생성한 schsvcsc.exe 파일을 실행한다.

4. 드롭퍼인 Update.exe는 악성코드가 동작할 수 있는 환경을 마련

한 후 스스로를 삭제한다. ‘%Cmd.exe% del /q update.exe’ 명령으

로 ShellExecuteA 함수를 호출해 자기 자신을 삭제하며, 이때 Cmd.

exe의 경로는 ComSpec 환경 변수를 통해 확보한다.

schsvcsc.exe

1. SeDebugPrivilege 권한을 조정한다.

schsvcsc.exe는 DLL 인젝션을 하기 위해 SeDebugPrivilege 권한을

조정한다.

2. Lsass.exe에 schsvcsc.dll 모듈을 인젝션한다.

Lsass.exe 프로세스를 찾아 schsvcsc.dll 모듈을 인젝션한다. 인젝

션 방법은 메모리를 할당하여 schsvcsc.dll이라는 문자열을 쓰고,

이 문자열을 인자로 하여 LoadLibraryW API를 시작 주소로 설정해

CreateRemoteThread를 호출하는 방식을 이용했다.

13

schsvcsc.dll

1. 자체에 인코딩되어 있는 하드디스크 파괴 코드를 디코딩한다.

인코딩(XOR 0x55) 되어 있는 하드디스크 파괴 코드를 디코딩하여

코드 사이즈만큼 할당 받은 메모리에 코드를 쓴다. 이 코드는 RVA

0xAC50부터 0x1171까지 위치한다.

2. 특정 날짜와 시간이 지나면 실행된다.

GetLocalTime API를 이용하여 현재 시간을 확인한 후, 특정 날짜와

시각이 지나면 무조건 실행된다.

3. 하드디스크 파괴 모듈이 스레드로 동작한다.

하드디스크 파괴 기능이라는 점에서 schsvcsc.dll은 앞서 설명한

mb_join[1].gif 파일과 유사하지만, [표 3]과 같은 차이를 보인다.

3•20 APT 공격으로 MBR 파괴, 부팅 장애 등의 피해 결과가 나타난

가운데, 피해 기업별로 악성코드의 구조 및 종류, 동작 방식 등에 차이

가 확인됐다. 각 기업 내부의 인프라에 맞춰 각기 다른 시스템과 악성

파일을 이용했다는 것으로 해석할 수 있다. 이 점이 금번 3•20 APT

공격의 가장 큰 특징이다.

한편 안랩은 침해사고가 발생한 3월 20일 저녁 6시 40분부터 해당 악

성코드의 진단 및 치료가 가능한 전용백신을 제공하고, V3 제품군에

최신 업데이트 엔진을 적용했다. 그러나 3월 24일 불특정 다수, 즉 일

반인까지 대상으로 한 변종이 발견되었으며, 추가 공격이 우려되는 만

큼 백신을 최신 업데이트 상태로 유지하는 등 정보 자산 보호를 위해

주의가 요구된다.

mb_join[1].gif(C 타입) schsvcsc.dll(D 타입)

동기화에 사용되는

파일 매핑 오브젝트명JO840112-CRAS8468-11150923-PCI8273V

GOLD0112-CRAS8468-PAGE0923-PCI8273W

하드디스크 파괴 모듈

수행을 중단시키는

파일명~TEMP\~v3.log kb01.tmp

[표 3] C 타입와 D 타입ㅈ의 하드디스크 파괴 파일 비교

14

국내•외 주요 금융 기관에서 인정받은 AhnLab Online Security

연일 인터넷 뱅킹 위협에 대한 언론 보도가 이어지면서 이용자들뿐만 아니라 은행권 관계자들도 노심초사다. 일부 은행들은 기존 인

터넷 뱅킹 보안 솔루션 외에 추가적인 보안 대책 마련에 부심하고 있다.

이런 가운데 ‘안랩 온라인 시큐리티(AhnLab Online Security, 이하 AOS)’가 새롭게 조명을 받고 있다. AOS는 국내 6개 주요 은행을

비롯한 다수의 금융 기관을 레퍼런스로 보유하고 있으며 미국, 멕시코, 베트남 등 전 세계 금융 기관에 서비스를 제공하고 있다. 또한

AOS에 대한 고객 신뢰도를 바탕으로 유수의 글로벌 IT 및 보안 기업의 기술 제휴 요청도 잇따르고 있어 AOS의 글로벌 시장 진출이

더욱 가속화될 전망이다.

AhnLab Online Security P R O D U C T I S S U E

AOS, 인터넷 뱅킹 인증부터 해킹 방지까지

글로벌 통합 보안 기업 안랩은 최근 베트남 무역 은행(Vietcombank)

에 온라인 금융 거래 보안 솔루션 AOS 공급 계약을 체결했다. 이는

AOS를 통한 안랩의 글로벌 금융 보안 시장 진출의 연속선 상에서 일

궈낸 쾌거로, 안랩은 지난 2007년 멕시코 3대 은행이자 세계 10대 금

융그룹 중 하나인 산탄데르(Banco Santander Hispano Cetral, S.A)

은행, 2008년 시티그룹의 자회사이자 멕시코 최대 금융기관인 배너

멕스(Banamex), 2011년 미국 코너스톤 커뮤니티 뱅크(Cornerstone

Community Bank) 등에 AOS를 공급한 이후 현재까지 안정적으로

서비스를 제공하고 있다. 국내 대다수 주요 은행 및 금융 기관을 레퍼

런스로 보유하고 있음은 두말할 나위 없다.

독보적인 특허 기술로 다양한 인터넷 뱅킹 위협 요인 차단

AOS는 안티키로거(Anti-Keylogger), 시큐어 브라우저(Secure

Browser)와 함께 파이어월, 안티-바이러스/스파이웨어 등으로 구성

돼 다양한 보안 기능을 통합 제공하는 전방위 온라인 금융 거래 보안

솔루션이다. 14개에 달하는 안랩의 국내 및 해외 특허 기술이 AOS에

적용되어 인터넷 뱅킹의 다양한 위협 요소를 원천적으로 차단한다.

‘AOS 시큐어 브라우저’는 사용자가 웹 상에서 뱅킹이나 증권 거래를

할 때 메모리 해킹, 웹페이지 변조 등 각종 해킹 시도를 차단하기 위

해 웹브라우저 자체를 보호하고, 온라인 금융 거래 시 해킹으로 인한

정보 유출을 원천 차단해주는 ‘온라인 전자 거래 프로그램 보호’ 특

허 기술이 적용돼 있다. 인터넷 뱅킹 및 증권 거래, 온라인 쇼핑 결제

▲ AhnLab Online Security

등의 금융 거래 프로그램이 실행될 때 악성코드가 디버깅을 하거나

메모리에 접근하는 것을 방지함으로써 해킹 시도를 차단한다. 인터

넷 뱅킹 및 증권 거래, 온라인 쇼핑 결제 등의 금융 거래 프로그램이

실행될 때 악성코드가 디버깅을 하거나 메모리에 접근하는 것을 방

지함으로써 해킹 시도를 차단한다. 이로써 온라인 거래를 통해 송수

신되는 사용자의 계좌 및 거래 정보 등이 불법적으로 유출, 조작되는

것을 방지해 온라인 거래의 신뢰성을 높여준다. HTS(홈 트레이딩 시

스템) 메모리 해킹도 차단한다. 이 외에도 AOS 시큐어 브라우저 스

크린 캡처 방지, COM 인터페이스 후킹 차단, 웹페이지 변조 방지 기

능도 제공한다.

15

키보드 보안 프로그램인 ‘AOS 안티키로거’는 특허 기술인 ‘키보드 데

이터 인증을 이용한 키 입력 도용 방지 방법’과 USB 및 블루투스 키

보드 보안 기능이 탑재돼 있다. 이는 키보드로 입력되는 비밀번호나

계좌이체번호 등 중요 정보를 가로채 해커에게 전송하는 키로거(Key

Logger)’ 프로그램으로 인한 피해를 방지한다. 또한 USB 버스 레벨

에서의 USB 키 값을 완벽히 구분할 수 있으며, 자체 메모리 보호,

PKI 기반 E2E(End to End) 확대 연동을 지원한다.

또한 ‘AOS 파이어월’은 실시간으로 해킹을 감지 및 차단하고 커널

레벨의 네트워크 침입 시도 또한 차단한다. AOS 안티-바이러스/스

파이웨어’는 20여 년 간 축적된 안랩의 악성코드 분석 노하우를 바탕

으로 인터넷 뱅킹 트로이목마 및 신•변종 악성코드에 효과적으로 대

응한다.

해외 유수의 기술과 제휴해 더 강력한 보호 구현

[그림 1] AOS의 보호 구간 확대 개념도

안랩은 지난 2010년 세계적인 정보보안 기업 세이프넷(Safenet)과

제휴를 통해 보안 토큰 장비인 e토큰과 AOS 시큐어 브라우저/안티

키로거를 통합한 ‘시큐어 포터블 브라우저 솔루션(Secure Portable

Browser Solution)’을 출시했다. 이후 양사의 지속적인 공동 마케팅

과 테스트를 거쳐 2012년 2월부터 미국의 코너스톤 커뮤니티 뱅크

고객들에게 제공되고 있다. 사용자는 인터넷 뱅킹을 시작할 때 USB

형태인 e토큰을 PC에 꽂으면 AOS 시큐어 브라우저가 자동 실행되며,

AOS 안티키로거는 e토큰의 인증창에 적용되어 키보드를 통한 사용

자의 e토큰 인증 비밀번호 유출을 방지한다.

2012년에는 또한 인텔과 기술 제휴를 통해 AOS에 IPT(Identity

Protection Technology)를 결합, 사용자의 정적 패스워드를 동적

패스워드로 자동 변환하는 기능을 추가했다. 인텔의 IPT를 적용한

‘AOS 어센티케이션(AOS Authentication)’은 동적 패스워드 생성 기

술을 이용해 OTP를 생성하고 정적 패스워드를 암호화하며, 인증 서

버에서 이를 검증한다. 이로써 정적 패스워드의 취약점을 개선함과

동시에 보호 구간을 확대했다. 일반적인 키보드 보안 제품의 보호구

간은 웹 페이지에서 로그인 버튼을 누르는 순간(submit 시점)까지

다. 그러나 AOS 어센티케이션에 의해 암호화된 값은 네트워크를 통

해 인증 서버까지 전달되므로 더욱 안전하게 온라인 거래의 처음부

터 끝까지 모든 구간에서 보안성이 향상된다. 또한 AOS 어센티케이

션은 등록하지 않은 다른 단말기에서의 정적 패스워드 사용은 유효

하지 않은 것으로 처리해 강력한 단말기 인증 기능을 구현한다.

인터넷 뱅킹을 시작하는 순간부터 사용자 보호

AOS는 키보드, PC, 웹 브라우저 및 메모리 등 악성코드 침투와 해킹

이 가능한 모든 통로를 봉쇄함으로써 사용자의 온라인 금융 거래를

원천적으로 보호한다. AOS의 가장 큰 매력은 이 모든 기능이 AOS가

적용된 은행 사이트에 접속함과 동시에 동작하기 때문에 사용자는

따로 할 것이 전혀 없다는 점이다. 사용자는 기존과 같이 온라인 금

융 용무를 처리하면 그뿐이다. 보안을 위해 사용자의 불편함을 야기

해서는 안 된다는 안랩의 철학을 엿볼 수 있는 대목이다.

이상국 안랩 마케팅실장은 “최근 온라인 금융 거래를 노리는 공격

이 수적으로 증가하고 있지만 공격 기법도 나날이 교묘해지고 있

다. 이에 미 금융감독원(FFIEC)에서는 ‘인터넷 뱅킹 보안 강화 가이드

(Internet Banking Supplementary Guide)’를 개정하는 등 보다 적극

적인 온라인 금융 거래 보호를 구현하는 추세다”라며 “AOS는 안전

한 인터넷 금융 및 상거래 환경을 구축해 업체와 사용자를 모두 만족

시킬 수 있는 서비스며 이것이 국내뿐만 아니라 해외 금융 기관에서

도 AOS에 관심을 갖는 이유다”라고 설명했다.

16

T E C H R E P O R T

‘디지털’ 증거의 ‘물리적’ 수집

안드로이드 포렌식(2)

디지털 포렌식 영역에서 점차 중요성이 커지고 있는 스마트폰 포렌식, 그 중에서도 안드로이드 운영체제(OS) 포렌식에 대해 월간 안

3월호를 시작으로 자세히 살펴보고 있다.

지난 호에선 안드로이드 OS에 대한 전반적인 지식과 ‘콘텐트 프로바이더’를 통한 ‘논리적’ 증거 수집에 대해 살펴 보았다. 이번 호에

서는 안드로이드 포렌식에서 중요한 부분을 차지하고 있는 ‘루팅(Rooting)’에 대해 간략히 알아본 뒤, 이를 이용한 ‘물리적’ 수집 방

법에 대해 살펴보고자 한다. 또한 획득한 증거를 분석하는 방법에 대해서도 설명하려 한다.

<연재 목차>

1부_안드로이드 OS, 숨겨진 속살을 파고들다(월간 안 3월호)

2부_‘디지털’ 증거의 ‘물리적’ 수집(이번 호)

리눅스를 기반으로 제작된 안드로이드 OS는 리눅스와 동일한 사용

자 권한 체계를 사용한다. 이 때문에 리눅스에서 관리자 권한 획득을

의미하는 ‘루트(root)’는 안드로이드 OS에서도 동일하게 사용된다. 월

간 안 3월호 안드로이드 포렌식 1부 말미에서 언급했던 것처럼 확실

한 안드로이드 포렌식을 위해 루팅(Rooting)이 필요한 경우가 있다.

루팅을 통해 데이터 파일에 접근하고 물리적으로 데이터를 수집할 수

있기 때문이다.

그러나 루팅된 스마트폰 사용 시 보안 위협에 노출될 가능성이 높기

때문에 안드로이드 스마트폰 제조사들은 관리자 권한 획득과 관련된

‘su’ 명령을 삭제했다. 이로 인해 일반적인 방법으로는 안드로이드의

관리자 권한을 획득할 수 없다. 그렇다면 과연 안드로이드 환경 하에

서 루팅을 통해 관리자 권한을 획득하려면 어떻게 해야 할까.

분석가 및 포렌식 분석을 위한 정보의 관점에서는 안드로이드 루팅

방법을 상세히 살펴보는 것이 필요하겠지만, 스마트폰 루팅을 통한 관

리자 권한 획득 방법은 악용될 소지가 높은 만큼 불가피하게 루팅 방

법과 종류 등에 대해 간략하게 설명하고자 한다.

익스플로잇으로 일시적 권한 획득

일반적으로 알려진 루팅 수행 방법은 크게 세 가지로 구분할 수 있다.

먼저 커널 취약점을 공격하는 ‘익스플로잇(Exploit)’을 사용하는 방법

이다. 커널 취약점을 공격하는 익스플로잇을 실행시켜 일시적으로 관

리자 권한을 획득하는 것이다. 이 같은 일시적인 권한 획득 방법은 기

기가 재부팅되면 원래 상태로 되돌아가는 한계가 있다. 따라서 관리자

권한을 획득한 뒤에 증거 수집 작업을 진행하거나, 지속적인 루팅 상태

를 유지하기 위해 ‘su’ 명령을 커널에 삽입하는 방법을 사용하기도 한다.

[그림 1]은 안드로이드 2.2 버전에서 익스플로잇을 통해 공격을 수행

한 결과다. 공격 수행 과정을 간단히 요약하면 이렇다. 먼저 ADB를 통

해서 익스플로잇 파일을 ‘/data/local/tmp’ 경로에 업로드한다. 이 경

로는 모든 사용자에 대해 읽기와 쓰기, 실행 권한을 부여하므로 관리

자 권한 없이도 파일을 업로드할 수 있다. 익스플로잇 파일을 업로드

한 뒤에는 파일 실행을 위해 명령어 ‘chmod’로 실행 권한을 부여하고

익스플로잇을 실행시킨다. 공격이 모두 완료되면 ADB 연결을 끊고 다

시 연결한다. 연결에 성공하면 [그림 1]과 같이 루트 권한 획득을 확인할

수 있다.

[그림 1] 익스플로잇을 통해 공격을 수행한 결과 예시

안드로이드 포렌식

17

[그림 2] 리커버리 모드에서 update.zip을 통한 시스템 업데이트

리커버리 모드에서는 그 이미지에 따라 해당 기능에 대한 메뉴 명이

달라질 수 있다. 특정 리커버리 모드에선 기능을 지원하지 않는 경우

도 있다. 예컨대 구글의 레퍼런스폰인 넥서스 시리즈의 리커버리 모드

에서는 해당 기능을 지원하지 않는다.

일반적인 update.zip 파일의 구조는 [그림 3]과 같다. ‘/META-

INF/com/google/android’ 경로 아래에는 ‘update-binary’ 파일

과 ‘updater-script’ 파일이 있다. 여기서 중요한 파일은 ‘updater-

script’ 파일이다(안드로이드 1.6 버전 이전에는 파일 명이 ‘update-

script’다). 이 파일은 수행할 작업의 목록을 수록하고 있는데, 수행 가

능한 작업은 포맷, 마운트, 파일 복사, 파일 삭제, 프로그램 실행 등이다.

update-binary 파일은 C binary로 ‘updater-script’ 파일의 스크립

트 언어를 파싱해 실행하는 역할을 수행한다. update-binary 파일은

커스터마징된 커널 이미지 플래싱

또 다른 루팅 방법으로는 커스터마이징(Customizing)된 커널 이미지

를 플래싱하는 방법이 있다(스마트폰 이미지를 기기에 업로드하는 것

을 일반적으로 플래싱(Flashing)이라고 한다). 이 방법을 이용하면 루

팅이 되었거나 루팅이 가능한 커널 이미지를 플래싱해, 기존 커널 이

미지를 덮어 씌운 뒤 관리자 권한을 득할 수 있다. 하지만 이 방법은

기종과 빌드 버전에 따라 서로 다른 커널 이미지를 제작해야 하는 번

거로움이 있다.

커널 이미지 플래싱 방법 역시 수행 과정에서 한 가지 주의해야 할 점

이 있다. 루팅을 수행하고 원래 상태로 되돌아가기 위해선 기존 원본

커널 이미지를 다시 업데이트해야 한다. 때문에 루팅 작업을 수행하기

전, 원본 커널 이미지 준비를 잊지 말아야 한다.

리커버리 모드 update.zip 파일 사용

마지막으로 리커버리 모드에서 사용하는 ‘update.zip’ 파일을 사용하

는 방법이다. 리커버리 모드란, 제조사에서 제공하는 또 다른 부팅 모

드다. 이 모드에선 시스템 업데이트나 사용자 데이터 삭제 혹은 공장

초기화 등의 기능을 수행할 수 있다. 단, 리커버리 모드로 부팅하는 법

은 기기마다 모두 다르다.

update.zip 파일은 시스템 업데이트에 필요한 변경 내용만을 저장

하는 이미지다. 따라서 시스템을 업데이트할 때 update.zip 파일을

사용하면 변경된 내용만 업데이트가 가능하다. 일반적으로 ‘sdcard’

에 update.zip 파일을 복사하고 리커버리 모드에서 [그림 2]와 같이

‘apply sdcard:update.zip’을 선택하면 update.zip 파일의 내용이 시

스템에 업데이트된다.

사용자가 생성할 수 있는 파일은 아니다. 웹에서 다운받거나 이미 생

성된 update.zip 파일에서 구해야 한다.

위의 방법을 한 문장으로 요약하면, update.zip 파일을 통해 루팅

하기 위해선 su 명령을 기기의 ‘/system/bin/’ 폴더에 복사하도록

updater-script를 작성하고 리커버리 모드에서 실행시켜야 한다는 것

이다.

지금까지 간략하게 안드로이드 스마트폰을 루팅하는 방법에 대해 살

펴보았다. 여러가지 다양한 루팅 방법이 이제껏 공개돼 왔지만 어느

하나 완벽하게 모든 기기에 대해 루팅을 수행할 순 없었다. 끊임없이

진행되는 운영체제 버전 업데이트는 제쳐놓고서라도, 수십 개의 서로

다른 제조사들이 만들어 내는 안드로이드 스마트폰들을 모두 루팅할

수 있는 방법을 찾기란 거의 불가능에 가깝기 때문이다. 결론적으로,

분석가는 자신이 분석하려는 기기의 운영체제 버전과 제조사에 따라

알맞은 루팅 방법을 찾아 분석을 진행해야 한다.

물리적 증거 수집의 실제

만약 루팅에 성공했다면, ADB(Android Debug Bridge)를 통해 원하

는 모든 데이터를 추출할 수 있다. 즉, 안드로이드 애플리케이션(응용

프로그램)에 있는 사용자 데이터들을 저장한 SQLite DB 파일에 접근

해 파일을 추출하는 것이 가능하다는 얘기다.

[표 1]은 표준 안드로이드 OS에서 기본적으로 저장되는 사용자의 데

이터 경로를 표로 정리한 것이다. 안드로이드의 레퍼런스 스마트폰인

넥서스원을 대상으로 수집한 정보로, 기기에 따라 경로 정보는 조금씩

다를 수 있다.

[그림 3] update.zip 파일의 구조

데이터 경로

연락처 /data/data/com.android.providers.contacts/

databases/contacts2.db

통화 기록/data/data/com.android.providers.contacts/

databases/contacts2.db

SMS/MMS/data/data/com.android.providers.telephony/

databases/mmssms.db

일정/data/data/com.android.providers.calendar/databases/

calendar.db

메일 목록/data/data/com.google.android.email/databases/

EmailProvider.db

메일 내용/data/data/com.google.android.email/databases/

EmailProviderBody.db

웹 히스토리 /data/data/com.android.browser/databases/browser.db

웹 쿠키 /data/data/com.android.browser/databases/webview.db

웹 캐시/data/data/com.android.browser/databases/

webviewCache.db

18

이외에 서드파티(3rd Party) 애플리케이션들이 저장하는 각 데이터들

이 있으나, 여기서 모든 애플리케이션의 데이터들을 다루는 것은 부적

절하므로 생략한다.

기본적으로 사용자의 데이터는 userdata 파티션이 마운트되어 있는

‘/data’ 경로 아래에 저장된다. 특히 애플리케이션이 생성하는 데이터

들은 ‘/data/data/’ 아래에 저장된다. 여기서 하나 주의할 점은 이 경

로들이 절대적인 것이 아니라, 제조사마다 조금씩 다를 수 있다는 점

이다. 예를 들어 Galaxy S의 경우, 애플리케이션이 생성하는 데이터들

이 ‘/dbdata/’ 경로 아래에 저장된다. 이 경로는 userdata 파티션 외

에 별도 파티션을 만들어 마운트한 경로다.

이밖에 안드로이드 스마트폰은 내•외장 SD카드를 사용해 데이터를

저장하기도 한다. 저장되는 데이터는 멀티미디어 데이터(사진, 동영

상, 음악), 대용량 응용프로그램 데이터 등이 있다.

SD카드에 저장된 데이터를 수집하는 대표적인 방법은 기기의 USB 설

정을 이용하는 것이다. [그림 4]와 같이 안드로이드 기기를 USB 케이

블을 통해 PC에 연결하고 ‘USB 저장소 사용’을 설정하면 일반 USB와

같이 SD카드로 접근이 가능하다. SD카드를 PC에 연결해 USB처럼 접

근하는 방법은 기기마다 모두 다르니, 검색을 해보거나 기기 매뉴얼에

서 찾아야 한다.

위의 방법 외에도 SD카드는 ADB를 통해서도 접근이 가능하다. 일반

적으로 SD카드는 ‘/sdcard’ 경로 아래 마운트돼 있다. 게다가 SD카드

는 특별한 권한이 걸려있지 않기 때문에 루팅 여부와 관계없이 접근

할 수 있다. 특히 ADB의 ‘pull’ 옵션을 사용하면 SD카드로부터 데이

터를 PC로 바로 저장할 수 있다.

SD카드에 저장되는 가장 대표적인 데이터는 멀티미디어 파일이다.

보통 안드로이드의 기본 카메라는 사진과 동영상 파일을 ‘/sdcard/

dcim/camera/’ 경로에 저장한다. 따라서 이 경로로 접근하면 사진,

동영상 파일을 수집할 수 있다.

그러나 다른 다양한 응용프로그램이 생성하는 멀티미디어 파일들은

알람/data/data/com.google.android.deskclock/databases/

alarm.db

미디어 위치/data/data/com.android.providers.media/databases/

external-숫자.db

다운로드/data/data/com.android.providers.downloads/databases/

downloads.db

시스템 설정/data/data/com.android.providers.settings/databases/

settings.db

GPS 캐시/data/data/com.android.browser/app_geolocation/

CachedGeoposition.db

구글지도 검색어data/data/com.google.android.apps.maps/databases/

search_history.db

구글지도 북마크/data/data/com.google.android.apps.maps/files/DATA_

STARRING

Wi-Fi 리스트 /data/misc/wifi/wpa_supplicant.conf

Wi-Fi Mac 캐시 /data/data/com.google.android.location/files/cache.cell

기지국 Cell 캐시 /data/data/com.google.android.location/files/cache.cell

사진, 동영상 /sdcard/dcim/camera/

[표 1] 표준 안드로이드 사용자의 데이터 경로

위의 경로에 저장되지 않는다. 이에 따라 외장 SD카드의 모든 멀티미

디어 파일을 수집하기 위해서는 ‘/external-숫자.db’ 파일의 내용을

참조해야 한다. 안드로이드 OS에서는 스캔 과정을 통해 외장 SD카

드에 저장되는 모든 멀티미디어 파일(사진, 동영상, 음악)들을 /ext

ernal-숫자.db 파일에 저장한다. 이 데이터베이스의 내용을 참조하

면 외장 SD카드에 저장된 모든 멀티미디어 파일을 수집할 수 있다.

[그림 4] USB 연결을 통한 외장 SD카드 접근

기본적인 애플리케이션 데이터 분석

[표 1]에서 정리한 대부분의 데이터들은 SQLite DB 형태로 저장된다.

이는 ‘SQLite Expert’ 혹은 ‘SQLite Database Browser’ 같은 프로그

램을 활용하면 내용을 확인할 수 있다.

[그림 5] SQLite Expert(http://sqliteexpert.com)

위와 같은 도구를 이용해 데이터베이스의 내용을 확인한다고 하더라도,

그 의미를 파악하기란 쉽지 않다. 결국 이런 도구들로 분석가가 의미있

는 정보를 캐내기 위해서는 데이터베이스 구조와 각 필드 값이 갖는 의

미를 일일이 알고 있어야 한다. 다음의 설명을 통해서 안드로이드의 기

본 애플리케이션 데이터베이스 구조를 비교적 상세히 알아보려는 이유

가 바로 여기에 있다.

1) 연락처

연락처 정보는 ‘raw_contacts’ 테이블, ‘mimetypes’ 테이블, ‘group’

테이블, ‘data’ 테이블을 조합해 구성한다. raw_contacts 테이블에는

연락처 객체 정보가 저장되며 group 테이블에는 연락처의 그룹 정보가

저장된다. mimetypes 테이블에는 연락처가 가질 수 있는 데이터의 타

입 정보가 저장되며 data 테이블에는 각 연락처의 실제 데이터가 저장

된다. 각 테이블에 대한 상세 설명은 다음과 같다.

DB 경로/data/data/com.android.providers.contacts/databases/

contacts2.db

19

[표 3] group 테이블 정보

DB 경로/data/data/com.android.providers.contacts/databases/

contacts2.db

테이블명 group

필드 정보_id 그룹 ID, data 테이블의 dataN에서 참조함

title 그룹 이름

DB 경로/data/data/com.android.providers.contacts/databases/

contacts2.db

테이블명 mimetypes

필드 정보

mimetype

vnd.android.cursor.item/email_v2 email

vnd.android.cursor.item/im 메신저

vnd.android.cursor.item/postal-address_v2

주소

vnd.android.cursor.item/photo 사진

vnd.android.cursor.item/phone_v2 전화번호

vnd.android.cursor.item/name 이름

vnd.android.cursor.item/organization

조직

vnd.android.cursor.item/nickname 닉네임

vnd.android.cursor.item/group_membership

그룹

vnd.android.cursor.item/website 웹사이트

_id mimetype ID, data 테이블에서 참조함

테이블명 raw_contracts

필드 정보

_id 연락처 ID, 하나의 연락처 객체를 의미함

deleted

0 정상

1삭제됨, 연락처 동기화시 파일 내에서 완전

삭제됨

[표 2] raw_contacts 테이블 정보

2) 통화 기록

통화 기록 정보는 연락처 정보와 같은 데이터베이스(contacts2.db)의

calls 테이블에 저장된다.

[표 4] mimetypes 테이블 정보

[표 5] data 테이블 정보

DB 경로/data/data/com.android.providers.contacts/databases/

contacts2.db

테이블명 data

필드 정보

mimetype_id 데이터 타입 구분 정보, mimetypes 테이블의 _id 참조

raw_contact_id 연락처 ID, raw_conatacts 테이블의 _id 참조

data1~data15 mimetype_id에 따른 실제 데이터 저장

3) SMS

SMS 정보는 ‘mmssms.db’ 파일의 sms 테이블에 저장된다. sms 테이

블에 대한 상세 설명은 아래와 같다.

[표 6] calls 테이블 정보

type

1 수신

2 발신

3 부재중 전화

numbertype

0 등록된 전화번호 아님

1 집

2 휴대전화

3 직장

name 이름

[표 7] sms 테이블 정보

DB 경로/data/data/com.android.providers.telephony/databases/

mmssms.db

테이블명 sms

필드 정보

address 전화번호

date 발신/수신 시간(SQL time)

type1 발신

2 수신

date 메시지 내용(한글일 경우, UTF-8로 인코딩됨)

DB 경로/data/data/com.android.providers.contacts/databases/

contacts2.db

테이블명 calls

필드 정보

number 전화번호

date 발신/수신 시작 시간

duartion 발신/수신 경과 시간, 초 단위로 저장됨

4) MMS

MMS 정보는 SMS 정보와 마찬가지로 ‘mmssms.db’ 파일에 저장된다.

하나의 MMS 정보는 pdu 테이블과 addr 테이블, part 테이블이 조합

돼 구성된다. pdu 테이블에는 MMS 문자의 객체 정보와 발•수신 시간

이, addr 테이블에는 전화번호와 발•수신 정보가 저장된다. part 테이

블에는 문자 내용이 저장된다. 각 테이블에 대한 상세 설명은 다음과

같다.

[표 8] pdu 테이블 정보

DB 경로/data/data/com.android.providers.telephony/databases/

mmssms.db

테이블명 pdu

필드 정보_id MMS 메시지 ID

date 발신/수신 시간(SQL time)

[표 9] addr 테이블 정보

DB 경로/data/data/com.android.providers.telephony/databases/

mmssms.db

테이블명 addr

필드 정보

msg_id MMS 메시지 ID, pdu 테이블의 _id 참조

address 전화번호

type137 수신

151 발신

DB 경로/data/data/com.android.providers.telephony/databases/

mmssms.db

테이블명 part

20

[표 11] Calendar 테이블 정보

DB 경로/data/data/com.android.providers.calendar/databases/

calendar.db

테이블명 Calendars

필드 정보

_id 달력 ID

_sync_account 동기화 계정 정보(local : 기본달력)

_sync_time 동기화 시간 정보

name 달력 이름

displayName 화면에 표시되는 달력 이름

selected

0 선택 안 됨

1선택됨, 선택된 달력의 이벤트들은 화면

에 표시됨

timezone 시간대 정보

5) 일정

일정 정보는 ‘calendar.db’ 파일의 Events 테이블과 Calendar 테이블

에 저장된다. Calendar 테이블에는 일정을 포함하는 달력들의 정보가

저장되고 Events 테이블에는 각 일정들에 대한 정보가 담긴다. 각 테이

블에 대한 상세 정보는 다음과 같다.

필드 정보

_id MMS 메시지 ID, pdu 테이블의 _id 참조

ct 데이터 타입

_data 첨부파일 경로

text MMS 문자 내용

[표 10] part 테이블 정보

[표 12] Events 테이블 정보

DB 경로/data/data/com.android.providers.calendar/databases/

calendar.db

테이블명 Events

필드 정보

_id 일정 ID

calendar_id일정이 속한 달력 ID. Calendar 테이블의 _

id 참조

title 일정 제목

eventLocation 일정 장소

description 일정 메모

dtstart 일정 시작 시간

dtend 일정 종료 시간

eventTimeZone 일정 시간 시간대

duration 일정 타입 (P3600S : 매년 반복)

allDay0 알람 설정 안 됨

1알람 설정됨, 설정시 시간 정보

출력 안 됨

rrule반복 정보 ( RFC 2445 의 4.3.10

Recurrence Rule 참조)

deleted0 정상

1 삭제 됨, 일정 동기화 시 완전 삭제됨

6) 메일

메일 정보는 메일 목록 정보와 메일 내용 정보 등 크게 두 가지다. 메일

목록과 기타 설정 정보는 ‘EmailProvider.db’ 파일에, 메일 내용 정보

는 ‘EmailProviderBody.db’ 파일에 각각 저장된다. Account 테이블에

는 메일을 연동시킬 때 입력한 계정 정보(메일 주소)가, HostAuth 테이

블에는 연동에 사용되는 프로토콜, URL, 포트, 로그인 아이디•패스워드

가 각각 저장된다. Mailbox 테이블에는 메일을 담고 있는 메일함 정보

가 저장된다. Message 테이블에는 메일 목록 정보, Attachment 테이

블에는 첨부파일 정보, Body 테이블에는 메일 내용이 저장된다. 각 테

이블에 대한 상세 설명은 다음과 같다.

[표 13] Account 테이블 정보

[표 14] HostAuth 테이블 정보

DB 경로/data/data/com.google.android.email/databases/

EmailProvider.db

테이블명 Account

필드 정보

_id 계정 ID

displayName 설정된 메일 이름

emailAddress 연동된 메일 주소

senderName 설정된 보내는 이 이름

DB 경로/data/data/com.google.android.email/databases/

EmailProvider.db

테이블명 HostAuth

필드 정보

protocol 계정 ID

address 설정된 메일 이름

port 연동된 메일 주소

login 설정된 보내는 이 이름

password연동시 사용되는 패스워드

(평문으로 저장되어 있음)

[표 15] Mailbox 테이블 정보

DB 경로/data/data/com.google.android.email/databases/

EmailProvider.db

테이블명 Mailbox

필드 정보

id 메일함 ID

displayName 메일함 이름

accountKey 계정 정보, Account 테이블의 _id 참조

syncTime 연동시간

[표 16] Message 테이블 정보

DB 경로/data/data/com.google.android.email/databases/

EmailProvider.db

테이블명 Message

필드 정보

_id 메일 ID

displayName 보내는 이/받는 이 이름

timeStamp 보낸/받은 시간

subject 메일 제목

fromList 보낸 사람 메일주소 + 이름

toList 받은 사람 메일주소 + 이름

replyToList 답장 보낸 사람 주소 + 이름

flagAttachment0 첨부 파일 없음

1 첨부 파일 있음

mailboxKey 해당 메일이 속한 메일함 ID

accountKey해당 메일의 계정 정보, Accout 테이블의 _id

참조상

21

[표 17] Attachment 테이블 정보

[표 18] Body 테이블 정보

DB 경로/data/data/com.google.android.email/databases/

EmailProvider.db

테이블명 Attachment

필드 정보

messageKey 해당 첨부 파일을 포함하고 메일 ID

fileName 첨부파일명

mimeType 첨부파일 타입

size 첨부파일 크기

contentUri 다운받은 첨부파일 URI

DB 경로/data/data/com.google.android.email/databases/

EmailProviderBody.db

테이블명 Body

필드 정보

messageKey 해당 메일 내용을 포함하는 메일 ID

htmlContent html 메일 내용

textContent 텍스트 메일 내용

7) 웹 브라우저

웹 브라우저 정보는 다음의 세 가지 파일에 저장된다. ‘browser.db’

파일에는 웹 히스토리 정보를 비롯해 즐겨찾기 정보, 검색어 정보

가 저장되며 ‘webView.db’ 파일에는 쿠키, Form Data, Form URL,

password 정보가 각각 저장된다. ‘webViewCache’ 파일에는 웹 캐시

정보가 저장된다.

[표 19] bookmarks 테이블 정보

[표 20] searches 테이블 정보

[표 22] formurl 테이블 정보

[표 23] formdara 테이블 정보

DB 경로 /data/data/com.android.browser/databases/browser.db

테이블명 bookmarks

필드 정보

title 웹 페이지 제목

url 웹 페이지 URL 정보

visits 방문 횟수

date 방문 시간

created 즐겨찾기 생성 시간

bookmarks0 방문기록

1 즐겨찾기

DB 경로 /data/data/com.android.browser/databases/browser.db

테이블명 searches

필드 정보

search검색어 정보, URL 창에 직접 검색어를 입력한 경

우 저장됨

date 검색시간

DB 경로 /data/data/com.android.browser/databases/webView.db

테이블명 formurl

필드 정보_id formurl 정보 ID

url URL 정보

DB 경로 /data/data/com.android.browser/databases/webView.db

테이블명 data

필드 정보

urlid URL ID, formurl 테이블의 _id 참조

name 변수명

value 변수값

[표 21] cookies 테이블 정보

DB 경로 /data/data/com.android.browser/databases/webView.db

테이블명 cookies

필드 정보 name 변수명

‘formdata’ 란 웹 페이지 내에서 Form을 통해 입력한 데이터들을 말한

다. 예를 들어 네이버 영어사전 웹 페이지 내에서 ‘입력 Form’에 기재된

데이터들은 아래 [그림 6]과 같이 저장된다. 해당 페이지와 formdata

맵핑(mapping)은 formurl 테이블의 url 정보를 통해 이뤄진다.

value 변수값

domain 도메인 정보

path 경로 정보

expires 쿠키 만료 시간

[그림 6] Form Data의 예

[표 24] password 테이블 정보

DB 경로 /data/data/com.android.browser/databases/webView.db

테이블명 password

필드 정보

host 호스트 정보

username 아이디 정보

password 패스워드 정보(평문으로 저장됨)

DB 경로/data/data/com.android.browser/databases/

webViewCache.db

22

[표 25] cache 테이블 정보

DB 경로/data/data/com.android.browser/databases/

webViewCache.db

테이블명 cache

필드 정보

url URL 정보

filepath 실제 캐시 데이터 파일명

lastmodify 마지막 수정시간, 문자열로 저장됨

mimetype 데이터 타입

encoding인코딩 정보, mimetype이 text/html 일 경우

설정됨

8) 알람

알람 정보는 ‘alarm.db’ 파일의 alarms 테이블에 저장된다.

DB 경로 /data/data/com.google.android.deskclock/alarm.db

테이블명 alarms

필드 정보

hour 시

minutes 분

daysofweek 반복 요일 설정 정보

alarmtime

0 주기적인 알람

시간 정보주기적이지 않은 알람,

시간정보가 저장됨

enabled0 알람 비활성화

1 알람 활성화

vibrate0 진동 안함

1 진동함

message 알람에 설정한 메모 혹은 이름

10) 구글 지도

구글 지도 정보는 위치 검색 정보와 즐겨찾기 정보 등 두 가지로 구성

된다. 위치 검색 정보는 ‘search_history.db’ 파일에, 즐겨찾기 정보는

‘DATA_STARRING’ 파일에 각각 저장된다. 각 정보에 대한 상세 설명은

다음과 같다.

구글 지도의 즐겨찾기 정보의 경우, SQLite 데이터베이스를 사용하지

않는다. 대신 독자적인 포맷으로 다음과 같이 저장된다.

[표 27] downloads 테이블 정보

[표 28] suggestions 테이블 정보

description다운로드 정보, 보통 호스트 주소가

저장됨

DB 경로/data/data/com.google.android.apps.maps/databases/

search_history.db

테이블명 suggestions

필드 정보 data1 위치 검색시 입력한 정보

[그림 7] 구글 지도의 즐겨찾기 정보

[표 26] alarms 테이블 정보

9) 다운로드

다운로드 정보는 사용자가 웹 브라우저나 메일, 마켓 등에서 다운로

드한 파일이나 응용프로그램에 대한 정보다. ‘downloads.db’ 파일의

downloads 테이블에 저장된다.

DB 경로/data/data/com.android.providers.downloads/databases/

downloads.db

테이블명 downloads

필드 정보

uri 다운로드 소스 URL 정보

hint 다운로드된 파일명

_data 다운로드 목적지 경로

mimetype 데이터 타입

lastmod 다운로드 시간

notificationpackage

다운로드를 수행한 패키지명

com.android.vending

응용프로그램

다운로드

com.android.browser

브라우저를 통해

다운로드됨

title다운로드된 파일명 or 응용프로그램 이름

total_types 다운로드된 파일의 크기 or APK 크기

파일 안에 저장되는 정보는 URL 정보다. 해당 정보를 웹 브라우저에 입

력하면 구글 지도 서비스를 통해 위치를 확인할 수 있다. 보통 즐겨찾기

URL 정보에는 위도•경도 정보가 인자로 포함되지만 해당 검색어가 구

글 데이터베이스에 등록된 회사나 상점일 경우 ‘CID(Company ID)’가

인자로 포함된다.

다음 그림은 즐겨찾기로 등록된 URL (http : / /maps.google.

com/?cid=15469662836763013479)을 웹 브라우저를 통해 확인한

내용이다.

[그림 8] 즐겨찾기 정보 확인

멀티미디어 데이터, 저장 위치 파악해야

앞서 언급한 바와 같이, 안드로이드 OS는 멀티미디어 데이터(사진, 동

영상, 오디오)를 기본적으로 SD카드에 저장하나 그 외의 멀티미디어

데이터들은 SD카드 내에서도 응용프로그램마다 다르게 저장된다. 따

23

각 테이블의 이름을 살펴보면 어떠한 정보를 저장하는지 쉽게 유추

가 가능하다. 예를 들어 images 테이블에는 사진 파일의 위치 정보가,

video 테이블에는 동영상 파일의 위치 정보가 각각 저장된다. audio_

meta 테이블은 오디오 파일의 위치 정보를 저장한다.

기기에 따라 사진, 동영상, 오디오 파일 외의 파일들의 정보를 저장하

는 경우도 있다. 삼성 Galaxy 시리즈의 경우 사진, 동영상, 오디오 파일

외에 워드 파일(doc)과 안드로이드 응용 프로그램 설치 파일(apk) 등의

정보를 추가 저장한다. 다음은 각 멀티미디어 테이블들이 가지는 공통

적인 필드에 대한 설명이다.

[그림 9] ‘external-숫자.db’ 파일의 테이블 구조의 예

라서 SD카드 내에 존재하는 멀티미디어 데이터들을 분석하기 위해선

먼저 각 멀티미디어 데이터들의 저장 위치부터 파악해야 한다.

안드로이드 OS는 주기적으로 SD카드를 전체 스캔해 멀티미디어 파

일의 저장 위치를 ‘external-숫자.db’ 파일에 저장한다. 다음 그림은

‘external-숫자.db’ 파일의 테이블 구조다.

DB 경로/data/data/com.android.providers.media/databases/

external-숫자.db

테이블명 images, video, audio_meta

필드 정보

_data 멀티미디어 파일이 저장된 경로

_displayname 멀티미디어 파일명

_size 멀티미디어 파일 크기

mime_type 데이터 타입

data_taken 멀티미디어 파일 생성 시간(SQL Time)

date_modified 멀티미디어 마지막 수정 시간(UNIX Time)

latitude 위도 정보

longitude 경도 정보

title 제목

[표 29] 멀티미디어 테이블 정보

[표 30] CachedPosition 테이블 정보

필드 정보

latitude 위도 정보

longitude 경도 정보

timestamp GPS 정보 수신 시간

위치 정보 분석도 가능

이번에는 안드로이드 스마트폰 내에서 획득할 수 있는 위치 정보에

대해 설명하겠다. 분석 대상은 기기에 상관없이 기본적으로 얻을 수

있는 정보를 대상으로 한다.

1) GPS 캐시 정보

GPS 캐시 정보는 GPS에서 마지막으로 수신된 위치 정보를 저장하고

있다. 이 때문에 하나의 위치 정보만 저장이 된다.

CachedPosition 테이블에 저장된 정보는 위도, 경도, 시간 정보이므로

사용자가 해당 시간에 특정 위치에 있었다는 증거로 활용할 수 있다.

2) Wi-Fi 정보

기본적으로 안드로이드 스마트폰은 데이터 통신을 위해 Wi-Fi 연결을

지원한다. 사용자가 특정 Wi-Fi에 접속하면 접속한 Wi-Fi AP의 SSID 정

보와 MAC 주소가 기기 안에 자동 저장 된다.

SSID 정보의 경우, 텍스트 형태로 ‘wpa_supplicant.conf’ 파일에 저장

된다. 해당 파일은 ‘/data/misc/wifi/wpa_supplicant.conf’ 경로에 위

치한다. 일반적으로 관리자가 Wi-Fi AP의 SSID를 설정할 때, Wi-Fi AP

가 위치한 장소 이름을 그대로 따오는 경우가 많다. 이를 테면 ‘Westin

Conference 3rd Floor’ 나 ‘LAX OneWorld Lounge’ 와 같이 건물 이

름이나 구역 이름을 그대로 사용하는 것이다. ‘wpa_supplicant.conf’

에서 수집한 SSID 정보를 통해 사용자가 해당 장소에서 Wi-Fi에 접속한

사실을 알 수 있게 되는 셈이다. 다음 그림은 ‘wpa_supplicant.conf’

파일에 저장된 SSID 정보의 한 예다.

[그림 10] wpa_supplicant.conf 파일에 저장된 SSID 정보의 예

DB 경로/data/data/com.android.browser/app_geolocation/

CachedGeoposition.db

테이블명 CachedPosition

또한 MAC 주소는 ‘cache.wifi’ 파일에 저장된다. 해당 파일은 ‘/data/

data/com.google.android.location/files/cache.wifi’ 경로에 자리한

다. 다음 그림은 ‘cache.wifi’ 파일 안에 저장된, 접속했던 Wi-Fi MAC

주소들이다.

[그림 11] ‘cache.wifi’ 파일 안에 저장된 MAC 주소 정보

이렇게 수집된 Wi-Fi MAC 주소는 다음에 설명할 기지국 Cell Tower

ID 정보와 함께 GPS 정보로 변환해 위치 정보로 활용할 수 있다.

3) 기지국 정보

안드로이드 스마트폰 안에는 기기가 접속했던 기지국들의 Cell Tower

ID 정보가 캐시 형태로 남겨져 있다. Cell Towser ID 정보란 기지국

고유의 ID를 말한다. Cell ID의 형식은 ‘MCC:MNC:LAC:Cell_ID’ 다.

MMC는 나라 정보를 가리키며 MNC는 통신사 정보를 뜻한다. 그리고

24

[그림 12] cache.cell 파일 안에 저장된 Cell Tower ID 정보

수집된 Cell Tower ID 정보는 앞서 설명한 Wi-Fi AP의 MAC 주소와

함께 위치 정보로 활용할 수 있다. 구글에서는 전세계 안드로이드 폰

에서 수집한 위치 정보를 통해 Cell Tower와 AP들의 위치를 데이터베

이스에 저장하고 있다. 아울러 이 정보를 활용할 수 있도록 구글 기어

지오로케이션(Google Gear Geolocation) API를 제공한다.

Cell Tower ID 정보나 Wi-Fi AP의 Mac 주소를 알고 있다면 구글 기어

지오로케이션 API를 통해 해당 정보를 GPS 정보로 변환할 수 있다.

변환된 GPS 정보는 지도 상의 특정 위치를 나타내므로 사용자의 위치

히스토리를 구성하는 데에 활용할 수 있다. [그림 13]은 구글 기어 지

오로케이션 API를 사용해 Cell Tower ID 정보와 Wi-Fi AP의 Mac 주

소를 입력했을 경우 결과 값으로 GPS 위치 정보를 받아오는 예다.

[그림 13] 구글 기어 지오로케이션 API 사용의 예

[그림 14] 구글 기어 지오로케이션 API 사용 도구

[그림 15] 구글 지도를 통한 위치 정보 확인

구글 기어 지오로케이션 API를 사용해 MAC 주소를 GPS 정보로 변환

하는 도구는 ‘http://www.codeproject.com/KB/IP/GoogleGeoLocator.

aspx’에서 다운받을 수 있다. 해당 도구는 주변에 위치한 Wi-Fi AP의

MAC 주소를 활용, 사용자의 현재 위치를 계산한다.

이를 통해 계산된 GPS 위치 정보는 다음 그림과 같이 ‘구글 지도’를

통해 확인할 수 있다.

4) 사진 안에 저장된 위치 정보

안드로이드 기본 카메라로 사진을 찍을 경우, 카메라의 위치 저장 설

정을 통해 사진의 위치 정보를 저장할 수 있다. 위치 저장을 설정하면

GPS가 동작하게 되고 사진 안에 ‘Exif’ 형식으로 위도와 경도 정보, GPS

수신 시간이 자동 저장된다. 이를 통해 사용자의 위치 히스토리를 구성

할 수 있다.

LAC는 지역 정보, Cell_ID는 기지국 정보를 각각 가리킨다.

Cell Tower ID 정보는 ‘cache.cell’ 파일 안에 저장된다. 파일의 경로는

‘/data/data/com.google.android.location/files/cache.cell’ 이다.

다음 [그림 12]는 cache.cell 파일 안에 저장된 Cell Tower ID 이다.

[그림 16] 위치 저장 설정과 사진 안에 저장된 GPS 위치 정보

삭제된 데이터를 복구하려면?그렇다면 안드로이드 기기 내에 저장돼 있던 정보가 삭제되었을 때,

복구하는 방법은 무엇일까. 안드로이드에서의 삭제 데이터 복구는

SQLite 데이터베이스 내의 삭제 레코드 복구와 SD카드 내의 삭제된

파일 복구 등 두 가지 방법이 있다.

1) SQLite 데이터베이스의 삭제된 레코드 복구

앞에서 설명했듯, 안드로이드 운영체제는 중요한 데이터의 대부분

을 SQLite 데이터베이스 형태로 저장한다. 중요 데이터의 대부분은

SQLite 데이터베이스의 레코드 형태로 존재하는 것이다.

만약 사용자의 데이터를 삭제했을 경우, SQLite 데이터베이스는 해당

레코드가 위치한 부분을 비할당 영역으로 변경한다. 이렇게 비할당 영

역으로 변경된 부분은 다른 레코드가 덮어쓰거나, SQLite 데이터베이

스의 가비지 컬렉션(비할당 영역을 정리하는 작업) 작업이 수행되기 전

까지 파일 내에 그대로 남아 있다. 이에 따라 비할당 영역에 남아 있는

레코드들을 복구하면 삭제된 데이터도 복구가 가능하다. 하지만 특정

SQLite 데이터베이스는 삭제된 레코드들을 바로 가비지 컬렉션하기 때

문에 데이터 복구를 수행할 수 없다. 다음은 각 주요 정보 별 삭제 데이

터 복구 가능성을 정리한 것이다.

25

데이터 삭제 데이터 복구 여부 상세 정보

위도 O data 테이블 레코드 복구

통화기록 X 삭제와 동시에 가비지 컬렉션 수행

SMS O sms 테이블 레코드 복구

MMS Opdu, addr, part 세 테이블이 조인하여

데이터를 구성하므로 각 테이블의 레코

드 복구

일정 O Events 테이블 레코드 복구

메일 X 삭제와 동시에 가비지 컬렉션 수행

[표 31] SQLite 삭제 데이터 복구 여부

SQLite 삭제 레코드 복구에 대한 자세한 정보는 ‘2010 디지털 포렌식

기술 워크숍’에서 발표된 바 있는 ‘삭제된 SQLite 데이터베이스의 레

코드 복구 연구’를 참조하기 바란다.

2) SD카드의 삭제된 파일 복구

안드로이드 OS는 USB 설정을 통해 SD카드와 PC의 연결을 지원한다.

이 방식을 사용해 SD카드와 PC를 연결하면 기존 USB와 동일하게 사용

할 수 있다. 또한 안드로이드 SD카드는 FAT32 파일 시스템을 사용한다.

[그림 17] SD카드 파일 시스템 확인

따라서 기존 하드디스크에서 사용했던 파일 시스템의 메타데이터 복

구와 카빙을 통한 복구 방식을 모두 그대로 적용할 수 있다. 다음 그

림은 상용 삭제 데이터 복구 도구인 ‘Recovery My Files’을 사용해

SD카드 내 삭제 데이터를 복구하는 장면이다.

[그림 18] ‘Recovery My Files’를 통한 SD카드 내 삭제 데이터 복구

지금까지 안드로이드 OS에서의 루팅의 의미와 수행 방법, 루팅을 통

해 수집한 데이터에 대한 분석 방법 등에 대해 살펴보았다. 다음 호에

서는 또 다른 안드로이드 포렌식 방법인 이미징 작업에 대해 알아보

도록 한다. 그리고 안드로이드 스마트폰에서 사용하는 파일 시스템인

YAFFS2 와 Ext4에 대해서도 다루도록 하겠다.

A H N L A B ' S P A R T N E R

26

지난 2000년 7월 창업한 비츠코리아는 창업 13년째를 맞는 지난

해 말 수백억 원대의 매출을 기록하는 기업으로 우뚝 섰다. “‘파트너

사와 함께 성장한다’는 모토를 내건 안랩이 있었기에 우리가 지금의

성과에 도달할 수 있었다”는 게 임 대표의 설명이다.

비츠코리아라는 사명은 겉으로 풍기는 강력한 이미지에 안성맞춤인

의미를 지니고 있다. 영문명 ‘BitzKorea’는 기업의 지향점을 집약한

것으로, ‘The Best Information Technology Zone in Korea’라는

뜻이다. 업계 최고의 IT 기업으로 거듭나겠다는 그들의 당찬 의지가

느껴지는 사명이 아닐 수 없다. 로고 역시 열정을 뜻하는 오렌지색

을 선택해 도전정신과 전문성을 표현했다.

비츠코리아는 홈페이지 등을 통해 이른바 ‘3F(Future)를 이끌어 나가

는 기업’이라는 비전을 당당히 제시하고 있는데 이는 개인의 미래와

기업의 미래, 사회의 미래를 모두 충족하도록 노력하겠다는 미래지향

적인 메시지 전달에 기여하고 있다.

탄탄하고 체계적인 조직 구성과 전문성

비츠코리아의 조직 구성은 이 기업의 녹록지 않은 경영 노하우의

한 단면을 엿보게 한다. 비츠코리아에는 안랩의 총판 비즈니스를

근간으로 하는 공공사업본부와 마케팅본부, 교육기관에 대한 기타

소프트웨어를 직접 판매하는 직판사업부가 각각 있다.

공공사업본부는 다시 공공영업팀, 기술컨설팅팀(TC, Technical

Consulting), 네트워크보안팀(NS, Network Security)으로 나뉜다.

직판사업부에도 직판(Direct Sales)팀이 예속돼 있다. 이들은 영업

지원과 시장개척, 기술점검 및 지원, 안랩의 제품을 기반으로 한 통

합보안 컨설팅 제안 등을 아우르는 역할을 맡고 있다. 아주 정교하

고 짜임새있는 구성으로, 총판업체로서의 전문성을 도모하고 있다

는 인상을 받게 한다.

▲ 임달혁 비츠코리아 대표

비츠코리아

Ahn

Lab'

s P

artn

er

[소프트웨어 공공 / 교육부문 총판](주)비츠코리아

척박한 국내 소프트웨어 시장에

도전정신의 꽃을 피우다

안랩 총판업체 (주)비츠코리아(이하 비츠코리아)와 안랩의 인연은 비츠코리아가 창업되기 훨씬 이전 시작됐다. 임달혁 비츠코리아 대

표는 1990년대 말 한 IT 전시장에서 V3를 처음 만났다. 그때까지 다른 일반 소프트웨어를 판매하고 있던 그를 V3는 한눈에 사로잡았

다고 한다. 제품 자체에 개발자의 순수한 땀과 열정이 고스란히 스며있단 생각과 더불어, 컴퓨터 백신이라면 소프트웨어 정품 판매가

여의치 않은 국내시장도 제대로 한번 도전해 볼 만하다는 자신감이 그를 자극시킨 것이다. 실제로 그는 V3를 만난 지 얼마 지나지 않

아 창업을 결심한다. ‘안랩 교육부문 총판업체’라는 타이틀을 내건 비츠코리아의 탄생이다.

27

Ahn

Lab'

s P

artn

er

그렇다면 비츠코리아는 자사의 경쟁력을 어떻게 분석하고 있을까. 김

종원 비츠코리아 채널마케팅팀장은 “신뢰와 안정성, 적응력 등 세 가

지가 경쟁력”이라고 단언했다. 벤더사와 파트너사 사이의 신뢰 구축,

안정적인 운용, 시대변화 적응 등이 타사에 비해 뛰어나다는 설명이

다. 이 주장에는 분명 설득력이 있어 보인다. 전국 20여 곳의 EP(교육

파트너), GP(공공 파트너)와 함께 전국 단위의 지원 체계를 구축한 점

이 이를 대변한다. 경쟁력이 없는 업체는 쉽게 도태되는 냉혹한 IT업

계의 현실에서 오랜 기간 여러 업체들과 파트너십을 이어오는 것은

보통의 내공으로는 어려운 일이기 때문이다.

전략제품 및 신제품 판매로 시장개척 선도

임 대표는 여기에 한가지를 더 추가했다. ‘안랩 프라이버시 매니지

먼트(AhnLab Privacy Management)’를 비롯한 안랩의 전략제품

군과 신제품 등이 당장 매출에 기여하는 측면이 낮더라도, 시장개

척의 일환으로 꾸준히 판매에 매진해온 것이 잠재력을 키우는 데에

도움이 됐다는 것이다.

비츠코리아는 교육분야 매출에만 주력하는 ‘교육 총판’이었다가, 약

3년 전부터 공공분야에까지 외연을 확장했다. 이는 성장 동력의 주

요 촉매제가 됐다. 매년 두 자리수 이상의 매출 성장을 기록한 것이

다. 여기에는 시기에 맞는 과감한 투자와 정책 결정도 한 몫을 차

지했다. 최근 들어 개인정보보호가 화두가 되면서 안랩 프라이버시

매니지먼트가 각광을 받음에 따라, 비츠코리아는 자체적으로 전국

6개 도시에서 ‘개인정보콘퍼런스’를 개최하는 등 과감한 판매 전략

을 편 것이다.

시의 적절한 정책 결정, 급속 성장의 열쇠

이를 통해 주요 정부기관 및 공기업 등 대형 고객사를 유치하는 괄

목할 만한 성장을 이뤘다. 임 대표는 “안랩의 이미지에 누가 되지

않도록 고객 지원에 최선을 다했다”며 “동시에 시의 적절한 제품

프로모션을 진행했기 때문에 소기의 성과를 거둘 수 있었던 것 같

다”고 평가했다.

이렇듯 오랜 동지인 비츠코리아가 바라보는 안랩은 과연 어떤 회사

일까. 임 대표를 비롯한 임직원들은 안랩을 “총 134건의 특허를 보

유한 국내 최고의 기술력을 지닌 보안기업”이라고 말했다. 또 외산

업체들과 달리, 수익과 관계없이 국내에서 발생한 보안 침해 사고

에 가장 발 빠르고 능동적으로 대처하는 기업이라고도 했다. 파트

너와 성장하겠다는 마케팅 정책에도 높은 점수를 매겼다.

그러면서 “보안 소프트웨어 분야에서는 최고의 입지를 다졌고 비

약적인 발전을 이뤘지만 하드웨어 분야에서는 아직 확고한 위치를

점하지 못한 것 같아 아쉽다”며 “파트너사들과 더 노력해서 국내는

물론 세계적인 통합보안 업체로 자리매김하길 바란다”고 조언했다.

진짜 승부를 준비하는 비츠코리아

비츠코리아는 지난 13년 사이 가시적인 성장을 기록했지만 때이른

만족은 금물이라고 생각한다. 어쩌면 보안업체로선 이제부터가 ‘진

짜 승부’일지 모르기 때문이다. 보안의 중요성이 날로 커지고 있고

그 영역 역시 예측하기 힘들 정도로 광범위해지고 있어서다.

이런 시기에 맞춰 비츠코리아는 안랩의 전 제품을 기반으로 소프트

웨어와 하드웨어를 가리지 않고 유통 및 컨설팅, 기술지원 등을 책

임지는 기업으로 거듭나겠다는 포부를 다졌다. 임 대표는 “업계에

서 내로라 하는 마케팅 전문가를 임원으로 이미 영입했다”며 “2년

여 전부터 공공시장 하드웨어를 담당하는 네트워크보안팀을 새로

꾸리기도 했다”고 만반의 준비를 마쳤음을 내비쳤다.

마지막으로 임 대표는 성공의 가도에서 함께 해준 자사 임직원들에

게 감사 인사를 전했다. 그는 “비츠코리아의 진짜 숨은 저력은 가족

같은 ‘친근한 기업 문화’일 수도 있다”며 “누구 하나 이탈하지 않고

오랜 기간 함께 해주었기 때문에 비츠코리아가 빛을 보았다. 그들

에게 진심으로 감사 인사를 전하며 더 큰 성장을 위해 앞으로도 함

께 하자고 말하고 싶다”고 했다.

▲ 비츠코리아 임직원들이 파이팅을 외치고 있다.

▲ 비츠코리아 임직원들이 한창 회의를 진행 중이다.

A H N L A B N E W S

28

안랩, 글로벌 어워즈서 2관왕 쾌거

안랩(www.ahnlab.com)이 세계적 권위의 ‘인포 시큐리티 글로벌

엑설런스 어워즈(Global Excellence Awards)’에서 2관왕을 수상하

는 쾌거를 이뤘다.

개인 PC용 보안 솔루션인 V3 클릭이 ‘최고의 백신상(Anti-Malware,

Anti-Spam or Anti-Virus)’ 부문에서 금상을, APT(Advanced

Persistent Threat, 고도화된 지능형 타깃 위협) 대응 솔루션인 안

랩 MDS(국내 제품명 트러스와처)가 ‘신제품 출시(New product

launch)’ 부문에서 동상을 각각 받았다.

‘V3 클릭’은 USB 기반의 소형 장비에 백신 소프트웨어를 탑재한 미

국지역 전용 개인 PC용 보안 솔루션이다. PC의 USB 포트에 연결하

면 자동으로 작동하며 PC 내 악성코드가 침투할 경우 색상 변화로

감염 여부를 알려주고 치료 해주는 신개념 보안 솔루션이다.

PC의 종류와 상관없이 사용할 수 있는 데다가, 복잡한 인증 및 설치

과정없이 바로 사용할 수 있어 편리하다. 작고 휴대가 간편해 언제

어디서든 인터넷 보안 위협으로부터 안전한 PC 환경을 제공한다.

V3 클릭은 이번 어워즈에서 제품의 참신함과 높은 성능이 좋은 평

가를 받아 ‘최고의 백신’ 부문에 선정됐다.

김홍선 안랩 대표는 “V3 클릭은 다른 글로벌 보안 제품과 차별되는

새로운 콘셉트의 하드웨어-소프트웨어 융합형 제품이고, 안랩 MDS

는 세계적으로도 큰 경쟁자가 없을 만큼 앞선 기술의 APT 전용 솔루

션”이라며 “안랩은 향후에도 독보적 기술을 바탕으로 전략 제품을 선

보여 가장 큰 소프트웨어 시장인 미국에서 가시적인 성과를 낼 것”이

라고 말했다.

올해로 9회를 맞은 ‘인포 시큐리티 글로벌 엑설런스 어워즈’는 정보

보안 제품 및 기술 전문지인 ‘인포 시큐리티 프로덕트 가이드(Info

Security Products Guide)’가 주최하며 글로벌 보안 기업을 대상으

로 제품, 서비스, 미래 기술, 최고 보안 책임자, CEO 등 전 분야에 걸

쳐 탁월한 업체 및 개인을 선정해 시상한다.

[그림 1] V3 클릭

[그림 2] 안랩 MDS(국내 제품명 트러스와처)

신제품 출시 부문에서 동상을 받은 ‘안랩 MDS’는 클라우드 기반 분

석 엔진, 행위 기반 분석 엔진, 동적 콘텐츠 분석 엔진 등으로 다차원

악성코드 분석 및 탐지 기능을 제공한다. 이는 메모리 보호 기능을 우

회하는 ROP 공격을 포착하는 기술로 최근 급증하는 제로데이 공격

도 놓치지 않고 감지하는 세계적으로도 앞선 기술이다. 안랩 MDS는

APT 대응 신기술, 높은 성능 등을 인정받아 이번 상을 받았다.

A H N L A B N E W S

29

스마트폰 보안 위협이 갈수록 커지고 있는 가운데, 안랩은 최근 스마

트폰 보안 관련 기술 2종에 대해 국내 특허를 획득했다고 밝혔다. 자

동화 도구로 생성된 변종 악성 애플리케이션을 진단하는 ‘악성 애플

리케이션 진단 장치 및 방법’ 기술과 악성 통신을 통합적으로 방지하

는 ‘악성 통신 검사 장치 및 방법’ 기술이 그것이다.

‘악성 애플리케이션 진단 장치 및 방법’은 변종 악성 애플리케이션까

지 진단하는 것이 특징이다. 기존 악성 애플리케이션 진단 기술은 하

나의 악성 파일에 대해서는 정확히 진단하지만, 자동화 도구 등을 이

용해 생성된 대량의 변종 파일에 대해서는 악성 여부를 진단할 수 없

는 문제점이 있었다.

이번 특허 기술은 모바일 악성 애플리케이션에서 변경이 어려운 핵

심적인 공통 특징 정보를 진단에 활용하는데, 이를 통해 외형적으로

는 다르지만 본질적으로 같은 종류의 변종 및 신종 악성 파일을 더욱

정확하게 진단할 수 있다.

‘악성 통신 검사 장치 및 방법’ 기술은 최근 사회적 문제가 되고 있는

스마트폰의 문자와 전화에 수신되는 피싱과 스팸 모두를 효과적으로

차단하는 기술이다. 기존 기술은 각종 악성 통신 중에서 어느 하나의

악성 통신만을 방어하는 것이 대부분이어서 이들 모든 악성 통신에

안랩의 APT 대응 솔루션 ‘트러스와처(해외 제품명 AhnLab MDS)’에

탑재한 기술이 특허를 획득했다.

이번 특허 기술은 MS워드, 아래아한글, PDF, 플래시 플레이어, 문

서 및 스크립트 등의 비실행 파일이 악성코드를 포함하고 있는지

를 악성코드가 실행되기 전에 신속하고 정확하게 검사할 수 있

는 기술이다. 안랩이 세계 최초로 개발해 ‘트러스와처’에 탑재한

‘DICA(Dynamic Intelligent Contents Analysis) 기술’의 핵심 요소

로, 악성 비실행 파일의 취약성을 이용한 APT 공격을 효과적으로 방

어할 수 있다.

특허 기술명은 ‘디버그 이벤트를 이용한 악성 셸 코드 탐지 장치 및 방

법’이다. 응용 프로그램 동작 시 메모리 영역에서 일어나는 비정상적

인 코드의 실행 여부를 판별해내는 것이 이번 특허 기술의 특징이다.

트러스와처에는 이번 특허 기술 외에 다양한 기술이 탑재됐다. 시그

니처 기반 분석 엔진, 행위 기반 분석 엔진, 동적 콘텐츠 분석 엔진으

로 다차원적인 악성코드를 분석 및 탐지하는 것이 트러스와처의 강

점이다. 최근에는 메모리 보호 기능을 우회하는 ROP 공격을 포착하

는 신기술을 탑재했다. 이는 제로데이 공격도 놓치지 않고 감지하는

세계적으로도 앞선 기술이다.

조시행 안랩 전무는 “안랩은 APT 공격을 효과적으로 방어하는 글로

벌 수준의 원천 기술을 보유했다. 앞으로도 국내는 물론 글로벌 시장

을 이끌어가는 혁신 기술을 끊임없이 개발해 나가겠다”고 말했다.

창립 이래 연구개발에 적극 투자해 혁신 기술 개발을 선도해온 안랩

은 현재까지 유효한 누적 특허 획득 건수가 134건으로 국내 보안 소

프트웨어 업계 중 최고 기록을 보유하고 있다. 해외에서도 특허협력

조약(PCT) 국제 출원 58건, 국가별 출원 21건으로 세계적인 소프트

웨어 기업들과 어깨를 나란히 하고 있다.

대응하기 위해서는 각각의 기술 모두를 탑재해야 했다.

이번 특허 기술은 발신 종류 정보, 수신 시각 정보, 수신 단말 구별 정

보, 발신 번호의 전화번호부 등록 여부 등 식별 정보 데이터를 수집한

후에 발신 번호 별로 계수한 뒤 여기서 나온 계수값에 기반해 악성 통

신 여부를 검사한다. 이를 통해 각종 악성 통신을 통합적으로 방지할

수 있다.

안랩은 ‘악성 애플리케이션 진단 장치 및 방법’ 기술을 자사 모바일

악성코드 분석을 위한 시스템에 적용했다. 또한 ‘악성 통신 검사 장치

및 방법’ 기술은 향후 자사의 모바일 전용 보안 솔루션 ‘V3 모바일’에

적용하는 것을 검토하고 있다. 이는 지식경제부 및 한국산업기술평

가관리원(KEIT)이 추진한 WBS(월드 베스트 소프트웨어) 과제의 주요

성과 중 하나라는 점에서 더욱 의미가 있다.

조시행 안랩 전무는 “최근 모바일 장비, 특히 안드로이드 운영체제를

사용하는 스마트기기들에 대한 보안 위협이 증가하고 있으며 이는

실제 피해로 이어지고 있다”며 “안랩은 모바일 보안을 주도하는 기업

으로서 그 동안의 축적된 기술을 바탕으로 강력한 보안과 사용자 편

의성 모두를 제공해 나가겠다”고 말했다.

악성코드 실행 전, 신속•정확한 검사

피싱•스팸 등 악성 통신 ‘통합’ 방지

APT 대응 기술 특허 ‘주목’

스마트폰 보안 기술 특허 2종 획득

30

보안 통계와 이슈 S T A T I S T I C S

2월 악성코드, 트로이목마가 54.7%

ASEC이 집계한 바에 따르면, 2013년 2월에 감염이 보고된 악성코드

는 전체 670만 8830건인 것으로 나타났다. 이는 전월 960만 2029건

에 비해 289만 3199건, 약 30%가 감소한 수치다. 이 같은 감소는 2월

명절 연휴와 짧은 일수 등이 반영된 것으로 분석된다.

악성코드를 유형 별로 살펴보면 트로이목마(Trojan)가 54.7%로 가장

높은 비율을 나타냈고 웜(Worm)이 5.4%, 스크립트(Script)가 4.1%로

각각 집계됐다. [그림 2]는 2013년 2월, 1개월 동안 안랩 고객으로부터

감염이 보고된 악성코드의 유형 별 집계 결과다.

악성코드 유형 별 감염 비율을 지난 1월과 비교하면 [그림 3]과 같다.

트로이목마, 웜, 바이러스, 애드웨어가 전월에 비해 증가했고 스크립트,

스파이웨어는 감소세를 보였다. 다운로더, 애프케어 계열은 전월 수준

을 유지했다. [그림 4] 신종 악성코드 유형별 분포

안랩 시큐리티대응센터(ASEC)는 최근 ASEC 리포트를 통해 지난 2013년 2월의 보안 통계 및 이슈를 전했다. 2월의 주요 보안 이슈

를 살펴본다.

2월 악성코드, 전월 대비 289만 건 감소 ASEC, 2월 통계 및 보안이슈 발표

[그림 1] 월 별 악성코드 감염 보고 건수 변화 추이 [그림 3] 2013년 1월 vs. 2013년 2월 악성코드 유형별 비율

2월 최다 신종 악성코드 역시 트로이목마

2월에 신규로 접수된 악성코드 중 감염 보고가 가장 많았던 20건을 살

펴본 결과 트로이목마의 일종인 Win-Trojan/Agent.98375가 10만

6049건으로 전체 17.7%를 기록해 1위를 차지했다.

[그림 2] 2013년 2월 악성코드 유형별 감염 비율

31

발행인 : 김홍선

발행처 : 주식회사 안랩

경기도 성남시 분당구 삼평동 673

T. 031-722-8000 F. 031-722-8901

편집인 : 안랩 세일즈마케팅팀

디자인 : 안랩 UX디자인팀

Copyright(c) AhnLab,Inc. 2013 All Rights Reserved.

본 간행물의 어떤 부분도 안랩의 서면 동의 없이 복제, 복사, 검색 시스템

으로 저장 또는 전송될 수 없습니다. 안랩, 안랩 로고는 안랩의 등록상표입

니다. 그 외 다른 제품 또는 회사 이름은 해당 소유자의 상표 또는 등록상

표일 수 있습니다. 본 문서에 수록된 정보는 고지없이 변경될 수 있습니다.

경기도 성남시 분당구 삼평동 673

T. 031-722-8000 F. 031-722-8901

Copyright (c) AhnLab, Inc. 2013 All rights reserved.

http://www.ahnlab.com

http://blog.ahnlab.com

http://twitter.com/ahnlab_man