Description
루트킷과 부트킷이 어떻게 컴퓨터의 부팅 과정에 침투해 악의적인 동작을 수행할 수 있는지 구체적으로 설명한다. 1부에서는 루트킷에 대해 살펴보는 것으로 시작한다. 여기서 역사적으로 루트킷의 활동 무대였던 윈도우 커널의 내부도 소개한다. 과거 가장 흥미로웠던 루트킷인 TDL3와 Festi를 소개하고 이들이 어떻게 윈도우 커널을 조작해 동작하는지 설명한다. 2부에서는 윈도우가 커널모드 코드서명, ELAM, 시큐어부트와 가상보안모드로 커널모드 보안을 강화한 후에 나온 부트킷과 OS의 부트 프로세스로 초점을 옮겨본다. 공격자의 관점에서 부트 프로세스의 각 단계들인 MBR, VBR, 파티션 테이블 및 boogmgr을 세밀하게 분석해 보고, 특히 UEFI 펌웨어의 구조와 취약점에 집중해 본다. 마지막으로 3부에서는 BIOS와 펌웨어를 대상으로 하는 고전적인 OS 루트킷 공격과 새로운 부트킷 공격 모두에 대한 포렌식에 초점을 맞춘다.
저자

알렉스마트로소프,유진로디오노프,세르게이브래튜스

(AlexMatrosov)
NVIDIA의수석공격적보안(OffensiveSecurity)연구원이다.리버스엔지니어링,고급멀웨어분석,펌웨어보안,취약점공격에대한20년이상의경력이있다.NVIDIA에합류하기전에는인텔SeCoE(SecurityCenterofExcellence)의수석연구원이었고,인텔첨단위협연구팀에서6년이상근무했으며그전에는ESET의선임보안연구원이었다.여러편의연구논문을저술하고공동저술도했으며,REcon,ZeroNights,블랙햇(BlackHat),데프콘(DEFCON)등의보안콘퍼런스에자주나오는강연자다.오픈소스플러그인HexRaysCodeXplorer(2013년부터는REhint에있는팀이지원한다)로Hex-Rays에서상을받았다.

목차

1부.루트킷

1장.루트킷에들어있는것:TDL3사례연구
__TDL3전파의역사
__감염루틴
__데이터흐름제어
____자체링커도입
____TDL3의커널모드후킹이동작하는방식
__숨겨진파일시스템
__결론:TDL3천적을만나다

2장.Festi루트킷:가장진보된스팸과DDoS봇
__Festi봇넷사례
__루트킷드라이버상세분석
____C&C통신에대한Festi설정정보
____Festi의객체지향프레임워크
____플러그인관리
____내장플러그인
____가상머신방어기법
____안티디버깅기법
____디스크에서악성드라이버를숨기는방법
____Festi레지스트리키를보호하는방법
__Festi네트워크통신프로토콜
____초기화단계
____작업단계
__보안및포렌식소프트웨어우회
__C&C중단에대비한도메인생성알고리듬
__악성기능
____스팸모듈
____DDoS엔진
____Festi프록시플러그인
__결론

3장.루트킷감염관찰
__가로채기기법
____시스템이벤트가로채기
____시스템콜가로채기
____파일동작가로채기
____객체디스패처가로채기
__시스템커널복원
__위대한루트킷들의기술경쟁:추억의노트
__결론

2부.부트킷

4장.부트킷의진화
__최초의부트킷
____부트섹터감염자
____엘크클로너와LoadRunner
____브레인바이러스
__부트킷의진화
____BSI시대의끝
____커널모드코드서명정책
____시큐어부트의부상
__최신부트킷
__결론

5장.운영체제부트프로세스
__윈도우부트프로세스의상위레벨개요
__레거시부트프로세스
__윈도우부트프로세스
____BIOS와사전부트환경
____마스터부트레코드
____볼륨부트레코드와초기프로그램로더
____bootmgr모듈과부트설정데이터
__결론


6장.부트프로세스보안
__조기실행안티멀웨어모듈
____API콜백함수
____부트킷이ELAM을우회하는방법
__마이크로소프트커널모드코드서명정책
____무결성검사대상커널모드드라이버
____드라이버서명의위치
____기존코드무결성의약점
____ci.dll모듈
____방어를위한윈도우8변경사항
__시큐어부트기술
__윈도우10의가상화기반보안
____2단계주소변환
____가상화보안모드와디바이스가드
____드라이버개발에대한디바이스가드제약
__결론

7장.부트킷감염기법
__MBR감염기법
____MBR코드변조:TDL4감염기법
____MBR파티션테이블수정
__VBR/IPL감염기술
____IPL변조:Rovnix
____VBR감염:Gapz
__결론

8장.IDAPro를이용한부트킷정적분석
__BootkitMBR분석
____MBR로드와복호화
____BIOS디스크서비스분석
____감염된MBR의파티션테이블분석
__VBR분석기법
____IPL분석
____다른부트킷컴포넌트평가
__고급IDAPro사용법:사용자정의MBR로더작성
____loader.hpp이해
____accept_file구현
____load_file구현
____파티션테이블구조체생성
__결론
__연습문제

9장.부트킷동적분석:에뮬레이션과가상화
__Bochs를이용한에뮬레이션
____Bochs설치
____Bochs환경구축
____디스크이미지감염
____Bochs내장디버거사용
____Bochs와IDA의연동
__VMware워크스테이션을통한가상화
____VMwareWorkstation설정
____VMwareGDB와IDA의조합
__마이크로소프트하이퍼-V와오라클VirtualBox
__결론
__연습문제


10장.MBR과VBR감염기법의발전:Okmasco
__드로퍼
____드로퍼의리소스
____향후개발을위한추적기능
____안티디버깅방지와안티에뮬레이션기법
__부트킷기능
____부트킷감염기술
____감염된시스템의부트프로세스
__루트킷기능
____하드드라이브디바이스객체후킹과페이로드인젝션
____숨겨진파일시스템유지관리
____네트워크우회통신을위한전송계층드라이버인터페이스구현
__결론


11장.IPL부트킷:Rovnix와Carberp
__Rovnix의발전
__부트킷아키텍처
__시스템감염
__감염후부트프로세스와IPL
____다형성복호화코드구현
____VMware와IDAPro로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포렌식:펌웨어수집과분석접근방법
__포렌식기술의제약
__펌

출판사 서평

◈이책에서다루는내용◈

◆32비트와64비트,UEFI모드에서의윈도우부팅방법과취약점을찾을수있는지점
◆시큐어부트같은부트프로세스보안메커니즘의세부정보와가상화보안모드(VSM)및디바이스가드의개요
◆Rovnix/Carberp,Gapz,TDL4같은부트킷과TDL3,Festi같은악명높은루트킷을포함해실제악성코드를분석하기위한리버스엔지니어링및포렌식기술
◆Bochs및IDAPro같은에뮬레이션,도구로정적및동적분석을수행하는방법
◆BIOS및UEFI펌웨어를공격하는위협전파단계를이해해탐지기법만들기
◆VMware워크스테이션같은가상화도구를사용해부트킷을리버스엔지니어링하고인텔Chipsec도구로포렌식분석하는방법


◈이책의대상독자◈

고도화된지속적멀웨어위협이OS레벨보안을우회하는방법을궁금해하는다양한분야의정보보호연구원들을위한책이다.다만PC멀웨어분석가뿐만아니라더넓은독자까지대상으로목표를잡았다.임베디드시스템개발자와클라우드보안전문가도이책이유용하다는것을알게되기를바란다.


◈이책의구성◈

1부,‘루트킷’에서는전성기때의고전적인OS레벨루트킷을살펴본다.
1장,‘루트킷에들어있는것:TDL3사례연구’에서는과거흥미로웠던루트킷중하나를이야기하면서루트킷이어떻게동작하는지살펴본다.
2장,‘Festi루트킷:가장진보된스팸과DDoS봇’에서는스팸전송및DDoS공격을하고자한때가장고도화된은폐기법을사용했던Festi루트킷을분석한다.
3장,‘루트킷감염관찰’에서는여정을운영체제커널의깊은곳으로이끌어줄것이다.
2부,‘부트킷’에서는부트킷의진화와진화를촉발시킨조건과이런위협을리버스엔지니어링하는기술로초점을옮겨본다.
4장,‘부트킷의진화’에서는부트킷의출현과발전을이끈진화세력을좀더깊이알아본다.
5장,‘운영체제부트프로세스’에서는윈도우부트프로세스의내부동작과이것이그동안어떻게변해왔는지를다룬다.
6장,‘부트프로세스보안’에서는조기실행안티멀웨어(ELAM,EarlyLaunchAnti-Malware)모듈,커널모드코드서명정책과이것의취약점,새로운가상화기반보안같은윈도우부팅프로세스방어기술을알아본다.
7장,‘부트킷감염기법’에서는부트섹터를감염시키는방법을세밀하게조사하고이런방법들이시간이지남에따라어떻게진화해왔는지살펴본다.
8장,‘IDAPro를이용한부트킷정적분석’에서는부트킷감염에대한정적분석을하기위한방법과도구를다룬다.
9장,‘부트킷동적분석:에뮬레이션과가상화’에서는Bochs에뮬레이터와VMWare의내장GDB디버거를이용한동적분석방법에초점을맞춘다.
10장,‘MBR과VBR감염기법의발전:Olmasco’에서는부트킷을부트프로세스의더낮은레벨까지내려가게해줬던은폐기법의진화를추적해본다.
11장,‘IPL부트킷:Rovnix와Carberp’에서는온라인뱅킹을공격했던가장복잡한두개의루트킷인Rovnix와Carberp의내부를살펴본다.
12장,‘Gapz:진보된VBR감염’에서는부트킷은폐기법진화의정점에올랐던Gapz루트킷를알아본다.
13장,‘MBR랜섬웨어의부상’에서는부트킷이어떻게랜섬웨어위협으로되돌아왔는지살펴본다.
14장,‘UEFI부팅과MBR/VBR부트프로세스’에서는최신멀웨어의진화를밝혀내는데필수정보인UEFIBIOS설계에서의부트프로세스를알아본다.
15장,‘최신UEFI부트킷’에서는다양한BIOS임플란트에대해우리가진행하던연구를다룬다.개념증명했던것들과실제로세상에퍼졌던것들을모두설명한다.
16장,‘UEFI펌웨어취약점’에서는BIOS임플란트의도입을가능하게했던다양한종류의최신BIOS취약점을심도있게살펴본다.
3부,‘방어와포렌식기법’에서는부트킷,루트킷과기타BIOS위협의포렌식을다룬다.
17장,‘UEFI시큐어부트동작방식’에서는시큐어부트기술의작동방법과발전,취약점및효과를깊이있게살펴본다.
18장,‘숨겨진파일시스템분석접근방식’에서는멀웨어가사용하는숨겨진파일시스템을간략히살펴보고탐지하는방법을설명한다.
19장,‘BIOS/UEFI포렌식:펌웨어수집과분석접근방법’에서는최첨단위협을탐지하는접근법들을살펴본다.

◈옮긴이의말◈

악성코드에대응하는보안프로그램개발은끊임없는창과방패의싸움인듯하다.멋모르고처음보안업계에들어왔을때는모든것이신기하고대단하게보이기만했다.수년간일련의일을겪고보니갖춰야할지식들의범위가정말넓고깊은것에한계를느끼기도했다.특히루트킷과부트킷을탑재한악성코드의경우누가더먼저시스템을장악하는가의싸움이기때문에운영체제내부의더세밀한부분을다루게된다.이런과정들은책에서만배울수없는부분이많으며심지어문서화되지않은부분이대부분이다.그러므로수많은시행착오와디버깅및리버싱분석을끊임없이해야했다.그러다보니뭔가체계적으로축적된기술을습득할기회도많지않을뿐더러개인의감에의존해야하는것들이항상아쉬움으로남았었다.
이번에이책을번역하면서그동안의부족함을많이채워가게됐다.이책에서는과거MBR부트킷부터최근랜섬웨어에이르기까지실제로존재해왔고유행했던사례를위주로자세히다루고있다.또한이런위협들이동작하는원리를심도깊게다루고있고,시스템이나운영체제그리고애플리케이션이동작하는원리도다루고있다.따라서보안분야에관심있는주니어개발자/분석가와좀더깊이있는이해를필요로하는현업의시니어개발자/분석가에게모두도움이되는내용을담고있다.관련분야종사자뿐아니라보안분야에관심있는모두에게필독서로이책을추천하고싶다.