책 소개
1999년 이메일을 이용해서 확산되는 멜리사 바이러스가 등장하면서 악성코드의 확산 속도가 기하급수적으로 증가하기 시작했다. 디스켓 등의 저장 장치만을 악성코드 확산의 수단으로 생각했던 악성코드 제작자들이 인터넷을 이용하기 시작했다. 이때부터 전 세계의 컴퓨터가 순식간에 악성코드에 감염될 수 있는 상황에 놓이게 되었다.
기하급수적으로 늘어난 악성코드를 대처하기 위해 기존 백신 개발자는 엄청 바빠졌다. 악성코드를 수집하기 위해 외국 백신 업체와 연락망도 넓히고 악성코드 수집용 허니팟도 구축했다. 백신에 의해 자동으로 수집되는 악성코드 의심 메일도 집중적으로 살폈다. 반면 악성코드 수집이 힘들었던 공개용 백신 개발자들은 악성코드의 대처 능력이 떨어지기 시작했다.
결국 대부분의 공개용 백신 개발자들은 공개용 백신 개발을 포기하고 백신 업체로 들어가게 되었다. 이렇게 바쁘게 살아온 백신 개발자들은 시간적 제약이나 각 백신 업체의 기밀 등을 이유로 결국 외부로의 기술 공개에 제약을 받을 수밖에 없었다. 백신의 구조와 원리를 아는 이가 없으니 백신 업체로 들어오는 사람이 없고, 사람이 없으니 기존 백신 개발자는 계속적으로 바쁜 악순환이 발생한 것이다.
이 책은 최대한 많은 백신 개발자들의 참여를 유도하기 위해 고민 끝에 파이썬 언어를 선택했다. 파이썬이 스크립트 언어이기에 속도도 느리고 저수준 레벨에 대한 접근은 어려운 것이 아닌가 하는 생각을 할지도 모른다. 그러나 우리에게 중요한 것은 누구나 쉽고, 빠르게 악성코드를 대처할 수 있는 백신을 만드는 일이다. 즉, 생산성을 목표로 한다. 그렇기에 파이썬은 우리에게 가장 적합한 언어가 확실하다.
이 책은 전체적인 백신의 구조와 동작 원리의 정확한 이해를 목표로 한다. 그렇기 때문에 이 책의 소스코드를 바탕으로 딥러닝/머신러닝 기법을 이용한 악성코드 검사 기법이 많이 추가될 것으로 생각된다. 앞으로 많은 개발자들의 참여를 기대해본다.
기하급수적으로 늘어난 악성코드를 대처하기 위해 기존 백신 개발자는 엄청 바빠졌다. 악성코드를 수집하기 위해 외국 백신 업체와 연락망도 넓히고 악성코드 수집용 허니팟도 구축했다. 백신에 의해 자동으로 수집되는 악성코드 의심 메일도 집중적으로 살폈다. 반면 악성코드 수집이 힘들었던 공개용 백신 개발자들은 악성코드의 대처 능력이 떨어지기 시작했다.
결국 대부분의 공개용 백신 개발자들은 공개용 백신 개발을 포기하고 백신 업체로 들어가게 되었다. 이렇게 바쁘게 살아온 백신 개발자들은 시간적 제약이나 각 백신 업체의 기밀 등을 이유로 결국 외부로의 기술 공개에 제약을 받을 수밖에 없었다. 백신의 구조와 원리를 아는 이가 없으니 백신 업체로 들어오는 사람이 없고, 사람이 없으니 기존 백신 개발자는 계속적으로 바쁜 악순환이 발생한 것이다.
이 책은 최대한 많은 백신 개발자들의 참여를 유도하기 위해 고민 끝에 파이썬 언어를 선택했다. 파이썬이 스크립트 언어이기에 속도도 느리고 저수준 레벨에 대한 접근은 어려운 것이 아닌가 하는 생각을 할지도 모른다. 그러나 우리에게 중요한 것은 누구나 쉽고, 빠르게 악성코드를 대처할 수 있는 백신을 만드는 일이다. 즉, 생산성을 목표로 한다. 그렇기에 파이썬은 우리에게 가장 적합한 언어가 확실하다.
이 책은 전체적인 백신의 구조와 동작 원리의 정확한 이해를 목표로 한다. 그렇기 때문에 이 책의 소스코드를 바탕으로 딥러닝/머신러닝 기법을 이용한 악성코드 검사 기법이 많이 추가될 것으로 생각된다. 앞으로 많은 개발자들의 참여를 기대해본다.
작가 소개
저 : 최원혁
현재 보안회사 ㈜누리랩 설립자 겸 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장 백신 업데이트하기
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장 백신 업데이트하기
01. 반품기한
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
02. 반품 배송비
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
03. 배송상태에 따른 환불안내
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
04. 취소방법
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
05. 환불시점
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
06. 취소반품 불가 사유
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |