이미 소장하고 있다면 판매해 보세요.
|
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. 용어 사전 |
Jonathan Levin
이진호의 다른 상품
|
■ 인증, 인가 및(macOS) 감사
■ 코드 서명 ■ 소프트웨어 제한(macOS) - 게이트키퍼, 정책 및 관리를 적용한 클라이언트 ■ AppleMobileFileIntegrity ■ 샌드박스 ■ 시스템 무결성 보호(SIP) ■ 개인 정보 및 데이터 보호 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의 다양한 보안 기능에 대해 자세히 설명하고 취약점을 소개한, 이 책의 ‘비공식 요약본’이라 생각한다. 현재 OS Internals의 3부작 중 일부지만, 독립적인 내용인 동시에 보안 중심으로 구성돼 있다. 따라서 보안과 관련된 내용을 원하는 독자에게 유용할 것이다. 1부는 macOS 관리자와 고급 사용자는 물론, 보안 연구자와 보안 감사인에게 적합하다. 내부 API를 문서화한 부분은 퍼징(fuzzing) 또는 (애플이 승인하지 않는) 해당 서브 시스템과 인터페이스하길 원하는 프로그래머가 기본적인 내용을 학습할 때 유용할 것이다. 2부는 저수준 분야와 기술적인 부분을 다루기 때문에 나이가 어린 독자, 심약자 또는 인텔 및/또는 ARM64 어셈블리에 심한 거부감이 있는 독자에게 부적합할 수 있다. 그러나 역공학을 선호하며, 해커지향적인 독자는 원하는 내용을 찾을 수 있을 것이다. 익스플로잇과 탈옥의 작동 방법에 대한 자세한 설명과 디버거 시퀀스를 이용한 단계별 상세 지시문 그리고 다수의 디스어셈블리를 제공한다. |