로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

iOS 해킹과 보안 가이드

 [iOS 공격 사례와 방어 기술 에이콘 해킹 보안 시리즈 53]
   
지은이 찰리 밀러, 디오니소스 블라자키스, 디노 다이 조비, 빈센조 이오조, 스테판 에서, 랄프필립 와인만   |   출판사 에이콘  |   발행일 2014년 06월 27일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 35,000원31,500원 10%
마일리지 5% 1,750원
발행일 2014-06-27
ISBN 8960775789 | 9788960775787
기타정보 번역서 | 516쪽 | 일반
예상출고일 1일 (근무일기준)
배송비 무료배송
   
보안/안전
종합지수 1p 333 위
   
이 책의 원서
  IOS Hacker's Handbook
WILEY | Charles Miller
 

아이폰과 아이패드를 비롯한 iOS 기반 디바이스에 발생할 수 있는 모든 보안 위험성에 대해 설명하는 책이다. 맥 OS와 iOS 보안의 전문가인 저자들이 iOS의 내부를 파헤쳐 취약점을 확인하고, 공격을 방지하는 방법도 알려준다. 또한 운영체제의 동작과 보안 아키텍처를 다루며, 각 부분과 관련된 보안 위험을 설명한다.



[ 이 책에서 다루는 내용 ]



■ iOS의 내부 기능과 취약점 확인

■ 암호화, 취약점 찾기, 공격 코드 작성 관련 모든 요소

■ 주요 페이로드 확인과 iOS에서 ROP로 할 수 있는 것과 없는 것

■ 커널 구조와 IOKit 드라이버, 커널 디버깅과 취약점 공격 방법

[이 책의 대상 독자]



이 책은 iOS 디바이스가 어떻게 동작하는지 궁금한 모든 이를 대상으로 한다. 탈옥 커뮤니티에 관여하고 싶은 사람이나 데이터를 안전하게
저장하고자 하는 애플리케이션 개발자, iOS 디바이스를 안전하게 사용하고 싶은 회사 관리자, iOS의 결점을 찾아내려는 보안 연구자 등을
꼽을 수 있다.

대다수 독자는 이 책의 전반부 내용을 쉽게 이해할 수 있을 것이다. 기초부터 시작해서 후반부로 갈수록 기본적인 내용을 이해하고 있어야
한다. 예를 들면 디버거를 어떻게 사용하고 코드를 어떻게 읽는지 등이다.



■ 모바일 사파리에서 PDF와 파워포인트 문서를 퍼징하는 기술

■ 여러 가지 형태의 탈옥 방법

■ 이 책의 웹사이트: 소스코드와 추가 도구 제공

[ 이 책의 구성]



이 책은 iOS의 기능별로 구성이 나뉘어 있다. 읽는 방법은 여러 가지다. 이 책의 주제에 대해 잘 모르거나 하나도 빠짐없이 읽고 싶은
독자라면 처음부터 끝까지 읽으면 된다. 기본적인 내용은 전반부에 있고 뒤로 갈수록 복잡하다. 이미 iOS의 내부 동작에 대해 어느 정도
지식을 가지고 있다면 앞부분은 건너뛰고 필요한 부분만 골라 읽어도 된다. 각 장은 대부분 독립적으로 구성되어 있다. 다른 장의 내용을
참조할 경우 어디를 보아야 할지 명시해두었다. 각 장은 다음과 같이 구성되어 있다.



- 1장: iOS 디바이스와 iOS 보안 아키텍처를 개략적으로 설명한다. 이 책에서 어떤 내용을 다룰지도 전반적으로 소개한다.
iOS 5의 보안 아키텍처에 대한 공격을 포함해서 여러 iOS 버전에 대한 공격을 소개한다.

- 2장: 기업에서 사용하는 iOS에 대해 다룬다. 기업에서 디바이스를 관리하고 설정하는 등의 내용을 살펴본다. 기업용 디바이스를
위해 개발하는 방법과 개발자 인증서와 프로비저닝 프로파일의 동작도 알아본다.

- 3장: iOS가 민감한 데이터를 암호화해서 다루는 방식을 알아본다. 암호화 키를 어떻게 얻고 사용하는지 살펴본다. 암호화의
여러 단계에 대해서도 알아본다. 애플리케이션 개발자가 민감한 데이터를 보호하기 위해서 데이터 보호 API를 사용하는 방법을 알아본다.
마지막으로 단순한 방법으로 비밀번호를 뚫는 것을 통해 네 자리 숫자 암호가 얼마나 비효율적인지 보여준다.

- 4장: iOS의 가장 기본적인 보안 매커니즘인 코드 서명에 대해 알아본다. 관련된 소스 코드와 바이너리를 역공학해서 신뢰된
곳으로부터 서명된 코드만 디바이스에서 실행될 수 있음을 확인한다. 최근 추가된 iOS 코드 서명의 기능으로 인해, 서명되지 않은 코드가
매우 정교하게 제어되는 상황에서 JIT 컴파일을 통해 실행될 수 있음을 보여준다. 마지막으로 iOS 5 초기 버전의 코드 서명 메커니즘의
문제를 설명한다.

- 5장: iOS의 샌드박싱에 대해 다룬다. iOS 커널이 어떻게 후크가 중요한 위치에 놓이게 하는지 알아보고 샌드박싱을 위해
사용되는 후크를 알아본다. 예제를 통해 애플리케이션과 iOS의 중요 함수가 어떻게 샌드박싱을 하는지 살펴본다. 마지막으로 샌드박스
프로파일을 알아보고, 샌드박스에서 허용되는 함수를 기술하고 iOS 바이너리에서 추출하는 방법을 설명한다.

- 6장: 퍼징(fuzzing)으로 iOS의 기본 애플리케이션에 있는 취약점을 찾아내는 방법을 알아본다. 퍼징의 기초에서부터
시작해서 iOS의 가장 큰 공격 범위인 모바일 사파리를 퍼징하는 예를 살펴본다. iOS 퍼징이 OS X, iOS 시뮬레이터, 그리고 실제
디바이스에서 각각 어떻게 다른지 알아본다. 데스크탑 컴퓨터에서는 찾을 수 없는 SMS 파서를 퍼징하는 것을 보여주는 것으로 마무리한다.

- 7장: 이 장에서는 앞에서 살펴본 방법으로 찾은 취약점을 이용해서 공격 코드를 만드는 방법을 살펴본다. iOS의 힙 관리
시스템과 공격 코드를 작성할 때 힙 풍수를 이용하는 방법을 알아본다. 그리고 공격 코드 개발 시 가장 큰 장벽인 주소 영역
무작위배치(ASLR)에 대해서 알아본다.

- 8장: 프로세스에 대한 제어를 얻으면 무엇을 할 수 있는지 알아본다. iOS 디바이스에서 사용하는 ARM 아키텍처를 간단히
살펴보고 ROP로 넘어간다. ROP 페이로드를 수동/자동으로 만드는 방법을 알아보고 ROP 페이로드의 예제도 보여준다.

- 9장: 사용자 영역에서 커널로 넘어간다. 커널의 기초를 소개한 다음 iOS 커널을 디버깅해서 동작을 확인하는 방법을 설명한다.
커널의 취약점을 조사하고 여러 형태의 취약점에 대한 공격을 알아본다.

- 10장: 탈옥이 어떻게 동작하는지 기초에서부터 알아보고 여러 형태의 탈옥을 자세히 살펴본다. 탈옥에 필요한 요소인 파일 시스템
수정, 데몬 설치, 활성화를 알아보고 탈옥으로 커널을 패치하는 과정을 자세히 살펴본다.

- 11장: 여러 iOS 디바이스에 있는 베이스밴드 프로세서에 대해 살펴본다. 베이스밴드와 상호작용하기 위한 도구를 설정하는
방법과 iOS 디바이스에 사용된 베이스밴드에서 실행되는 실시간 운영체제(RTOS)에 대해 알아본다. 베이스밴드 운영체제를 조사하고 여러
가지 취약점을 살펴본다. 베이스밴드 운영체제에서 실행되는 페이로드를 살펴보는 것으로 마무리한다.


www.wiley.com/go/ioshackershandbook

1장 iOS 보안의 기초
__iOS 하드웨어/디바이스 타입
__앱스토어 보안
__보안 위협
__iOS 보안 구조
____공격 범위 축소
____iOS 기능 축소
____권한 분리
____코드 서명
____데이터 실행 보호(DEP)
____주소 영역 무작위 배치(ASLR)
____샌드박싱
__iOS 공격 기법의 역사
____Libtiff
____SMS로 장난치기
____Ikee 웜
____Storm8
__SpyPhone
__Pwn2Own 2010
__Jailbreakme.com 2(‘Star’)
__Jailbreakme.com 3(‘Saffron’)
__정리

2장 기업 환경의 iOS
__iOS 설정 관리
____모바일 설정 프로파일
____아이폰 설정 유틸리티
______설정 프로파일 생성
______설정 프로파일 설치
______프로파일 업데이트
______프로파일 삭제
______프로파일 프로비저닝
__MDM
____MDM 네트워크 통신
____라이온 서버의 프로파일 매니저
______프로파일 매니저 설정
______설정 만들기
______디바이스 등록
__정리

3장 암호화
__데이터 보호
____데이터 보호 API
__데이터 보호 기능 공격 방법
____사용자 암호 공격
__아이폰 데이터 보호 도구
____도구 설치를 위한 준비 작업
____램디스크 빌드
____램디스크 부팅
____네 자리 암호에 대한 무작위 공격
____키체인 덤프
____데이터 파티션 덤프
____데이터 파티션 복호화
__정리

4장 코드 서명과 메모리 보호
__접근 제어
____AMFI 훅
____AMFI와 exev
__프로비저닝 동작 과정
____프로비저닝 프로파일
____프로비저닝 파일 검증
__애플리케이션 서명 과정
__Entitlement
__코드 서명 동작 과정
____서명 정보 수집과 검증
____프로세스에 대해 코드 서명을 검증하는 과정
____서명된 페이지가 변경되지 않게 iOS에서 보장하는 방법
__동적 코드 서명
____모바일 사파리가 특별한 이유
____커널에서 JIT를 처리하는 과정
____모바일 사파리에서 공격
__코드 서명 무력화
____iOS 셸코드 교체
____iOS에서 메터프리터 사용
____앱스토어 승인받기
__정리

5장 샌드박싱
__샌드박스 기본 구조
__앱을 샌드박스에 적용
__샌드박스 구현 세부 사항
____유저 영역 라이브러리 구현 세부 사항
____커널로 들어가기
____TrustedBSD 정책 구현
____유저 영역에서 설정하는 과정
____정책 적용
____프로파일 바이트코드
__샌드박스가 앱 스토어와 플랫폼 애플리케이션에 미치는 영향
__정리

6장 퍼징
__퍼징의 동작 방식
__퍼징 방법
____변이 기반(단순) 퍼징
____생성 기반(똑똑한) 퍼징
____테스트 케이스 제출과 모니터링
__사파리 퍼징
____인터페이스 선택
____테스트 케이스 작성
____애플리케이션 테스트와 모니터링
__PDF 퍼징
__퀵 룩 퍼징
__시뮬레이터로 퍼징
__모바일 사파리 퍼징
____인터페이스 선택
____테스트 케이스 만들기
____모바일 사파리 퍼징과 모니터링
__PPT 퍼징
__SMS 퍼징
____SMS의 기초
____PDU 모드
____PDUspy 사용
____사용자 데이터 헤더 정보 이용
____연속적인 메시지 조작
____UDH 데이터의 다른 타입 이용
____설리로 생성 기반 퍼징
____iOS에 SMS 삽입
____SMS 모니터링
____SMS 버그
__정리

7장 취약점 공격
__공격 코드 버그의 종류
____객체 생애 취약점
__iOS 시스템 할당기 이해
____영역
____할당
____할당 해제
__iOS 할당기 길들이기
____도구
____Alloc/Dealloc의 기초
______연산 취약점 공격
______객체 생애 관련 취약점 공격
__TCMalloc의 이해
____라지 객체의 할당과 해제
____스몰 객체 할당
____스몰 객체 해제
__TCMalloc 길들이기
____힙 배치를 예측 가능하게 만들기
____힙 조작 코드를 디버깅하기 위한 도구
____TCMalloc으로 연산 취약점 공격: 힙 풍수
____TCMalloc으로 객체 생애 취약점 공격
__ASLR의 저항
__사례 연구: Pwn2Own 2010
__테스트 하부 구조
__정리

8장 ROP
__ARM 기초
____iOS 호출 규약
____시스템 콜 호출 규약
__ROP 입문
____ROP와 힙 버그
____수동으로 ROP 페이로드 만들기
____ROP 페이로드 작성 자동화
__iOS에서 ROP로 할 수 있는 일
____ROP 페이로드 테스트
__iOS의 ROP 셸코드 예제
____파일 내용 빼내기 페이로드
____두 개의 공격 코드를 연결하기 위한 ROP 사용(JailBreakMe v3)
__정리

9장 커널 디버깅과 취약점 공격
__커널 구조
__커널 디버깅
__커널 익스텐션과 IOKit 드라이버
____IOKit 드라이버 객체 트리 재구성하기
____커널 익스텐션에서 취약점 찾기
____IOKit 드라이버의 취약점 찾기
______디바이스 속성을 통해 공격
______외부 트랩과 함수를 통한 공격
__커널 취약점 공격
____임의의 메모리 덮어쓰기
______커널에 취약점 패치
______덮어쓸 대상 선택
______시스템 콜 테이블 찾기
______공격 코드 만들기
____초기화되지 않은 커널 변수
____커널 스택 버퍼 오버플로우
____커널 힙 버퍼 오버플로우
______커널 힙 구역 할당기
______커널 힙 풍수
______커널 힙의 상태 알아내기
______커널 힙 버퍼 오버플로우 공격
__정리

10장 탈옥
__탈옥을 하는 이유
__탈옥의 유형
____탈옥의 지속성
______불완전 탈옥
______완전 탈옥
____공격 코드 유형
______부트롬 레벨
______iBoot 레벨
______사용자 영역 레벨
__탈옥 프로세스의 이해
____부트롬 공격
____램디스크 부팅
____파일 시스템 탈옥
____언테더링 공격 코드 설치
____AFC2 서비스 설치
____기본 유틸리티 설치
____애플리케이션 숨기기
____번들 설치
____설치 후 프로세스
__커널 페이로드와 패치 실행
____커널 상태 되돌리기
____권한 상승
____커널 패치
______security.mac.proc_enforce
______cs_enforcement_disable (kernel)
______cs_enforcement_disable (AMFI)
______PE_i_can_has_debugger
______vm_map_enter
______vm_map_protect
______AMFI 바이너리 트러스트 캐시
______Task_for_pid 0
______샌드박스 패치
______캐시 지우기
__깔끔한 리턴
__정리

11장 베이스밴드 공격
__GSM 기초
__OpenBTS 설정
____필요한 하드웨어
____OpenBTS 설치와 설정
______닫힌 설정과 애스테리스크 다이얼링 규칙
__스택 아래의 RTOS
____Nucleus PLUS
____ThreadX
____REX/OKL4/Iguana
____힙 구현
______Nucleus PLUS의 동적 메모리
______ThreadX의 바이트 풀
______퀄컴 모뎀 힙
__취약점 분석
____베이스밴드 펌웨어 획득과 추출
____IDA Pro에 펌웨어 이미지 로딩
____애플리케이션/베이스밴드 프로세스 인터페이스
____스택 트레이스와 베이스밴드 코어 덤프
____공격 범위
____1999년 같은 바이너리 코드 정적 분석
____명세서를 참고한 퍼징 테스트
__베이스밴드 공격하기
____로컬 스택 버퍼 오버플로우: AT+XAPP
____ultrasn0w 언락
____무선으로 공격 가능한 오버플로우
__정리

저자 : 찰리 밀러

저자 찰리 밀러(Charlie Miller)는 Accuvant 연구소의 수석 연구원이다. 밀러 박사는 국가안보국(NSA)에서 5년 동안 국제 네트워크 취약점 공격 분석가로 활동했다. 최초로 아이폰과 G1 안드로이드 폰에서 공개된 원격 취약점 공격을 찾아냈다. 지난 4년간 연속으로 CanSecWest Pwn2Own 해킹대회에서 수상했다. 텍스트 메시지를 이용해서 아이폰을 공격했으며, iOS에 악성코드를 집어넣을 수 있는 코드 서명의 문제를 찾아냈다. 이 문제를 알리고 나서 iOS 개발자 프로그램에서 쫓겨나기도 했다. 두 권의 정보 보안 책을 썼으며 노트르담 대학에서 박사 학위를 받았다.



저자 : 디오니소스 블라자키스

저자 디오니소스 블라자키스(Dionysus Blazakis)는 취약점 공격 완화를 전문으로 하는 프로그래머이자 보안 연구가다. 여러 보안 학회에서 취약점 공격 완화, 완화 우회, 취약점을 찾는 새로운 방법에 관해 발표했다. 찰리 밀러와 함께 작업한 iOS 공격코드로 Pwn2Own 2011에서 아이폰 취약점 공격상을 받았다. JIT 컴파일러를 통해 데이터 실행 보호를 우회한 기술을 발표해서 2010 Pwnie의 가장 혁신적인 연구상을 받았다.



저자 : 디노 다이 조비

저자 디노 다이 조비(Dino Dai Zovi) 는 Trail of Bits의 창립자이자 CTO이다. red teaming, 침투 테스트, 소프트웨어 보안, 정보 보안 관리, 사이버보안 연구개발 등 정보 보안 분야에서 십 년 넘게 일했다. 메모리 오염 취약점 공격 기술, 802.11 무선 클라이언트 공격, 인텔 VT-x 가상화 루트킷에 관한 연구에 대해 DEFCON, Black Hat, CanSecWest 등 여러 정보보안 학회에서 발표했다. 또한 『The Mac Hacker’s Handbook』(Wiley, 2009)와 『The Art of Software Security Testing』(Addison-Wesley, 2006)의 공동 저자다. 정보 보안과 맥 분야에서 CanSecWest 2007의 첫 Pwn2Own 경진대회에서 우승한 것으로 가장 잘 알려져있다.



저자 : 빈센조 이오조

저자 빈센조 이오조(Vincenzo Iozzo) 는 Tiqad srl사의 보안 연구가이다. Black Hat과 CanSecWest를 포함한 여러 보안 학회에서 발표했다. Pwn2Own 2010과 Pwn2Own 2011에서 블랙베리 OS와 아이폰 OS의 공격 코드를 공동 작성해서 수상한 것으로 유명하다. Black Hat과 Shakacon의 심의 위원회(review board)에 참여하고 있다. 트위터 계정은 @_snagg다.



저자 : 스테판 에서

저자 스테판 에서(Stefan Esser)는 보안 커뮤니티에서 PHP 보안 전문가로 알려져 있다. 2002년에 PHP 코어 개발자가 되기 전에는 PHP와 PHP 애플리케이션의 취약점을 연구했다. 초기에는 CVS, Samba, OpenBSD, 인터넷 익스플로러 등과 같은 소프트웨어의 취약점에 대해서 많은 의견을 내놓았다. 2003년에 그는 최초로 수정되지 않은 XBOX 하드디스크에서 XBOX 폰트 로더의 버퍼 오버플로우를 통해 리눅스를 부팅했다. 2004년에는 좀 더 안전한 PHP를 개발하기 위한 Hardened-PHP 프로젝트를 설립했는데 이는 2006년에 Suhosin PHP 보안 시스템으로 발전했다. 2007년까지 공동 창업한 독일 웹 애플리케이션 회사인 SektionEins GmbH의 연구개발을 이끌었다. 2010년까지 iOS의 보안 주제들을 연구했고 2011년에 공격 코드를 통한 탈옥을 만들었는데 이는 애플이 여러 번 업데이트 하는 동안 살아남았다.



역자 : 장민경

역자 장민경은 고려대학교 컴퓨터학과에서 학부와 석사과정을 마쳤고, 삼성전자와 LG전자에서 모바일 플랫폼/애플리케이션 관련 연구원으로 일했다. 여러 회사와 일을 거치면서 소프트웨어 개발자와 아이 엄마라는 두 가지 일을 동시에 해나가려 노력 중이다.



역자 : 남기혁

역자 남기혁은 고려대 컴퓨터학과에서 학부와 석사 과정을 마친 후 한국전자통신연구원에서 선임 연구원으로 재직하던 중 네트워크 제어 및 검증 솔루션 회사인 ㈜프리스티를 창업했다. 관심 분야는 SDN을 비롯한 네트워크 제어 및 가상화, 시스템 검증 기술이다. 에이콘 출판사에서 출간한 『Early Adopter Curl』(2002), 『GWT 구글 웹 툴킷』(2008), 『코코아 터치 프로그래밍』(2010), 『해킹 초보를 위한 USB 공격과 방어』(2011), 『HTML5 비디오』(2012), 『자바 7의 새로운 기능』(2014)을 번역했다.


등록된 서평이 없습니다.
 
전체평균(0)
회원평점   회원서평수 0
찰리 밀러 의 최근 저서
 
iOS 개발자를 위한 해킹과 보안 세트 (전2권)
57,600원
(10%↓+5%)
 
디오니소스 블라자키스 의 최근 저서
 
iOS 개발자를 위한 해킹과 보안 세트 (전2권)
57,600원
(10%↓+5%)
 
디노 다이 조비 의 최근 저서
 
iOS 개발자를 위한 해킹과 보안 세트 (전2권)
57,600원
(10%↓+5%)
 
빈센조 이오조 의 최근 저서
 
iOS 개발자를 위한 해킹과 보안 세트 (전2권)
57,600원
(10%↓+5%)
 
스테판 에서 의 최근 저서
 
iOS 개발자를 위한 해킹과 보안 세트 (전2권)
57,600원
(10%↓+5%)
 
에이콘 출판사의 신간
R고 하는 금융분석
파람 지트, 파라샨트 바츠 저
27,000원
(10%↓+5%)
 
퍼펙트 프리젠테이션 시즌 2
김재성 저
27,000원
(10%↓+5%)
 
리눅스 컨테이너 LXC
콘스탄틴 이바노프 저
27,000원
(10%↓+5%)
 
AWS 관리 Cookbook
루카스 챈, 로완 유델 저
27,000원
(10%↓+5%)
 
이더리움을 활용한 블록체인 프로젝트 구축
나라얀 프루스티 저
27,000원
(10%↓+5%)
 
이메일주소수집거부