멀웨어 데이터 과학 공격 탐지 및 원인 규명
* 이 책의 구성
Chapter 1: 기본 정적 멀웨어 분석에서는 멀웨어 파일들을 판별하고 이들이 컴퓨터에서 어떻게 악의적인 목적을 달성하는지 알아내기 위한 정적 분석 기법을 다룬다.
Chapter 2: 기본 정적 분석을 넘어 - x86 디스어셈블리에서는 x86 어셈블리 언어와 멀웨어의 디스어셈블 및 리버스 엔지니어링 방법에 대한 간략한 개요를 제공한다.
Chapter 3: 동적 분석 개요에서는 동적 분석에 대해 논의하면서 리버스 엔지니어링 섹션을 마무리하며, 통제된 환경에서 멀웨어를 실행하여 행동양식을 학습한다.
Chapter 4: 멀웨어 네트워크를 이용한 캠페인 공격 식별에서는 멀웨어 프로그램이 호출하는 호스트 이름과 같은 공유 속성을 기반으로 멀웨어를 분석하고 시각화하는 방법을 알아본다.
Chapter 5: 공유 코드 분석에서는 멀웨어 샘플 간의 공유 코드 관계를 식별하고 시각화하는 방법을 설명하며, 이는 멀웨어 샘플 그룹의 출처가 몇 개의 범죄 그룹인지 식별하는 데 도움이 된다.
Chapter 6: 머신러닝 기반 멀웨어 탐지기는 머신러닝의 기본 개념에 대한 쉽고, 직관적인 소개이다. 머신러닝 관련 경험이 있다면 이 챕터는 편안한 기분전환이 될 것이다.
Chapter 7: 멀웨어 탐지 시스템 평가에서는 최선의 접근 방법을 선택할 수 있도록 기본적인 통계 메서드들을 사용하여 머신러닝 시스템의 정확도를 평가하는 방법을 보여준다.
Chapter 8: 머신러닝 탐지기 만들기는 머신러닝 시스템 구축에 사용 가능한 오픈 소스 머신러닝 도구를 소개하고 사용법을 설명한다.
Chapter 9: 멀웨어 트렌드 시각화에서는 공격 캠페인과 트렌드를 파악하기 위해 파이썬을 사용하여 멀웨어 위협 데이터를 시각화하는 방법과 보안 데이터를 분석할 때 일상적인 워크플로우에 데이터 시각화를 통합하는 방법에 대해 다룬다.
Chapter 10: 딥러닝 기초는 딥러닝의 기초가 되는 기본 개념을 다룬다.
Chapter 11: Keras를 활용한 신경망 멀웨어 탐지기 만들기에서는 오픈 소스 툴을 사용하여 파이썬에 딥러닝 기반 멀웨어 탐지 시스템을 구현하는 방법에 대해 설명한다.
Chapter 12: 데이터 과학자 되기에서는 데이터 과학자가 되기 위한 다양한 경로와 실무에 도움이 되는 소양을 공유하며 이 책을 마무리한다.
부록: 데이터셋 및 도구 개요는 책에 첨부된 데이터와 예시 도구의 구현을 설명한다
Joshua Saxe는 유수의 보안 업체 Sophos에서 데이터 과학 연구팀을 이끌고 있는 총괄 데이터 과학자(Chief Data Scientist)이다. 그는 수천만 명의 고객들을 멀웨어 감염으로부터 보호하는 Sophos의 신경망 기반 멀웨어 탐지기의 수석 개발자이기도하다.
Sophos에 합류하기 전, 그는 DARPA가 후원하는 미 정부 보안 데이터 연구 프로젝트를 5년간 지휘했다
서문
감사의 글
소개
데이터 과학이란 무엇인가?
데이터 과학이 보안에 중요한 이유
멀웨어에 데이터 과학 적용
누가 이 책을 읽어야 하는가?
이 책에 대해
샘플 코드 및 데이터 사용 방법
챕터 1: 기본 정적 멀웨어 분석
마이크로소프트 윈도우즈 Portable Executable 포맷
PE 헤더
선택적 헤더
섹션 헤더
pefile을 이용한 PE 포맷 해부
멀웨어 이미지 검사
멀웨어 문자열 검사
문자열 프로그램 사용
문자열 덤프 분석
요약
챕터 2: 기본 정적 분석을 넘어: x86 디스어셈블리
디스어셈블리 방법
x86 어셈블리 언어 기초
CPU 레지스터
산술 명령어
데이터 이동 명령어
pefile과 capstone을 이용한 ircbot.exe 디스어셈블
정적 분석을 제한하는 인자들
패킹
자원 난독화
디스어셈블리 방지 기법
동적으로 다운로드한 데이터
요약
챕터 3: 동적 분석 개요
왜 동적 분석을 사용하는가?
멀웨어 데이터 과학을 위한 동적 분석
동적 분석을 위한 기본 툴
일반적인 멀웨어 행동
malwr.com에 파일 업로드
malwr.com의 결과 분석
기본 동적 분석의 한계
요약
챕터 4: 멀웨어 네트워크를 이용한 캠페인 공격 식별
노드와 엣지
이분 네트워크
멀웨어 네트워크 시각화
왜곡 문제
힘-방향 알고리즘
NetworkX를 통한 네트워크 구축
노드와 엣지 추가
속성 추가
디스크에 네트워크 저장
GRAPHVIZ를 통한 네트워크 시각화
매개변수를 사용하여 네트워크 조정
GraphViz 커맨드 라인 도구
노드와 엣지에 시각적 속성 추가
멀웨어 네트워크 구축
공유 이미지 관계 네트워크 구축
요약
챕터 5: 공유 코드 분석
특성 추출을 통한 샘플 비교 준비
특성 모둠 모델의 원리
N-그램이란?
자카드 지수를 사용하여 유사성 수치화
유사성 행렬을 통한 멀웨어 공유 코드 추정 메서드 검토
명령어 시퀀스 기반 유사성
문자열 기반 유사성
임포트 주소 테이블 기반 유사성
동적 API 호출 기반 유사성
유사성 그래프 구축
유사성 비교 스케일링
minhash 개괄
minhash 심화
지속적인 멀웨어 유사성 검색 시스템 구축
유사성 검색 시스템 실행
요약
챕터 6: 머신 러닝 기반 멀웨어 탐지 이해
머신 러닝 기반 탐지기 구축 단계
훈련 예시 수집
특성 추출
올바른 특성 설계
머신 러닝 시스템 훈련시키기
머신 러닝 시스템 테스트 하기
특성 공간과 결정 경계의 이해
모델의 가치 판단: 과적합 및 과소적합
주요 머신 러닝 알고리즘 타입
로지스틱 회귀분석
K-근접 이웃
의사결정 트리
무작위 숲
요약
챕터 7: 멀웨어 탐지 시스템 평가
네 가지 탐지 결과
검출 정탐 및 오탐 비율
검출 정탐 비율과 오탐 비율의 관계
ROC 곡선
평가를 위한 기준율의 적용
기준율이 정밀도에 미치는 영향
배포 환경에서의 정밀도 추정
요약
챕터 8: 머신 러닝 탐지기 만들기
용어와 개념
모형 의사결정 트리 기반 탐지기 구축
의사결정 트리 분류기 훈련
의사결정 트리 시각화
전체 샘플 코드
sklearn을 활용한 실제 머신 러닝 탐지기 구축
실제 특성 추출
가능한 모든 특성을 사용할 수 없는 이유
해싱 트릭을 통한 특성 압축
강력한 탐지기 구축
특성 추출
탐지기 훈련
새로운 바이너리에 대해 탐지기 실행
우리가 지금까지 구현한 것
탐지기의 성능 평가
ROC 곡선을 통한 탐지기 효율 평가
ROC 곡선 계산
훈련 및 테스트 세트로 데이터 분할
ROC 곡선 계산
교차검증
다음 단계
요약
챕터 9: 멀웨어 추세 시각화
멀웨어 데이터 시각화가 중요한 이유
우리의 멀웨어 데이터셋 이해하기
pandas에 데이터 로드
pandas DataFrame 활용
조건을 사용하여 데이터 필터링
MATPLOTLIB를 사용하여 데이터 시각화
멀웨어 크기와 벤더 탐지 간 관계 플로팅
랜섬웨어 탐지 비율 플로팅
랜섬웨어 및 웜 탐지 비율 플로팅
seaborn을 사용하여 데이터 시각화
안티바이러스 탐지 분포 도식
바이올린 도식 생성
요약
챕터 10: 딥 러닝 기초
딥 러닝이란 무엇인가?
신경망의 원리
뉴런의 구조
뉴런들의 네트워크
범용 근사 정리
자신만의 신경망 구축
네트워크에 다른 뉴런 추가
자동 특성 생성
신경망 훈련
역전파를 통한 신경망 최적화
경로 폭발
경사 소실
신경망 유형
피드 포워드 신경망
합성곱 신경망
오토인코더 신경망
생성적 대립쌍 네트워크
순환 신경망
ResNet
요약
챕터 11: Keras를 활용한 신경망 멀웨어 탐지기 만들기
모델의 구조 정의
모델 컴파일
모델 훈련
특성 추출
데이터 생성기 구축
검증 데이터 통합
모델 저장 및 로드
모델 평가
콜백을 통한 모델 훈련 프로세스 강화
내장 콜백 사용
사용자 정의 콜백 사용
요약
챕터 12: 데이터 과학자 되기
보안 데이터 과학자가 되는 방법
보안 데이터 과학자의 삶
효과적인 보안 데이터 과학자의 특징
오픈마인드
경계 없는 호기심
결과에 대한 집착
결과에 대한 회의론적 시각
앞으로의 행보
부록: 데이터셋 및 도구 개괄
데이터셋 개요
챕터 1: 기본 정적 멀웨어 분석
챕터 2: 기본 정적 분석을 넘어: x86 디스어셈블리
챕터 3: 동적 분석 개요
챕터 4: 멀웨어 네트워크를 이용한 캠페인 공격 식별
챕터 5: 공유 코드 분석
챕터 6: 머신 러닝 기반 멀웨어 탐지 이해
그리고 챕터 7: 멀웨어 탐지 시스템 평가
챕터 8: 머신 러닝 탐지기 만들기
챕터 9: 멀웨어 추세 시각화
챕터 10: 딥 러닝 기초
챕터 11: Keras를 활용한 신경망 멀웨어 탐지기 만들기
챕터 12: 데이터 과학자 되기
도구 구현 가이드
공유 호스트 이름 네트워크 시각화
공유 이미지 네트워크 시각화
멀웨어 유사성 시각화
멀웨어 유사성 검색 시스템
머신 러닝 멀웨어 탐지 시스템