Top

모바일 애플리케이션 침투 테스팅 [iOS/안드로이드 애플리케이션의 동작 원리와 예제를 중심으로]

  • 원서명Mobile Application Penetration Testing (ISBN 9781785883378)
  • 지은이비제이 쿠마 벨루(Vijay Kumar Velu)
  • 옮긴이김대혁
  • ISBN : 9791161750057
  • 30,000원
  • 2017년 06월 15일 펴냄
  • 페이퍼백 | 336쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.

요약

모바일 기기의 사용자 수가 늘어나고 용도와 기능이 확대되면서 기기에서 동작하는 애플리케이션도 다양해지고 있다. 이와 동시에 모바일 애플리케이션에 대한 공격 방법과 가능성이 커지면서 애플리케이션 보안에 대한 중요성도 높아지고 있다.
이 책은 iOS와 안드로이드 플랫폼에서 동작하는 애플리케이션의 보안 검증을 위한 침투 테스트 방법론을 여러 예제와 함께 다룬다. 방법론을 설명하기에 앞서 각 플랫폼의 동작 원리와 보안 모델을 설명해 잠재적인 애플리케이션 취약점을 생각해볼 수 있게 한다. 마지막 부분에서는 앞서 다룬 잠재적 공격에 대해 애플리케이션의 보안을 어떻게 강화할 수 있을지에 대해 다룬다.
이 책의 개념과 기법들은 모바일 애플리케이션 개발자와 보안 전문가 뿐만 아니라, 모바일 애플리케이션 개발을 배우고자 하는 독자들에게도 도움이 될 것이다.

이 책에서 다루는 내용

■ 안드로이드, iOS의 아키텍처와 최근 변경 사항에 대한 깊은 이해
■ 모든 애플리케이션을 평가하기 위한 여러 가지 도구의 사용법
■ 모바일 기기에 연결하기 위한 전략과 기법 개발
■ 모바일 애플리케이션 보안 원칙의 기초
■ 안드로이드 기기의 구성 요소와 iOS 기기의 기능을 공격하기 위한 기법
■ 안드로이드, iOS 애플리케이션을 위한 안전한 개발 전략
■ 모바일 애플리케이션에 대한 위협 모델링 이해
■ 안드로이드, iOS의 구현 취약점과 모바일 앱 개발 과정에서의 대응책에 대한 이해

이 책의 대상 독자

모바일 애플리케이션 리더, 모바일 애플리케이션 개발자, 정보 보안 실무자, 인프라스트럭쳐 웹 애플리케이션 침투 테스터, 애플리케이션 보안 전문가에게 추천한다.
모바일 애플리케이션 보안을 직업으로 삼으려고 한다면, 이 책은 여러분은 위한 것이다. 이 책은 안드로이드와 iOS에 대한 침투 테스트를 시작하기 위해 필요한 모든 기술들을 제공한다.

이 책의 구성

1장, ‘모바일 애플리케이션 보안 지형’에서는 모바일 애플리케이션 보안의 현 상태와 안드로이드와 iOS 애플리케이션에서 공개된 취약점에 대한 개요를 설명한다. 또한 취약점에 대한 기준과 모바일 애플리케이션을 안전하게 만드는 원칙을 세우기 위해 OWASP 10대 취약점에 대해 배운다. 2장, ‘아키텍처 맛보기’에서는 아키텍처의 중요성을 이야기하고, 안드로이드와 iOS 아키텍처의 기본적인 내부 구조에 대해 알아본다.
3장, ‘테스트 환경 구축하기’에서는 주어진 워크스테이션에서 테스트 환경을 어떻게 설정하는지 살펴보고, 안드로이드와 iOS 기기에서의 단계별 과정을 알아본다.
4장, ‘로딩 업-모바일 침투 테스팅 도구’에서는 주어진 모바일 앱을 평가하는 데 필요한 도구를 워크스테이션에서 어떻게 빌드하고 설정하는지 알아본다.
5장, ‘공격 경로 만들기 - 애플리케이션 위협 모델링’에서는 주어진 위협 모델에 대해 공격 경로와 공격 트리를 어떻게 만드는지 알아본다.
6장, ‘전속력으로 - 안드로이드 애플리케이션 공격’에서는 안드로이드 애플리케이션의 보안 취약점과 그것을 공격하기 위해 안드로이드 애플리케이션에 어떻게 침투하는지 알아본다.
7장, ‘전속력으로-iOS 애플리케이션 공격’에서는 iOS 애플리케이션의 취약점과 애플리케이션에 영향을 주는 기기 취약점을 공격하기 위해 iOS 애플리케이션에 어떻게 침투하는지 알아본다.
8장, ‘안드로이드와 iOS 애플리케이션 보호’에서는 설계 단계부터 안드로이드와 iOS 애플리케이션을 보호하는 실제 방법을 알아보고, 기기의 민감한 데이터를 보호하기 위한 여러 가지 API 활용법을 알아본다.

저자/역자 소개

지은이의 말

모바일 기술의 확산은 세계를 변화시켰고, 특히 스마트폰은 모든 사람의 삶과 기업에서 중요한 부분이 됐다.
전 세계적으로 스마트폰 사용자 수가 10억 명에 달하면서, 모바일 애플리케이션은 기기가 할 수 있는 거의 모든 부분에서 중요한 역할을 차지하게 됐다. 대부분의 경우 보호하고자 하는 유일한 자산이 데이터므로 애플리케이션 보안은 항상 나중에 생각하게 된다.
이 책의 목적은 클라이언트(기기) 측 애플리케이션 보안의 약점과 안드로이드와 iOS의 잘못된 설정이 잠재적인 정보 유출로 이어질 수 있다는 점을 알려주고 보여주는 데 있다.

지은이 소개

비제이 쿠마 벨루(Vijay Kumar Velu)

현재 인도의 가장 큰 자문 회사 네 군데 중 한 곳의 사이버 보안 기술 관리자로 일하며, 열정적인 정보 보안 전문가이자, 발표자로 블로그를 운영하고 있다. 10년 이상 IT 산업계에서 경험을 쌓았으며, 침투 테스터 자격을 갖고 있다. 간단한 보안 설정 검토부터 사이버 위협 고도화에 이르는 다양한 사이버 프로그램의 기술 솔루션을 전문적으로 제공한다. CEH(Certified Ethical Hacker), ECSA(EC-council Certified Security Analyst), CHFI(Computer Hacking Forensics Investigator)를 포함한 다수의 보안 자격을 획득했다. 실무에 활용할 수 있는 기술적인 도전을 좋아한다.
NCSS(National Cyber Security Summit)와 InCyCon(Indian Cyber Conference), OpenCloud Conference 그리고 인디아에서 열린 Ethical Hacking Conference에 초청돼 발표했으며, 인도의 여러 경영 대학원에서 정보 보안의 중요성에 대한 다수의 트레이닝과 초청 강연을 했다. 정보 보안 커뮤니티에서 CSA(Cloud Security Alliance) 대표와 NCDRC(National Cyber Defence and Research Center) 이사직을 맡고 있다.

옮긴이의

모바일 보안에 대한 인식과 중요성이 높아지는 가운데 이 책을 번역하면서 의미 있는 시간을 보낼 수 있었다. 이 책은 iOS와 안드로이드 플랫폼에서 동작하는 애플리케이션에 대한 침투 테스트 방법론을 다양한 예제로 설명한다. 많은 이들이 이 책을 통해 모바일 애플리케이션 보안을 좀 더 쉽게 이해하는 계기가 됐으면 한다.

옮긴이 소개

김대혁

현재 미국 카네기멜론대학교(Carnegie Mellon University) 컴퓨터과학과 박사과정에 재학 중이며, 컴퓨터 네트워크와 분산 시스템 분야를 연구하고 있다. 컴퓨터 시스템 및 네트워크 분야 전반에 관심이 있으며, 특히 성능 최적화와 보안 연구에 중점을 두고 있다.

목차

목차
  • 1장. 모바일 애플리케이션 보안 지형
    • 스마트폰 시장 점유율
      • 안드로이드 운영 체제
      • iPhone 운영 체제
    • 모바일 애플케이션의 형태
      • 네이티브 앱
      • 모바일 웹 앱
      • 하이브리드 앱
    • 공개된 안드로이드와 iOS 취약점
      • 안드로이드 취약점
      • iOS 취약점
    • 모바일 애플리케이션 보안의 어려움
      • 모바일 애플리케이션 보안의 영향력
      • 모바일 애플리케이션 침투 테스트의 필요성
    • 모바일 애플리케이션 침투 테스팅 방법론
      • 발견
      • 분석/평가
      • 공격(Exploitation)
      • 보고
    • OWASP 모바일 보안 프로젝트
      • OWASP 10대 모바일 위험 요소
      • 테스트를 위한 취약한 애플리케이션
    • 요약

  • 2장. 아키텍처 맛보기
    • 아키텍처의 중요성
    • 안드로이드 아키텍처
      • 리눅스 커널
      • 안드로이드 런타임
      • 자바 가상 머신
      • 달빅 가상 머신
      • 핵심 자바 라이브러리
      • ART
      • 네이티브 라이브러리
      • 애플리케이션 프레임워크
      • 애플리케이션 레이어
      • 안드로이드 애플리케이션 구성 요소
      • 안드로이드 디버그 브릿지
      • 애플리케이션 샌드박싱
      • 애플리케이션 서명
      • 안전한 프로세스 간 통신
      • 안드로이드 권한 모델
      • 안드로이드 애플리케이션 제작 과정
      • 안드로이드 루팅
    • iOS 아키텍처
      • Cocoa Touch
      • Media
      • 코어 서비스
      • 코어 OS
    • iOS SDK와 Xcode
    • iOS 애플리케이션 프로그래밍 언어
      • Objective-C
      • Swift
    • 애플리케이션 상태에 대한 이해
    • 애플의 iOS 보안 모델
      • 기기 수준 보안
      • 시스템 수준 보안
      • 데이터 수준 보안
    • iOS 8과 9에서의 변화
      • 네트워크 수준 보안
      • 애플리케이션 수준 보안
      • iOS 앱 샌드박스
    • iOS 격리
      • 프로세스 격리
      • 파일 시스템 격리
      • ASLR
      • 스택 보호 (실행 불가능 스택과 힙)
    • 하드웨어 수준 보안
    • iOS 권한
    • iOS 애플리케이션 구조
    • 탈옥
      • 왜 탈옥을 하는가?
      • 탈옥의 종류
      • 탈옥 도구 한 눈에 보기
    • Mach-O 바이너리 파일 포맷
      • Mach-O 바이너리 검사
    • 프로퍼티 리스트
    • iOS 파일 시스템 탐색
    • 요약

  • 3장. 테스트 환경 구축
    • 모바일 앱 침투 테스트 환경 설정
    • 안드로이드 스튜디오와 SDK
      • 안드로이드 SDK
    • 안드로이드 디버그 브리지
    • 기기에 연결하기
      • 기기의 접근 권한 얻기
      • 기기에 애플리케이션 설치
      • 기기로부터 파일 추출하기
      • 기기에 파일 저장하기
      • 서비스 중지시키기
      • 로그 정보 보기
      • 앱 사이드로딩 하기
      • Monkeyrunner
    • Genymotion
      • 안드로이드 가상 에뮬레이터 생성하기
      • Genymotion 에뮬레이터에 애플리케이션 설치하기
      • Genymotion 에뮬레이터에 취약한 앱 설치하기
      • 안드로이드 스튜디오에 Genymotion 플러그인 설치하기
      • Genymotion에서 ARM 앱과 Play Store
    • 에뮬레이터에서 HTTP 프록시 설정하기
      • Wi-Fi 설정에서 프록시 설정
      • 모바일 캐리어 설정에서 프록시 설정
    • Google Nexus 5 –실제 기기 설정하기
    • iOS SDK (Xcode)
    • 필요한 도구와 함께 iPhone/iPad 설정하기
      • Cydia
    • SSH 클라이언트-PuTTy와 WinSCP
      • iFunbox 살펴보기
      • Wi-FI없이 SSH 접속하기
      • Wi-Fi를 사용할 수 있을 때 SSH 접속하기
      • 기기에 DVIA 설치하기
      • 애플 기기에 HTTP 프록시 설정하기
    • 에뮬레이터와 시뮬레이터, 실제 기기
      • 시뮬레이터
      • 에뮬레이터
      • 실제 기기
    • 요약

  • 4장. 로딩 업-모바일 침투테스팅 도구
    • 안드로이드 보안 도구
      • APKAnalyser
      • Drozer
      • APKTool
      • dex2jar API
      • JD-GUI
      • Androguard
      • 자바 디버거 소개
      • 기타 도구 목록
    • iOS 보안 도구
      • oTool
      • SSL Kill Switch
      • keychain dumper
      • LLDB
      • Clutch
      • Class-dump-z
      • Cycript를 사용한 인스트루먼테이션
      • Frida를 사용한 인스트루먼테이션
      • Hopper Snoop-it
      • iOS 기기에 Burp CA 인증서 설치하기
    • 요약

  • 5장. 공격 경로 만들기 – 애플리케이션 위협 모델링
    • 자산
    • 위협
      • 위협 에이전트
    • 취약점
    • 위험 요소
    • 위협 모델 접근법
    • 모바일 애플리케이션 위협 모델링
      • 모바일 애플리케이션 아키텍처
      • 위협 모델을 어떻게 생성할까?
      • 위협 모델링 방법론
      • STRIDE를 사용한 위협 분류
      • 스푸핑
      • 일반적인 모바일 애플리케이션 위협 모델
      • 공격 계획과 공격 트리 만들기
      • 위협 모델의 결과물
      • 위험 요소 평가 모델
    • 요약

  • 6장. 전속력으로 - 안드로이드 애플리케이션 공격
    • 대상 앱 설정하기
      • 백엔드 서버 설치
    • Drozer를 사용해 앱 분석하기
    • 안드로이드 구성 요소
      • 액티비티 공격하기
      • 서비스 공격하기
      • 브로드캐스트 리시버 공격하기
      • 컨텐트 프로바이더 공격하기
    • 웹뷰 공격하기
    • SQL 인젝션
    • 중간자 공격
      • SSL 피닝
    • 하드코딩 된 자격 증명
    • 클라이언트 측에서의 암호화와 복호화
    • JDWP를 사용한 런타임 조작
    • 저장소/아카이브 분석
    • 로그 분석
    • 구현상 취약점 평가하기
    • 바이너리 패칭
    • 요약

  • 7장. 전속력으로 - iOS 애플리케이션 공격
    • 대상 설정하기
    • 저장소/아카이브 분석
      • Plist 파일
      • 클라이언트 측 데이터 저장소
      • 키체인 데이터
      • HTTP 응답 캐싱
    • 리버스 엔지니어링
      • 클래스 정보 추출
      • Strings
      • 메모리 관리
      • 스택 스매싱 보호
    • 정적 코드 분석
      • OpenURL 스킴
    • Hopper를 사용한 앱 패칭
    • 하드코딩된 사용자 이름과 패스워드
    • Cycript를 사용한 런타임 조작
      • 로그인 과정 우회
      • 메모리 상의 민감한 정보
    • Dumpdecrypted
    • 클라이언트 측 인젝션
    • SQL 인젝션
      • UIWebView 인젝션
    • 중간자 공격
      • SSL 인증서 피닝 깨기
    • 구현 취약점
      • Pasteboard 정보 유출
      • 키보드 로그
      • 앱 상태 보존
    • LLDB를 사용한 원격 추적기 만들기
    • 평가를 위한 Snoop-IT
    • 요약

  • 8장. 안드로이드와 iOS 애플리케이션 보호하기
    • 안전한 설계
    • 개발자를 위한 보안 마인드맵 (iOS와 안드로이드)
    • 기기 수준
      • 플랫폼 (OS) 수준
      • 애플리케이션 수준
    • 네트워크 수준
      • 인증서 피닝
      • 사이퍼 수트
      • CFNetwork usage
      • 안전한 캐싱
    • 서버 수준
    • OWASP 모바일 앱 보안 체크리스트
      • 모바일 앱 개발자 체크리스트
    • 안전한 코딩 모범 사례
      • 안드로이드
      • iOS
      • 제조사 중립적인 조언
      • 개발자 치트 시트
      • 개발자 정책
    • 배포 이후 보호
      • 최신 정보 알기

도서 오류 신고

도서 오류 신고

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

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

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