IAT Hook에 관한 고찰
그옛날 후킹이라는 주제를 처음 배울 때 인터넷이든 해외 사이트든 가장 먼저 설명하던
후킹의 종류는 IAT Hook 이었다고 생각합니다. IAT Hook을 먼저 안내하는 이유는 일단
PE를 공부하면서 Import Address Table 이라는 것에 대해 알아볼 때 부수적 효과로
덩달아 학습되기에 가장 적당한 주제이기도 하고, 또 후킹 구현이라는 데에 있어
inline hook 따위에 비하여 훨씬 쉽기도 하기 때문입니다.
그래서 보통 후킹에 대한 입문 하면 IAT Hook 부터 접하게 되는 것이 일반적이었다고
생각합니다. 따라서 저는 후킹이라는 주제를 하나의 큰 학문이라고 가정하고 그것을 수학에
비유한다면 IAT Hook 은 인수분해 쯤 되는 순서라고 봅니다. 또 그만큼 기초적이기도
하니까요.
하지만 쉬웠던 만큼 IAT Hook은 실전에선 그렇게 많이 써먹히지가 않았죠. 그 이유는
무엇일까요. 바로 IAT Hook 에는 "범용성" 이 없었습니다. 써먹을 타겟에 한계가 있던 것이죠.
IAT Hook 을 널리 전파하기에는 프로텍터와 패커라는 너무도 높은 관문이 있었습니다.
패킹한 바이너리의 IAT 를 찾는것은 패커의 종류마다 버전마다 너무도 많은 차이가 있고
또 그 각각의 IAT를 구하기도 쉽지 않습니다. 따라서 후킹하기에 앞서 모든 호환성이나
플랫폼을 감안하여야 하는 보안 솔루션 입장에선 IAT 는 건드리기 힘든 혹은 건드려서는
안되는 불모지 쯤으로 전락하게 됩니다.
그리고 역시 inline hooking 이 가장 범용적이면서 또 기능도 강력하기 때문에 사람들의
관심은 이쪽에 맞추어진 채로 지금까지 오게 됩니다. 그래서 inline hook 을 더 효율적으로
하는 여러가지 연구가 이루어집니다. 예를 들면 중간번지를 후킹한다거나 push address
retn, 트램벌린 코드 같은 시도가 그것들이죠. 처음 볼때마다 신기한 넘들이 등장하고
또 그것을 막거나 우회하기 위한 논의가 지속됩니다. IAT Hook은 버려져 있다고 생각하기
쉬운 이 시점에 overwrite hook은 계속 발전하고 있습니다.
하지만 최근에 실제 현업에서는 분위기는 또하나의 물결이 보이는 것 같습니다. 해커들에게
요즘의 대세는 IAT Hook 입니다. 보안업계 사람들이 버려둔채 이목이 집중이 되지 못하고
있는 영역인 것을 그들이 눈치라도 챈 듯, IAT 쪽을 최근 집중적으로 건드리고 있습니다.
특히 보안 모듈이나 보안 코드가 온전히 가동되고 있는 상황에 더욱 그렇습니다.
이들이 IAT 쪽을 공격하는 제가 나름대로 생각하는 이유를 적어보겠습니다.
1. 공격대상은 거의다 패킹된 바이너리이며 보안 코드 작성시 그 상태에서는 IAT 를
쉽게 구할 수 없다. 따라서 검사하지 않을 것이다.
2. 하지만 해킹툴을 만드는 입장에선 까짓거 노가다로 찾아서 하드코딩 해버리면 된다.
(대부분이 이런 넘들임. 클라이언트가 패치하여 번지가 바뀌면 후킹하지 못함)
3. 보안 솔루션이 IAT 를 구하더라도 패커가 내부적으로 리다이렉트 시키는건지
해킹툴이 훅을 하는건지 패커의 내부구조를 상당수 파악하기 전까진 분간하기 힘들다.
4. 훅을 해도 system dll 들의 메모리 CRC가 변경되지 않는다.
대략 이정도 같군요. 늘어놓고 보니 IAT Hook 이 공격하기에 꽤 매력적이라는 생각이
듭니다. 즉 이정도 이유만 되어도 IAT Hook 으로 공격할 당위성은 충분하다고 보입니다.
저는 르네상스 라는 단어를 좋아합니다. 르네상스는 문화의 부활 이라는 의미로 많이
사용되죠. 그래서 저는 IAT Hook 도 일종의 르네상스라고 보고 있습니다. 이전에
디버그랩에서 발표를 할 때에도 IAT Hook 의 르네상스라는 표현을 사용한 적이
있고 작년 마소에서 IRP Hook을 다룰 때에도 역시 마찬가지 비유를 들었던 기억이
있네요. 르네상스보다 사실 더 좋은 우리 선조들의 말씀도 있죠 "구관이 명관이다!"
예~ 역시 옛 것을 다시 살펴보는 것은 정말 중요한 것 같습니다.
마무리 짓자면 리버스 엔지니어링을 할 때 무언가 답은 나오지 않고 답답하다 싶으면
한번 IAT 쪽도 살펴보세요. 큰 힌트를 발견하게 될 수도 있습니다 :)
최근 들어 IAT 를 고도의 기술로 건드리며 우리를 당황하게 하는 중국애들을
보며 느낀 내용들입니다.
window31. 2009년 1월
