이미 소장하고 있다면 판매해 보세요.
|
1부. 루트킷
1장. 루트킷에 들어있는 것: TDL3 사례 연구 __TDL3 전파의 역사 __감염 루틴 __데이터 흐름 제어 ____자체 링커 도입 ____TDL3의 커널 모드 후킹이 동작하는 방식 __숨겨진 파일 시스템 __결론: TDL3 천적을 만나다 2장. Festi 루트킷: 가장 진보된 스팸과 DDoS 봇 __Festi 봇넷 사례 __루트킷 드라이버 상세 분석 ____C&C 통신에 대한 Festi 설정 정보 ____Festi의 객체지향 프레임워크 ____플러그인 관리 ____내장 플러그인 ____가상 머신 방어 기법 ____안티디버깅 기법 ____디스크에서 악성 드라이버를 숨기는 방법 ____Festi 레지스트리 키를 보호하는 방법 __Festi 네트워크 통신 프로토콜 ____초기화 단계 ____작업 단계 __보안 및 포렌식 소프트웨어 우회 __C&C 중단에 대비한 도메인 생성 알고리듬 __악성 기능 ____스팸 모듈 ____DDoS 엔진 ____Festi 프록시 플러그인 __결론 3장. 루트킷 감염 관찰 __가로채기 기법 ____시스템 이벤트 가로채기 ____시스템 콜 가로채기 ____파일 동작 가로채기 ____객체 디스패처 가로채기 __시스템 커널 복원 __위대한 루트킷들의 기술 경쟁: 추억의 노트 __결론 2부. 부트킷 4장. 부트킷의 진화 __최초의 부트킷 ____부트 섹터 감염자 ____엘크 클로너와 Load Runner ____브레인 바이러스 __부트킷의 진화 ____BSI 시대의 끝 ____커널 모드 코드 서명 정책 ____시큐어 부트의 부상 __최신 부트킷 __결론 5장. 운영체제 부트 프로세스 __윈도우 부트 프로세스의 상위 레벨 개요 __레거시 부트 프로세스 __윈도우 부트 프로세스 ____BIOS와 사전 부트 환경 ____마스터 부트 레코드 ____볼륨 부트 레코드와 초기 프로그램 로더 ____bootmgr 모듈과 부트 설정 데이터 __결론 6장. 부트 프로세스 보안 __조기 실행 안티멀웨어 모듈 ____API 콜백 함수 ____부트킷이 ELAM을 우회하는 방법 __마이크로소프트 커널 모드 코드 서명 정책 ____무결성 검사 대상 커널 모드 드라이버 ____드라이버 서명의 위치 ____기존 코드 무결성의 약점 ____ci.dll 모듈 ____방어를 위한 윈도우 8 변경 사항 __시큐어 부트 기술 __윈도우 10의 가상화 기반 보안 ____2단계 주소 변환 ____가상화 보안 모드와 디바이스 가드 ____드라이버 개발에 대한 디바이스 가드 제약 __결론 7장. 부트킷 감염 기법 __MBR 감염 기법 ____MBR 코드 변조: TDL4 감염 기법 ____MBR 파티션 테이블 수정 __VBR/IPL 감염 기술 ____IPL 변조: Rovnix ____VBR 감염: Gapz __결론 8장. IDA Pro를 이용한 부트킷 정적 분석 __Bootkit MBR 분석 ____MBR 로드와 복호화 ____BIOS 디스크 서비스 분석 ____감염된 MBR의 파티션 테이블 분석 __VBR 분석 기법 ____IPL 분석 ____다른 부트킷 컴포넌트 평가 __고급 IDA Pro 사용법: 사용자 정의 MBR 로더 작성 ____loader.hpp 이해 ____accept_file 구현 ____load_file 구현 ____파티션 테이블 구조체 생성 __결론 __연습문제 9장. 부트킷 동적 분석: 에뮬레이션과 가상화 __Bochs를 이용한 에뮬레이션 ____Bochs 설치 ____Bochs 환경 구축 ____디스크 이미지 감염 ____Bochs 내장 디버거 사용 ____Bochs와 IDA의 연동 __VMware 워크스테이션을 통한 가상화 ____VMware Workstation 설정 ____VMware GDB와 IDA의 조합 __마이크로소프트 하이퍼-V와 오라클 VirtualBox __결론 __연습문제 10장. MBR과 VBR 감염 기법의 발전: Okmasco __드로퍼 ____드로퍼의 리소스 ____향후 개발을 위한 추적 기능 ____안티디버깅 방지와 안티에뮬레이션 기법 __부트킷 기능 ____부트킷 감염 기술 ____감염된 시스템의 부트 프로세스 __루트킷 기능 ____하드 드라이브 디바이스 객체 후킹과 페이로드 인젝션 ____숨겨진 파일 시스템 유지 관리 ____네트워크 우회 통신을 위한 전송 계층 드라이버 인터페이스 구현 __결론 11장. IPL 부트킷: Rovnix와 Carberp __Rovnix의 발전 __부트킷 아키텍처 __시스템 감염 __감염 후 부트 프로세스와 IPL ____다형성 복호화 코드 구현 ____VMware와 IDA Pro로 Rovnix 부트로더 복호화 ____윈도우 부트로더 패치를 통한 제어권 획득 ____악성 커널 모드 드라이버 로드 __커널 모드 드라이버의 기능 ____페이로드 모듈 인젝션 ____은폐형 자기 방어 메커니즘 숨겨진 파일 시스템 ____파티션을 가상 FAT 시스템으로 포맷 ____숨겨진 파일 시스템 암호화 ____숨겨진 파일 시스템 접근 __숨겨진 통신 채널 __사례 연구: Carberp와의 관계 ____Carberp의 개발 ____Dropper의 개선 ____유출된 소스코드 __결론 12장. Gapz: 진보된 VBR 감염 __Gapz 드로퍼 ____드로퍼 알고리듬 ____드로퍼 분석 ____HIPS 우회 __Gapz 부트킷으로 시스템 감염 ____BIOS 파라미터 블록 검토 ____VBR 감염 ____악성 커널 모드 드라이버 로드 __Gapz 루트킷 기능 __숨겨진 스토리지 ____멀웨어 방지 소프트웨어에 대한 자기 방어 ____페이로드 인젝션 ____페이로드 통신 인터페이스 ____자체 네트워크 프로토콜 스택 __결론 13장. MBR 랜섬웨어의 부상 __랜섬웨어의 간략한 역사 __부트킷 기능이 있는 랜섬웨어 __랜섬웨어 동작 방식 __Petya 랜섬웨어 분석 ____관리자 권한 획득 ____하드 드라이브 감염(1단계) ____악성 부트로더 설정 데이터 암호화 ____시스템 크래시 ____MFT 암호화(2단계) ____마무리: Petya에 대한 최종 고찰 __Satana 랜섬웨어 분석 ____Satana 드로퍼 ____MBR 감염 ____드로퍼 디버그 정보 ____Satana 악성 MBR ____마무리: Satana에 대한 최종 생각 __결론 14장. UEFI 부팅과 MBR/VBR 부트 프로세스 __통합된 확장 가능 펌웨어 인터페이스 __레거시 BIOS와 UEFI 부트 프로세스의 차이점 ____부트 프로세스 흐름 ____디스크 파티셔닝: MBR과 GPT ____기타 차이점 __GUID 파티션 테이블 규격 __UEFI 펌웨어 동작 방식 ____UEFI 규격 ____운영체제 로더 내부 ____윈도우 부트로더 ____UEFI 펌웨어의 보안 이점 __결론 15장. 최신 UEFI 부트킷 __BIOS 위협의 역사 ____WinCIH, BIOS를 공격하는 최초의 멀웨어 ____Mebromi ____기타 위협과 대응 __모든 하드웨어에 있는 펌웨어 ____UEFI 펌웨어 취약점 ____메모리 보호 비트의 효과 ____보호 비트 확인 __BIOS를 감염시키는 방법 ____서명되지 않은 UEFI 옵션 ROM 수정 ____DXE 드라이버 추가나 수정 __루트킷 인젝션의 이해 __실제 UEFI 루트킷 ____해킹 팀의 Vector-EDK 루트킷 __결론 16장. UEFI 펌웨어 취약점 __펌웨어를 취약하게 만드는 것 __UEFI 펌웨어 취약점 분류 ____취약점 공격 이후 ____감염된 공급망 취약점 ____공급망 취약점 완화 __UEFI 펌웨어 보호의 역사 ____BIOS 보호 동작 방식 ____SPI 플래시 보호 및 취약성 ____인증되지 않은 BIOS 업데이트의 위험 ____시큐어 부트를 통한 BIOS 보호 __인텔 부트 가드 ____인텔 부트 가드 기술 ____부트가드의 취약점 __SMM 모듈의 취약점 ____SMM 이해 ____SMI 핸들러 취약점 공격 __S3 부트 스크립트의 취약점 ____S3 부트 스크립트 이해 ____S3 부트 스크립트 취약점 공략 ____S3 부트 스크립트 취약점 공격 ____S3 부트 스크립트 취약점 수정 __인텔 관리 엔진의 취약점 ____ME 취약점의 역사 ____ME 코드 공격 ____사례 연구: 인텔 AMT과 BMC에 대한 공격 __결론 3부. 방어와 포렌식 기법 17장. UEFI 시큐어 부트 동작 방식 __시큐어 부트란? __UEFI 시큐어 부트의 세부 구현 ____부팅 절차 ____디지털 서명을 통한 실행 파일 인증 ____db 데이터베이스 ____dbx 데이터베이스 ____시간 기반 인증 ____시큐어 부트 키 ____UEFI 시큐어 부트: 전체 그림 ____시큐어 부트 정책 ____시큐어 부트를 이용한 부트킷 방어 __시큐어 부트 공격 ____시큐어 부트 비활성화를 위한 PI 펌웨어 패치 ____보안 검사를 우회하기 위한 UEFI 변수 수정 __검증 부트와 계측 부트를 통한 시큐어 부트 보호 ____검증 부트 ____계측 부트 __인텔 부트가드 ____ACM 찾기 ____FIT 분석 ____인텔 부트가드 설정 __ARM 신뢰 부트 보드 ____ARM 신뢰 영역 ____ARM 부트로더 ____신뢰 부트 흐름 __검증 부트와 펌웨어 루트킷 __결론 18장. 숨겨진 파일 시스템 분석 접근 방식 __숨겨진 파일 시스템 개요 __숨겨진 파일 시스템의 부트킷 데이터 추출 ____전원이 꺼진 시스템의 데이터 가져오기 ____동작 중인 시스템에서 데이터 읽기 ____미니포트 스토리지 드라이버 후킹 __숨겨진 파일 시스템 이미지 파싱 __HiddenFsReader 도구 __결론 19장. BIOS/UEFI 포렌식: 펌웨어 수집과 분석 접근 방법 __포렌식 기술의 제약 __펌웨어 포렌식이 중요한 이유 ____공급망 공격 ____펌웨어 취약점을 통한 BIOS 감염 __펌웨어 수집의 이해 __소프트웨어 방식의 펌웨어 수집 ____PCI 설정 영역 레지스터 찾기 ____SPI 설정 레지스터 주소 계산 ____SPI 레지스터 사용 ____SPI 플래시에서 데이터 읽기 ____소프트웨어 접근 방식의 단점 고려 __펌웨어 수집에 대한 하드웨어 접근 방식 ____레노버 싱크패드 T540p 사례 연구 검토 ____SPI 플래시 메모리칩 찾기 ____FT2232 미니 모듈로 SPI 플래시 읽기 __UEFITool로 펌웨어 이미지 분석 ____SPI 플래시 영역 알아보기 ____UEFITool로 SPI 플래시 영역 살펴보기 ____BIOS 영역 분석 __Chipsec으로 펌웨어 이미지 분석 ____Chipsec 아키텍처 알아보기 ____Chipsec 유틸로 펌웨어 분석 __결론 |
Alex Matrosov
Eugene Rodionov
Sergey Bratus
|
◈ 추천의 글 ◈
“지능형 멀웨어를 밝혀온 경력을 가진 전문가의 발자취를 따르라.” -- 로드리고 루비라 브랑코(Rodrigo Rubira Branco) ◈ 이 책에서 다루는 내용 ◈ ◆ 32비트와 64비트, UEFI 모드에서의 윈도우 부팅 방법과 취약점을 찾을 수 있는 지점 ◆ 시큐어 부트 같은 부트 프로세스 보안 메커니즘의 세부 정보와 가상화 보안 모드(VSM) 및 디바이스 가드의 개요 ◆ Rovnix/Carberp, Gapz, TDL4 같은 부트킷과 TDL3, Festi 같은 악명 높은 루트킷을 포함해 실제 악성코드를 분석하기 위한 리버스 엔지니어링 및 포렌식 기술 ◆ Bochs 및 IDA Pro 같은 에뮬레이션, 도구로 정적 및 동적 분석을 수행하는 방법 ◆ BIOS 및 UEFI 펌웨어를 공격하는 위협 전파 단계를 이해해 탐지 기법 만들기 ◆ VMware 워크스테이션 같은 가상화 도구를 사용해 부트킷을 리버스 엔지니어링하고 인텔 Chipsec 도구로 포렌식 분석하는 방법 ◈ 이 책의 구성 ◈ 1부, ‘루트킷’에서는 전성기 때의 고전적인 OS 레벨 루트킷을 살펴본다. 1장, ‘루트킷에 들어있는 것: TDL3 사례 연구’에서는 과거 흥미로웠던 루트킷 중 하나를 이야기하면서 루트킷이 어떻게 동작하는지 살펴본다. 2장, ‘Festi 루트킷: 가장 진보된 스팸과 DDoS 봇’에서는 스팸 전송 및 DDoS 공격을 하고자 한때 가장 고도화된 은폐 기법을 사용했던 Festi 루트킷을 분석한다. 3장, ‘루트킷 감염 관찰’에서는 여정을 운영체제 커널의 깊은 곳으로 이끌어줄 것이다. 2부, ‘부트킷’에서는 부트킷의 진화와 진화를 촉발시킨 조건과 이런 위협을 리버스 엔지니어링하는 기술로 초점을 옮겨본다. 4장, ‘부트킷의 진화’에서는 부트킷의 출현과 발전을 이끈 진화 세력을 좀 더 깊이 알아본다. 5장, ‘운영체제 부트 프로세스’에서는 윈도우 부트 프로세스의 내부 동작과 이것이 그동안 어떻게 변해 왔는지를 다룬다. 6장, ‘부트 프로세스 보안’에서는 조기 실행 안티멀웨어(ELAM, Early Launch Anti-Malware) 모듈, 커널 모드 코드 서명 정책과 이것의 취약점, 새로운 가상화 기반 보안 같은 윈도우 부팅 프로세스 방어 기술을 알아본다. 7장, ‘부트킷 감염 기법’에서는 부트 섹터를 감염시키는 방법을 세밀하게 조사하고 이런 방법들이 시간이 지남에 따라 어떻게 진화해왔는지 살펴본다. 8장, ‘IDA Pro를 이용한 부트킷 정적 분석’에서는 부트킷 감염에 대한 정적 분석을 하기 위한 방법과 도구를 다룬다. 9장, ‘부트킷 동적 분석: 에뮬레이션과 가상화’에서는 Bochs 에뮬레이터와 VMWare의 내장 GDB 디버거를 이용한 동적 분석 방법에 초점을 맞춘다. 10장, ‘MBR과 VBR 감염 기법의 발전: Olmasco’에서는 부트킷을 부트 프로세스의 더 낮은 레벨까지 내려가게 해줬던 은폐 기법의 진화를 추적해본다. 11장, ‘IPL 부트킷: Rovnix와 Carberp’에서는 온라인 뱅킹을 공격했던 가장 복잡한 두 개의 루트킷인 Rovnix와 Carberp의 내부를 살펴본다. 12장, ‘Gapz: 진보된 VBR 감염’에서는 부트킷 은폐 기법 진화의 정점에 올랐던 Gapz 루트킷를 알아본다. 13장, ‘MBR 랜섬웨어의 부상’에서는 부트킷이 어떻게 랜섬웨어 위협으로 되돌아왔는지 살펴본다. 14장, ‘UEFI 부팅과 MBR/VBR 부트 프로세스’에서는 최신 멀웨어의 진화를 밝혀내는 데 필수 정보인 UEFI BIOS 설계에서의 부트 프로세스를 알아본다. 15장, ‘최신 UEFI 부트킷’에서는 다양한 BIOS 임플란트에 대해 우리가 진행하던 연구를 다룬다. 개념 증명했던 것들과 실제로 세상에 퍼졌던 것들을 모두 설명한다. 16장, ‘UEFI 펌웨어 취약점’에서는 BIOS 임플란트의 도입을 가능하게 했던 다양한 종류의 최신 BIOS 취약점을 심도 있게 살펴본다. 3부, ‘방어와 포렌식 기법’에서는 부트킷, 루트킷과 기타 BIOS 위협의 포렌식을 다룬다. 17장, ‘UEFI 시큐어 부트 동작 방식’에서는 시큐어 부트 기술의 작동 방법과 발전, 취약점 및 효과를 깊이 있게 살펴본다. 18장, ‘숨겨진 파일 시스템 분석 접근 방식’에서는 멀웨어가 사용하는 숨겨진 파일 시스템을 간략히 살펴보고 탐지하는 방법을 설명한다. 19장, ‘BIOS/UEFI 포렌식: 펌웨어 수집과 분석 접근 방법’에서는 최첨단 위협을 탐지하는 접근법들을 살펴본다. ◈ 지은이의 말 ◈ 루트킷과 부트킷에 대한 블로그 포스팅과 일련의 논문들을 발표하면서 이 책에 대한 아이디어를 생각해냈다. 이 주제는 충분히 가치가 있는데도 거의 주목받지 못하고 있다는 것을 깨달았다. 우리는 더 큰 그림이 있다고 생각했고 공격자와 방어자의 혁신에 사용되는 디자인 패턴, 운영체제의 구조적인 관찰 그리고 재치 있는 트릭들을 엮어서 설명해주는 책을 원했다. 그런 책을 찾아봤지만 찾을 수 없었기에 우리는 읽고 싶었던 책을 쓰기 시작했다. 이 작업은 4년 반이 걸렸는데, 계획했던 것보다 길었고 미래의 독자와 출판 전 버전 구매자들이 우리와 함께 할 거라 생각했던 시간보다 훨씬 더 길었다. 출판 전 버전 구매자들의 지속적인 헌신에 경의를 표한다. ◈ 옮긴이의 말 ◈ 악성코드에 대응하는 보안 프로그램 개발은 끊임없는 창과 방패의 싸움인 듯하다. 멋모르고 처음 보안업계에 들어왔을 때는 모든 것이 신기하고 대단하게 보이기만 했다. 수년간 일련의 일을 겪고 보니 갖춰야 할 지식들의 범위가 정말 넓고 깊은 것에 한계를 느끼기도 했다. 특히 루트킷과 부트킷을 탑재한 악성코드의 경우 누가 더 먼저 시스템을 장악하는가의 싸움이기 때문에 운영체제 내부의 더 세밀한 부분을 다루게 된다. 이런 과정들은 책에서만 배울 수 없는 부분이 많으며 심지어 문서화되지 않은 부분이 대부분이다. 그러므로 수많은 시행착오와 디버깅 및 리버싱 분석을 끊임없이 해야 했다. 그러다 보니 뭔가 체계적으로 축적된 기술을 습득할 기회도 많지 않을뿐더러 개인의 감에 의존해야 하는 것들이 항상 아쉬움으로 남았었다. 이번에 이 책을 번역하면서 그동안의 부족함을 많이 채워가게 됐다. 이 책에서는 과거 MBR 부트킷부터 최근 랜섬웨어에 이르기까지 실제로 존재해왔고 유행했던 사례를 위주로 자세히 다루고 있다. 또한 이런 위협들이 동작하는 원리를 심도 깊게 다루고 있고, 시스템이나 운영체제 그리고 애플리케이션이 동작하는 원리도 다루고 있다. 따라서 보안 분야에 관심 있는 주니어 개발자/분석가와 좀 더 깊이 있는 이해를 필요로 하는 현업의 시니어 개발자/분석가에게 모두 도움이 되는 내용을 담고 있다. 관련 분야 종사자뿐 아니라 보안 분야에 관심있는 모두에게 필독서로 이 책을 추천하고 싶다. |