Top

실전 악성코드와 멀웨어 분석

  • 원서명Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software (ISBN 9781593272906)
  • 지은이마이클 시코스키, 앤드류 호닉
  • 옮긴이여성구, 구형준, 박호진
  • ISBN : 9788960774872
  • 45,000원
  • 2013년 10월 29일 펴냄 (절판)
  • 페이퍼백 | 1,008쪽 | 188*250mm
  • 시리즈 : 해킹과 보안

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

예제 파일의 비밀번호는 malware 입니다. 악성코드/바이러스로 인식하기때문에 가상환경에서 실행하는 방법을 추천합니다. http://practicalmalwareanalysis.com/labs/
아래 깃허브 링크에서도 내려받으실 수 있습니다.
https://github.com/mikesiko/PracticalMalwareAnalysis-Labs

요약

악성코드 분석은 끊임없이 등장하는 악성코드와 제로데이 등으로 인해 보안 분야의 뜨거운 감자로 급부상했다. 이 책은 악성코드 분석의 초심자를 비롯해 중고급자에게 충분한 지식을 전달할 수 있게 구성되었으며, 악성코드 분석 기법과 사용 도구, 그리고 악성코드 분석의 고급 기법을 다룬다. 특히 저자가 직접 작성한 악성코드 샘플을 각 장의 문제와 더불어 풀이해줌으로써 문제를 고민하고 실습을 통해 체득해 악성코드 분석에 대한 이해와 능력을 크게 향상시킬 수 있다.

이 책에서 다루는 내용
  • 악성코드 분석에 안전한 가상 환경 구축
  • 신속한 네트워크 시그니처와 호스트 기반 식별자의 추출법
  • IDA Pro, OllyDbg, WinDbg 같은 주요 분석 도구의 사용법
  • 난독화, 안티디스어셈블리, 안티디버깅, 안티가상머신 기법 같은 악성코드 속임수의 우회법
  • 악성코드 분석에 필요한 새로운 윈도우 내부 지식
  • 가장 대중적인 다섯 개의 패커를 이용한 악성코드 언패킹 진행과 실전 연습
  • 셸코드, C++, 64비트 코드 같은 특수한 경우의 악성코드 분석
이 책의 구성

이 책은 상대적으로 복잡하지 않은 프로그램에서 정보를 얻을 때 사용할 수 있는 쉬운 방법으로 시작해 가장 정교한 악성 프로그램 분석에도 사용할 수 있는 복잡한 기법으로 나아간다. 다음은 각 장에서 다루는 내용이다.

  • 0장, 악성코드 분석 입문은 악성코드 분석의 전체 프로세스와 방법론을 제시한다.
  • 1장, 기초 정적 분석 기법은 실제 실행하지 않고 실행 파일에서 정보를 얻는 방법을 알려준다.
  • 2장, 가상 머신에서의 악성코드 분석은 악성코드 실행 시 안전한 환경을 구축해 실습할 수 있게 한다.
  • 3장, 기초 동적 분석은 실행을 통해 사용하기 쉬우면서도 효과적으로 악의적인 프로그램을 분석하는 방법을 가르쳐준다.
  • 4장, X86 디스어셈블리 속성 과정은 IDA Pro 사용을 위한 기초 지식과 깊이 있는 악성코드 분석을 수행할 수 있게 x86 어셈블리어를 소개한다.
  • 5장, IDA Pro는 악성코드 분석에 가장 중요한 도구인 IDA Pro를 사용하는 방법을 다룬다. 이 책 전반적으로 IDA Pro를 사용한다.
  • 6장, 어셈블리어에서의 C 코드 구조 식별은 어셈블리로 된 C 코드 예제를 통해 어셈블리 코드의 상위 레벨 기능을 이해하는 방법을 설명한다.
  • 7장, 악의적인 윈도우 프로그램 분석은 악의적인 윈도우 프로그램을 이해하는 데 필요한 다양한 윈도우 기반 개념을 다룬다.
  • 8장, 디버깅에서는 디버깅 기초와 디버거를 사용하는 방법을 설명한다.
  • 9장, OllyDbg는 악성코드 분석가에게 가장 대중적인 OllyDbg를 사용하는 방법을 보여준다.
  • 10장, WinDbg를 이용한 커널 디버깅은 WinDbg 디버거를 이용해 커널 모드 악성코드와 루트킷을 탐지하는 방법을 다룬다.
  • 11장, 악성코드의 행위 특성은 공통된 악성코드의 기능과 악성코드를 분석할 때 해당 기능을 인지하는 방법을 설명한다.
  • 12장, 위장 악성코드 실행에서는 다른 프로세스 내에서 실행되는 것을 숨기는 은폐형 악성 프로그램을 분석하는 방법을 다룬다.
  • 13장, 데이터 인코딩은 네트워크 트래픽이나 피해 호스트에서 악성 행위를 식별하지 못하게 하기 위해 사용하는 데이터 인코딩 방법을 설명한다.
  • 14장, 악성코드 기반 네트워크 시그니처는 캡처된 트래픽만으로 작성한 시그니처보다 더 나은 네트워크 시그니처를 만들기 위해 악성코드를 분석하는 방법을 설명한다.
  • 15장, 안티디스어셈블리는 악성코드 제작자가 디스어셈블하기 어렵게 악성코드를 설계하는 방법과 이 기법을 인식하고 성공적으로 분석하는 방법을 설명한다.
  • 16장, 안티디버깅은 악성코드 제작자가 코드를 디버깅하기 어렵게 하는 기법과 이런 난관을 극복하는 방법을 설명한다.
  • 17장, 안티가상머신 기법은 악성코드가 가상 환경에서 분석하기 어렵게 하는 기법과 이 기법을 우회하는 방법을 설명한다.
  • 18장, 패커와 언패킹은 악성코드가 실제 목적을 숨기기 위해 패킹을 사용하는 방법과 패킹된 프로그램을 언패킹하는 단계적인 접근법을 다룬다.
  • 19장, 셸코드 분석은 셸코드가 무엇인지와 악의적인 셸코드 분석에 특화된 팁과 속임수를 설명한다.
  • 20장, C++ 분석은 C++코드가 컴파일되면 어떻게 다르게 보이는지, 그리고 C++로 생성한 악성코드의 분석 방법을 알아본다.
  • 21장, 64비트 악성코드는 악성코드 제작자가 64비트 악성코드를 이용하는 이유와 x86과 x64 간의 차이점을 알기 위해 필요한 사항을 다룬다.

  • 부록 A, 주요 윈도우 함수는 악성코드가 자주 사용하는 윈도우 함수를 간단히 소개한다.
  • 부록 B, 악성코드 분석 도구는 악성코드 분석가에게 유용한 도구 목록을 제공한다.
  • 부록 C, 실습 문제 풀이는 책 전체의 장에 포함된 실습 문제에 대한 풀이를 제공한다.
이 책에 쏟아진 각계의 찬사
  • "악성코드 분석에 뛰어난 속성 과정이다." (디노 다이 조비 / 개인 보안 컨설턴트)

  • " …… 악성코드 분석에 대한 매우 포괄적인 가이드로, 특히 현대 악성코드를 분석할 때 난해한 부분을 이해하는 데 필요한 모든 필수 기술을 세부적으로 다룬다." (크리스 이글 / 해군 대학원 전산학 전문 강사)

  • "악성코드 분석을 직접 따라할 수 있는 소개서다. 윈도우 악성코드를 파헤치고 싶은 모든 이에게 추천한다." (일팍 귀파노프 / IDA Pro 제작자 )

  • "…… 훌륭한 악성코드 분석 소개서다. 모든 장에서 기술적인 세부 설명과 직접 따라할 수 있는 실습을 통해 실제 악성코드에 바로 응용할 수 있다." (세바스찬 포스트 / 구글 소프트웨어 엔지니어)

  • "…… 독자에게 모든 수준의 역공학 기술을 소개한다. 기술적으로 많은 내용과 접근 가능한 방식으로 실습을 통해 독자가 역공학의 예술과 과학을 좀 더 깊이 이해할 수 있게 안내할 것이다. 이 책을 초보자와 전문가에게 모두 강력히 추천한다." (대니 퀴스트 / PHD, 오펜시브 컴퓨팅 설립자)

  • "악성코드 책을 한 권만 읽거나 악성코드 분석 세계의 문을 열고 싶다면 바로 이 책이다." (패트릭 엥브리스톤 / 다코다 주립대 IA 교수이자 『해킹과 침투 테스팅 기초』의 저자 )

  • "…… 소프트웨어 보안과 침입 탐지 시스템에 관련된 대학원 수준의 고급 강좌의 강의 교재로 적합하다. 특히 실습 내용은 악성코드 소프트웨어의 역공학, 분석, 이해하는 방법을 학생에게 가르칠 때 유용하다." (살 스톨포 / 콜롬비아 대학 교수)

  • "…… 독자에게 모든 수준의 역공학 기술을 소개한다. 기술적으로 많은 내용과 접근 가능한 방식으로 실습을 통해 독자가 역공학의 예술과 과학을 좀 더 깊이 이해할 수 있게 안내할 것이다. 이 책을 초보자와 전문가에게 모두 강력히 추천한다." (대니 퀴스트 / PHD, 오펜시브 컴퓨팅 설립자)

  • "악성코드 책을 단 한 권만 읽기를 원하거나 악성코드 분석 세계의 문을 열고 싶다면 바로 이 책이다." (패트릭 엥브리스톤 / 다코다 주립대 IA 교수이자 『해킹과 침투 테스팅 기초』의 저자 )

  • "…… 소프트웨어 보안과 침입 탐지 시스템에 관련된 대학원 수준의 고급 강좌의 강의 교재로 적합하다. 특히 실습 내용은 악성코드 소프트웨어의 역공학, 분석, 이해하는 방법을 학생에게 가르칠 때 유용하다." (살 스톨포 / 콜롬비아 대학 교수)

추천의 글

디지털 보안에서 악성코드, 공격 도구와 운영체제와 관련된 분야만큼 비대칭적인 분야도 드물다.

2011년 여름, 네바다 주 라스베이거스에서 열린 블랙햇(Black Hat)에서 피터 (머지) 자코(Peiter (Mudge) Zatko)의 키노트에 참석했다. 연설 중 머지는 현대 소프트웨어의 비대칭적인 속성을 소개했다. 9,000개의 악성코드 바이너리를 분석했더니 샘플 집합의 코드는 평균 125줄이라고 설명했다. 머지의 샘플은 ‘간단’하거나 ‘평이한’ 악성코드를 포함했다고 주장할지 모른다. 여러분은 실제 ‘무기로 제작’된 뭔가(Stuxnet 같은)를 떠올릴 수 있다. 래리 콘스탄틴(Larry L. Constantine)에 의하면 Stuxnet은 약 15,000 LOC(Line of Code)를 포함하므로, 보통 평균 125 LOC 크기를 갖는 악성코드 샘플의 120배다. Stuxnet은 매우 특화되고 목표물이 명확해서 크기가 평균 이상인 이유를 설명할 수 있다. 악성코드 세계를 잠시 떠나 내가 사용하는 문서 편집기(gedit, 그놈(GNOME) 문서 편집기)는 295 LOC의 gedit.c를 포함하고, gedit의 GNOME GIT 소스코드 저장소에서 gedit.c는 전체 128개 소스 파일(3개 디렉토리와 함께)의 하나일 뿐이다. 128개 파일과 3개 디렉토리를 모두 세어보면 70,484 LOC다. 합법적인 애플리케이션 LOC와 악성코드의 라인 수를 비교해보면 500대 1이다. 문서 편집기 같은 상당히 직관적인 도구와 비교하면 악성코드 샘플은 매우 효율적인 것처럼 보인다!

머지의 125 LOC는 개인적으로 좀 작아 보이는데, 다른 ‘악성코드’ 정의가 있기 때문이다. 대부분의 악성 애플리케이션은 많은 함수와 기반 요소로 이뤄진 ‘스위트(Suites)’ 형태로 존재한다. 이런 종류의 악성코드를 잡아 합리적으로 제우스(Zeus) 트로이 목마의 ‘소스’ 요소를 세어봤더니 253,774 LOC였다. 머지의 평균 샘플 중 하나와 제우스 같은 프로그램을 비교하면 2,000 대 1쯤 되는 비율임을 알 수 있다. 다음으로 머지는 악성코드 LOC를 악성코드 소프트웨어를 가로챈 후 차단하는 보안 제품군의 라인수와 비교했다. 머지는 현대의 보안 제품에서 찾은 LOC가 1,000만 정도로 추정된다고 언급했다. 좀 더 간단히 계산해 약 1,250만 줄의 코드로 작성된 제품이 있다면 공격 LOC와 방어 LOC의 비율이 10만분의 1 수준이라고 생각할 수 있다. 다시 말해 한 줄의 LOC를 갖는 악성코드를 방어하기 위해 방어하는 사람은 10만 LOC의 방어 요새를 작성해야 한다. 머지는 악성코드 LOC를 공략하려는 운영체제와도 비교했다. 분석가는 윈도우 XP가 4,500만 LOC 정도로 설계했으리라 추정하지만, 윈도우 7은 얼마만큼의 LOC로 설계했는지 알 수 없다. 머지는 현대 운영체제는 1억 5,000만 줄 정도로 작성됐을 것으로 이야기했는데, 아마 최근 윈도우 버전을 염두에 두고 한 말인 듯하다. 간단히 계산하기 위해 1,250만 줄에서 좀 줄여 수정해보면 대상 운영체제와 이를 악용하려는 악의적인 무기의 크기 비율이 100만대 1이다.

잠깐 멈추고 산출한 LOC 수를 요약해보자.

120 : 1 Stuxnet 대 평균 악성코드 500 : 1 간단한 문서 편집기 대 평균 악성코드 2,000 : 1 통합 악성코드 대 평균 악성코드 100,000 : 1 방어 도구 대 평균 악성코드 1,000,000 : 1 대상 운영체제 대 평균 악성코드

방어자 입장에서 방어 도구와 운영체제와 평균 악성코드 샘플의 비율은 꽤 암울해 보인다. 평균 크기의 악성코드 스위트(suit) 크기와 바꿔봐도 방어자 입장에서는 별로 나아진 게 없어 보인다! 방어자(그리고 벤더)는 훨씬 적은 LOC로 무장한 실용적이고 영리한 침입자의 농락에 수천 LOC을 만드는 많은 노력을 들이는 것과 같다.

방어자는 무엇을 해야 할까? 답은 무장이 더 뛰어난 리더가 사용한 전략을 모방하는 것이다. ‘장애’를 ‘기회’로 재정의한다. 방어 도구와 대상 운영체제는 잊어버려라. 그에 관해 별로 할 수 있는 게 없다. 악성코드 샘플이 가능한 한 작다(상대적으로 말해)는 사실에 기뻐하라. 1,250만 LOC가 기다리고 있는 소스코드 수준에서 방어 도구가 동작하는 방식을 이해하려 상상해보자. 일부 연구가가 자신이 좋아하는 프로젝트라고 해도 버거운 작업이다. 한 놀라운 예로 2011년 라스베이거스 블랙햇에서 타비스 오만디(Tavis Ormandy)가 발표한 「소파일: 소포스 안티 바이러스의 주요 분석 (Sophail: A Critical Analysis of Sophos Antivirus)」을 읽어보자. 이런 종류의 대형 분석이 예외적이지 주류는 아니다. 수백만 LOC에 대한 걱정 대신 실제 악성코드의 상당수를 차지하는 1,000줄 이하의 영역으로 내려가 보자. 방어자로서 악성코드와 관련한 주요 목적은 악성코드가 무엇인지, 여러분의 환경에 어떻게 나타나는지, 어떤 행위를 하는지 알아내는 것이다. 합리적인 크기의 샘플과 올바른 기술을 다룬다면 이 문제에 대답함으로써 당신의 조직이 처한 위험을 상당히 줄일 기회가 있다.

악성코드 제작자가 샘플을 제공할 준비가 돼 있다면 당신이 읽고 있는 책의 저자는 분석 기술을 제공하기 위해 존재한다. 『실전 악성코드와 멀웨어 분석』은 모든 악성코드 분석가가 유용하게 지녀야 할 부류의 책이라고 생각한다. 당신이 초보자라면 소개 부분과 악성코드 공략에 필요한 간단한 자료를 읽어보자. 중급자라면 다음 단계로 갈 수 있다. 전문 엔지니어라면 좀 더 상위 수준으로 올라갈 수 있는 보배임을 알게 될 것이고, 당신을 멘토로 삼는 누군가가 질문을 던졌을 때 “이 세부 매뉴얼을 읽어보라.”고 말할 수 있을 것이다.

__『실전 악성코드와 멀웨어 분석』 은 사실 두 권을 하나로 만든 것인데, 우선 독자에게 현대 악성코드를 분석하는 방법을 보여주는 교과서다. 그런 연유로 이 책을 샀다면 소개 부분에서 많은 도움을 받을 것이다. 하지만 저자는 한 발짝 더 나아가 두 번째 부분도 작성하기로 결심했다. 응용 악성코드 분석이라고 부를 수 있는 두꺼운 부분이며, 또한 부록 C는 각 장의 끝에 나오는 실습 문제, 해답과 세부 분석 내용으로 구성된다. 저자는 예제를 위해 모든 악성코드를 직접 작성했고, 코드들은 학습에 충분하면서 안전한 환경을 보장한다.

따라서 디지털 수호자에게 부닥친 명백한 비대칭 현실에 절망하기보다는 미지의 악성코드가 현재와 같은 형태임을 반겨주면 좋겠다. 『실전 악성코드와 멀웨어 분석』 같은 책으로 무장하면 기업이나 고객의 침입 탐지와 대응에 필요한 기술을 습득하게 될 것이다. 저자는 이 영역에서 전문가이며, 연구실에 국한된 이론이 아닌 실무 최전선에서 습득한 조언을 해줄 수 있을 것이다. 이 책을 즐거운 마음으로 읽으면서 역공학 대상인 악성코드 하나하나를 알아보고 어둠의 예술을 밝은 지식으로 승화시켜 적의 공격 비용이 높아지게 철저히 분석해보자.

리차드 베틀리히(Richard Bejtlich)(@taosecurity)
맨디언트(Mandiant)의 CSO, 타오시큐리티(TaoSecurity) 설립자
버지니아 주 마나사스파크에서

저자/역자 소개

지은이 소개

마이클 시코스키 (Michael Sikorski)

맨디언트 사의 컴퓨터 보안 컨설턴트다. 사고 대응 조사에서 악의적인 소프트웨어 역공학 부분을 지원하고, 회사의 연방정부 고객을 대상으로 특화된 연구와 개발 보안 솔루션을 제공한다. 마이크는 여러 악성코드 분석 교육 과정을 제작해서 FBI와 블랙햇을 포함한 다양한 청중을 대상으로 강의했다. MIT 링컨 연구소에서 맨디언트 사로 이직했는데, 수동 네트워크 매핑과 침투 테스팅 관련 연구를 수행했다. NSA 대학원에서 3년간 시스템과 네트워크 통합 과정(SNIP) 중에 있다. NSA에 근무하는 동안 역공학 기법 연구에 기여했고, 네트워크 분석 분야에서 여러 개의 발명 건으로 수상했다.

앤드류 호닉 (Andrew Honig)

미 국방부 정보 보증 전문가다. 국가 암호전문 학교에서 소프트웨어 분석, 역공학, 윈도우 시스템 프로그래밍 강의를 하고 있으며, 국제 정보 시스템 보안 전문가(CISSP)다. 공식적으로 VMware 가상화 제품의 제로데이 공격을 발견했고, 커널 악성코드를 포함한 악의적인 소프트웨어를 탐지하는 도구를 개발했다. 악성코드와 악의적이지 않은 소프트웨어를 분석하고 이해하는 전문가로, 컴퓨터 보안 분야에서 분석가로 10년이 넘는 경력이 있다.

지은이의 말

전화벨이 울리고 네트워크 담당자가 당신이 해킹을 당해 고객의 주요 정보가 네트워크상에서 도난당했다는 사실을 알려준다. 관련 호스트를 식별하기 위해 로그를 확인하면서 조사를 시작한다. 악성코드를 탐지하기 위해 안티바이러스 소프트웨어로 호스트를 스캔한 후 운 좋게 TROJ.snapAK라는 이름의 트로이 목마를 탐지한다. 침해 흔적을 삭제하기 위해 해당 파일을 지우고 다른 장비가 감염되지 않았는지를 확인하기 위해 네트워크 캡처를 이용해 침입 탐지 시스템(IDS) 시그니처를 생성한다. 그런 후 공격자가 침투에 사용했다고 생각되는 보안 문제점을 패치해 다시는 이런 일이 일어나지 않게 한다. 그런 후 며칠 후 네트워크 담당자가 네트워크상에 주요 데이터를 도난당했다는 사실을 알려준다. 동일한 공격으로 보이지만, 당신은 뭘 해야 할지도 모른다. 다른 시스템도 추가적으로 감염됐다는 사실을 통해, 제작한 IDS 시그니처가 실패했음을 알았다. 그리고 백신도 위협을 차단시킬 만큼의 보호 기능을 제공하지 못했다. 이제 상위 관리자가 무슨 일이 발생했는지 설명을 요구하면 당신은 악성코드가 TROJ.snapAK라는 사실밖에 할 말이 없다. 가장 중요한 물음에는 대답하지 못하고 게으른 사람으로 비춰진다.

위협을 제거하려면 정확히 TROJ.snapAK가 무슨 일을 하는지 어떻게 알 수 있을까? 어떻게 더 효율적인 네트워크 시그니처를 작성할 수 있을까? 다른 시스템이 동일한 악성코드에 감염됐다면 어떻게 알아낼 수 있을까? 악성코드 일부가 아닌 전체 패키지를 삭제했음을 어떻게 확신할 수 있을까? 악성 프로그램이 하는 작업에 대한 경영진의 물음에 어떻게 대답할 수 있을까?

당신이 할 수 있는 일은 당신이 네트워크를 방어할 수 없기 때문에 비싼 외부 컨설턴트를 고용해야 한다고 상사에게 얘기하는 것뿐이다. 이는 당신의 자리를 안전하게 유지하기 위한 최선의 방법은 아니다.

아, 하지만 다행히도 슬기롭게 『실전 악성코드와 멀웨어 분석』이라는 이 책을 갖고 있다. 이 책을 통해 배우는 기술은 위의 어려운 질문에 대한 답과 악성코드로부터 네트워크를 방어하는 방법을 알려준다.

옮긴이 소개

여성구

보안 컨설팅회사에서 다년간 모의해킹을 수행했으며, 넥슨의 CERT 팀장을 거쳐 현재는 넥슨의 IS 감사역(Auditor)으로 활동하고 있다. 다년간 국가기관과 대기업 등 다양한 IT 환경을 대상으로 보안 강화, 모의해킹, 보안 점검, 보안 교육을 수행한 경력과 국내외에서 보안 취약점, 안전한 웹 보안 코딩 가이드라인을 발표한 경력이 있다. 고려대학교 정보보호대학원에서 디지털 포렌식을 전공했으며, 메모리 포렌식과 웹 로그 분석 등을 연구했다. 취미로 공개용 보안 도구(웹 백도어 탐지 도구, 웹 로그 분석기 등)를 제작하고 있다.

구형준

수년간 대기업 IT 환경에서 보안 프로세스 개선, 서비스 보안성 검토, 보안 점검, 보안 솔루션 검토, 보안 교육 등 다양한 경험을 쌓았다. 고려대학교 정보보호대학원에서 디지털 포렌식을 전공했으며, 여러 분야 중, 특히 조사자 관점에서 공격과 방어 부문에 관심이 많다. 현재 뉴욕 주립대에서 박사 과정을 밟고 있다.

박호진

십여 년 전 벤처기업에서 프로그래머로 시작해 다양한 애플리케이션과 시스템을 개발했다. PKI와 DRM을 개발하면서부터 보안에 관심을 갖게 됐고, 악성코드를 잡기 위해 안랩에서 수년 동안 밤낮을 잊고 있었다. 지금까지의 경험과 고려대학교 정보보호대학원에서 전공한 디지털 포렌식을 접목해 안랩에서 침해 사고 분석가로 새로운 분야를 개척했다. 현재는 룩셈부르크에 위치한 넥슨유럽에서 다양한 종류의 공격들을 막아내기 위한 시각화와 상관관계 분석에 관여 중이다.

옮긴이의 말

APT(Advanced Persistent Threat), 지능형 지속 위협 공격이 사회적 이슈로 부각되면서 악성코드로 인한 보안 위협은 모든 보안 전문가에게 공통적인 숙제가 되었다. 악성코드를 이용한 공격은 과거부터 끊임없이 존재하였지만, 이제는 일반을 대상으로 하는 것이 아니라 명확한 공격 목적과 대상을 가진 악성코드가 주류를 이루고 있다. 이런 환경의 변화는 보안 담당자가 상용 보안 제품의 지원에만 의지할 수 없게 만들었다. 상용 제품은 다수에게 발생할 수 있는 보안 위협을 더 중시하기 때문에 한 조직에 특화된 악성코드는 탐지나 대응이 쉽지 않다. 따라서 보안 담당자나 보안 전문가로서 기본적으로 악성코드에 대한 이해와 분석 능력을 지녀야 한다.

『실전 악성코드와 멀웨어 분석』은 역자진이 예전에 번역한 『악성코드 분석가의 비법서』와는 동일한 주제를 다른 방식으로 풀이한 책이다. 일부 겹치는 내용이 있기는 하지만, 다른 관점에서 예제와 더불어 포괄적인 주제를 기본에 충실하게 빠짐없이 다룬다. 특히 장별로 저자가 작성한 샘플 악성코드를 직접 테스트하고 상세한 설명을 통해 해당 주제를 이해할 수 있게 구성돼 있다. 악성코드 분석에 대한 기초가 부족한 독자의 경우에도 책의 내용을 따라가면서 이해할 수 있다.

이 책은 기본에서 시작해 고급까지 모든 내용을 포괄함으로써 악성코드 분석에 관심을 가진 초심자와 더불어 이미 현업에서 악성코드를 분석 중이거나 보안 관련 업무로 인해 악성코드 분석에 대한 실습이 필요한 모두에게 적합한 책이다. 실습 예제가 포함돼 있기 때문에 교육 기관에서 학습서로 활용하기에도 부족함이 없는 내용을 포함하고 있다. 총 6 부로 구분돼 있는 책의 내용을 독자의 목적에 따라 습득한다면 빠른 시간 안에 원하는 목적의 정보와 지식을 습득할 수 있으며, 실습을 통해 숙달할 수 있을 것이라고 생각한다.

목차

목차
  •   0장 악성코드 분석 입문

  • 1부 기초 분석
  •   1장 기초 정적 분석 기법
  •   2장 가상머신에서의 악성코드 분석
  •   3장 기초 동적 분석

  • 2부 고급 정적 분석
  •   4장 X86 디스어셈블리 속성 과정
  •   5장 IDA Pro
  •   6장 어셈블리어에서의 C 코드 구조 식별
  •   7장 악의적인 윈도우 프로그램 분석

  • 3부 고급 동적 분석
  •   8장 디버깅
  •   9장 OllyDbg
  •   10장 WinDbg를 이용한 커널 디버깅

  • 4부 악성코드의 기능
  •   11장 악성코드의 행위 특성
  •   12장 위장 악성코드 실행
  •   13장 데이터 인코딩
  •   14장 악성코드 기반 네트워크 시그니처

  • 5부 안티리버싱
  •   15장 안티디스어셈블리
  •   16장 안티디버깅
  •   17장 안티가상머신 기법
  •   18장 패커와 언패킹

  • 6부 특별한 주제
  •   19장 셸코드 분석
  •   20장 C++ 분석
  •   21장 64비트 악성코드

  • 부록
  •   부록 A 주요 윈도우 함수
  •   부록 B 악성코드 분석 도구
  •   부록 C 실습 문제 풀이

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

이 책의 예제 파일 다운로드

이 책에서 설명한 악성코드 예제 파일은 다음 경로에서 내려받으실 수 있습니다. http://practicalmalwareanalysis.com/labs/

[p.182: 리스트 6-4, 6-5]
리스트 6-2의 전역 변수 예제용 어셈블리 코드, 이름 없음
->
리스트 6-2의 지역 변수 예제용 어셈블리 코드, 이름 없음

리스트 6-2의 전역 변수 예제용 어셈블리 코드, 이름 변경
->
리스트 6-2의 지역 변수 예제용 어셈블리 코드, 이름 변경

[p.378: 12행, 실습 12-2 질문 4번 다음 행에 추가]
5. 문자열은 어떻게 보호되고 있는가?