사이버 보안 도서 모음: 리버스 엔지니어링과 악성코드
진입 장벽이 가장 높은 편. 어셈블리, 운영체제 내부, 그리고 악성코드 분석.
사이버 보안 도서 모음: 리버스 엔지니어링과 악성코드
아홉 편 중 세 번째. 진입 장벽이 가장 높은 편이다. 어셈블리, 운영체제가 어떻게 돌아가는지에 대한 이해, 그리고 인내가 필요하다.
여기서는 읽는 순서가 중요하다. 일반적인 바이너리 분석이 아니라 악성코드 분석부터 시작하는 편이 낫다.
Michael Sikorski, Andrew Honig. Practical Malware Analysis (2012)
사실상의 표준. 분량의 절반 이상이 함께 제공되는 검체를 쓰는 실습이다.
주제: 정적 분석과 동적 분석, 안전한 샌드박스, 디버거 다루기, 언패킹과 난독화, 안티 디버깅 기법, 네트워크에서의 악성코드 행동, 분석 결과 보고서.
Bruce Dang, Alexandre Gazet, Elias Bachaalany. Practical Reverse Engineering (2014)
아키텍처와 시스템 내부에 관한 책. x86, x64, ARM, 윈도우 커널, 가상화 메커니즘.
주제: 디스어셈블된 코드 읽기, 호출 규약, 드라이버와 커널 모드, 루트킷, 난독화와 역난독화.
Dennis Andriesse. Practical Binary Analysis (2018)
도구와 자동화에 관한 책. 리눅스에서 바이너리 분석 도구를 직접 만드는 방법.
주제: ELF와 PE 형식, 디스어셈블과 그 원리적 한계, 제어 흐름과 데이터 흐름 분석, 심볼릭 실행, 계측, 테인트 분석.
Chris Eagle, Kara Nance. The Ghidra Book (2020)
NSA가 공개한 디스어셈블러 안내서. 유료 IDA Pro의 현실적인 대안.
주제: 인터페이스와 작업 흐름, 디컴파일러, 데이터 타입과 구조체, 자바와 파이썬 스크립팅, 협업, 기능 확장.
Chris Eagle. The IDA Pro Book (2판, 2011)
업계 주력 상용 도구에 관한 고전. 판은 낡았지만 토대는 그대로다.
주제: 디스어셈블된 코드 탐색, 구조체와 타입 복원, IDC와 IDAPython 스크립트, 디버거, 난독화된 코드 다루기.
Alex Matrosov, Eugene Rodionov, Sergey Bratus. Rootkits and Bootkits (2019)
운영체제보다 아래에 사는 위협들. 저자들은 실제 악성코드 계열과 방어의 진화를 해부한다.
주제: 부팅 과정과 그 침해, 부트킷, MBR과 UEFI, 보안 부팅과 그 우회, 펌웨어 수준의 포렌식, 분석 수단으로서의 가상화.
Michael Hale Ligh, Andrew Case, Jamie Levy, Aaron Walters. The Art of Memory Forensics (2014)
리버싱과 포렌식을 잇는 다리. 메모리 덤프에서 무엇을 끄집어낼 수 있는가.
주제: 메모리 덤프 확보, 윈도우·리눅스·macOS의 커널 구조, 숨겨진 프로세스 찾기, 메모리에서 악성코드 추출하기, Volatility.