책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > OS/Networking > 네트워크 보안/해킹
· ISBN : 9791161754581
· 쪽수 : 572쪽
· 출판일 : 2020-09-29
책 소개
목차
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. 커널 콜백과 타이머
요약