악성코드 분석 시작하기 (윈도우 악성코드 분석에 필요한 개념과 도구, 테크닉)

악성코드 분석 시작하기 (윈도우 악성코드 분석에 필요한 개념과 도구, 테크닉)

$37.47
Description
사이버 공격 위협이 증가함에 따라 악성코드 분석은 필수적인 기술이 됐다. 윈도우 악성코드를 이해할 수 있는 개념, 도구, 기술을 바탕으로 실제 악성코드 샘플, 메모리 이미지를 살펴보면서 좀 더 실증적인 악성코드 분석 방법을 배울 수 있다. 이 분야에 관심 있는 초심자는 물론, 실무 경험자도 이 책의 체계적인 접근 방법과 사례를 통해 지식을 향상시킬 수 있다. 침해 사고 대응, 악성코드 분석가, 시스템 관리자 등을 포함해 악성코드 분석을 배우고자 하는 모든 사람을 대상으로 한다.
저자

몬나파KA

MonnappaKA
시스코시스템(CiscoSystems)에서위협인텔리전스와고급사이버공격조사에초점을둔정보보안조사자로일하고있다.블랙햇(BlackHat)검토위원회의회원,Limon리눅스샌드박스의제작자,Volatility플러그인콘테스트2016의우승자,시스인포(Cysinfo)사이버보안연구커뮤니티의공동창립자다.블랙햇,FIRST,OPCDE,DSCI를포함한다양한보안콘퍼런스에서발표와교육세션을수행했다.미국,아시아,유럽의블랙햇보안콘퍼런스에서정기적으로교육을진행한다.

목차

1장.악성코드분석소개
__1.악성코드란무엇인가?
__2.악성코드분석이란무엇인가?
__3.악성코드분석을왜하는가?
__4.악성코드분석의종류
__5.랩환경설정
____5.1랩요구사항
____5.2랩아키텍처의개요
____5.3리눅스VM설치와설정
____5.4윈도우VM설치와설정
__6.악성코드출처
요약

2장.정적분석
__1.파일유형파악
____1.1수작업을통한파일유형식별
____1.2도구를이용한파일유형식별
____1.3파이썬을이용한파일유형구분
__2.악성코드식별
____2.1도구를이용한암호해시생성
____2.2파이썬에서암호해시파악
__3.다중백신스캐닝
____3.1바이러스토털을이용한의심바이너리스캐닝
____3.2바이러스토털공개API를이용한해시값질의
__4.문자열추출
____4.1도구를이용한문자열추출
____4.2FLOSS를이용한난독화된문자열디코딩
__5.파일난독화파악
____5.1패커와크립터
____5.2ExeinfoPE를이용한파일난독화탐지
__6.PE헤더정보조사
____6.1파일의존성과임포트조사
____6.2익스포트조사
____6.3PE섹션테이블과섹션조사
____6.4컴파일타임스탬프조사
____6.5PE리소스조사
__7.악성코드비교와분류
____7.1퍼지해싱을이용한악성코드분류
____7.2임포트해시를이용한악성코드분류
____7.3섹션해시를이용한악성코드분류
____7.4YARA를이용한악성코드분류
요약

3장.동적분석
__1.랩환경개요
__2.시스템과네트워크모니터링
__3.동적분석(모니터링)도구
____3.1프로세스해커를이용한프로세스조사
____3.2프로세스모니터를이용한시스템상호작용조사
____3.3노리벤을이용한시스템활동로깅
____3.4와이어샤크를이용한네트워크트래픽캡처
____3.5INetSim을이용한서비스시뮬레이션
__4.동적분석단계
__5.종합분석:악성코드실행파일분석
____5.1샘플의정적분석
____5.2샘플동적분석
__6.동적링크라이브러리분석
____6.1공격자가DLL을사용하는이유
____6.2rundll32.exe를이용한DLL분석
____6.3프로세스체크를이용한DLL분석
요약

4장.어셈블리언어와디어셈블리기초
__1.컴퓨터기초
__1.2CPU
____1.3프로그램기초
__2.CPU레지스터
____2.1범용레지스터
____2.2명령포인터(EIP)
____2.3EFLAGS레지스터
__3.데이터전송명령어
____3.1상수를레지스터로이동
____3.2레지스터에서레지스터로값이동
____3.3메모리의값을레지스터로이동
____3.4레지스터에서메모리로값이동
____3.5디스어셈블리챌린지
____3.6디스어셈블리해답
__4.산술연산
____4.1디스어셈블리챌린지
____4.2디스어셈블리해답
__5.비트연산
__6.분기와조건문
____6.1무조건분기
____6.2조건분기
____6.3IF문
____6.4If-Else문
____6.5If-Elseif-Else문
____6.6디스어셈블리챌린지
____6.7디스에셈블리솔루션
__7.반복
____7.1디스어셈블리챌린지
____7.2디스어셈블리솔루션
__8.함수
____8.1스택
____8.2함수호출하기
____8.3함수에서복귀하기
____8.4함수매개변수와반환값
__9.배열과문자열
____9.1디스어셈블리챌린지
____9.2디스어셈블리솔루션
____9.3문자열
__10.구조체
__11.x64아키텍처
____11.164비트윈도우에서의32비트실행파일분석
__12.추가정보
요약

5장.IDA를이용한디스어셈블리
__1.코드분석도구
__2.IDA를이용한정적코드분석
____2.1IDA에바이너리로드
____2.2IDA디스플레이탐색
____2.3IDA를이용한디스어셈블리개선
__3.윈도우API디스어셈블
____3.1윈도우API이해
____3.2윈도우API32비트와64비트비교
__4.IDA를이용한바이너리패치
____4.1프로그램바이트패치
____4.2명령어패치
__5.IDA스크립팅과플러그인
____5.1IDA스크립트실행
____5.2IDAPython
____5.3IDA플러그인
요약

6장.악성바이너리디버깅
__1.일반적인디버깅개념
____1.1프로세스실행과연결
____1.2프로세스실행제어
____1.3브레이크포인트로프로그램중지
____1.4프로그램실행추적
__2.x64dbg를이용한바이너리디버깅
____2.1x64dbg에서새로운프로세스실행
____2.2x64dbg를이용한실행프로세스연결
____2.3x64dbg디버거인터페이스
____2.4x64dbg를이용한프로세스실행제어
____2.5x64dbg에서브레이크포인트설정
____2.632비트악성코드디버깅
____2.764비트악성코드디버깅
____2.8x64dbg를이용한악성DLL디버깅
____2.9x64dbg에서의실행추적
____2.10x64dbg에서의패치〈$Scr_Ps::1〉
__3.IDA를이용한바이너리디버깅
____3.1IDA에서의새로운프로세스실행
____3.2IDA를이용한기존프로세스연결
____3.3IDA디버거인터페이스
____3.4IDA를이용한프로세스실행제어
____3.5IDA에서의브레이크포인트설정
____3.6악성코드실행파일디버깅
____3.7IDA를이용한악성DLL디버깅
____3.8IDA를이용한실행추적
____3.9IDAPython을이용한디버거스크립팅
요약

7장.악성코드기능과지속성
__1.악성코드기능
____1.1다운로더
____1.2드로퍼
____1.3키로거
____1.4이동식미디어를통한악성코드복제
____1.5악성코드명령및제어
____1.6파워셸기반실행
__2.악성코드지속방법
____2.1레지스트리키실행
____2.2스케줄작업
____2.3시작폴더
____2.4Winlogon레지스트리항목
____2.5이미지파일실행옵션
____2.6접근성프로그램
____2.7AppInit_DLLs
____2.8DLL검색순서하이재킹
____2.9COM하이재킹
____2.10서비스
요약

8장.코드인젝션과후킹
__1.가상메모리
____1.1프로세스메모리컴포넌트
____1.2커널메모리내용
__2.유저모드와커널모드
____2.1윈도우API호출흐름
__3.코드인젝션기술
____3.1원격DLL인젝션
____3.2APC를이용한DLL인젝션
____3.3SetWindowsHookEX()을이용한DLL인젝션
____3.4애플리케이션호환성Shim을이용한DLL인젝션
____3.5원격실행파일/셸코드인젝션
____3.6할로우프로세스인젝션
__4.후킹기술
____4.1IAT후킹
____4.2인라인후킹
____4.3Shim을이용한인-메모리패칭
__5.추가정보
요약

9장.악성코드난독화기술
__1.심플인코딩
____1.1시저암호
____1.2Base64인코딩
____1.3XOR인코딩
__2.악성코드암호화
____2.1Signsrch를이용한암호화시그니처식별
____2.2FindCrypt2를이용해암호화상수탐색
____2.3YARA를이용한암호화시그니처탐색
____2.4파이썬에서의복호화
__3.사용자정의인코딩/암호화
__4.악성코드언패킹
____4.1수작업언패킹
____4.2자동화된언패킹
요약

10장.메모리포렌식을이용한악성코드헌팅
__1.메모리포렌식단계
__2.메모리수집
____2.1DumpIt을이용한메모리수집
__3.Volatility개요
____3.1Volatility설치
____3.2Volatility사용
__4.프로세스나열
____4.1프로세스개요
____4.2pssan을이용한프로세스나열
____4.3프로세스관계파악
____4.4psxview를이용한프로세스목록화
__5.프로세스핸들나열
__6.DLL나열
____6.1ldrmodules를이용한숨겨진DLL탐색
__7.실행파일과DLL덤프
__8.네트워크연결과소켓나열
__9.레지스터조사
__10.서비스조사
__11.명령어히스토리추출
요약

11장.메모리포렌식을이용한고급악성코드탐지
__1.코드인젝션탐지
____1.1VAD정보획득
____1.2VAD를사용해인젝션된코드탐지
____1.3프로세스메모리영역덤프
____1.4malfind를이용한인젝션코드탐지
__2.할로우프로세스인젝션조사
____2.1할로우프로세스인젝션단계
____2.2할로우프로세스인젝션탐지
____2.3할로우프로세스인젝션변형
__3.API후킹탐지
__4.커널모드루트킷
__5.커널모듈나열
____5.1driverscan을이용한커널모듈나열
__6.I/O프로세싱
____6.1장치드라이버의역할
____6.2I/O관리자의역할
____6.3장치드라이버와의통신
____6.4계층드라이버에I/O요청
__7.장치트리표시
__8.커널공간후킹탐지
____8.1SSDT후킹탐지
____8.2IDT후킹탐지
____8.3인라인커널후킹식별
____8.4IRP함수후킹탐지
__9.커널콜백과타이머
요약

출판사 서평

★이책에서다루는내용★

■악성코드분석을위한안전하고격리된랩만들기
■악성코드와관련된메타데이터추출
■시스템과악성코드의상호작용파악
■IDAPro와x64dbg를이용한코드분석
■리버스엔지니어링을이용한다양한악성코드기능
■일반적인인코딩/암호화알고리즘을리버스엔지니어링하고디코딩하기
■다양한코드인젝션과후킹기술
■메모리포렌식을이용한악성코드조사및헌팅

★이책의대상독자★

사고대응자,사이버보안조사자,시스템관리자,악성코드분석가,포렌식실무자,학생또는악성코드분석기술을배우거나향상시키는데관심이있는보안전문가를위한책이다.

★이책의구성★

1장,‘악성코드분석소개’에서는악성코드분석의개념,악성코드분석의유형,격리된악성코드분석연구실환경의설정을소개한다.
2장,‘정적분석’에서는악의적인바이너리에서메타데이터정보를추출하는도구와기술을설명한다.악성코드샘플을비교하고분류하는방법을보여준다.바이너리를실행하지않고바이너리의다양한측면을파악하는방법을배울수있다.
3장,‘동적분석’에서는악성코드의동작과시스템과의상호작용을파악할수있는도구와기술을설명한다.악성코드와관련된네트워크,호스트기반식별자의획득방법을배울수있다.
4장,‘어셈블리언어와디스어셈블리’에서는기초어셈블리언어의기본이해와코드분석에필요한기술을설명한다.
5장,‘IDA를이용한디스어셈블리’에서는IDAPro디스어셈블러의기능을설명하고,정적코드분석(디스어셈블리)를수행하고자IDAPro를사용하는방법을다룬다.
6장,‘악의적인바이너리디버깅’에서는x64dbg와IDAPro디버거를이용해바이너리를디버깅하는기술을설명한다.디버거를이용해프로그램의실행을제어하고프로그램의동작을조작하는방법을배울수있다.
7장,‘악성코드기능과지속’에서는리버스엔지니어링을이용해악성코드의다양한기능을설명한다.악의적인프로그램이사용하는다양한지속(persistence)방법도설명한다.
8장,‘코드인젝션과후킹’에서는악의적인프로그램이정상프로세스의콘텍스트(context)에서악의적인코드를실행하고자사용하는일반적인코드인젝션기술을설명한다.악성코드가API의결과를모니터링,차단,또는필터링하고자악의적인코드로제어를리다이렉트할때사용하는후킹기술도설명한다.코드인젝션과후킹기술을사용하는악의적인프로그램을분석하는방법을배울수있다.
9장,‘악성코드난독화기술’에서는악의적인프로그램이정보를은닉하고숨기고자사용하는인코딩,암호화,패킹기술을설명한다.데이터를디코딩/복호화하고악의적인바이너리를언패킹하는다양한전략을설명한다.
10장,‘메모리포렌식을이용한악성코드헌팅’에서는메모리포렌식을이용해악의적인컴포넌트를탐지하는기술을설명한다.메모리에서포렌식아티팩트를탐지하고식별할수있는다양한Volatility플러그인을배울수있다.
11장,‘메모리포렌식을이용한고급악성코드탐지’에서는고급악성코드가포렌식도구에탐지되지않고자사용하는은닉기술을설명한다.유저모드와커널모드루트킷컴포넌트를조사하고탐지하는방법을배울수있다.