기존의 바이너리 분석은 소위 '리버스 엔지니어링(역공학)'이라는 이름으로, 숙련된 전문가들이 직접 소프트웨어의 취약점을 찾거나, 악성코드의 침해행위에 대응하기 위한 수작업이었다. 하지만 현대의 소프트웨어가 복잡해지고 난독화 등의 방법까지 등장하게 되면서, 소수의 손에만 의존하기에는 자원적 측면에서 한계에 다다랐다. 이제는 이 모든 작업을 '자동화'할 수 있는 방법이 필요하다. 제목을 단순히 기존에 출시된 여러 서적처럼 '역공학'이란 표현을 사용하지 않고, '바이너리 분석'으로 명명한 것은 바로 자동화 가능한 기술을 가미한 데에 큰 의의가 있기 때문이다. 이 책의 전반부에서 기초적인 기계어 코드 해석 방법과 역공학 지식을 터득한 뒤에, 후반부에서 본격적으로 '바이너리 계측(instrumentation)', '오염 분석(taint anlaysis)', '퍼징(fuzzing)', '기호 실행(symbolic execution)' 등의 고급 기법을 배우게 될 것이다.
대학원 재학 시절, 앞서 언급한 어려운 개념들을 공부하기 위해 영어 논문을 찾아 겨우겨우 해석해가며 읽어왔던 나날이 있었다. 처음엔 배경지식이 전무하고 어디서부터 무엇을 학습해야 할지 순서조차 파악하지 못한 상태라 길잡이가 돼 줄 교과서 같은 책이 절실했다. 석사 학위를 마치고 회사에 입사하고 나서야 이 책을 만나게 돼 정말 아쉬웠다. 이 책이 조금만 더 빨리 세상에 나왔더라면, 학습 속도가 달랐지 않았을까 하는 생각이었다. 그렇지만 그 후회에서 그치지 않고, 오히려 이 책을 더 많이 알리고 싶다는 생각에 번역을 자원하게 됐다. 한국어로 번역된 이 책을 통해 한국의 학생들이나 직무를 위한 수련자들이 역량을 강화할 수 있게 된다면 나에게도 큰 기쁨이 될 것이라는 기대 때문이었다.
미국 아마존 서점의 컴퓨터 해킹 및 네트워크 보안 분야에서 독보적인 순위를 자랑하던 책의 2판이 출간됐다. 이 책은 파이썬 프로그래밍 언어를 사용해 모의 침투 업무를 수행할 수 있도록 이끌어 주는 길잡이 역할을 한다. 단순히 해킹 도구의 사용법만을 다루는 다른 서적과는 다르게 자신이 직접 필요한 도구를 만드는 방법을 안내한다는 점에서 차별화된다. 또한 파이썬의 특성상 이미 잘 설계돼 있는 다양한 모듈이 많기에 이를 구체적으로 어떻게 활용할 수 있는지를 배운다면 큰 효과를 거둘 수 있다. 이론뿐만 아니라 실전 상황을 가정한 실습도 제시하고 있어 이를 해결하다 보면 고급 보안 전문가로 성장할 수 있다.
워낙 저명한 도서의 2판 번역을 맡게 돼 막중한 책임감을 갖고 책의 모든 부분을 차근차근 살펴보며 진행했다. 1판과 비교해 달라진 코드 부분이 생각보다 많았기에 예상보다 시간이 오래 소요됐다. 모든 예제를 직접 검수하고 테스트해 완성도를 높였다. 특히 오류의 가능성이 있는 코드는 저자인 팀 아널드와 소통하며 원서의 내용을 바로잡았으며, 번역서에도 반영했다. 이 책이 한국의 독자가 파이썬 해킹을 학습하는 데 도움이 된다면 나에게도 큰 기쁨이 될 것이다.