머신 러닝을 활용한 컴퓨터 보안
- 원서명Machine Learning and Security: Protecting Systems with Data and Algorithms (ISBN 9781491979907)
- 지은이클라렌스 치오(Clarence Chio), 데이비드 프리먼(David Freeman)
- 옮긴이김창엽, 강병호, 양지수
- ISBN : 9791161752495
- 40,000원
- 2018년 12월 28일 펴냄
- 페이퍼백 | 484쪽 | 188*235mm
- 시리즈 : 해킹과 보안
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
2019년 대한민국학술원 우수학술도서 선정도서
요약
컴퓨터 보안 문제를 해결하기 위해 활용할 수 있는 여러 머신 러닝 기술을 다루고 있는 실무 지침서다. 침입 탐지, 악성 코드 분류, 네트워크 분석 컴퓨터 보안 분야에서 계속 연구되고 있는 분야에 대해 소개하며, 최신 연구 주제인 머신 러닝 모델을 공격하기 위한 방법에 대한 연구도 소개한다. 컴퓨터 보안 분야에 종사하는 실무자나 관심이 많은 분들이 머신 러닝을 활용하는 데에 큰 도움이 될 것이다.
추천의 글
“보안의 미래와 온라인의 보안은 인터넷 규모와 속도에 따른 악의적인 활동을 발견하고 차단하기 위해 머신 러닝을 운영할 수 있는 보안 연구자의 능력에 의해 좌우될 것이다. 치오와 프리먼은 이런 주제에 관해 최신 학술적 연구와 더불어, 현장에서 사람들을 안전하게 지키기 위해 머신 러닝을 활용하면서 어렵게 얻은 교훈을 이 책에 담았다.” - 알렉스 스타모스(Alex Stamos)/페이스북 최고 보안 책임자
“이상치 탐지부터 엔드 유저 보호까지 컴퓨터 시스템 보안에 머신 러닝 기술이 어떻게 사용되는지를 살펴보는 모든 사용자를 위한 훌륭한 실용적인 가이드다.” - 댄 보네(Dan Boneh)/스탠포드대학교 컴퓨터 과학 교수
“보안에서 머신 러닝이 활용되는지 궁금하다면 이 책에서 HD급 실루엣으로 확인할 수 있다.” - 노케디 이디카 박사(Nwokedi C. ldika, PhD)/구글의 보안 및 프라이버시 소프트웨어 엔지니어
이 책에서 다루는 내용
■ 침입, 사기, 임박한 시스템 장애 등의 이상치를 신속하게 탐지
■ 컴퓨터 바이너리에서 유용한 정보를 추출해 악성코드 분석 수행
■ 데이터셋 내에서 패턴을 찾아 네트워크 공격자를 차단
■ 공격자가 사용자 대상 웹 사이트와 앱 기능을 어떻게 악용하는지 조사
■ 머신 러닝 알고리즘을 실험 환경에서 실무 환경으로 변환
■ 공격자가 머신 러닝 솔루션에 가하는 위협 이해
이 책의 대상 독자
보안 분야에서 시스템을 개선하기 위해 머신 러닝을 사용하거나, 머신 러닝 분야에서 보안 분야를 다루기 위해 도구를 사용하려고 한다면, 이 책이 적합하다.
이 책은 통계에 대한 기본적인 지식을 보유하고 있다고 가정하고 서술한다. 복잡한 수학을 다루는 대부분의 내용은 읽지 않아도 내용을 이해하는 데에 문제가 없다. 또한 프로그래밍 언어에 익숙하다고 가정한다. 이 책에서 다루는 내용은 개념적인 내용을 구현하기 위해 파이썬 코드를 사용한다. 물론 오픈소스 라이브러리를 활용해 자바, 스칼라(Scala), C++, 루비(Ruby) 등 다른 언어로도 동일한 개념을 구현할 수 있다.
이 책의 구성
이 책에서는 보안 영역 중에서도 침입 탐지, 악성코드 분류, 네트워크 분석과 같은 문제에 대한 규칙 기반 또는 경험적 솔루션을 보완하거나 대체하기 위해 머신 러닝을 적용하는 방법을 예를 들어 설명한다. 핵심적인 머신 러닝 알고리즘 기법을 살펴보고 보안 영역에서 유지 보수 가능하고 안정적이면서 확장성이 우수한 데이터 마이닝 시스템을 구축하는 데 주안점을 둔다. 예제 코드를 통해 실습하고 보안 문제가 있는 환경에서 데이터를 다루는 방법과 노이즈에 섞여 놓칠 수도 있는 중요한 신호를 식별해내는 방법도 함께 다룬다.
목차
목차
- 1장. 왜 머신 러닝과 보안인가?
- 사이버 위협 살펴보기
- 사이버 공격의 경제학
- 해킹 기술 시장
- 간접적인 이익 창출
- 결과
- 머신 러닝은 무엇인가?
- 머신 러닝으로는 할 수 없는 것
- 머신 러닝을 사용하는 공격자
- 실생활에서 사용하는 보안 분야에서의 머신 러닝 적용 사례
- 스팸 메일 탐지: 반복 접근법
- 보안 분야에서 사용하는 머신 러닝의 한계
- 2장. 분류와 군집화
- 머신 러닝: 문제와 접근법
- 머신 러닝 적용: 실사례
- 훈련 알고리즘 배우기
- 모델 패밀리
- 손실 함수
- 최적화
- 지도 학습 분류 알고리즘
- 로지스틱 회귀
- 의사결정 트리
- 의사결정 포레스트
- 서포트 벡터 머신
- 나이브 베이즈
- K-최근접 이웃 알고리즘
- 신경망
- 실상황에서 분류 문제를 풀 때 고려해야 할 사항
- 모델 패밀리 선택
- 학습 데이터 구성
- 속성 선택
- 과최적화와 과소적합
- 임계치의 선택과 모델 간의 비교
- 군집화
- 군집화 알고리즘
- 군집화 결과 평가
- 결론
- 3장. 이상치 탐지
- 지도 학습 대신에 이상치 탐지를 사용해야 하는 경우
- 휴리스틱을 사용한 침입 탐지
- 데이터 기반 방법
- 이상치 탐지를 위한 특성 공학
- 호스트 침입 탐지
- 네트워크 침입 탐지
- 웹 애플리케이션 침입 탐지
- 요약
- 데이터 및 알고리즘을 이용한 이상치 탐지
- 예측(지도 머신 러닝)
- 통계 측정 항목
- 적합도
- 비지도 머신 러닝 알고리즘
- 밀도 기반 기법
- 요약
- 이상치 탐지에서 머신 러닝을 사용하는 데 따른 어려움
- 대응 및 완화
- 실용적인 시스템 설계 문제
- 설명 가능성 확보
- 이상치 탐지 시스템의 유지 보수 가능성
- 인간의 피드백 통합
- 적대 효과 감소
- 결론
- 4장. 악성코드 분석
- 악성코드 이해
- 악성코드 분류 정의
- 악성코드의 이면
- 속성 생성
- 데이터 수집
- 속성 생성
- 속성 선택
- 속성에서 분석까지
- 악성코드 샘플 및 레이블을 얻는 방법
- 결론
- 악성코드 이해
- 5장. 네트워크 트래픽 분석
- 네트워크 방어 이론
- 접근 제어와 인증
- 침입 탐지
- 네트워크 내의 공격자 탐지
- 데이터 중심 보안
- 허니팟
- 요약
- 머신 러닝과 네트워크 보안
- 캡처에서 속성 추출
- 네트워크 위협
- 봇넷
- 네트워크 공격을 분류하기 위한 예측 모델 구축
- 데이터 탐색
- 데이터 준비
- 분류
- 지도 학습
- 준지도 학습
- 비지도 학습
- 고급 앙상블
- 결론
- 네트워크 방어 이론
- 6장. 소비자 웹 보호
- 소비자 웹으로 수익 창출
- 악용 유형 및 데이터를 활용한 방어
- 인증과 계정 탈취
- 계정 생성
- 금융사기
- 봇 활동
- 악용 문제에 대한 지도 학습
- 데이터 레이블링
- 콜드 스타트와 웜 스타트
- 거짓 양성과 거짓 음성
- 다중 응답
- 대규모 공격
- 악용 군집화
- 예제: 스팸 도메인 군집화
- 클러스터 생성
- 클러스터 평가
- 군집화의 추가 지침
- 결론
- 7장. 운영 시스템
- 머신 러닝 시스템의 완성도와 확장성 정의
- 보안 머신 러닝 시스템에서 중요한 것은 무엇일까?
- 데이터 품질
- 문제점: 데이터셋의 편향
- 문제점: 레이블의 부정확성
- 해결책: 데이터 품질
- 문제점: 누락된 데이터
- 해결책: 누락된 데이터
- 모델 품질
- 문제점: 하이퍼파라미터 최적화
- 해결책: 하이퍼파라미터 최적화
- 특징: 피드백 루프, A/B 모델 테스트
- 특성: 재현 가능하고 설명 가능한 결과
- 성능
- 목표: 낮은 대기 시간과 높은 확장성
- 성능 최적화
- 분산 컴퓨팅 프레임워크를 사용한 수평 확장
- 클라우드 서비스 사용
- 유지 보수, 관리
- 문제점:모델 저장 및 버전 관리,배포
- 목표: 안정적인 성능 저하
- 목표: 손쉬운 설정 변경
- 모니터링 및 경고
- 보안과 신뢰성
- 특징: 공격에 대한 방어
- 특징: 개인 정보 보호 및 보장
- 피드백과 사용성
- 결론
- 머신 러닝 시스템의 완성도와 확장성 정의
- 8장. 적대적 머신 러닝
- 용어
- 적대적 ML의 중요성
- 머신 러닝 알고리즘의 보안 취약점
- 공격 전이성
- 공격 기술: 모델 포이즈닝
- 예제: 이진 분류기 포이즈닝 공격
- 공격자의 지식
- 포이즈닝 공격 방어
- 공격 기술: 회피 공격
- 예제: 이진 분류기 회피 공격
- 회피 공격에 대한 방어
- 결론
- 부록 A. 2장 보충 자료
- 부록 B. 오픈소스 인텔리전스 통합
도서 오류 신고
정오표
정오표
[p. 7]
샤프 시큐리티
->
셰이프 시큐리티
[p. 36]
"살아 있는 자식을 낳는다."
->
"살아 있는 자식을 낳는가?"
[p. 38]
요수아 벤지
->
요수아 벤지오
[p. 48]
LSH(지역 민감 해상)
->
LSH(지역 민감 해싱)
[p. 56]
광범위한 문맥 정보에
->
광범위한 맥락 정보에
[p. 60]
역사적 데이터
->
과거의 데이터
[p. 64]
y-df['label']
->
y 값인 df['label']
[p. 80]
복잡도를 낮추는 정규화
->
복잡도를 낮추는 일반화
[p. 81]
정확도와 강인성이
->
정확도와 강건함이
[p. 86]
위글러 경계(wigglier boundary)
->
울퉁불퉁한 경계(wigglier boundary)
[p. 91]
연산양
->
연상량
[p. 102]
복잡성
->
복잡도
[p. 113]
단어 주머니
->
단어 모음
[p. 119]
동질성
->
동종성
[p. 130]
오에스엑스어텍(osx- attacks)
->
오에스엑스어텍(osx-attacks)
[p. 152]
교육
->
훈련
[p. 164]
하나 이상을 '중심'을
->
하나 이상을 '중심'으로
[p. 169 : 일괄 변경]
포리스트
->
포레스트
[p. 182 : 일괄 변경]
고급 코드
->
고수준 코드
[p. 207]
고급 알고리즘을
->
좋은 알고리즘을
[p. 241]
방정식(편향 무시)
->
식(편향 무시)
[p. 244]
휴롬 엔더슨
->
휴롬 앤더슨
[p. 282]
데이터 사전 준비를 위해 이 데이터를 사전 변환한다.
->
데이터 처리를 준비하기 위해 이 데이터를 사전으로 변환한다.
[p. 305: 일괄 변경]
동질성
->
동종성
[p. 320]
살펴번다.
->
살펴본다.
[p. 378]
정규화 파라미터
->
일반화 파라미터