Top

안드로이드 모바일 악성코드와 모의 해킹 진단

  • 지은이조정원, 박병욱, 남대현, 김형범
  • ISBN : 9788960775640
  • 40,000원
  • 2014년 05월 29일 펴냄
  • 페이퍼백 | 532쪽 | 188*250mm
  • 시리즈 : 디지털 포렌식, 해킹과 보안

책 소개

요약

이 책에서는 요즘 큰 이슈가 되고 있는 안드로이드 모바일 앱 분석에 필요한 내용들을 다룬다. 안드로이드 악성코드 앱 분석을 통해 모바일 보안 위험에 대한 문제점을 살펴보며, 실무에서도 활용할 수 있는 안드로이드 앱 진단 방법을 이해하기 쉽게 설명한다. 환경구축부터 접근법, 분석 방법을 전반적으로 다루므로 입문자부터 중급자까지 쉽게 따라 하며 배울 수 있다.

이 책에서 다루는 내용

■ 안드로이드 앱 분석 환경 구축 방법
■ 안드로이드 앱 구조 분석과 각 영역 요소별 위협
■ 악성코드 앱 분석 도구 설명과 상세 분석 예제
■ 안드로이드 앱 서비스 진단 방법과 프로세스의 이해
■ 안드로이드 해킹대회 앱 문제 풀이를 통한 심화 학습

이 책의 대상 독자

■ 모바일 악성코드 분석 기술을 익히고 싶은 독자
■ 모바일 해킹/보안에 사용할 수 있는 진단 도구를 익히고 싶은 독자
■ 모바일 보안 위협에 대해 전반적으로 이해하고 싶은 독자
■ 모바일 서비스 진단을 이해하고 활용하고 싶은 독자

이 책의 구성

이 책은 안드로이드 모바일 보안 위협 분야에 관심이 있는 입문자들을 대상으로 구성했다. 큰 주제는 ‘악성코드 분석’과 ‘모바일 서비스 진단’으로 이뤄졌으며, 각 장에는 이를 분석하기 위한 절차가 포함돼 있다. 또한 직접 제작된 해킹 대회 앱 문제를 통해 재미있게 복습할 수 있는 시간을 마련했다. 각 장은 다음과 같이 구성했다.

1장, 안드로이드의 기본 개념: 안드로이드에 대한 기본 개념을 소개한다. 악성코드를 분석하는 환경을 구축하기 전에 안드로이드에 대한 전반적인 개념과 구조를 파악한다. 안드로이드 개발 책은 아니기 때문에 꼭 필요한 부분만 다뤘으며, 간단한 개념을 배워두어야 이후에 설명하는 분석 단계들을 이해하고 따라 하는 데 문제가 없다.

2장, 안드로이드 앱 진단 환경: 안드로이드 분석에 필요한 환경 구축 방법을 다룬다. 악성코드를 분석하거나, 모바일 앱 서비스를 진단하려면 안드로이드 개발 환경을 구성해야 한다. 구글에서는 안드로이드 SDK, NDK 등을 제공하며, 자바 애플리케이션 개발도구와 완벽하게 연결된 진단 환경을 제공한다. 진단을 위해 어떤 도구들이 필요한지, 도구들을 어떻게 활용할 수 있는지 상세히 다룬다.

3장, 안드로이드 앱 분석 방법: 안드로이드 악성코드 앱과 취약점을 진단할 때 갖춰야 할 분석 방법을 다룬다. 3장에서 다룬 내용은 4장, 5장, 7장 등에서 사용되므로 반드시 숙지해야 한다.

4장, 악성코드 분석: 이 책의 하이라이트 중 하나로, 악성코드를 분석하기 위해 온라인 분석 서비스 활용, 이런 분석이 어떤 것을 의미하는지, 수동으로 분석할 때 어떤 절차로 진행하는지 등을 자세히 다룬다. 다양한 접근 방법을 알아가기 때문에 이 중에서 자신에게 맞는 방법론을 찾아내길 바란다.

5장, 안드로이드 모바일 서비스 진단: 안드로이드 앱 서비스 진단 방법을 다룬다. 테스트 앱을 통해 실무에서도 활용할 수 있는 방법을 상세히 소개한다. OWASP에서 제공한 기준을 중심으로 다뤘으며, 각 진단 방법과 이에 대한 대응 방안을 제시한다.

6장, 안드로이드 진단 도구 활용: 안드로이드 앱 분석 진단 도구를 소개한다. 안드로이드 앱을 분석하는 데 활용할 수 있는 중요 도구들을 추가로 소개했다. 패킷 분석과 취약점 분석, 공개 프레임워크 진단 도구들을 다루면서 포괄적인 진단 방법을 확인할 수 있다.

7장, 안드로이드 해킹대회 앱 문제 풀이: 안드로이드 악성코드 분석과 진단을 통해 다뤘던 기술과 도구들을 활용하기 위해 복습 차원에서 안드로이드 해킹 대회 문제 풀이를 소개한다. 해킹대회에서 모바일 앱 진단 문제들이 많이 출제되고 있어 대회를 준비하는 사람들에게도 유용한 정보를 제공한다.

이 책의 특징

이 책은 요즘 이슈가 되고 있는 안드로이드 모바일 앱 분석에 필요한 내용들을 다뤘다. 악성코드 분석을 통해 안드로이드 앱의 위험성에 대해 알 수 있으며, 안드로이드 앱 진단 방법을 통해 실무에서도 활용할 수 있는 기술과 프로세스를 알 수 있다. 00% 실습 형태로 환경 구축부터 접근법, 분석 방법을 소개하므로 입문자부터 중급자까지 쉽게 따라 하며 배울 수 있다.

주의할 점

이 책의 집필 목적은 모바일 보안 위협에 대한 이해와 진단 분야에 입문하기를 원하는 독자를 위한 것이다. 이 책에서는 독자의 로컬 PC에서 테스트할 수 있는 환경까지 상세히 설명했다. 이 도구를 이용해 허락 받지 않은 서비스를 대상으로 해킹을 시도하는 행위는 불법이므로 절대 금지한다. 적법하지 않은 해킹을 시도할 때 발생하는 법적인 책임은 모두 그것을 행한 사용자에게 있다는 것을 항상 명심하기 바란다.

저자/역자 소개

저자 서문

어느덧 모바일이 없으면 어색한 세상이 됐다. 나도 업무를 할 때나 집에서 문서 작업을 할 때 외에는 모바일로 정보를 검색하고, 커뮤니티를 관리하고, 소셜 네트워크를 이용해 사람들과 대화한다. 오늘날 모바일 서비스의 사용 시간은 PC 데스크탑 사용 시간을 앞선다. 출퇴근 시간이나, 사람들을 만나기 위해 기다리는 시간 등, 사람들을 만나는 중에도 모바일 기기를 손에 놓지 않는 것이니 어찌 보면 이전보다 배 이상 인터넷을 사용하는 것이라 할 수 있다. PC 데스크탑을 대상으로, 특히 윈도우 사용자를 대상으로 악성코드를 이용한 해킹 공격은 꾸준히 증가 중이다. 우리가 평상시에도 방문하는 사이트가 어느 날 갑자기 악성코드 유포지로 바뀌어 감염 당하기도 한다. 사용자들은 이런 현상들을 눈치채지 못할 뿐이다. 오직 데스크탑에 설치돼 있는 백신만 믿을 뿐이다. 모바일도 동일한 위험에 노출되고 있다. 오히려 사용자들의 개인정보(공인인증서, 사진, 기기에 저장된 서비스 계정 정보 등)가 데스크탑보다 모바일 기기에 더 많이 들어있다는 것은 누구나 아는 사실이다. 그래서 범죄자는 모바일 사용자를 대상으로 수많은 악성코드를 배포한다. 사회적으로 중대한 사건이 발생하면 이를 악용하는 파렴치한 일도 서슴지 않는다. 국내 모바일 기기 사용자의 90% 이상은 안드로이드 사용자이기 때문에 이들을 대상으로 어떤 정보이든 획득하기 위해 범죄자는 지금도 밤낮을 가리지 않고 열심히 연구한다. 우리는 이런 범죄자 이상으로 더 많이 연구해 대응 방법을 강구해야 한다. 이 책은 이런 악성코드가 어떻게 배포되고, 구성돼 있는지, 사용자, 개발자 입장에서 어떻게 대응해야 하는지 상세히 다룬다. 또한 진단자 입장에서 어떻게 앱을 우회해 민감한 정보를 사용할 수 있는지 모의해킹 점검 방법에 맞춰 다룬다. 보안 컨설턴트나 담당자라면 바로 활용할 수 있는 진단 방법들이다.
조정원

안드로이드 악성코드 분석과 진단에 관심을 갖게 된 계기는 많은 사람이 안드로이드 스마트폰을 사용하면서 악의적인 생각으로 일반 사용자들에게 피해를 주는 스미싱 공격 기법이 기승을 부리기 시작한 때부터다. 나 또한 현재도 스미싱 관련 메시지를 종종 받는다. 스미싱 관련 메시지를 받고 바로 삭제하지 않고 안드로이드 악성 드가 어떻게 동작하고, 어떻게 사용자에게 피해를 주는지 알아보기 위해 안드로이드 악성코드 분석 연구를 시작했다. 처음에는 많이 힘들었지만, 안드로이드 악성코드를 분석하면서 악성코드의 동작 원리와 사용자에게 끼치는 피해 사항들을 하나하나 알아가는 것이 마치 퍼즐을 푸는 과정처럼 매우 즐거웠다.
안드로이드 악성코드 분석과 진단에 대해 지금도 많은 사람이 궁금해 하며, 도전하고 있을 것이라 생각한다. 독자들도 나와 같은 즐거움을 느낄 수 있게 많은 내용을 이 책에 담았다.
이 책에 수록된 내용들이 안드로이드 악성코드 분석과 진단의 전부는 아니다. 하지만 가급적 중요한 내용을 많이 수록하려고 노력했으니, 책을 읽는 독자들에게 안드로이드 악성코드 분석과 진단에 대한 하나의 가이드가 되었으면 한다.
박병욱

처음 써보는 지은이의 말이 낯설다. 기술장이라(기술 잡지에 기고는 여러 번 해봤지만) 누군가에게 읽힐 글쓰기의 어려움을 느끼는 시점이다. 이 글을 쓸 때쯤 “내가 썼던 내용들이 독자들에게 쉽게 다가갈 수 있는 내용들이었나?”라고 되짚어본다. 어디에서 읽은 말인지 누군가에게 들었던 말인지 확실하지는 않지만 “설명하고자 하는 것을 한 줄로 쓸 수 없다면 그것에 대해 아는 게 아니다.”라는 말이 머리에 남는다. 설명을 더 많이 필요로 하는 부분에서는 누구나 이해할 수 있게 풀어 쓰려 노력했고, “이 정도는 알겠지”라는 생각에 넘어간 부분도 더러 있다. 하지만 모든 내용이 모든 사람에게 쉽게 다가가지는 않을 것이다. 모바일 환경은 우리 생활의 많은 부분을 차지하고, 중요한 부분으로 자리 잡고 있다. 아무쪼록 내가 집필한 내용이 모바일 악성코드, 모바일 보안을 연구하는 이들에게 도움이 되었으면 하는 바람이다.
남대현

2009년도 말, 국내에 아이폰이 도입된 이후 우리나라의 모바일 시장은 급성장하기 시작했으며, 이제는 남녀노소 누구나 활용하고, 지하철, 버스, 화장실, 사무실 등 장소와 관계없이 언제 어디서나 무선을 통해 네트워크로 접속할 수 있는 환경이 갖춰졌다. 또한 오늘날의 현대인들은 모바일을 통해 은행, 쇼핑몰 등 각종 편리한 서비스를 제공받으며, 회사의 비즈니스를 처리하는 BYOD(Bring Your Own Device) 족이 급증하고 있다. 이런 편리성과 효율성으로 인해 짧은 시간 안에 모바일 관련 시장이 급성장했지만, 그만큼 많은 보안 취약점을 드러내고 있다. 특히 안드로이드는 개방형 OS라는 특성으로 인해 해커들의 좋은(?) 놀이터가 되었으며, 이에 따라 국내외에서는 보안 대책을 강구했고 OWASP(국제 웹 표준 기구)에서도 ‘OWASP Mobile Top 10’ 보안 위협을 발표했다. 이처럼 점점 이슈가 뜨거워지는 시점에 많은 흥미를 느끼며 모바일 진단에 대한 관련 자료들을 검색해 공부했고, 이제는 그 당시의 열정을 담아 팀원들과 한 권의 책을 집필하게 됐다. 이 책을 통해 많은 사람이 좀 더 쉽게 모바일 분석과 진단 분야에 접근할 수 있기를 바란다. 이 책의 주요 부분인 악성코드 분석을 통해 이 분야에 관심이 많은 독자들의 열정을 채워 줄 뿐만 아니라, OS에 대한 높은 이해도를 증진시켜줄 것이다. 또한 모의 침투를 시도해봄으로써 안드로이드 취약점 진단에 대한 개념을 잡아줄 것이라 생각한다. 악성코드 분석과 진단을 시작하려는 독자들에게 흥미와 재미뿐만 아니라 열정을 불러일으킬 수 있는 좋은 입문서가 될 것이라 자부한다.
김형범

저자 소개

조정원

KB투자증권에서 보안 업무를 담당하며, 현재 보안프로젝트(www.boanproject.com) 운영자로 활동 중이다. 에이쓰리시큐리티에서 5년 동안 모의 해킹 컨설턴트를 했으며, 모의 해킹 프로젝트 매니저, 웹 애플리케이션, 소스코드 진단 등 다양한 영역에서 취약점 진단을 수행했다. 이후 KTH 보안 팀에서 모바일 서비스, 클라우드 서비스 보안, 침해사고 대응 업무를 했다. 저서로는 『모의 해킹이란 무엇인가?』가 있으며, 공동 저서로는 『백트랙을 활용한 모의 해킹』, 『(개정판) 칼리 리눅스와 백트랙을 활용한 모의 해킹』, 『Nmap NSE를 활용한 보안 취약점 진단』, 『디지털 포렌식의 세계』, 『크래커 잡는 명탐정 해커』 등이 있고, 보안프로젝트 멤버들과 다양한 영역에서 연구원과 저자로 꾸준히 활동 중이다.

박병욱

두잇시스템 보안파트에 몸담고 있으며, 현재 LG 전자에서 개인 정보보호 업무를 수행 중이다. 국회 도서관에서 3년 6개월 동안 보안 시스템을 운영하면서 각종 로그들을 분석하고, 내외부의 불법적인 침입 시도와 오/남용, 악의적인 행위 등 위험 요소에 대한 사전 차단과 침해사고 대응 업무를 수행했다. 공동 저서로 『백트랙을 활용한 모의 해킹』, 『(개정판) 칼리 리눅스와 백트랙을 활용한 모의 해킹』, 『Nmap NSE를 활용한 보안 취약점 진단』이 있으며, 보안프로젝트(www.boanproject.com)에서는 백트랙/칼리 리눅스 도구 분석, 엔맵 스크립팅 엔진 소스코드와 원리 분석, 안드로이드 악성 코드 분석 등을 진행하며, 보안프로젝트 멤버들과 다양한 영역에서 연구와 활동 중이다.

남대현

현재 스마트TV 보안 취약점 진단을 하고 있고, 보안프로젝트에서 모바일 PM으로 활동 중이다. 공기업, 은행, 증권, 카드 사 등의 모의해킹, S전자 무선사업부의 모바일 취약점 진단을 수행했다. 모바일 보안, Source Auditing, 임베디드, 사물인터넷(IoT) 보안에 관심이 많고 오늘도 즐기고 있다.

김형범

㈜에스에스알의 관리컨설팅 팀에서 ISMS 인증, ISO27001인증, PIMS 인증, 개인정보 보호 컨설팅 등의 업무를 담당 중이며, 보안프로젝트에서는 리버싱 및 역곡역 오프라인 모임을 시작으로 현재까지 활동 중이다.

목차

목차
  • 1장 안드로이드의 기본 개념
  • 1.1 안드로이드 아키텍처
    • 1.1.1 리눅스 커널
    • 1.1.2 라이브러리
    • 1.1.3 안드로이드 런타임
    • 1.1.4 애플리케이션과 프레임워크
    • 1.1.5 디바이스 파일 디렉터리 구조
  • 1.2 안드로이드 필수 구성 요소
    • 1.2.1 액티비티
    • 1.2.2 서비스
    • 1.2.3 콘텐트 프로파이더
  • 1.3 안드로이드 앱의 기본 구조
  • 1.4 정리

  • 2장 안드로이드 앱 진단 환경
  • 2.1 안드로이드 환경 구축
    • 2.1.1 안드로이드 SDK설치
    • 2.1.2 ADK 설치
    • 2.1.3 안드로이드 개발 환경 테스트
    • 2.1.4 리눅스에 안드로이드 환경 구축
  • 2.2 패킷 분석 점검 환경 구축
    • 2.2.1 무선 공유기(무선AP)를 이용한 정보 수집
    • 2.2.2 USB 타입 지원 AP(게이트웨이 지원)를 이용한 정보 수집
    • 2.2.3 애드혹 설정을 이용한 정보 수집
    • 2.2.4 tcpdump 바이너리를 이용한 정보 수집
  • 2.3 디바이스 플랫폼 변경
    • 2.3.1 공격 코드를 통해 알아보는 루팅
    • 2.3.2 테그라크 커널 이용
    • 2.3.3 CF-Auto-Root 이용
  • 2.4 안드로이드 진단 도구 설명
    • 2.4.1 ADB 기본 명령
    • 2.4.2 디바이스에서 apk 파일 보내기/가져오기
      • 2.4.2.1 adb shell을 이용해 가져오기
      • 2.4.2.2 탐색기를 통해 가져오기
    • 2.4.3 로그캣을 이용한 분석
      • 2.4.4 pm 명령을 이용한 디바이스 정보 획득
      • 2.4.5 Busybox를 이용한 안드로이드 명령 확장
  • 2.5 에디터를 이용한 파일 포맷 분석
  • 2.6 정리

  • 3장 안드로이드 앱 분석 방법
  • 3.1 디컴파일을 이용한 정적 분석
  • 3.2 동적 디버깅을 통한 분석
  • 3.3 코드 패칭을 이용한 apk 파일 우회
  • 3.4 안드로가드를 이용한 분석
    • 3.4.1 Androapkinfo를 이용한 정보 확인
    • 3.4.2 Androxml을 이용한 바이너리 XML 확인
    • 3.4.3 Androlyze를 이용한 분석
    • 3.4.4 Androdd를 이용한 apk 파일 구조 확인
    • 3.4.5 Androdiff와 Androsim을 이용한 파일 비교
  • 3.5 DroidBox를 이용한 자동 분석
    • 3.5.1 adb 명령을 path로 설정
    • 3.5.2 안드로이드 SDK Manager를 이용해 Packages 업데이트
  • 3.6 Sublime 플러그인을 이용한 분석
  • 3.7 APKInspector를 이용한 분석
  • 3.8 dexplorer와 dexdump를 이용한 분석
  • 3.9 Santoku를 활용한 모바일 앱 분석
    • 3.9.1 산토쿠 진단 도구
    • 3.9.2 산토쿠 실행과 설치 방법
    • 3.9.3 산토쿠에서 모바일 앱 리버싱
  • 3.10 정리

  • 4장 악성코드 분석
  • 4.1 온라인 분석 서비스 활용
    • 4.1.1 Anubis를 이용한 악성 앱 분석
    • 4.1.2 바이러스토탈 서비스를 이용한 악성 앱 분석
    • 4.1.3 바이러스토탈 앱을 이용한 진단
    • 4.1.4 andrototal을 이용한 진단
    • 4.1.5 apkscan 앱을 이용한 진단
    • 4.1.6 Dexter를 이용한 진단
    • 4.1.7 APK Analyzer를 이용한 진단
  • 4.2 악성코드 앱 수동 분석
    • 4.2.1 smartbilling.apk 악성코드 분석(디바이스 정보 획득)
    • 4.2.2 alayac.apk 악성코드 분석(백신 앱 변조)
    • 4.2.3 miracle.apk 악성코드 분석(디바이스 정보 전송)
    • 4.2.4 phone.apk 악성코드 분석(금융 앱 변조)
    • 4.2.5 apk-locker를 이용한 사례
  • 4.3 악성코드 위협 사용자 대응
    • 4.3.1 의심스러운 URL 클릭과 다운로드 금지
      • 4.3.1.1 스미싱 차단 앱 설치
    • 4.3.2 모바일 백신 설치와 최신 업데이트 유지
    • 4.3.3 불필요한 무선 인터페이스 사용 중지
    • 4.3.4 플랫폼 구조 임의 변경 금지
    • 4.3.5 삼성 녹스(SE Android 기반) 이용한 보안
  • 4.4 정리

  • 5장 안드로이드 모바일 서비스 진단
  • 5.1 가상 취약점 진단 테스트 환경 구성
  • 5.2 OWASP TOP 10 기준 모바일 보안 위협
  • 5.3 안전하지 않은 데이터 저장
    • 5.3.1 가상 애플리케이션 실습
    • 5.3.2 /data/data/ 디렉터리 확인
    • 5.3.3 대응 방안
  • 5.4 취약한 서버 측 제어
    • 5.4.1 가상 애플리케이션 실습
  • 5.5 취약한 암호 사용
  • 5.6 불충분한 전송 계층 보호(비암호화 통신)
    • 5.6.1 SSL/TLS을 이용한 암호화
  • 5.7 소스코드 내의 정보 노출
  • 5.8 중요한 정보 노출
    • 5.8.1 메모리 내의 중요 정보 노출
    • 5.8.2 가상 애플리케이션 실습
  • 5.9 로그 정보 노출
  • 5.10 웹 서비스 취약점 항목 진단
  • 5.11 앱 대응 방안: 소스코드 난독화
    • 5.11.1 프로가드
    • 5.11.2 프로가드에서 키 생성
    • 5.11.3 프로가드 설정
    • 5.11.4 프로가드로 생성된 파일 설명
    • 5.11.5 프로가드의 결과물
  • 5.12 정리

  • 6장 안드로이드 진단 도구 활용
  • 6.1 PacketShark: 네트워크 패킷 캡처 앱
  • 6.2 Drozer 모바일 진단 프레임워크
  • 6.3 ASEF - 모바일 취약점 도구
    • 6.3.1 apk 파일 설치를 통한 점검
  • 6.3.2 디바이스 apk 파일 점검
  • 6.4 Droidsheep: 웹 세션 하이재킹 도구
  • 6.5 dSploit: 네트워크 진단 도구
    • 6.5.1 포트 스캔 작업
    • 6.5.2 정보 획득
    • 6.5.3 로그인 체크
    • 6.5.4 중간자 정보 획득(MITM) 공격
  • 6.6 AFLogical: 모바일 포렌식 도구
  • 6.7 정리

  • 7장 안드로이드 해킹대회 앱 문제 풀이
  • 7.1 안드로이드 앱 문제 1
    • 7.1.1 문제 제시와 의도
    • 7.1.2 문제 풀이
  • 7.2 안드로이드 앱 문제 2
    • 7.2.1 문제 제시와 의도
    • 7.2.2 문제 풀이
  • 7.3 안드로이드 앱 문제 3
    • 7.3.1 문제 제시와 의도
    • 7.3.2 문제 풀이
  • 7.4 안드로이드 앱 문제 4
  • 7.5 정리

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안