지루한 것은 자동화하고 흥미로운 코드를 찾는 것
5일 양재동 서울교육문화회관 거문고홀에서 개최된 제4회 국제 보안/해킹 컨퍼런스 ‘POC 2009(http://www.powerofcommunity.net/)’의 강연자로 나선 '토라(Tora)'는 리버스엔지니어링을 흥미롭게 접할 수 있는 방법에 대해 강연해 주목받았다.
토라는 세계최고 해킹대회인 ‘데프콘 2009’에 참가해 5위를 차지한 섹시판다스의 리더이다. 이 전까지 해킹은 대부분 네트워크 해킹이었지만 엔지니어링에서 취약점을 뒤돌아보는 리버스엔지니어링에 대한 관심이 점차 높아지고 있어, 토라의 강연은 많은 해커와 보안전문가들의 눈길을 끌었다.
토라는 리버스엔지니어링에 대해, '개발 후 숨겨진 버그를 찾는 것'이라고 설명한다. 그리고 소스코드를 컴파일러가 바이너리를 만드는 것처럼 소스코드를 찾는 것이 중요하기 때문에 클로즈드 소스도 다뤄야 한다고 이야기한다. 기본적인 방법으로는 애플리케이션에 입력할 수 있는 가능한 모든 무작위 값을 넣고 그 후 나타나는 결과로 인해 문제가 발생하는 것을 보는 것이라고 설명한다.
모든 값을 다 넣게 위해서는 프로토콜이나 파일포맷, 데이터구조 등을 다 알아야하기 때문에 다양한 분야의 지식이 필요하다고 이야기한다. 특히 어셀블리나 C, 비쥬얼베이직과 같은 프로그래밍 언어에 대해서는 많은 지식이 있어야하고 지루하지만 분석하는 것에도 많은 노력을 기울여야한다고 덧붙인다.
특히 그는 경험이 가장 중요하다고 이야기한다. 지루하지만 많은 시간을 투자하다보면 경험이 생기는 데, 이는 ‘전에 본적있다’라는 느낌을 가지게 되고 이때는 리버스엔지니어링에 있어 많은 시간이 절감된다고 설명한다.
토라는 “리버스엔지니어링은 항상 같은 작업을 반복해 지루하기 때문에 이를 자동화 하는 것이 중요하며, 아울러 코드의 위험한 부분과 코드의 버퍼를 살펴보면서 관계가 있는지를 살펴보는 것이 중요하다”면서 “그리고 이런 관계를 통해 흥미로운 코드를 살펴보고 지루한 것은 자동화 하는 것이 리버스엔지니어링이다”고 말했다.
[오병민 기자(boan4@boannews.com)]
<저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지>