컨텐츠상세보기

기본 이미지.
알라딘
리버스 엔지니어링 기드라 실전 가이드 - 유사 멀웨어로 익히는 소프트웨어 정적 분석
  • 평점평점점평가없음
  • 저자나카지마 쇼타, 고타케 다이치, 하라 히로아키, 가와바타 고헤이 (지은이), 이창선, 임재용 (옮긴이) 
  • 출판사한빛미디어 
  • 출판일2022-01-10 
보유 3, 대출 0, 예약 0, 누적대출 0, 누적예약 0

책소개

[한국어판 특별 부록 수록]

단순한 도구 설명서가 아니다!
멀웨어 코드를 읽는 본질적인 힘을 길러주는 리버스 엔지니어링 학습서


2019년 3월 미국 국가안보국(NSA)이 소프트웨어 리버스 엔지니어링 도구 기드라(Ghidra)를 공개했습니다. 기드라 덕분에 디스어셈블러뿐만 아니라 고기능 디컴파일러를 무료로
사용할 수 있게 되었고 리버스 엔지니어링의 벽은 훨씬 낮아졌습니다. 하지만 리버스 엔지니어링 입문자는 여전히 어셈블리 언어를 학습하며 쉽게 좌절감을 느낍니다.

그래서 이 책에서는 가능한 한 어셈블리 언어를 읽지 않고 리버스 엔지니어링을 배울 수 있도록, 기드라의 디컴파일러가 출력하는 유사 C 언어를 기초로 설명합니다. 기초 지식을 습득한 후 모의 파일을 분석하며 멀웨어 코드를 읽는 본질적인 힘을 기르고 다양한 실전 경험을 쌓을 수 있도록 구성했습니다. 실전을 순차적으로 경험하는 것은 멀웨어 분석 학습에서 가장 어렵고도 중요합니다. 어셈블리 언어가 어려워 도전하지 못했거나 어셈블리 언어를 읽기 힘들어 정적 분석을 포기했었다면 지금이 바로 기회입니다!

기초 편
1장 리버스 엔지니어링 입문리버스 엔지니어링 기초 지식 설명
2장 기드라 입문기드라 기본 기능 및 조작 방법 설명
3장 리버스 엔지니어링 연습윈도우 프로그램 분석을 연습하며 기드라를 이용한 리버스 엔지니어링 기법 설명
4장 Ghidra Script/Extension으로 기능 확장분석을 자동화할 수 있는 Ghidra Script와 기능을 확장해주는 Ghidra Extension 설명

실전 편
5장 Ghidra vs. Crackme - ELF 크랙미 분석CTF와 비슷한 ELF 크랙미를 분석하고 기드라 분석 결과를 바탕으로 멀웨어에 이용되는 인코딩 방법 및 취약점 학습
6장 Ghidra vs. MOTHRA - 윈도우 백도어 분석윈도우 모의 백도어 MOTHRA를 분석하며 기드라를 활용한 동적 멀웨어 분석 학습
7장 Ghidra vs. BlackBicorn - 윈도우 패커 분석윈도우 패커(Packer) BlackBicorn을 분석하며 최근 윈도우 멀웨어에 이용되는 패커 구조와 기드라를 활용한 동적 분석 방법 학습
8장 Ghidra vs. Godzilla Loader - 윈도우 멀웨어 분석윈도우 멀웨어 Godzilla Loader를 분석하며 기드라 분석 결과를 바탕으로 실제 멀웨어 동작 학습
9장 Ghidra vs. SafeSpy - 안드로이드 앱 분석윈도우 멀웨어 FakeSpy를 무력화한 SafeSpy를 분석하며 기드라를 사용한 동적 안드로이드 앱 분석 방법 학습

부록
기초 편, 실전 편에서 다루지 않은 기드라 응용 기능과 더불어 리버스 엔지니어링에 도움이 되는 Ghidra Script 소개. 한국어판 특별 부록으로 CTF 형식의 문제를 실제로 풀어볼 수 있는 부록 C를 추가

저자소개

㈜사이버디펜스(cyberdefense) 연구소에서 Cyber Threat Intelligence Analyst로 일하며 멀웨어 분석, 사고 대응, 위협 정보 수집·분석 업무를 맡고 있다. 기술 분야 서클 올세이프(Allsafe)의 관리자이기도 하다. JSAC, HITCON CMT, AVAR, CPRCon, Black Hat EUROPE Arsenal, CodeBlue BlueBox 등에서 연설했다.

목차

CHAPTER 1 리버스 엔지니어링 입문

1.1 리버스 엔지니어링

1.2 프로그램 실행

1.3 호출 규약

1.4 C 언어와 어셈블리 언어

1.5 PE 포맷

1.6 x64 아키텍처



CHAPTER 2 기드라 입문

2.1 기드라란

2.2 설치

2.3 프로젝트

2.4 임포트

2.5 CodeBrowser



CHAPTER 3 리버스 엔지니어링 연습

3.1 downloader.exe

3.2 분석 접근법

3.3 함수 인수 분석

3.4 독자적인 구조체 수동 정의

3.5 downloader.exe 분석을 마치며



CHAPTER 4 Ghidra Script/Extension으로 기능 확장

4.1 기드라 기능 확장

4.2 Ghidra Script

4.3 Ghidra API

4.4 Headless Analyzer

4.5 Ghidra Extension



CHAPTER 5 Ghidra vs. Crackme - ELF 크랙미 분석

5.1 크랙미란

5.2 Level1: XOR을 통한 단순한 인코더

5.3 Level2: 커스텀 인코더

5.4 Level3: 버퍼 오버플로

5.5 Level4: Go로 구현된 바이너리 해석



CHAPTER 6 Ghidra vs. MOTHRA - 윈도우 백도어 분석

6.1 분석 준비

6.2 main 함수

6.3 C2 서버에서 명령어 검색

6.4 명령어 분기

6.5 MOTHRA RAT 분석을 마치며



CHAPTER 7 Ghidra vs. BlackBicorn - 윈도우 패커 분석

7.1 패커란

7.2 BlackBicorn 개요

7.3 BlackBicorn 분석(스테이지 0)

7.4 BlackBicorn 분석(스테이지 1)

7.5 BlackBicorn 분석(스테이지 2)

7.6 BlackBicorn 분석을 마치며



CHAPTER 8 Ghidra vs. Godzilla Loader - 윈도우 멀웨어 분석

8.1 멀웨어계의 고질라 Godzilla Loader

8.2 분석 대상 파일

8.3 패커 분석

8.4 문자열 난독화 복원

8.5 Godzilla Loader의 기능

8.6 Godzilla Loader 분석을 마치며



CHAPTER 9 Ghidra vs. SafeSpy - 안드로이드 앱 분석

9.1 안드로이드 기초

9.2 안드로이드 네이티브 라이브러리의 기초

9.3 안드로이드 앱 정적 분석

9.4 SafeSpy 앱 분석



APPENDIX A 기드라 응용

A.1 Binary Patching

A.2 Program Difference

A.3 Version Tracking

A.4 Ghidra Server

A.5 기드라 커스터마이즈

A.6 컬러 스키마 변경



APPENDIX B Ghidra Script 소개

B.1 내장된 Ghidra Script

B.2 서드 파티 Ghidra Script

B.3 저자들이 만든 오리지널 스크립트



APPENDIX C 실전 문제 풀이

C.1 Level1.exe

C.2 Level2.exe

한줄 서평