이미 소장하고 있다면 판매해 보세요.
|
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 언락 ____무선으로 공격 가능한 오버플로우 __정리 |
|
★ 이 책에서 다루는 내용 ★
■ iOS의 내부 기능과 취약점 확인 ■ 암호화, 취약점 찾기, 공격 코드 작성 관련 모든 요소 ■ 주요 페이로드 확인과 iOS에서 ROP로 할 수 있는 것과 없는 것 ■ 커널 구조와 IOKit 드라이버, 커널 디버깅과 취약점 공격 방법 ■ 모바일 사파리에서 PDF와 파워포인트 문서를 퍼징하는 기술 ■ 여러 가지 형태의 탈옥 방법 ■ 이 책의 웹사이트: 소스코드와 추가 도구 제공www.wiley.com/go/ioshackershandbook ★ 이 책의 대상 독자 ★ 이 책은 iOS 디바이스가 어떻게 동작하는지 궁금한 모든 이를 대상으로 한다. 탈옥 커뮤니티에 관여하고 싶은 사람이나 데이터를 안전하게 저장하고자 하는 애플리케이션 개발자, iOS 디바이스를 안전하게 사용하고 싶은 회사 관리자, iOS의 결점을 찾아내려는 보안 연구자 등을 꼽을 수 있다. 대다수 독자는 이 책의 전반부 내용을 쉽게 이해할 수 있을 것이다. 기초부터 시작해서 후반부로 갈수록 기본적인 내용을 이해하고 있어야 한다. 예를 들면 디버거를 어떻게 사용하고 코드를 어떻게 읽는지 등이다. ★ 이 책의 구성 ★ 이 책은 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)에 대해 알아본다. 베이스밴드 운영체제를 조사하고 여러 가지 취약점을 살펴본다. 베이스밴드 운영체제에서 실행되는 페이로드를 살펴보는 것으로 마무리한다. |