파이썬으로 배우는 Anti-Virus 구조와 원리


부제 예제와 오픈소스를 통해 이해하는 악성코드의 진단과 치료

저자 최원혁

 

출간/배본가능일 2017년 9월 29

정가 34,000

페이지 624

판형 4*6배판 188*245

ISBN 979-11-86697-41-2 (93000)


 

책 소개

 

예제와 오픈소스를 통해 이해하는 악성코드의 진단과 치료

 

악성코드는 1986년부터 생겨나기 시작하여 벌써 30년 넘게 사용자의 컴퓨팅 환경을 위협해왔다. 그로 인해 수많은 피해가 발생했으며, 이제는 타인의 정보를 수집하는가 하면 국가 간 사이버 공격용 무기로 발전하기도 했다.
이에 필자는 악성코드를 치료하는 백신이 어떻게 동작하는지 그리고 어떻게 개발하면 되는지를 기록으로 남기기 위해, 예전에 개발했지만 1998년에 사라졌던 키콤백신을 오픈소스로 재탄생시켜야겠다는 생각을 가지고 2013년에 다시 처음부터 개발하게 되었다.

키콤백신은 사용자에게 백신의 원리를 쉽게 이해시키기 위해 파이썬(Python) 언어를 선택했다. 또한 키콤백신의 동작 원리를 널리 알려야겠다는 생각에 이 책을 출간하게 되었다.
이 책에서는 소스코드에 존재하지만 주석만으로 설명되지 않는 부분들을 가급적 자세하고 상세히 설명하려고 노력했다. 독자에게 이 책이 악성코드와 백신이 작동하는 구조와 원리에 대해 더 깊이 이해할 수 있는 계기가 되길 바란다.

 

이 책이 필요한 독자

- 파이썬이라는 대중적이고 쉬운 언어로 풀어낸 백신 코딩 방법과 철학
- 백신의 구조와 동작 원리를 항목별로 세분화하여 알기 쉽게 설명
- 오픈소스 형태로 언제든지 최신 소스코드를 바로 확인 가능한 키콤백신 채택
- 독학 및 학교 교재로 손색이 없는 백신 개발자를 위한 필수 서적

 

이 책의 특징

- 백신 개발을 직접 하고 싶은 독자
- 파이썬 프로그래밍에 대해 새로운 예제코드가 필요한 독자
- 오픈소스 프로젝트에 참여하고 싶은 독자

 

독자대상
초중급

 

키콤백신 최신 소스코드 다운로드
https://github.com/hanul93/kicomav/archive/master.zip

 

 

 

저자 소개

 

최원혁

현재 보안회사 ㈜누리랩 설립자 겸 CEO로서 악성코드 분석 및 백신(Anti-Virus) 제작 업무를 맡고 있으며, 디지털 포렌식 관련 수사 도구 개발 및 연구에도 참여하고 있다. 미래창조과학부 사이버보안 전문단원으로 활동했으며, 다수의 공공기관 및 대학교를 대상으로 악성코드 분석 및 백신 개발, 디지털 포렌식 강의를 하고 있다.
1993년 악성코드 분석을 계기로 1995년 키콤백신을 개발하여 PC 통신망에 공개하면서 본격적으로 악성코드 분석 및 백신 개발에 심취하게 되었다. 공개 백신 개발자들이 모여 1998년 하우리를 창업하면서 바이로봇 엔진 설계를 맡았으며 연구소장을 지냈다. 하우리 퇴사 이후에도 백신 엔진 개발을 지금까지 해왔다. 최근에는 과거 키콤백신을 모태로 새로운 키콤백신 엔진을 오픈소스로 선언하고 직접 개발에 참여하고 있다. 요즘은 두 아들을 설득해 키콤백신 개발을 가업으로 이어나갈 생각에 빠져 있다.


 

 

목차

 

 

1부 백신 개발을 위한 첫걸음

1장 시작하기 전에
2장 악성코드와 백신의 이모저모
3장 개발 환경 구축하기

 

2부 백신 세상으로 들어가기

4장 전용백신 개발하기
5장 다양한 악성코드를 진단/치료하기
6장 악성코드 패턴 분리하기
7장 악성코드 진단/치료 모듈 분리하기
8장 전용백신 배포본 만들기

 

3부 유지보수가 편리한 백신 구조의 고민

9장 플러그인 백신 엔진 개발하기
10장 플러그인 백신 엔진의 암/복호화 도구 만들기
11장 플러그인 백신 엔진 동적 로딩하기
12장 백신 커널 개발하기
13장 백신 콘솔 프로그램 개발하기

 

4부 압축 파일 내부의 악성코드 진단/치료에 대한 고민

14장 압축 파일? 임베딩 파일?
15장 ZIP 파일 처리하기
16장 플러그인 백신 엔진 구조 보강하기
17장 백신 커널 보강하기
18장 압축 파일 내부의 악성코드 치료 방법 고민하기

 

5부 파일 포맷 추가하기

19장 스크립트 파일 포맷 추가하기
20장 PE 파일 포맷 추가하기
21장 OLE 파일 포맷 추가하기
22장 PDF 파일 포맷 추가하기
23장 ALZ 파일 포맷 추가하기
24장 UPX 파일 포맷 추가하기

 

6부 악성코드 진단/치료하기

25장 스크립트 악성코드 진단/치료하기
26장 윈도우 악성코드 진단/치료하기
27장 MS 오피스 악성코드 진단/치료하기
28장 한글(HWP) 취약점 진단/치료하기

 

7부 백신 배포하기

29장 설치 파일 만들기
30장 백신 업데이트하기

 

     

출판사 리뷰

 

1999년 이메일을 이용해서 확산되는 멜리사 바이러스가 등장하면서 악성코드의 확산 속도가 기하급수적으로 증가하기 시작했다. 디스켓 등의 저장 장치만을 악성코드 확산의 수단으로 생각했던 악성코드 제작자들이 인터넷을 이용하기 시작했다. 이때부터 전 세계의 컴퓨터가 순식간에 악성코드에 감염될 수 있는 상황에 놓이게 되었다.
기하급수적으로 늘어난 악성코드를 대처하기 위해 기존 백신 개발자는 엄청 바빠졌다. 악성코드를 수집하기 위해 외국 백신 업체와 연락망도 넓히고 악성코드 수집용 허니팟도 구축했다. 백신에 의해 자동으로 수집되는 악성코드 의심 메일도 집중적으로 살폈다. 반면 악성코드 수집이 힘들었던 공개용 백신 개발자들은 악성코드의 대처 능력이 떨어지기 시작했다.
결국 대부분의 공개용 백신 개발자들은 공개용 백신 개발을 포기하고 백신 업체로 들어가게 되었다. 이렇게 바쁘게 살아온 백신 개발자들은 시간적 제약이나 각 백신 업체의 기밀 등을 이유로 결국 외부로의 기술 공개에 제약을 받을 수밖에 없었다. 백신의 구조와 원리를 아는 이가 없으니 백신 업체로 들어오는 사람이 없고, 사람이 없으니 기존 백신 개발자는 계속적으로 바쁜 악순환이 발생한 것이다.
이 책은 최대한 많은 백신 개발자들의 참여를 유도하기 위해 고민 끝에 파이썬 언어를 선택했다. 파이썬이 스크립트 언어이기에 속도도 느리고 저수준 레벨에 대한 접근은 어려운 것이 아닌가 하는 생각을 할지도 모른다. 그러나 우리에게 중요한 것은 누구나 쉽고, 빠르게 악성코드를 대처할 수 있는 백신을 만드는 일이다. 즉, 생산성을 목표로 한다. 그렇기에 파이썬은 우리에게 가장 적합한 언어가 확실하다.
이 책은 전체적인 백신의 구조와 동작 원리의 정확한 이해를 목표로 한다. 그렇기 때문에 이 책의 소스코드를 바탕으로 딥러닝/머신러닝 기법을 이용한 악성코드 검사 기법이 많이 추가될 것으로 생각된다. 앞으로 많은 개발자들의 참여를 기대해본다.

신고
Trackback 0 | Comment 0

퍼블릭's Blog is powered by Daum & tistory