HOME > 상세정보

상세정보

악성코드 분석가의 비법서 (23회 대출)

자료유형
단행본
개인저자
Ligh, Michael Hale, 저 Adair, Steven, 저 Hartstein, Blake, 저 Richard, Matthew, 저 여성구, 역 구형준, 역
서명 / 저자사항
악성코드 분석가의 비법서 / 마이클 할레 라이 [외] 지음 ; 여성구, 구형준 옮김
발행사항
의왕 :   에이콘,   2012  
형태사항
886 p. : 삽화 ; 26 cm + 비디오 디스크 (DVD) 1매
총서사항
에이콘 해킹ㆍ보안 시리즈 = Hacking security series ; 36
원표제
Malware analyst's cookbook and DVD : tools and techniques for fighting malicious code
ISBN
9788960773011 9788960771048 (set)
일반주기
감수: 이상진  
공저자: 스티븐 어드에어(Steven Adair), 블레이크 할스타인(Blake Hartstein), 매튜 리차드 (Matthew Richard)  
색인수록  
일반주제명
Malware (Computer software) Computer security
000 01489camcc2200433 c 4500
001 000045708282
005 20120609153235
007 ta
008 120608s2012 ggka 001c kor
020 ▼a 9788960773011 ▼g 94560
020 1 ▼a 9788960771048 (set)
035 ▼a (KERIS)BIB000012785009
040 ▼a 211062 ▼c 211062 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.8 ▼2 22
085 ▼a 005.8 ▼2 DDCK
090 ▼a 005.8 ▼b 2012z5
245 0 0 ▼a 악성코드 분석가의 비법서 / ▼d 마이클 할레 라이 [외] 지음 ; ▼e 여성구, ▼e 구형준 옮김
246 1 9 ▼a Malware analyst's cookbook and DVD : ▼b tools and techniques for fighting malicious code
260 ▼a 의왕 : ▼b 에이콘, ▼c 2012
300 ▼a 886 p. : ▼b 삽화 ; ▼c 26 cm + ▼e 비디오 디스크 (DVD) 1매
440 0 0 ▼a 에이콘 해킹ㆍ보안 시리즈 = ▼x Hacking security series ; ▼v 36
500 ▼a 감수: 이상진
500 ▼a 공저자: 스티븐 어드에어(Steven Adair), 블레이크 할스타인(Blake Hartstein), 매튜 리차드 (Matthew Richard)
500 ▼a 색인수록
650 0 ▼a Malware (Computer software)
650 0 ▼a Computer security
700 1 ▼a Ligh, Michael Hale, ▼e
700 1 ▼a Adair, Steven, ▼e
700 1 ▼a Hartstein, Blake, ▼e
700 1 ▼a Richard, Matthew, ▼e
700 1 ▼a 여성구, ▼e
700 1 ▼a 구형준, ▼e
900 1 0 ▼a 라이, 마이클 할레, ▼e
900 1 0 ▼a 어드에어, 스티븐, ▼e
900 1 0 ▼a 할스타인, 블레이크, ▼e
900 1 0 ▼a 리차드, 매튜, ▼e
945 ▼a KLPA

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.8 2012z5 등록번호 111667889 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.8 2012z5 등록번호 121220527 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.8 2012z5 등록번호 111667889 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 과학도서관/Sci-Info(1층서고)/ 청구기호 005.8 2012z5 등록번호 121220527 도서상태 대출가능 반납예정일 예약 서비스 B M

컨텐츠정보

책소개

악성코드 분석에 필요한 여러 비법을 소개한 책이다. 악성코드 분석 환경 구축에서 다양한 자동화 분석 도구를 이용한 분석 방법까지 차근히 설명한다. 또한 디버깅과 포렌식 기법까지 상당히 넓은 영역을 난이도 있게 다루므로 악성코드 분석 전문가도 십분 활용할 수 있는 참고 도서다.

올해 읽은 책 중에서 가장 유용한 보안 기술 서적이다. 악성코드로부터 시스템을 보호하려는 모든 이의 필독서다.
- 레니 젤스터(Lenney Zeltser), 새비스(Savvis) 보안 실무 책임자이자 SANS 상급 구성원

악성코드 분석에 관심 있는 모두에게 최선의 가이드다.
- 라이언 올슨(Ryan Olson), 베리사인(VeriSign)의 아이디팬스(iDefense) 긴급 대응 팀 책임자

이 책은 실용적인 악성코드 지식, 창의적인 생각, 그리고 유용한 도구로 가득 차있다. 황금과도 같은 가치를 지닌다.
- 아론 월터스(AAron Walters), 볼래틸리티(Volatility)의 개발 총괄이자 테레마크(Terremark)의 보안 R&D 부사장

다양한 보안 위협에 대응할 수 있는 강력한 단계별 해설서

이 책을 비법서라고 부르는 이유는 각 '비법'이 특정한 위협을 연구하고 문제를 해결하기 위해 거쳐야 하는 단계와 내용을 포함하기 때문이다. 부록 DVD에 추가 예제 파일과 원본 프로그램을 수록했다. 저자가 작성한 도구와 공개적으로 알려진 수백 가지 도구를 활용해 악성코드 분석법을 배울 수 있다. 사고 대응, 컴퓨터 포렌식, 시스템 보안, 백신 연구와 관련된 업무에 종사하는 사람이라면 이 책은 대단히 유용할 것이다.


★ 이 책에서 다루는 내용 ★

■ 신분을 노출하지 않고 온라인 조사를 수행하는 법
■ 허니팟을 이용해 봇과 웜이 배포하는 악성코드 수집
■ 의심스러운 내용을 포함한 자바스크립트, PDF, 오피스 문서 분석
■ 가상 머신이나 일체형 하드웨어를 이용해 저렴한 악성코드 연구 환경 구축
■ 일반적인 인코딩과 암호 알고리즘을 리버스 엔지니어링
■ 악성코드 분석을 위한 고급 메모리 포렌식 플랫폼 구성
■ 제우스(Zeus), 사일런트뱅커(Silent Banker), 코어플러드(CoreFlood), 콘플리커(Conficker), 바이러트(Virut), 클램피(Clampi), 뱅크패치(Bankpatch), 블랙에너지(BlackEnergy) 등과 같은 널리 퍼진 악성코드 조사


★ 부록 DVD 소개 ★

DVD에 있는 파일을 활용해 각 비법의 내용을 따라하거나 직접 조사와 분석을 수행한다. DVD에는 다음과 같은 내용이 들어있다.

■ 포렌식 증거 파일
■ 주석을 추가한 비디오
■ 소스 코드
■ 윈도우와 리눅스 도구
■ 파이썬, C/C++, 펄로 작성한 50개 이상의 원본 프로그램


★ 이 책의 대상 독자 ★

악성코드를 학습하려면 이 책을 읽어야 한다. 포렌식 분석가, 사고 대응가, 시스템 관리자, 보안 엔지니어, 모의 해킹 수행자, 악성코드 분석가, 취약점 연구가, 보안에 관심을 가진 모든 이가 대상이다. 다음과 같은 상황에 있는 독자라면 반드시 읽어야 한다.

■ 사고 대응을 다루는 기관이나 포렌식 팀의 구성원이고, 악성코드를 다루는 새로운 도구이나 기술을 배우고자 한다.
■ 시스템, 보안, 네트워크 관리 업무를 하고 있으며, 엔드 유저를 효과적으로 보호하는 방법을 알고자 한다.
■ 국가 컴퓨터 비상 대응 팀(CERT) 구성원이고, 악성코드 침입 여부를 탐지 조사한다.
■ 백신이나 컴퓨터 연구 관련 업무를 하고 있으며, 최신 악성코드 사례를 분석하고 보고한다.
■ 대학에서 가르치지 않는 기술을 적극적으로 배우고자 하는 학생이다.
■ IT 현장에서 근무하며, 따분함을 느끼고 기술 지식을 다루는 새로운 전문 분야를 찾고 있다.


★ 이 책의 구성 ★

이 책은 특정 문제를 해결하고 새로운 도구를 소개하거나 흥미 있는 악성코드 탐지와 분석 방법을 설명하는 비법을 모아 놓았다. 일부 비법은 독립형으로 문제 제기, 설명, 해결책을 모두 제시한다. 다른 비법은 상호 연결돼 좀 더 큰 문제를 해결할 수 있게 순차적인 방법을 설명한다. 이 책의 주제는 큰 줄기에 따라 구성했으며, 뒷장으로 갈수록 심층적이고 전문화된 내용이 수록돼 있다. 각 장에 대한 내용을 정리하면 다음과 같다.

1장. 행동 익명화
신분을 노출하지 않고 온라인 조사를 수행하는 방법을 다룬다. 이 지식을 이용해 예제 따라 하기와 추후 연구를 안전하게 수행할 수 있다.

2장. 허니팟
봇과 웜이 배포하는 악성코드를 수집하기 위해 허니팟을 사용하는 방법을 다룬다. 이 기법을 사용해 현장에서 새로운 악성코드 변종을 수집해 실시간으로 다른 연구자와 공유하고, 공격 패턴과 악성코드 샘플을 자동으로 분석할 수 있다.

3장. 악성코드 분류
악성코드를 식별해 분류하고 구성하는 방법을 다룬다. 사용자 정의 시그니처를 이용해 악의적인 파일을 탐지하고 샘플 간의 관계를 구분해 공격자가 새로운 변종에 어떤 기능을 추가했는지 정확히 파악할 수 있다.

4장. 샌드박스와 다중 AV 스캐너
온라인 바이러스 스캐너와 공개 샌드박스를 잘 활용할 수 있는 방법을 설명한다. 대상 샌드박스에서 샘플 행위를 제어할 수 있는 스크립트를 사용하는 방법, 파이썬 스크립트를 이용해 커맨드라인에서 샘플을 등록하는 방법, 데이터베이스에 결과를 저장하는 방법, 그리고 샌드박스 결과를 바탕으로 악성코드의 잔여 데이터를 스캔하는 방법을 알아본다.

5장. 도메인과 IP 주소 연구
도메인, 호스트명, IP 주소와 관련된 정보를 식별하고 관련성을 확인하는 방법을 다룬다. 패스트 플럭스 도메인(Fast Flux Domain)을 추적하는 방법, 의심스러운 도메인 소유주를 구별하는 방법, 공격자와 동일한 그룹이 소유한 다른 시스템의 위치를 파악하는 방법, IP 주소의 지리적 위치를 기반으로 정적 맵이나 동적 맵을 생성하는 방법을 알아본다.

6장. 문서, 셸코드, URL
악의적인 행위의 징후를 파악하기 위해 자바스크립트, PDF, 오피스 문서, 패킷 캡처를 분석하는 방법을 다룬다. 익스플로잇에서 셸코드를 추출하고 디버거나 에뮬레이션 환경에서 분석하는 방법을 설명한다.

7장. 악성코드 연구실
악성코드를 실행하고 모니터링할 수 있는 연구실을 안전하고 유연하면서도 저비용으로 구축할 수 있는 방법을 알아본다. 가상 머신이나 물리 머신을 포함해 실제 또는 시뮬레이션된 인터넷을 사용하는 해결 방안을 소개한다.

8장. 자동화
VMware나 VirutalBox 가상 머신에서 악성코드의 실행을 자동화하는 방법을 다룬다. 악성코드의 행위, 네트워크 트래픽 로그, 물리 메모리의 잔여 데이터에 대한 맞춤형 보고서를 만드는 몇 가지 파이썬 스크립트를 소개한다.

9장. 동적 분석
악성코드 행위를 이해하는 최선의 방법은 직접 실행해 살펴보는 것이다. 직접 API 모니터를 만드는 방법, 임의의 증거가 훼손되지 않게 보호하는 방법, 후킹하지 않고 실시간으로 파일 시스템과 레지스트리를 로깅하는 방법, 프로세스 핸들 테이블의 변화를 비교하는 방법, 공격자가 백도어를 이용해 보낸 명령어를 로깅하는 방법 등을 알아본다.

10장 악성코드 포렌식
포렌식 도구를 이용해 루트킷과 은닉 악성코드를 탐지하는 방법에 초점을 맞춘다. 파일 시스템과 레지스트리를 스캔해 은닉 데이터를 탐색하는 방법, 잠금 파일 제한을 우회하고 다루기 힘든 악성코드를 제거하는 방법, HTML 인젝션을 탐지하는 방법과 새로운 형태인 레지스트리 '슬랙' 공간을 조사하는 방법을 알아본다.

11장. 악성코드 디버깅
디버거를 사용해 악성코드 샘플 행위를 분석, 통제, 조작하는 방법을 다룬다. 파이썬을 이용해 디버깅 세션을 스크립팅하는 방법과 API 호출을 모니터링하고 HTML 행위 보고서를 제작하는 방법, 자동적으로 의심스러운 행위를 강조하는 디버거 플러그인을 제작하는 방법 등을 알아본다.

12장. 역난독화
공격자가 의도적으로 은닉하려는 데이터를 디코딩, 복호화, 언패킹하는 방법을 다룬다. 네트워크 트래픽을 암호화하는 악성코드 샘플을 리버스 엔지니어링해 유출된 데이터를 복원하는 과정을 설명한다. 도메인 생성 알고리즘을 크랙하는 기술도 알아본다.

13장. DLL을 이용한 작업
동적 링크 라이브러리(DLL)로 분산된 악성코드를 분석하는 방법을 설명한다. DLL의 익스포트된 함수를 목록화하고 시험하는 방법, 선택한 프로세스에서 DLL을 실행(그리고 호스트 프로세스 제한을 우회)하는 방법, 윈도우 서비스로서 DLL을 실행하는 방법, DLL을 독립 실행 파일로 변환하는 방법 등을 배울 수 있다.

14장. 커널 디버깅
악명 높은 악성코드 중 일부는 커널 모드에서만 동작한다. 하위 수준의 기능을 이해할 수 있게 악성코드에 감염된 가상 머신의 커널을 디버깅하는 방법을 다룬다. WinDbg를 위한 스크립트 제작, 커널 드라이버 언패킹, IDA Pro 디버거 플러그인을 잘 활용할 수 있는 방법을 알아본다.

15장. Volatility를 이용한 메모리 포렌식
실제 장비와 가상 머신에서 메모리 샘플을 채취하는 방법, Volatility 고급 메모리 포렌식 플랫폼과 관련 플러그인을 설치하는 방법, 프로세스 컨텍스트 속임수와 DKOM 공격을 탐지하기 위한 분석을 시작하는 방법을 알아본다.

16장. 메모리 포렌식: 코드 인젝션과 추출
프로세스 메모리에 은닉된 코드(언링크된 DLL, 셸코드 등)를 탐지하고 추출하는 방법을 설명한다. 메모리 샘플에서 사용자 모드 프로그램과 커널 드라이버를 포함하는 바이너리를 재구성하는 방법, 메모리 덤프에 있는 정보를 바탕으로 패킹된 악성코드의 임포트 주소 테이블(IAT)을 재구성하는 방법을 알아본다.

17장. 메모리 포렌식: 루트킷
시스템에서 IAT, EAT, 인라인, 드라이버 IRP, IDT, SSDT 후킹 여부를 포함해 다양한 형태의 루트킷 활동을 탐지하는 방법을 다룬다. 드라이버 로딩 없이 커널 메모리에 은닉된 악성코드를 식별하는 방법, 시스템 전역 알림 루틴을 확인하는 방법, 윈도우 서비스 실행 시 은닉 시도를 탐지하는 방법 등을 알아본다.

18장. 네트워크와 레지스트리
악성코드 샘플의 네트워크 활동으로 인해 시스템에 생성된 잔여 데이터를 탐색하는 방법을 다룬다. 활성화된 연결, 대기하고 있는 소켓, 원시 소켓 사용과 무작위 모드 네트워크 카드를 탐지하는 방법, 메모리에서 활성 레지스트리 키와 값을 추출하는 방법 등을 알아본다.


★ 저자 서문 ★

『악성코드 분석가의 비법서』는 악성코드를 다루고 악성코드와 싸우는 모든 이의 분석 능력과 기술을 향상시키기 위해 구성한 해결서이자 학습서다. 포렌식 조사, 사고 대응, 또는 재미로나 전문적으로 악성코드 리버스 엔지니어링을 수행하는 모든 이에게 목표를 성취할 수 있는 창조적인 방법을 제시한다. 이 책의 내용은 몇 가지 목표를 염두에 두고 구성했다. 첫째, 악성코드에 대한 수년간의 경험을 전달하는 데 있어 비전문가도 충분히 친숙하게 이해할 수 있을 뿐 아니라 전문가도 충분히 활용할 수 있게 깊이 있는 내용을 다뤘다. 악성코드 분석가는 다양한 기술을 조합해 균형을 갖춰야 한다는 말이 있다. 독자는 최소한 다음 주제에 대해 일반적인 수준의 지식이 있어야 한다.

o 네트워킹과 TCP/IP
o 운영체제 내부(윈도우와 유닉스)
o 컴퓨터 보안
o 포렌식과 사고 대응
o 프로그래밍(C, C++, 파이썬, 펄)
o 리버스 엔지니어링
o 취약점 분석
o 악성코드 기본 지식

두 번째 목표는 도구에 대한 단순 사용법보다는 다양한 도구가 어떻게 동작하는지를 전달하고자 했다. 단순히 버튼 클릭만 할 줄 아는 것보다 버튼을 다르게 클릭했을 때(또는 명령어를 입력했을 때) 어떤 일이 발생하는지 이해하면 단순히 도구 결과를 취합하는 것이 아닌 진정한 분석을 할 수 있다. 프로그래밍을 원하지 않는 분을 위해 50개 이상의 도구를 DVD에 포함했다. 책에서 더 많은 도구를 언급하고 있지만, 잘 알려진 도구의 경우 링크를 제외했고 가능한 한 친숙하고 자유롭게 사용할 수 있는 도구를 사용하고자 했다.

마지막으로 이 책은 악성코드 샘플을 시험하거나 포렌식 조사를 하는 동안 수행하는 모든 과정을 세부적으로 다루지는 않는다. 일반적이지만 다른 책이나 웹사이트에서 잘 다루지 않는 문제를 포함해 충분히 유익한 정보를 독자에게 제공하고자 했다. 또한 악성코드가 윈도우, 리눅스, 맥 OS X, 모바일 기기, 하드웨어/펌웨어 컴포넌트 같은 수많은 플랫폼을 대상으로 하지만 주로 윈도우 악성코드에 초점을 맞췄다.

★ 옮긴이의 말 ★

하루가 멀다 하고 신문, 뉴스, 잡지 등 매체에서 연일 다양한 보안 사고를 보도하고 있다. 때문에 난해한 IT 용어도 대다수가 한 번쯤 들어봤을 만큼 국민 수준도 많이 높아졌고, 최근 개인정보 보호법이 발효되면서 보안 전문가는 해결해야 할 문제가 그만큼 많아졌다. 특히 날이 갈수록 지능화되고 은밀하게 동작하는 악성코드가 기승을 부리면서 이를 분석하고 퇴치하는 일이 더 이상 백신 전문가만의 영역으로 미룰 수 없는 현실이기도 하다.

아마존 웹사이트를 통해 처음으로 이 책의 원서인 『Malware Analyst's Cookbook and DVD』를 접하고 구성과 내용이 마음에 들어 바로 구매했다. 번역 시작 후 시간이 다소 흘렀지만 악성코드 분석에 필요한 기본 지식을 차근차근 설명하기 때문에 유행에 따르지 않는 참고서로 자리 잡으리라 믿어 의심치 않는다. 현업에서 일하면서 이 책으로 많은 도움과 아이디어를 얻었고 이제 번역서로서 국내 보안 기술을 향상시키는 데 도움이 되었으면 하는 바람이다.

『악성코드 분석가의 비법서』는 악성코드 분석 환경 구축부터 따라 하기를 통한 세부 분석 방법, 분석 도구를 다루는 방법까지 조화를 이뤄 잘 설명한다. 또한 악성코드 샘플을 이용해 각 분석 단계에서 숙지해야 할 배경 지식과 분석 과정을 단계적으로 상세히 기술한다.

비법서라는 명칭에 맞도록 독자는 첫 장부터 순차적으로 읽으면서 지식을 습득하거나 자신이 필요한 부분만 선택해 신속히 참고해도 좋을 것이다.

초중급 악성코드 분석가, 디지털 포렌식 연구가, 기업 정보보호 담당자 등 정보보안 관련 다양한 독자층이 존재할 수 있겠지만, 최근 화두가 된 지능형 지속 위협APT, Advanced Persistent Threats 관점에서 악성코드 이해와 대응 방안에 대한 응용폭을 한 차원 높일 수 있을 것으로 기대한다. 또한 악성코드 분석을 구성하는 방법과 각종 유해 사이트를 어떤 방법으로 차단할지에 대해서도 조언을 얻을 수 있다.


정보제공 : Aladin

저자소개

마이클 해일 리(지은이)

Malware Analyst’s Cookbook의 저자이자 볼라틸리티 재단의 총무겸 재무를 담당하고 있다. 개발자와 리버스 엔지니어로써 그는 악성 코드 암호화, 메모리 포렌식, 자동화된 분석에 전문가이다. 또한 세계 각국에서 악성 코드와 메모리 포렌식 을 학생들에게 가르쳤다.

스티븐 어드에어(지은이)

섀도우서버 파운데이션(Shadowserver Foundation)의 보안 연구원이자 이터치 페더럴 시스템즈(eTouch Federal Systems)의 수석 아키텍트다. 섀도우서버에서 악성코드 분석과 봇넷 추적뿐 아니라 정보 유출 사고를 포함한 모든 종류의 사이버 공격을 조사한다. 국제 컨퍼런스에서 해당 주제에 대해 종종 발표하고 『Shadows in the Cloud: Investigating Cyber Espionage 2.0』이라는 백서를 공동 집필했다. 페더럴 에이전시(Federal Agency)에서 사전 대책으로 사이버 침입 사전 탐지, 완화, 예방 작업을 수행하는 사이버 위협(Cyber Threat)이라는 업무를 맡고 있다. 새롭고 혁신적인 기술을 이용한 모범 사례와 글로벌 네트워크를 통해 기업에 널리 적용 가능한 안티 악성코드 솔루션을 통합 구현했다. 고객 지원 업무나 섀도우서버에서 자유로운 시간을 보낼 때도 항상 악성코드와 일상을 보낸다.

블레이크 할스타인(지은이)

베리사인 아이디펜스(Verisign iDefense)의 긴급 대응 엔지니어로서, 의심스러운 활동과 악성코드를 분석하고 보고하는 업무를 맡고 있다. 쉬무콘(Shmoocon) 2009와 2010에 발표한 웹 기반 익스플로잇을 자동 분석하고 탐지하는 Jsunpack의 제작자다. 또한 이머징 스릿(Emerging Threat) 프로젝트에서 스노트(Snort) 규칙을 작성해 기여했다.

매튜 리차드(지은이)

악성코드를 분석하고 보고하는 책임을 가진 레이씨온(Raytheon) 사의 악성코드 처리 책임자다. 매튜는 아이디펜스에서 긴급 대응 팀의 전 책임자였다. 그 이전 7년간은 130개 은행과 신용카드 조합에서 사용되는 보안 관제 서비스를 만들어 운영했다. 또한 여러 국가나 글로벌 기업들을 대상으로 프리랜서로 포렌식 컨설팅을 수행했다. 현재 CISSP, GCIA, GCFA, GREM 자격증을 보유하고 있다.

여성구(옮긴이)

다년간의 보안 컨설턴트 활동 이후 게임사 CERT 팀장, IS 감사역, 보안 시스템 개발 팀장 등을 거쳐 서비스 보안을 총괄하는 실장으로 업무를 수행하고 있다. 다년간 국가기관과 대기업, 통신사 등 다양한 IT 환경을 대상으로 모의해킹, 보안 점검 및 교육, 침해사고 대응을 실시했으며, 게임사의 보안, IS 감사, 인트라넷 및 인프라 시스템 개발과 운영, 보안 플랫폼 개발 관리 업무를 담당했다. 국내외에 보안 취약점 및 공개용 보안 도구 발표와 악성코드 분석 관련 도서를 번역했으며, 고려대학교 정보보호대학원에서 디지털 포렌식을 전공했다.

구형준(옮긴이)

대기업과 금융 IT 환경에서 보안 프로세스 개선, 서비스 보안 리뷰, 보안 점검, 보안 솔루션 검토, 보안 교육 등 다양한 경험을 쌓았다. 고려대학교 정보보호대학원에서 디지털 포렌식을 전공했고 현재 뉴욕 주립대에서 컴퓨터 사이언스 박사 과정을 밟고 있다. 악성코드, 프라이버시, 바이너리 분석과 메모리 보호기법 등의 분야에 관심을 가지고 있다.

이상진(감수)

고려대학교 대학원에서 이학박사 학위를 취득했으며, 고려대학교 정보보호대학원 교수이자 고려대 정보보호연구원 디지털포렌식 연구센터 장이다. 디지털 포렌식의 여러 분야를 연구하며, 디지털 포렌식을 세계 수준으로 발전시키는 데 이바지하고 있다.

정보제공 : Aladin

목차

목차
저자 소개 = 5
감사의 글 = 7
감수자 소개 = 8
감수의 글 = 9
옮긴이 소개 = 10
옮긴이의 말 = 11
들어가며 = 23
1 행동 익명화 = 37 
 오니온 라우터(토르) = 38 
  비법 1-1 토르를 이용한 익명 브라우징 = 39 
 토르를 이용한 악성코드 연구 = 42 
  비법 1-2 wget과 네트워크 클라이언트에 Torsocks 이용 = 42 
  비법 1-3 파이썬으로 작성한 멀티플랫폼에서 토르 활성 다운로더 = 45 
 토르의 단점 = 47 
 프록시 서버와 프로토콜 = 48 
  비법 1-4 무료 프록시를 통한 트래픽 포워딩 = 50 
  비법 1-5 프록시 연결에 SSH 터널 사용 = 55 
  비법 1-6 Privoxy로 향상된 프라이버시를 지원하는 웹브라우징 = 57 
 웹 기반 익명기 = 58 
  비법 1-7 Anonymouse.org 사이트를 이용한 익명 브라우징 = 59 
 익명성을 보장받는 대안 = 60 
 무선 전화 인터넷 연결 = 60 
  비법 1-8 무선 전화 네트워크를 통한 인터넷 접속 = 61 
 가상 사설망 = 62 
  비법 1-9 Anonymizer Universal을 통한 VPN 사용 = 62 
 접속 식별과 흔적 남기지 않기 = 64 
2 허니팟 = 68 
 nepenthes 허니팟 = 68 
  비법 2-1 nepenthes를 이용한 악성코드 샘플 수집 = 69 
  비법 2-2 IRC 로깅을 통한 실시간 공격 감시 = 73 
  비법 2-3 파이썬으로 HTTP를 통한 nepenthes 전송 수용 = 75 
 dionaea 허니팟으로 작업 = 78 
  비법 2-4 dionaea을 통한 악성코드 샘플 수집 = 79 
  비법 2-5 파이썬을 이용한 HTTP 전송 = 83 
  비법 2-6 XMPP를 통한 실시간 이벤트 통지와 바이너리 공유 = 84 
  비법 2-7 dionaea로 로깅한 공격 분석과 재현 = 86 
  비법 2-8 pof를 이용한 원격 시스템 수동 식별 = 87 
  비법 2-9 sqlite와 gnuplot로 dionaea 공격 패턴 그래프 작성 = 89 
3 악성코드 분류 = 95 
 ClamAV를 활용한 분류 = 95 
  비법 3-1 기존 ClamAV 시그니처 검사 = 97 
  비법 3-2 개별 ClamAV 데이터베이스 생성 = 99 
 YARA를 통한 분류 = 105 
  비법 3-3 ClamAV 시그니처를 YARA로 변환하는 방법 = 105 
  비법 3-4 YARA와 PEiD를 사용한 패커 식별법 = 107 
  비법 3-5 YARA를 이용한 악성코드 탐지 = 110 
 도구 전체 통합 = 116 
  비법 3-6 파이썬을 이용한 파일 타입 식별과 해시 = 116 
  비법 3-7 파이썬으로 다중 AV 스캐너 사용 = 119 
  비법 3-8 파이썬을 이용한 악성 PE 파일 탐지 = 125 
  비법 3-9 ssdeep을 이용한 유사 악성코드 검색 = 130 
  비법 3-1 0ssdeep을 이용한 자가 변환 코드 탐지 = 133 
  비법 3-11 IDA와 BinDiff를 이용한 바이너리 비교 = 135 
4 샌드박스와 다중 AV 스캐너 = 141 
 공개 안티바이러스 스캐너 = 142 
  비법 4-1 VirusTotal을 이용한 파일 스캔 = 142 
  비법 4-2 Jotti를 이용한 파일 스캔 = 145 
  비법 4-3 NoVirusThanks를 이용한 파일 스캔 = 146 
  비법 4-4 파이썬을 이용한 데이터베이스 지원 Multi-AV 업로더 = 149 
 다중 안티바이러스 스캐너 비교 = 153 
 공개 샌드박스를 이용한 분석 = 154 
  비법 4-5 ThreatExpert를 이용한 악성코드 분석 = 154 
  비법 4-6 CWsandbox를 이용한 악성코드 분석 = 156 
  비법 4-7 Anubis를 이용한 악성코드 분석 = 158 
  비법 4-8 Joebox용 AutoIT 스크립트 작성 = 160 
  비법 4-9 Joebox를 이용한 경로 기반 악성코드 정복 = 162 
  비법 4-10 Joebox를 이용한 프로세스 기반 악성코드 정복 = 164 
  비법 4-11 Joebox를 이용한 액티브 HTTP 프록시 설정 = 167 
  비법 4-12 샌드박스 결과를 이용한 감염 흔적 스캐닝 = 168 
5 도메인과 IP 주소 조사 = 175 
 의심스러운 도메인 조사 = 175 
  비법 5-1 WHOIS를 이용한 도메인 조사 = 177 
  비법 5-2 DNS 호스트명 풀이 = 182 
 IP 주소 조사 = 186 
  비법 5-3 IP WHOIS 레코드 얻기 = 187 
 Passive DNS와 기타 도구로 조사 = 189 
  비법 5-4 BFK에서 Passive DNS 질의 = 191 
  비법 5-5 Robtex를 이용해 DNS 레코드 점검 = 192 
  비법 5-6 DomainTools를 이용한 IP 역검색 수행 = 193 
  비법 5-7 dig을 이용한 존 트랜스퍼 수행 = 195 
  비법 5-8 DNSMAP을 이용한 하위 도메인 무차별 대입 = 196 
  비법 5-9 섀도우서버를 이용해 IP 주소로 ASN 매핑 = 198 
  비법 5-10 RBLs를 이용한 IP 평판 점검 = 201 
 패스트 플럭스 도메인 = 203 
  비법 5-11 Passive DNS와 TTL을 이용한 패스트 플럭스 탐지 = 204 
  비법 5-12 패스트 플럭스 도메인 추적 = 207 
 지리 정보 매핑 IP 주소 = 211 
  비법 5-13 MaxMind, Matplotlib, Pygeoip를 이용한 고정 지도 = 211 
  비법 5-14 구글 Charts API를 이용한 동적 맵 = 216 
6 문서, 셸코드, URL = 219 
 자바스크립트 분석 = 219 
  비법 6-1 SpiderMonkey로 자바스크립트 분석 = 220 
  비법 6-2 Jsunpack을 이용한 자바스크립트 디코딩 자동화 = 224 
  비법 6-3 스피드와 완벽성을 위한 Jsunpack-n 디코딩 최적화 = 228 
  비법 6-4 브라우저 DOM 요소를 에뮬레이션한 익스플로잇 실행 = 229 
 PDF 문서 분석 = 234 
  비법 6-5 pdf.py를 이용해 pdf 파일에서 자바스크립트 추출 = 235 
  비법 6-6 PDF 소프트웨어 버전을 속여 익스플로잇 실행 = 241 
  비법 6-7 Didier Stevens의 PDF 도구 사용 = 245 
  비법 6-8 PDF가 어떤 취약점을 사용하는지 찾기 = 248 
  비법 6-9 DiStorm을 이용한 셸코드 디스어셈블링 = 257 
  비법 6-10 libemu를 이용한 셸코드 에뮬레이팅 = 264 
 악의적인 오피스 문서 분석 = 267 
  비법 6-11 OfficeMalScanner로 마이크로소프트 파일 분석 = 267 
  비법 6-12 DisVew와 MalHost-Setup으로 오피스 셸코드 디버깅 = 275 
 네트워크 트래픽 분석 = 279 
  비법 6-13 Jsunpack으로 패킷 캡처에서 HTTP 파일 추출 = 280 
  비법 6-14 Jsunpack을 이용한 URI 관계 그래프 작성 = 283 
7 악성코드 연구실 = 287 
 네트워킹 = 290 
  비법 7-1 연구실에서 TCP/IP 연결 라우팅 = 291 
  비법 7-2 네트워크 트래픽 캡처와 분석 = 294 
  비법 7-3 INetSim을 이용한 인터넷 시뮬레이션 = 299 
  비법 7-4 Burp Suite을 이용한 HTTP/HTTPS 조작 = 304 
 물리 표적 = 307 
  비법 7-5 조 스테워트의 Truman 사용 = 308 
  비법 7-6 Deep Freeze를 이용해 물리 시스템 유지 = 309 
  비법 7-7 FOG를 이용한 디스크 복제와 이미징 = 312 
  비법 7-8 MySQL 데이터베이스를 이용해 FOG 작업 자동화 = 317 
8 자동화 = 321 
 분석 사이클 = 321 
 파이썬을 이용한 자동화 = 324 
  비법 8-1 VirtualBox를 이용한 자동화된 악성코드 분석 = 324 
  비법 8-2 VirtualBox 디스크와 메모리 이미지 다루기 = 332 
  비법 8-3 VMware를 이용한 자동화된 악성코드 분석 = 335 
 분석 모듈 추가 = 339 
  비법 8-4 파이썬에서 TShark을 이용해 패킷 캡처 = 339 
  비법 8-5 파이썬에서 INetSim을 이용해 네트워크 로그 수집 = 342 
  비법 8-6 Volatility를 이용한 메모리 덤프 분석 = 345 
  비법 8-7 모든 샌드박스 조각을 함께 모으기 = 347 
 기타 시스템 = 360 
  비법 8-8 ZeroWine과 QEMU를 이용한 자동화된 분석 = 360 
  비법 8-9 Sandboxie와 Buster를 이용한 자동화된 분석 = 365 
9 동적 분석 = 373 
  비법 9-1 Process Monitor를 이용한 API 호출 로깅 = 376 
  비법 9-2 Regshot을 이용한 변화 탐지 = 378 
  비법 9-3 파일 시스템 변화 알림 = 381 
  비법 9-4 레지스트리 변화 알림 = 385 
  비법 9-5 테이블 디핑 = 387 
  비법 9-6 HandleDiff를 이용한 코드 인젝션 = 393 
  비법 9-7 윈도우 파일 보호 기능을 해제하는 Bankpatch.C = 395 
 API 감시/후킹 = 397 
  비법 9-8 마이크로소프트 Detours로 API 모니터 빌드 = 398 
  비법 9-9 API 모니터를 이용한 자식 프로세스 추적 = 407 
  비법 9-10 프로세스, 스레드, 이미지 로드 이벤트 캡처 = 411 
 데이터 보존 = 418 
  비법 9-11 프로세스의 종료 방지 = 420 
  비법 9-12 악성코드의 파일 삭제 차단 = 423 
  비법 9-13 드라이버 로딩 차단 = 425 
  비법 9-14 데이터 보존 모듈 사용 = 426 
  비법 9-15 ReactOS를 이용한 사용자 정의 커맨드 셸 생성 = 430 
10 악성코드 포렌식 = 439 
 슬루스 킷 = 439 
  비법 10-1 TSK를 이용한 변경 데이터 조사 = 440 
  비법 10-2 TSK를 사용해 은닉 파일과 디렉터리 탐지 = 444 
  비법 10-3 마이크로소프트 오프라인 API를 이용한 은닉 레지스트리 데이터 찾기 = 454 
 포렌식/사고 대응 수집 기법 = 461 
  비법 10-4 Poison Ivy의 잠금 파일 우회 = 461 
  비법 10-5 Conficker의 파일 시스템 ACL 제한 우회 = 466 
  비법 10-6 GMER를 이용한 rootkits 스캐닝 = 472 
  비법 10-7 IE의 DOM을 점검해 HTML 인젝션 공격 탐지 = 476 
 레지스트리 분석 = 488 
  비법 10-8 RegRipper 플러그인을 이용한 레지스트리 포렌식 = 489 
  비법 10-9 가짜 PKI 인증서 설치 탐지 = 497 
  비법 10-10 레지스트리 내 악성코드 데이터 흔적 조사 = 502 
11 악성코드 디버깅 = 509 
 디버거를 이용한 작업 = 510 
  비법 11-1 프로세스 열기와 연결 = 511 
  비법 11-2 셸코드 분석용 JIT 디버거 설정 = 513 
  비법 11-3 디버거 GUI에 익숙해지기 = 515 
  비법 11-4 프로세스 메모리와 자원 탐색 = 523 
  비법 11-5 프로그램 실행 제어 = 526 
  비법 11-6 중단점 설정과 중단점 잡기 = 528 
  비법 11-7 조건부 로그 중단점 이용 = 532 
 Immunity 디버거의 파이썬 API = 535 
  비법 11-8 파이썬 스크립트와 PyCommands를 이용한 디버깅 = 535 
  비법 11-9 바이너리 파일에서 셸코드 탐지 = 539 
  비법 11-10 SILENTBANKER'S API 후킹 조사 = 545 
 WinAppDbg 파이썬 디버거 = 550 
  비법 11-11 WinAppDbg 도구를 이용한 프로세스 메모리 조작 = 550 
  비법 11-12 WINAPPDBG를 이용한 파이썬 API 모니터 설계 = 553 
12 역난독화 = 563 
 공통 알고리즘 디코딩 = 563 
  비법 12-1 파이썬을 이용한 XOR 알고리즘 리버스 엔지니어링 = 564 
  비법 12-2 yaratize를 이용해 XOR로 인코딩된 데이터 탐지 = 570 
  비법 12-3 특수 문자를 이용한 base64 디코딩 = 572 
 복호화 = 576 
  비법 12-4 캡처된 패킷에서 암호화된 데이터 격리 = 576 
  비법 12-5 SnD 리버싱 도구, FindCrypt, Kanal로 암호 검색 = 578 
  비법 12-6 Zynamics BinDiff를 이용한 OpenSSL 심볼 포팅 = 581 
  비법 12-7 PyCrypto를 이용한 파이썬 데이터 복호화 = 583 
 악성코드 언패킹 = 585 
  비법 12-8 패킹된 악성코드에서 OEP 찾기 = 586 
  비법 12-9 LordPE를 이용한 프로세스 메모리 덤프 = 590 
  비법 12-10 ImpREC를 이용한 임포트 테이블 리빌드 = 593 
 언패킹 리소스 = 600 
 디버거 스크립트 = 602 
  비법 12-11 도메인 생성 알고리즘 크래킹 = 602 
  비법 12-12 파이썬과 x86emu를 이용한 문자열 디코딩 = 608 
13 DLL을 이용한 작업 = 615 
  비법 13-1 DLL 익스포트 목록화 = 616 
  비법 13-2 rundll32.exe를 이용한 DLL 실행 = 620 
  비법 13-3 호스트 프로세스 제한 우회 = 623 
  비법 13-4 rundl32ex를 이용한 원격 DLL 익스포트 호출 = 625 
  비법 13-5 LOADDLL.EXE를 이용한 DLL 디버깅 = 629 
  비법 13-6 DLL 진입점에 중단점 지정 = 631 
  비법 13-7 윈도우 서비스로 DLL 실행 = 633 
  비법 13-8 DLL을 독립 실행 파일로 변환 = 639 
14 커널 디버깅 = 643 
 원격 커널 디버깅 = 643 
 로컬 커널 디버깅 = 644 
 소프트웨어 요구 사항 = 644 
  비법 14-1 LiveKd를 이용한 로컬 디버깅 = 645 
  비법 14-2 커널 디버그 부트 스위치 활성화 = 647 
  비법 14-3 게스트 워크스테이션 디버깅(윈도우 환경) = 651 
  비법 14-4 Parallels 게스트 디버깅(맥 OS X 환경) = 653 
  비법 14-5 WINDBG 명령과 제어 개요 = 654 
  비법 14-6 프로세스와 프로세스 컨텍스트 탐색 = 663 
  비법 14-7 커널 메모리 탐색 = 671 
  비법 14-8 드라이버 로드에 중단점 지정 = 678 
  비법 14-9 OEP로 드라이버 언패킹 = 687 
  비법 14-10 드라이버 덤프와 리빌드 = 697 
  비법 14-11 WinDbg 스크립트를 이용한 루트킷 탐지 = 703 
  비법 14-12 IDA Pro를 이용한 커널 디버깅 = 710 
15 Volatility에 의한 메모리 포렌식 = 715 
 메모리 수집 = 715 
  비법 15-1 MoonSols 윈도우 메모리 툴킷을 이용한 메모리 덤프 = 716 
  비법 15-2 F-Response를 이용한 원격, 읽기전용 메모리 수집 = 720 
  비법 15-3 가상 머신 메모리 파일에 접근 = 721 
  비법 15-4 Nutshell의 Volatility = 723 
  비법 15-5 메모리 덤프의 프로세스 조사 = 727 
  비법 15-6 psscan을 이용해 DKOM 탐지 = 735 
  비법 15-7 csrss.exe의 대체 프로세스 목록 탐색 = 739 
  비법 15-8 프로세스 컨텍스트 속임수 인지 = 742 
16 메모리 포렌식: 코드 인젝션과 추출 = 751 
 DLL 조사 = 751 
  비법 16-1 로드된 의심스러운 DLL 찾기 = 753 
  비법 16-2 ldr_Modules을 이용해 언링크된 DLL 탐지 = 755 
 코드 인젝션과 VAD = 762 
  비법 16-3 가상 주소 설명자 탐색 = 762 
  비법 16-4 페이지 보호 해석 = 766 
  비법 16-5 프로세스 메모리에 있는 증거 찾기 = 770 
  비법 16-6 malfind와 YARA를 이용한 인젝션 코드 확인 = 772 
 바이너리 재구성 = 780 
  비법 16-7 메모리에서 실행 이미지 리빌드 = 782 
  비법 16-8 impscan을 이용해 임포트 함수 스캐닝 = 785 
  비법 16-9 의심스러운 커널 모듈 덤프 = 789 
17 메모리 포렌식: 루트킷 = 795 
  비법 17-1 IAT 후킹 탐지 = 795 
  비법 17-2 EAT 후킹 탐지 = 798 
  비법 17-3 인라인 API 후킹 탐지 = 799 
  비법 17-4 IDT 후킹 탐지 = 803 
  비법 17-5 드라이버 IRP 후킹 탐지 = 805 
  비법 17-6 SSDT 후킹 탐지 = 810 
  비법 17-7 ssdt_ex를 이용한 대부분의 작업 자동화 = 815 
  비법 17-8 커널 스레드에서 분리된 루트킷 탐지 = 816 
  비법 17-9 시스템 전역 알림 루틴 확인 = 820 
  비법 17-10 SVSCAN을 이용한 악성 서비스 프로세스 찾기 = 823 
  비법 17-11 mutantscan을 이용한 뮤텍스 객체 스캐닝 = 832 
18 메모리 포렌식: 네트워크와 레지스트리 = 837 
  비법 18-1 소켓과 연결 객체 조사 = 837 
  비법 18-2 Zeus가 남긴 네트워크 데이터 분석 = 842 
  비법 18-3 은폐된 TCP/IP 활동 시도 탐지 = 845 
  비법 18-4 원시 소켓과 무작위 NIC 탐지 = 848 
 레지스트리 분석 = 850 
  비법 18-5 메모리 레지스트리 도구를 이용한 레지스트리 잔여 데이터 분석 = 851 
  비법 18-6 최근에 쓴 타임스탬프순으로 키 정렬 = 856 
  비법 18-7 RegRipper와 함께 Volatility 사용 = 859
찾아보기 = 863 

관련분야 신착자료

Ramamurthy, Bina (2021)