이번에 회사에서 책 구매를 하면서 평소에 보고싶었던 원서를 몇 권 신청했습니다. 그런데 요놈들 대박이네요. 그 중 하나가 백신 엔진과 관련된 책입니다. 백신 엔진이라기 보다는 제목 그대로 바이러스 분석에 관한 책입니다. 제목이 "The art of Computer Virus Research and Defense"입니다. 제목 그대로 아트입니다. 책 읽고 있으면 나도 백신 엔진을 만들수 있겠다는 사기가 충만해지죠. 그 정도로 세부적으로 잘 적혀져 있습니다.
전반부는 바이러스를 분석하고, 후반부는 바이러스 스캐너(백신 엔진)에 관해서 다룹니다. 저는 특히나 스캐너 부분이 흥미로웠습니다. 뭐 일세대 스캐너, 이세대 스캐너 이런 식으로 설명을 해줍니다. 일세대 스캐너가 이랬는데, 어떤 놈 때문에 이세대 스캐너가 나왔고 요론 식입니다. 저자의 경험에서 우러나오는 귀에 쏙쏙 들어오는 설명이죠. ㅋ 스캐너 부분 보면 어떤 엔진에서 이러한 방식을 탑재했고, 이 방식은 누가 최초로 고안했고 하는 내용들이 나옵니다. 우리가 흔히 들었던 F-prot, Kaspersky, 유진 카스퍼스키같은 이름들이 나오더군요. 유진 카스퍼스키란 사람이 이쪽 분야에선 굉장한가 보더군요. ㅎㅎ
스캐너 부분에서 제가 굉장히 충격을 받은 것은 매크로 파서와 CPU 에뮬레이션 이었습니다. 매크로 파서는 매크로를 파싱해서 불필요한 더미를 제거하고 코드의 흐름만 비교한다는 것이 요지입니다. 책에는 뼈대 탐지(스켈레톤 디텍션)이란 이름으로 소개되어있습니다. 요 방식을 고안한 사람이 유진 카스퍼스키죠. 매크로의 경우 변경하기가 굉장히 쉽습니다. 변수 이름만 전체 치환해도 새로운 바이러스가 되는 것이죠. 그런 것들을 한방에 통채로 잡기 위해서 나온 방식입니다.
CPU 에뮬레이션은 말 그대로 가상의 CPU에서 바이러스 코드를 추적하는 방식입니다. 언뜻 생각하면 CPU를 소프트웨어적으로 흉내내는게 간단해 보이지만 실제로는 생각해야할 것이 많습니다. 특히나 API같은 것은 굉장히 까다롭죠. 그런데 그런 API까지 에뮬레이션 하는 녀석들이 벌써 업계에서는 구현이 되어서 사용되고 있나 봅니다. 아쉬운 점은 책에는 16비트 CPU에 대한 걔략적인 의사 코드 정도만 나온다는 점입니다.
그것 외에도 스캐너 종반부에는 휴리스틱 적인 방법에 대한 소개도 나옵니다. 그런데 그 휴리스틱이 우리가 생각하는 것보다 굉장히 단순한 형태입니다. PE 파일의 이상적인(anomaly) 구조를 판단하는 것이 주된 관점이더군요.
백신과 바이러스에 관심이 있는 분이라면 일독을 권해드리고 싶네요. 아니 소장하시기를 ㅋㅋ. 강컴보니 원서임에도 별로 비싸지도 않습니다.