yise7***
2022-02-20

오픈소스 소프트웨어 기드라를 이용해 실용적인 리버스 엔지니어링 기술을 해설한다. 실습을 중심으로 조작, 분석 방법을 효과적으로 배울 수 있다.
책소개
정적 분석(IT용어사전)
- 어떤 프로그램을 분석할 때 그 프로그램을 실행시키지 않고 그 자체를분석하는 것.
기드라(위키)
- 기드라는 미국 국가 안보국에서 개발한 역어셈블러 프레임워크이다.
- NSA에서 기드라를 오픈 소스로 공개하겠다고 하였으며, 2019년 3월 6일(한국시간) RSA 컨퍼런스에서 기드라를 발표
- 기드라는 자바로 짜여져, 자바런타임으로 구동되며, 발표장에서 NSA에서는 백도어가 없다고밝혔다.
즉, 소스가 없는 실행파일을 가지고 내부의 프로그램 흐름을 파악 분석할수 있게하는 안전한 무료 소프트웨어인 것이다.
보안을 위해 멀웨어를 분석하는분야에 종사하고 있지는 않으나 가끔씩 레거시의 소스가 없는 프로그램을 보는 경우가있다. 자바를 분석하는 디컴파일러는 많이 있지만 실행파일 형태로 존재하는 프로그램은 분석을 위해서는입력값을 넣고 출력값에 따라 내부를 상상하는 수밖에는 없는 줄 알았으나 뜻밖에 이 책을 접하게 되었고 많은 것을 배우는 시간이 되었다.
이 책은 전문 리버스엔지니어링을 하지 않은 나에게도 이해할 수 있게하는 친절한 책이라고 생각한다. 기본적인 어셈블러나 C언어에 대한 선수지식이 있기 때문에 이해가더 쉬웠는지는 모르겠으나 책에서 필요한 만큼의 기본설명을 해주기 때문에 어느정도 개발 지식이 있는 독자라면 책을 읽고 이해하는데는 어렵지 않을거라 생각한다.
이 책은 장점은 아래 목차와 내용에서 보듯이 장별로 기본을 설명하고 점점 깊게 접근을 하고 있기 때문에 처음부터차근차근 읽어가면 된다.
1 리버스 엔지니어링 입문
- 레지스터, 어셈블러명령어 등 기본적인 필수 지식에 대해 간단히 설명한다.
2 기드라 입문
- 기드라 설치에 관한 설명
3 리버스 엔지니어링 연습
- 간단한 예제를 가지고 정적분석을 수행한다.
4 Ghidra Script/Extension으로 기능 확장
- 분석의 편리성을 위하여 스크립트, API등의 활용에 대해 설명한다
5 Ghidra vs. Crackme - ELF 크랙미 분석
6 Ghidra vs. MOTHRA - 윈도우 백도어 분석
7 Ghidra vs. BlackBicorn - 윈도우 패커 분석
8 Ghidra vs. Godzilla Loader - 윈도우 멀웨어분석
9 Ghidra vs. SafeSpy - 안드로이드 앱 분석
- 5장에서 9장은정적분석이 필요한 예제를 바탕으로 정적분석을 수행한다.
또한 분석을 수행하는 방법에 대한 설명도 상당히 자세히 나와 있다.
모든 예제를 분석할 때 기본지식을 설명하고 예제에 대한 기드라의 디스어셈블 결과를 보여준 후 추가 분석을 통해디컴파일된 소스를 보여주고 설명하는 방식으로 구성되어 있어 이해하고 따라할 수 있게 되어 있다.
총평
한마디로 친절한 책이고 현재 유일무이한 책이다.
원래 번역서는 매끄럽지 못한 경우가 많은데 변역도 잘된 것 같다.
전문가가 아닌 내가 800페이지에 달하는 책을 2주만에 읽고 이해 했다는 것은 개인적으로 최고 평점을 줄 수 있는 책이라 생각한다.
다음에 시간이 될 때 차근차근 실습도 해 볼 예정이다.
참고로 부록은 리버스 엔지니어링을 전문으로 하는 경우는 참고할 사항이 많은 것 같고 실전문제 풀이가 있으므로나중에라도 다시 정독하고 볼만 하다.
"한빛미디어 <나는리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."