보안 일을 하다보면 특정한 프로그램, 특정한 파일에 대해서 취약점 분석을 해야 하는 경우가 많습니다.

보통은 소스코드가 같이 주어지지 않기 때문에 실행파일만 덜렁 주어졌을 때 뭐부터 할 수 있는지, 어떤 기술과 툴을 접목하여 취약점을 찾아내야 하는지 막막하기만 한데요.

 

저도 업무를 하면서 많이 느꼈던 막막함이었습니다. 소스코드가 있으면 굉장히 편해요. 시큐어코딩이 안 된 소스코드 보안약점 혹은 취약점을 발견하는 것은 꽤 쉬운 편이고 소스코드 취약점을 이용하여 공격(Exploit)으로 이어질 수 있는 시나리오 혹은 PoC코드를 작성하여 실제 실행파일과 실행환경(혹은 가상실행환경 구축)을 작동시켜 공격가능성을 입증하는 것도 가능하거든요.

 

취약점 분석 업무는 시스템, 프로그램에 대한 정보가 많으면 많을 수록 도움이 됩니다. 그런데 실무는 그나마 실행파일이라도 제공받으면 다행일정도로 자료획득이 어려운 경우가 많아요. 협조도 힘들고... 그래서 고급 기술을 익히는 것이 필요하고, 특히 필요한 기술이 "리버싱"입니다.

 

 

리버스 엔지니어링 , 리버싱이라고 불리는 기술은 소스코드가 없는 환경에서 타겟 프로그램을 분석하는 기술입니다. 리버싱을 다룬 책들은 많지만, "기드라"는 처음 들어봐서 흥미가 생겼습니다. 통상 실무에서는 리버스 엔지니어링을 위해서는 상용 프로그램(돈 주고 사야하는)인 IDA Pro를 사용하였기 때문이죠. 이 책에 따르면 기드라는 미국 국가안보국(NSA)이 개발한 리버싱 도구입니다. 정보 공개와 공유에 앞장서는 미국답게 기드라는 오픈소스 소프트웨어로 무료 사용이 가능합니다.

리버싱을 다루는 많은 책들이 그러하듯, 기술의 어려움을 방증하듯 이 책도 900페이지가 넘는 두께를 자랑하고 있는데요. 내용은 기본적인 리버싱 기초부터 기드라 툴 사용법과 기드라를 활용한 리버싱 분석 샘플 설명, 기드라 스크립트 작성 등 기드라를 활용하여 리버싱을 차근차근 실습할 수 있도록 상세하게 설명되어 있습니다.

 

이 책에서 실습은 "리눅스" 환경에서 개발된 실행파일(ELF) 분석과 "윈도우" 환경에서 개발된 파일(PE) 분석, "안드로이드 앱" 분석으로 세 가지로 나뉘어집니다.

 

이 책에서 약간 아쉬운 점은 예제로 다룬 윈도우 분석 대상 파일에 32비트 파일만 있고, x64(64비트) 파일이 없어서 아쉬웠습니다. 그러나 단순한 일반 파일이 아니라 공격파일(멀웨어)에서 볼 수 있는 패턴들을 리버싱을 통하여 분석하는 방법을 상세하게 알려주고 패턴화해준 것이 보안 실무를 하는 입장에서 실무적으로 도움이 많이 되었습니다.

 

리버싱 작업을 효율적으로 하기 위해서 기드라에서 제공하는 스크립트와 확장기능을 사용하는 것이 좋은데요. 기드라 스크립트를 작성하기 위해서는 파이썬을 사전 지식으로 알고 파이썬 개발을 아는 상태에서 기드라 스크립트 작성 부분을 읽는 것이 좋은 것 같습니다.

 

리버싱 기술 자체가 어셈블리어와 파일 구조에 대한 이해가 선행되어야 하다보니 좀 어렵게 느껴질 수 있습니다. 그래서 이 책은 리버싱 자체에 대한 입문서라고 보기에는 조금 난이도가 있을 수 있습니다. 그러나 기드라라는 리버싱 통합 툴을 통하여 실습을 통하여 리버싱을 체화할 수 있기 때문에 리버싱에 대한 기초 지식을 쉬운 입문서를 통하여 약간의 이해가 있는 상태에서 읽고 실습 위주로 진행하는 것을 추천드립니다.

 

"이 책은 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성한 서평입니다 "