장바구니 담기 close

장바구니에 상품을 담았습니다.

*OS Internals Vol 3

*OS Internals Vol 3

  • 조나단레빈
  • |
  • 에이콘출판
  • |
  • 2018-10-31 출간
  • |
  • 620페이지
  • |
  • 210 X 297 X 29 mm
  • |
  • ISBN 9791161751917
판매가

50,000원

즉시할인가

45,000

카드할인

0원(즉시할인 0%)

적립금

2,500원 적립(5%적립)

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

추가혜택

네이버페이 무조건 1%적립+ 추가 1%적립

수량
+ -
총주문금액
45,000

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




★ 이 책에서 다루는 내용 ★

■ 인증, 인가 및(macOS) 감사
■ 코드 서명
■ 소프트웨어 제한(macOS) - 게이트키퍼, 정책 및 관리를 적용한 클라이언트
■ AppleMobileFileIntegrity
■ 샌드박스
■ 시스템 무결성 보호(SIP)
■ 개인 정보 및 데이터 보호

★ 추천의 글 ★

그동안 iOS 보안과 관련된 연구 자료들은 다른 플랫폼에 비해 구하기 어려웠다. 그러다 보니 관련 연구에 입문하기도 쉽지 않았다. 이 책은 이러한 미지의 영역을 들여다본다. 먼저 코드 서명, 샌드박스, KPP 같은 iOS/macOS의 보안 메커니즘들과 AppleMobileFileIntegrity와 같이 공식적으로 문서화되지는 않았지만 중요한 역할을 하는 보안 메커니즘을 살펴본다. 그 후 천천히 탈옥 도구들을 해부한다. 2013년에 등장한 Evasi0n(iOS 6)부터 2017년 이안 비어의 async_wake(iOS 11)에 이르기까지 탈옥이 어떻게 발전해왔는지 분석한다.
탈옥이 iOS의 여러 보안 메커니즘을 우회하기 위해서는 여러 취약점이 필요하다. 하지만 무조건 특정 단계를 따라야 하는 것은 아니며, iOS는 다양한 공격 벡터들을 갖고 있기 때문에 다양한 방법을 통해 탈옥할 수 있다. 이 책에서는 탈옥 개발자들이 어떤 영리한 방법으로 탈옥을 성취하는지 상세히 분석한다. 탈옥 도구들의 내부가 얼마나 복잡하고 정교한지, 어떤 취약점들로 커널을 공격하고 TrustZone의 커널 보호를 우회하는지, 그 취약점들이 나중에 어떻게 수정되는지 또 어떻게 잘못 수정되는지에 대해 설명한다. 이 책은 전체적으로 보안 메커니즘들과 그 메커니즘들이 어떻게 우회돼왔는지에 대해 자세히 알아봄으로써 연구에 필요한 많은 인사이트를 제공한다.

이정훈(@lokihardt)

★ 이 책의 대상 독자 ★

현재 *OS Internals의 3부작 중 일부지만, 독립적인 내용인 동시에 보안 중심으로 구성돼 있다. 따라서 보안과 관련된 내용을 원하는 독자에게 유용할 것이다.
1부는 macOS 관리자와 고급 사용자는 물론, 보안 연구자와 보안 감사인에게 적합하다. 내부 API를 문서화한 부분은 퍼징(fuzzing) 또는 (애플이 승인하지 않는) 해당 서브 시스템과 인터페이스하길 원하는 프로그래머가 기본적인 내용을 학습할 때 유용할 것이다.
2부는 저수준 분야와 기술적인 부분을 다루기 때문에 나이가 어린 독자, 심약자 또는 인텔 및/또는 ARM64 어셈블리에 심한 거부감이 있는 독자에게 부적합할 수 있다. 그러나 역공학을 선호하며, 해커지향적인 독자는 원하는 내용을 찾을 수 있을 것이다. 익스플로잇과 탈옥의 작동 방법에 대한 자세한 설명과 디버거 시퀀스를 이용한 단계별 상세 지시문 그리고 다수의 디스어셈블리를 제공한다.

★ 이 책의 구성 ★

1부는 macOS에서 시스템 보안 서비스를 제공하거나 시스템을 잠그기 위해 애플에서 사용하는 보안 메커니즘과 기술을 중점적으로 다룬다. 이들 대부분은 현재 모든 플랫폼에서 공통적으로 사용되고 있다(특히, 10.11). 하지만 OS는 여전히 애플이 가장 많이 투자하는 분야다.
1장에서는 기본적으로 macOS 함수인 인증을 다루며 시작한다. 오래 전부터 사용해온 master.passwd 파일을 다루지만, PAM(Pluggable Authentication Module)과 오픈 디렉터리(Open Directory)의 macOS 구현 그리고 NIS 및 마이크로소프트의 액티브 디렉터리와 같은 외부 도메인과의 통합을 중점적으로 다룬다.
2장에서는 사용자 또는 프로세스가 승인하거나 시도한 작업을 추적하고 자세한 로그 추적을 제공하는 감사에 대해 설명한다. macOS에서의 감사는 솔라리스(Solaris)에서 차용한 기능이며, 실제로는 기본적으로 사용하고 있지만 비교적 알려지지는 않았다. 감사를 통해 클라이언트(일반적으로 관리자 또는 모니터링 소프트웨어)는 모든 시스템 측면에서 크거나 작은 사용자 또는 커널에 대해 전례 없는 수준의 모니터링을 제공한다.
3장에서는 사용자 또는 프로세스(1장에서 인증)가 작업을 허용 또는 거부하는 권한 부여를 탐색해 AAA 삼위일체를 완성한다. 그리고 (커널 확장 기능에 대한 비공식적 지원으로 *OS에서는 실제로 사용할 수 없지만) KAuth**로 알려진 커널 프로그래밍 인터페이스(KPI, Kernel Programming Interface)를 다룬다.
4장에서는 권한 부여와 커널에 대해 자세히 다루며, TrustedBSD에서 차용한 강제적 접근 통제 프레임워크(MACF, Mandatory Access Control Framework)를 자세히 다룬다. MACF는 감사보다 훨씬 강력한 기능을 갖췄다. 감사는 어떠한 사실이 발생한 이후에 알림을 제공하지만, MACF는 실제로 작업에 개입해 허용, 거부, 수정할 수 있다. MACF는 기본적으로 *OS에서 모든 애플 보안의 기반을 제공해준다. 유감스럽지만 애플이 개인 KPI로 간주하는 KAuth를 능가하는 가장 강력한 인증 메커니즘이다.
5장에서는 코드 서명(macOS의 가장 직접적인 애플리케이션)에 대해 논의한다. MACF는 애플이 iOS 초창기부터 *OS를 적용 중이며, macOS에서도 매우 최근에 적용되기 시작했다. 애플의 OS가 코드 서명을 사용하는 유일한 운영체제는 아니지만, 구현 방식은 훨씬 더 발전됐다. 또한 코드 서명은 애플리케이션 수준 보안의 기초가 되는 인타이틀먼트와 함께 사용하고 있다.
6장에서는 macOS에서 특별히 사용하는 기능인 소프트웨어 제한 메커니즘에 대해 논의한다. macOS 게이트키퍼(GateKeeper)부터 macOS 대상 멀웨어(malware) 퇴치를 위해 애플이 10.7.5에서 도입했다. 게이트키퍼는 authd 및 syspolicyd와 같은 다수의 데몬과 격리 저장소(Quarantine)라는 특수 커널 확장 기능과 상호 운용된다. 그런 다음, 기업 환경과 자녀 보호(Parental Controls)에서 사용하는 macOS의 “관리 중인 클라이언트 확장 기능(Managed Client Extensions)”을 주제로 다룬다.
7장에서는 AppleMobileFileIntegrity 또는 AMFI에 대해 설명한다. 이름에 “모바일(mobile)”이 있지만, AMFI는 iOS 코드 서명 집행자로 시작해 macOS 10.10부터 사용됐으며, 10.11에서는“시스템 무결성 보호(System Integrity Protection)”로 더 큰 역할을 하고 있다. iOS와 macOS의 구현 방법을 MACF 정책, MIG 메시지 및 IOUserClient의 역공학을 통해 심층적으로 탐구한다.
8장에서는 애플 샌드박스와 애플이 처음으로 OS 10.5에서 사용하기 시작한 “안전벨트(SeatBelt)”라는 이름의 MACF의 애플리케이션에 대해 다룬다. 이후로 조금 단순하지만 사전 동의 opt-in 구현은 매우 발전해, iOS에서 강력한 감옥(jail)의 역할을 하고 있다. 샌드박스 적용에 대해 macOS의 “앱 샌드박스(AppSandbox)”를 통한 기초에서부터 강화된 iOS 구현에 이르기까지 설명한다. 프로필, 컨테이너 및 기타 빌딩 블록에 대한 자세한 내용은 macOS 10.11의 SIP와 iOS 10 플랫폼 프로필을 논의하기 위한 기반을 마련할 것이다.
9장은 macOS의 SIP에 대해 논의한다: 기초(AMFI와 샌드박스)에 대한 설명은 SIP는 단지 시스템 차원의 정책 정의일 뿐이다. iOS 9.x에는 없지만 SIP가 *OS에서도 등장하는 것은 시간 문제일 뿐이며, iOS 10의 플랫폼 정책은 이미 매우 강화됐다.
10장에서는 개인 정보 보호에 대해 다루는데, 이는 TCCd라는 작고 문서화되지 않은 데몬에 의해 처리된다. 데몬은 특정 앱이 어떤 스토어에 접근하는지 정의하고, 개인 TCC.framework로 래핑된 XPC API를 제공하는 데이터베이스에 상주한다. 많은 소프트웨어 공급 업체가 소프트웨어를 설치한 장치를 식별하기 위해 수집을 시도하는 고유 식별자(특히, iOS의 경우)에 대한 추가 고려 사항을 다룬다.
11장은 데이터 보호에 중점을 두고 있으며, 구현 방식은 macOS와 나머지 OS에서 다르다. macOS 솔루션은 FileVault2를 통해 이뤄지며, CoreStorage와 함께 10.7에서 소개됐다. *OS 솔루션은 하드웨어 기반 키와 파일당 암호화 함수를 통해 암호화를 강화했다. CoreStorage는 애플의 새로운 파일 시스템인 APFS의 기능으로 대체됐다. 이 책은 1.4 버전쯤 돼서야 자리 잡았지만(이 번역서는 1.5.3 기준으로 했다), 이전 버전의 CoreStorage에 대한 논의를 제외하기로 결정했다. APFS의 상세한 분석은 2권에서 다룬다.
2부는 1부의 애플 엔지니어들이 최선의 계획을 기반으로 제작한 정교한 구조들이 예상과 다르게 작동한 방식에 대해 알아본다. 각 장에서는 macOS에서 악성 코드를 유발한 과거의 취약점 또는 iOS 탈옥에 대해 알아본다.
macOS의 취약점에 대해, 특히 10.10(각 부의 버전에서 중대한 변화를 갖는다)과 10.11을 괴롭혔던 몇 가지 취약점을 강조하고자 한다. iOS 취약점에 따른 탈옥을 시간 순서로 보여주기로 결정했다. 이러한 취약점과 해당 취약점의 익스플로잇를 보여주는 데 탈옥보다 더 좋은 것은 없다. 각 탈옥은 iOS(와 파생된 운영체제)를 족쇄에서 해방시킬 수 있도록 올바른 방식으로 여러 취약점의 익스플로잇을 활용한 정교하게 만들어진 모음집과 같다.
어떤 면에서 2부는 일종의 작은 “해커 핸드북”으로 생각할 수 있다. 그러나 이 책에서 제공하는 세부 수준과 깊이는 이전의 역공학 책과 보안 책보다 훨씬 자세하며 전례 없는 수준이다. 탈옥을 성공시킨 천재 중 몇 명을 개인적으로 알았지만, 그럼에도 간단하게 해결하고 싶은 충동에 저항하며, 연구자처럼 바이너리만으로 탈옥의 역공학을 수행했다. 이 과정에서 저자가 제작한 툴을 사용했으며, 이 책의 관련 웹 사이트에서 사용할 수 있다.
마지막으로, 부록에는 macOS 보안 강화 가이드가 포함돼 있다. 처음에는 그다지 좋지 않을 것이라 생각했지만, 세바스티안 볼프(Sebastien Volpe)의 질문을 통해 생각이 바뀌었다. macOS의 다양한 보안 기능에 대해 자세히 설명하고 취약점을 소개한, 이 책의 ‘비공식 요약본’이라 생각한다.

★ 옮긴이의 말 ★

오늘날 모바일 운영체제 시장은 iOS와 안드로이드가 시장을 양분하고 있다. 개인적으로 안드로이드보다 iOS 운영체제에서 모바일 애플리케이션 분석을 선호하지만, iOS 보안과 관련된 정보를 수집하는 작업은 마치 백사장에서 바늘을 찾는 것과 같다. 이러한 상황에서 iOS와 macOS의 궁금증을 해소해줄 단비와도 같은 책이 등장했다. 최근 iOS 11의 탈옥 툴인 ‘LiberiOS’의 제작자이자 온/오프라인으로 iOS 및 macOS에 관련된 양질의 정보를 제공해주던 조나단 레빈이 애플의 운영체제에 대한 심도 있는 내용과 기법을 담아 책을 출간한 것이다.
iOS가 안드로이드보다 안전한 운영체제라는 평을 받게 된 배경에는 애플의 강력한 하드웨어와 소프트웨어의 통제가 있다. 이 책의 전반부에서는 애플의 보안 메커니즘에 대해 상세한 분석을 제공한다. macOS와 iOS는 운영체제에서 많은 부분을 공유하며, 최근 등장한 watchOS도 iOS에서 파생됐기 때문에 이 책을 통해 애플의 운영체제에 적용된 보안 메커니즘을 파악할 수 있을 것이다.
이 책의 후반부에서는 애플의 견고한 보안 강화 조치를 무력화시키고 루트 권한을 획득하는 가장 극적인 해킹인 ‘탈옥’을 다룬다. 탈옥에 관심을 가졌던 독자라면 익숙한 Evasi0n, TaiG, Pangu의 탈옥 툴과 최근 구글 프로젝트 제로의 이안 비어가 공개한 탈옥 방법까지 다양한 iOS의 취약점과 익스플로잇의 상세한 분석 결과를 볼 수 있다.
책을 읽다 보면 저자의 전문성과 철학을 느낄 수 있을 것이다. 저자는 iOS와 macOS 운영체제의 심층 분석을 주제로 3부작 출간을 계획 중이며, 이 책은 시리즈 중, 마지막인 3권에 해당한다. 이 책은 난이도가 높지만, 상당한 분량을 할당해 내용을 자세하게 다루고 있다. 이 책을 읽고 나면 최신 트렌드를 어렵지 않게 파악할 수 있으며, 더 나아가 훌륭한 보안 연구가로 성장할 수 있을 것이다.


목차


1장. 인증

__패스워드 파일들(*OS)
__setuid와 setgid(macOS)
__Pluggable Authentication Module(macOS)
__opendirectoryd(macOS)
__LocalAuthentication 프레임워크
__Apple ID
__외부 계정
__참고 자료

2장. 감사

__설계
__감사 세션
__구현
__시스템 호출 인터페이스
__OpenBSM API
__감사 고려 사항
__참고 자료

3장. 권한 부여

__설계
__구현
__KAuth 인증 정보
__KAuth 신원 확인 서비스(macOS)
__KAuth 디버깅
__참고 자료

4장. 강제적 접근 제어 프레임워크

__배경
__MACF 정책
__MACF 설정하기
__MACF 콜아웃
__MACF 시스템 호출
__최종 노트
__참고 자료

5장. 코드 서명

__코드 서명 포맷
__코드 서명 요구 사항
__인타이틀먼트
__코드 서명 적용
__코드 서명 API
__참고 자료
__권한 부여

6장. 소프트웨어 제한(macOS)

__권한 부여
__authd
__게이트키퍼(macOS)
__libquarantine
__Quarantine.kext
__격리 저장소의 실제syspolicyd
__앱 위치 변경
__관리 중인 클라이언트(macOS)
__참고 자료

7장. AppleMobileFileIntegrity

__AppleMobileFileIntegrity.kext
__MACF 정책
__amfid
__프로비저닝 프로파일
__AMFI 신뢰 캐시
__AMFI User Client
__최종 노트
__참고 자료

8장. 샌드박스

__샌드박스의 진화
__앱 샌드박스(macOS)
__모바일 컨테이너(*OS)
__샌드박스 프로파일
__사용자 모드 API
__mac_syscall
__Sandbox.kext
__프로파일 평가
__sandboxd(macOS)
__참고 자료

9장. 시스템 무결성 보호(macOS)

__설계
__구현
__API
__참고 자료

10장. 개인 정보 보호

__투명성, 동의 및 제어
__고유 장치 식별자
__차등 개인 정보 보호(macOS 12/iOS 10)
__참고 자료

11장. 데이터 보호

__볼륨 레벨 암호화(macOS)
__파일 수준 암호화(*OS)
__mobile_obliterator
__KeyBags
__AppleKeyStore.kext
__키체인
__최종 참고 사항
__참고 자료

2부. 취약점과 익스플로잇 작업

12장. macOS 취약점

__10.1: ntpd 원격 루트(CVE-2014-9295)
__10.2: 루트 파이프 권한 상승(CVE-2015-1130)
__10.3: Kextd 레이스(CVE-2015-3708)
__10.4: DYLD_PRINT_TO_FILE 권한 상승(CVE-2015-3760)
__10.5: DYLD_ROOT_PATH 권한 상승
__11.0: tpwn 권한 상승 및/또는 SIP 무력화
__11.3 “Mach Race” 로컬 권한 상승(CVE-2016-1757)
__11.4: 로키하드의 Trifecta(CVE-2016-1796, 1797, 1806)
__최종 노트
__참고 자료

13장. 탈옥

__미신 타파
__탈옥 과정
__커널 패치
__커널 패치 보호
__iOS 탈옥의 진화
__참고 자료

14장. Evasi0n

__로더
__언테더
__커널 모드 익스플로잇
__애플 버그 수정
__참고 자료


15장. Evasi0n 7

__로더
__언테더
__커널 모드 익스플로잇
__애플 버그 수정
__참고 자료

16장. Pangu 7

__로더
__탈옥 페이로드
__언테더
__커널-모드 익스플로잇
__애플 버그 수정
__참고 자료

17장. Pangu 8

__로더
__사용자 모드 익스플로잇
__언테더
__애플 버그 수정
__참고 자료

18장. TaiG

__로더
__언테더
__커널 모드 익스플로잇
__애플 버그 수정
__참고 자료

19장. TaiG 2

__코드 서명 우회
__언테더
__커널 익스플로잇
__애플 버그 수정
__참고 자료

20장. Pangu 9

__로더
__탈옥 페이로드
__커널 모드 익스플로잇
__코드 서명 우회
__언테더
__Pangu 9.1
__애플 버그 수정
__참고 자료

21장. Pangu 9.3

__커널 익스플로잇
__애플 버그 수정

22장. 페가수스

__익스플로잇 흐름
__커널 메모리 읽기 및 KASLR 우회
__임의의 커널 메모리 쓰기
__지속성
__애플 버그 수정
__참고 자료

221/2장. 피닉스

__정보 유출
__영역 다듬기
__mach_ports_register
__조립 - Phoenix 부활
__애플 버그 수정
__참고 자료

23장. mach_portal

__익스플로잇 흐름
__Mach 포트 이름 urefs 처리
__powerd 충돌
__XNU UaF의 set_dp_control_port
__보호 기능 비활성화
__애플 버그 수정
__참고 자료

24장. Yalu(10.0~10.2)

__KPP 우회
__익스플로잇 이후의 작업
__10.2: 치명적인 함정과 재앙의 레시피
__최종 노트
__참고 자료

25장. async_wake & QiLin 툴킷(11.0~11.1.2)

__KASLR 우회
__커널 메모리 손상
__익스플로잇 이후의 작업: 탈옥 툴킷
__참고 자료
__에필로그: 앞으로의 예측

부록 A. macOS 보안성 강화 가이드

__반복해 패치하기
__로깅 및 감사
__사용자 수준 보안
__데이터 보호
__물리적 보안
__애플리케이션 수준 보안
__서드파티/오픈소스 툴 사용
__네트워크 보안
__편집증을 가진 사람들을 위해

부록 B. Darwin 18(베타) 변경 사항

__강제적 접근 제어 프레임워크(MACF)
__코드 서명
__게이트키퍼(macOS)
__AMFI
__샌드박스
__프라이버시
__APFS 스냅샷 마운트(iOS 11.3)
__하드웨어 변경 사항(A12와 이후의 프로세서)

부록 C. 용어 사전

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.