HOME > 상세정보

상세정보

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

자료유형
단행본
개인저자
Monnappa K A 여성구, 역
서명 / 저자사항
악성코드 분석 시작하기 : 윈도우 악성코드 분석에 필요한 개념과 도구, 테크닉 / 몬나파 K A 지음 ; 여성구 옮김
발행사항
서울 :   에이콘,   2020  
형태사항
571 p. : 삽화 ; 24 cm
총서사항
에이콘 해킹·보안 시리즈
원표제
Learning malware analysis : explore the concepts, tools, and techniques to analyze and investigate Windows malware
ISBN
9791161754581
일반주기
색인수록  
일반주제명
Malware (Computer software) Computer security Computer software --Evaluation Microsoft Windows (Computer file)
000 00000cam c2200205 c 4500
001 000046087503
005 20210728133942
007 ta
008 210727s2020 ulka 001c kor
020 ▼a 9791161754581 ▼g 93000
035 ▼a (KERIS)BIB000015689365
040 ▼a 211009 ▼c 211009 ▼d 211009
041 1 ▼a kor ▼h eng
082 0 4 ▼a 005.84 ▼2 23
085 ▼a 005.84 ▼2 DDCK
090 ▼a 005.84 ▼b 2020
100 0 ▼a Monnappa K A
245 1 0 ▼a 악성코드 분석 시작하기 : ▼b 윈도우 악성코드 분석에 필요한 개념과 도구, 테크닉 / ▼d 몬나파 K A 지음 ; ▼e 여성구 옮김
246 1 9 ▼a Learning malware analysis : ▼b explore the concepts, tools, and techniques to analyze and investigate Windows malware
260 ▼a 서울 : ▼b 에이콘, ▼c 2020
300 ▼a 571 p. : ▼b 삽화 ; ▼c 24 cm
490 1 0 ▼a 에이콘 해킹·보안 시리즈
500 ▼a 색인수록
650 0 ▼a Malware (Computer software)
650 0 ▼a Computer security
650 0 ▼a Computer software ▼x Evaluation
650 0 ▼a Microsoft Windows (Computer file)
700 1 ▼a 여성구, ▼e
830 0 ▼a 에이콘 해킹·보안 시리즈
900 0 0 ▼a 몬나파 K A, ▼e
945 ▼a KLPA

소장정보

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.84 2020 등록번호 111851644 도서상태 대출중 반납예정일 예약 예약가능 R 서비스 M

컨텐츠정보

책소개

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

★ 이 책에서 다루는 내용 ★

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

★ 이 책의 대상 독자 ★

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

★ 이 책의 구성 ★

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


정보제공 : Aladin

저자소개

몬나파 K A(지은이)

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

여성구(옮긴이)

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

정보제공 : Aladin

목차

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.2 FLOSS를 이용한 난독화된 문자열 디코딩
__5. 파일 난독화 파악
____5.1 패커와 크립터
____5.2 Exeinfo PE를 이용한 파일 난독화 탐지
__6. PE 헤더 정보 조사
____6.1 파일 의존성과 임포트 조사
____6.2 익스포트 조사
____6.3 PE 섹션 테이블과 섹션 조사
____6.4 컴파일 타임스탬프 조사
____6.5 PE 리소스 조사
__7. 악성 코드 비교와 분류
____7.1 퍼지 해싱을 이용한 악성 코드 분류
____7.2 임포트 해시를 이용한 악성 코드 분류
____7.3 섹션 해시를 이용한 악성 코드 분류
____7.4 YARA를 이용한 악성 코드 분류
요약

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

4장. 어셈블리 언어와 디어셈블리 기초
__1. 컴퓨터 기초
__1.2 CPU
____1.3 프로그램 기초
__2. CPU 레지스터
____2.1 범용 레지스터
____2.2 명령 포인터(EIP)
____2.3 EFLAGS 레지스터
__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.3 IF 문
____6.4 If-Else 문
____6.5 If-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.1 64비트 윈도우에서의 32비트 실행 파일 분석
__12. 추가 정보
요약

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

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

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

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

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

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

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

관련분야 신착자료

Ramamurthy, Bina (2021)
윤관식 (2020)