[디지털 포렌식 전문가를 위한]
실전 리눅스 악성코드 포렌식
- 원서명Malware Forensics Field Guide for Linux Systems: Digital Forensics Field Guides (ISBN 9781597494700)
- 지은이카메론 말린(Cameron H. Malin), 오언 케이시(Eoghan Casey), 제임스 아퀼리나(James M. Aquilina)
- 옮긴이배영부, 권기훈, 이원래, 양해용
- 감수자삼성SDS 정보보안연구회
- ISBN : 9788960777163
- 40,000원
- 2015년 05월 29일 펴냄
- 페이퍼백 | 680쪽 | 188*250mm
- 시리즈 : 디지털 포렌식
책 소개
요약
오늘날 보안담당자나 수사관이 포렌식 업무를 수행할 때는 윈도우를 비롯해 리눅스 시스템에 존재하는 웜, 봇넷, 루트킷, 토로이 목마와 같은 악성코드를 분석하고 윈도우 및 기타 로그들과 연관 지어 사고의 원인을 밝히는 역량이 필요하다. 다년간 실제 사건 수사에 참여한 정보보안 전문가들이 쓴 이 책에는 리눅스 운영체제에서 발생하는 침해 사고를 분석하는 데 필요한 도구와 점검 목록, 다양한 사례 분석 내역, 전문가 팁 등이 들어있다.
이 책에서 다루는 내용
■ 참고하기 쉽게 매뉴얼 형태로 구성한 분석 도구와 작업 목록
■ 리눅스 시스템의 휘발성 데이터를 수집하고 조사하는 방법
■ 의심스러운 파일을 프로파일링하기 위한 구체적인 기술
■ 현장에서 종종 접하게 되는 법적 고려사항
■ 현장에서 바로 활용할 수 있는 참고자료와 템플릿
■ 전용 웹사이트(www.malwarefieldguide.com)에서 제공하는 최신 도구와 리소스
이 책의 대상 독자
컴퓨터 포렌식 수사관, 분석가를 비롯한 다양한 전문가가 참고할 수 있다.
이 책의 구성
이 책에서는 악성코드 사고를 다루는 전반적인 방법론을 다음과 같이 5단계로 나눈다.
1단계: 포렌식 보존과 휘발성 데이터의 검사 (1장)
2단계: 메모리의 검사 (2장)
3단계: 포렌식 분석: 하드 드라이브의 검사 (3장)
4단계: 알 수 없는 파일의 파일 프로파일링 (5장)
5단계: 악성코드 샘플의 동적 및 정적 분석 (6장)
각 단계마다 정형화된 방법론과 목표는 디지털 조사관이 악성코드 감염을 둘러싼 사건의 생생한 사진을 재구성하는 것을 강조하고 악성코드 자체에 대해 자세히 이해할 수 있게 한다. 이 책에서 설명하는 방법은 맹목적으로 따라야 할 체크리스트는 아니다. 디지털 조사관은 관찰 대상에 대해 항상 비판적인 사고를 가져야 하며, 그에 따라 조사 방향을 조정해야 한다.
목차
목차
- 1장 악성코드에 의한 사고 대응
- 소개
- 현지 대 원격지 수집
- 휘발성 데이터 수집 방법론
- 수집 단계의 문서화
- 휘발성 데이터 수집 절차
- 휘발성 데이터의 보존
- 동작 중인 리눅스 시스템의 물리적 메모리 획득
- 현지에서의 물리적 메모리 획득
- /proc/meminfo 파일의 내용 문서화
- 원격 물리 메모리 수집
- 물리적 메모리 수집의 다른 방법
- 대상 시스템에 대한 자세한 내용 수집
- 시스템에 로그인한 사용자 식별
- 네트워크 접속과 활동 조사
- 프로세스 정보 수집
- 동작 중인 리눅스 시스템에서의 프로세스 메모리 보존
- 시스템 상태와 결과물에 관련된 맥락에서 동작 중인 프로세스 검토
- /proc 디렉터리의 휘발성 데이터
- 동작 중인 프로세스와 프로그램에 열려 있는 포트의 상호관계
- 열린 파일과 의존 관계
- 실행 중인 서비스 식별
- 탑재된 모듈의 검사
- 명령 히스토리 수집
- 마운트된 공유 드라이브 식별
- 예약된 작업의 판별
- 클립보드 내용 수집
- 동작 중인 시스템으로부터 비휘발성 데이터 수집
- 동작 중인 시스템에서의 스토리지 미디어 포렌식 복제
- 동작 중인 시스템의 스토리지 미디어 원격 수집
- 동작 중인 리눅스 시스템에서 선택된 데이터의 포렌식 보존
- 보안 설정 평가
- 신뢰할 수 있는 호스트 간의 관계 평가
- 로그인 로그와 시스템 로그 수집
- 결론
- 주의할 점
- 사고 대응 도구 모음
- 악성코드 포렌식 도구 상자
- 원격 수집 도구
- 휘발성 데이터 수집과 분석 도구
- 대상 시스템 상세 정보 수집
- 시스템에 로그인한 사용자 식별
- 네트워크 접속과 행동
- 프로세스 분석
- 로드된 모듈
- 열린 파일
- 명령 히스토리
- 참고 문헌
- 도서
- 논문
- 온라인 자료
- 법/RFC/기술 명세서
- 2장 리눅스 메모리 포렌식
- 소개
- 메모리 포렌식 개요
- ‘전통적인 방식’의 메모리 분석
- 리눅스 메모리 포렌식 도구는 어떻게 동작하는가
- 리눅스 메모리 포렌식 도구
- 프로세스와 스레드
- 모듈과 라이브러리
- 열린 파일과 소켓
- 리눅스 메모리 내 다양한 자료구조의 해석
- 명령 기록
- 암호화된 키와 패스워드
- 리눅스 프로세스 메모리 덤프하기
- 실행 파일의 복원
- 프로세스 메모리의 복원
- 동작 중인 시스템에서 프로세스 메모리 추출
- 리눅스 프로세스 메모리 해부
- 결론
- 주의할 점
- 발견한 것에 대한 검증 실패
- 조사 바탕이 되는 자료구조에 대한 잘못된 이해
- 현장 노트: 메모리 포렌식
- 악성코드 포렌식 도구 상자
- 참고 문헌
- 도서
- 논문
- 온라인 자료
- 3장 사후 포렌식
- 소개
- 리눅스 포렌식 분석 개요
- 리눅스 시스템에서 악성코드를 발견하고 추출
- 알려진 악성 프로그램의 검색
- 설치된 프로그램과 잠재적으로 의심스러운 실행 파일의 조사
- 서비스, 모듈, 자동 시작 위치, 계획된 작업의 조사
- 로그 검사
- 사용자 계정과 로그인 행동 재검토
- 리눅스 파일시스템 검사
- 응용프로그램 흔적 조사
- 키워드 검색
- 공격받은 리눅스 시스템의 포렌식을 위한 재구성
- 리눅스 시스템으로부터 향상된 악성 프로그램의 발견과 추출
- 결론
- 주의할 점
- 현장 노트: 리눅스 시스템 검사
- 포렌식 도구 모음
- 악성코드 포렌식 도구 상자
- 시간 축 생성
- 참고 문헌
- 도서
- 논문
- 4장 법적 고려사항
- 다루고자 하는 이슈
- 일반적인 고려사항
- 법적 환경
- 조사 권한 부여 기관
- 관할권에 따른 권한
- 사적 권한
- 공공/법령에 의한 권한
- 권한에 대한 법령적 제한
- 저장된 데이터
- 실시간 데이터
- 보호된 데이터
- 데이터 수집용 도구
- 업무용
- 수사용
- 수사/해킹 겸용
- 국경 간 데이터 수집
- 개인 또는 민간 조사에 있어서의 업무 현장 데이터
- 정부 또는 범죄 조사에 있어서의 업무 현장 데이터
- 사법당국의 개입
- 피해자가 사법당국의 개입을 꺼리는 이유
- 피해자가 오해하는 부분
- 사법당국의 관점
- 사법당국과 피해자 사이에서 중립 지키기
- 증거능력 향상
- 문서화
- 보존
- 연계 보관
- 각 주의 사립탐정 관련 법령과 정보유출 고지 법령
- 국제 기구 자료
- 국경 간 수사 관련 자료
- 연방 법률: 디지털 조사자가 사용할 증거
- 관련성
- 입증
- 최적 증거
- 전문가 증언
- 변호사 비밀 유지 의무 포기의 제한
- 5장 파일 식별 및 프로파일링
- 소개
- 파일 프로파일링 프로세스 개요
- 리눅스 실행 파일 다루기
- 실행 파일이 컴파일되는 방법
- 정적 링킹 vs 동적 링킹
- 심볼릭, 디버그 정보
- 스트립된 실행 파일
- 의심 파일 프로파일링
- 커맨드라인 인터페이스 MD5 도구
- GUI MD5 도구
- 파일 유사성 인덱싱
- 파일 시각화
- 파일 시그니처 확인과 분류
- 파일 타입
- 파일 시그니처 확인 및 분류 툴
- 웹 기반 악성 프로그램 검사 서비스
- 임베디드 아티팩트 추출: 문자열, 심볼릭 정보, 파일 메타데이터
- 문자열
- 임베디드 문자열 분석 도구
- 심볼릭 정보와 디버그 정보
- 임베디드 파일 메타데이터
- 파일 난독화: 패킹과 암호화 확인
- 패커
- 크립터
- 래퍼
- 난독화된 파일 확인
- 임베디드 아티팩트 추출 재고
- ELF 형식
- ELF Shell(elfsh) 사용
- ELF Header (Elf32 ehdr)
- ELF 섹션 헤더 테이블(Elf32 shdr)
- 프로그램 헤더 테이블(Elf32 Phdr)
- 심볼 테이블에서 심볼릭 정보 추출
- 노트 섹션 항목
- 동적 섹션 항목
- 버전 컨트롤 정보
- Objdump를 이용한 바이너리 샘플 분석
- 의심 문서 파일 프로파일링
- 어도비 PDF 프로파일링
- PDF 파일 포맷
- PDF 프로파일링 프로세스: CLI 프로그램
- PDF 프로파일링 프로세스: GUI 프로그램
- 마이크로소프트 오피스 파일 프로파일링
- MS 오피스 문서: 워드, 파워포인트, 엑셀
- MS 오피스 문서 파일 포맷
- MS 오피스 문서: 취약점과 익스플로잇
- MS 오피스 문서 프로파일링 프로세스
- OfficeMalScanner를 이용한 상세 프로파일링
- 결론
- 주의할 점
- 악성코드 포렌식 도구 상자
- 파일 외관 캡처
- 커맨드라인 해시 프로그램
- GUI 해시 프로그램
- 파일 유사성 인덱싱
- 파일 시각화
- 16진수 에디터
- 안티바이러스
- 문자열
- 파일 의존성
- 심볼릭 정보와 디버그 정보 추출
- 파일 메타데이터
- ELF 파일 분석
- 악성 문서 분석: PDF 파일
- 참고 문헌
- 도서
- 논문
- 온라인 자료
- 기술 명세서
- 6장 악성코드 샘플의 분석
- 소개
- 목적
- 악성 파일의 샘플을 조사하기 위한 가이드라인
- 실행 환경 베이스라인 설정
- 시스템 스냅샷
- 호스트 무결성 모니터
- 설치 모니터
- 실행 전 준비: 시스템 및 네트워크 모니터링
- 패시브 시스템 및 네트워크 모니터링
- 액티브 시스템 및 네트워크 모니터링
- NIDS를 이용해 이상 검출 및 이벤트 기반 모니터링
- 실행 아티팩트 캡처: 디지털 인상 및 추적 증거
- 인상 증거
- 추적 증거
- 디지털 인상 증거
- 디지털 추적 증거
- 실제 메모리의 추적과 인상 증거
- 악성코드 샘플 실행
- 실행 경로 분석: 네트워크, 프로세스, 시스템 호출,
- 시스템 작업 파일 관찰
- 네트워크 활동: 네트워크 궤적, 노출, 추적 증거
- 환경 에뮬레이션 및 조정: 네트워크 궤적 복원
- 네트워크 궤적 복원: 체인
- 네트워크 인상 및 추적 증거
- 프로세스 활동 검사
- /proc/<PID> 디렉터리 탐색
- 프로세스와 포트의 상관관계: 네트워크 연결 및 오픈된 포트 검사
- strace를 이용한 시스템 호출 캡처
- SystemTap과 Mortadelo를 이용해 시스템 호출 캡처
- ltrace를 이용한 동적 라이브러리 호출 캡처
- gdb를 실행해 실행 중인 프로세스 검사
- 파일시스템의 활동 검사
- 자동화된 악성코드 분석 프레임워크
- 임베드된 아티팩트 추출 재분석
- 디스어셈블러에서 의심스러운 프로그램 검사
- 악성코드 샘플 작동 및 조작: 샘플을 탐색하고 기능과 목적을 확인
- 트리거 이벤트 프롬프트
- 클라이언트 애플리케이션
- 이벤트 복원과 아티팩트 검토: 실행 후 데이터 분석
- 패시브 아티팩트 모니터링
- 액티브 아티팩트 모니터링
- 네트워크 트래픽 캡처 분석
- 시스템 호출 분석
- NIDS 경고 분석
- 물리적 메모리 아티팩트
- 기타 고려사항
- 디지털 바이러스학: 악성코드의 분류 및
- 계통을 통한 고급 프로파일
- 문맥 트리거 구분 해싱
- 텍스트와 형상 바이너리 지표 확인
- 기능 흐름 그래프
- 프로세스 메모리 궤적 분석
- 시각화
- 행동 프로파일링과 분류
- 결론
- 주의할 점
- 악성코드 포렌식 도구 상자
- 호스트 무결성 모니터
- 설치 모니터
- 환경 에뮬레이션
- 액티브 시스템 및 네트워크 모니터링
- 프로세스 모니터링
- 파일시스템 모니터링
- 네트워크 모니터링 및 포렌식
- 포트 모니터링
- 시스템 호출 모니터링 및 시스템 프로파일
- 자동화된 악성코드 분석 프레임워크
- 자동화된 악성코드 분석 프레임워크/샌드박스
- 온라인 악성코드 분석 샌드박스
- 임베디드 아티팩트 추출 재방문
- 디스어셈블러
- 악성 프로그램 샘플을 조작하고 상호작용
- 디지털 바이러스학
- 트리거 이벤트 프롬프팅
- 연관 구조가 있는 해시 값 및 특징점의 유사성
- 참고 문헌
- 도서
- 논문