Top

머신 러닝을 활용한 컴퓨터 보안

  • 원서명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) 등 다른 언어로도 동일한 개념을 구현할 수 있다.

이 책의 구성

이 책에서는 보안 영역 중에서도 침입 탐지, 악성코드 분류, 네트워크 분석과 같은 문제에 대한 규칙 기반 또는 경험적 솔루션을 보완하거나 대체하기 위해 머신 러닝을 적용하는 방법을 예를 들어 설명한다. 핵심적인 머신 러닝 알고리즘 기법을 살펴보고 보안 영역에서 유지 보수 가능하고 안정적이면서 확장성이 우수한 데이터 마이닝 시스템을 구축하는 데 주안점을 둔다. 예제 코드를 통해 실습하고 보안 문제가 있는 환경에서 데이터를 다루는 방법과 노이즈에 섞여 놓칠 수도 있는 중요한 신호를 식별해내는 방법도 함께 다룬다.

저자/역자 소개

지은이의 말

머신 러닝이 세계를 집어삼키고 있다. 통신과 금융에서부터 교통과 제조, 심지어는 농업에까지, 거의 모든 기술 분야가 머신 러닝과 인공지능, 또는 이러한 것들을 대신할 더 나은 기술에 의해 변화되고 있다.
컴퓨터 보안에도 세계적으로 큰 영향력을 미치고 있다. 업무, 엔터테인먼트, 사회 생활에서 컴퓨터에 대한 비중이 더욱 높아지면서 돈을 벌거나 단순히 장난치려고 시스템을 공격하는 사람이 늘어나고 있다. 또한 시스템이 점차 복잡해지고 시스템 연결이 촘촘해지면서 공격자가 침입을 시도하는 데 악용할 수 있는 버그나 백도어를 없애기가 매우 힘들어졌다. 심지어는 이 책을 집필하는 과정에서 현재 사용 중인 거의 모든 마이크로프로세서가 보안 취약점을 갖고 있다는 사실이 밝혀지기도 했다.
머신 러닝 기술을 이용하면 태양 아래 존재하는 거의 모든 것에 대한 (잠재적인) 해결 방법을 제공한다. 머신 러닝 성능을 향상시킬 수 있는 강력한 데이터셋을 원활히 제공할 수 있는 컴퓨터 보안 분야에서는 이런 장점이 더욱 커진다. 뉴스에서는 AI를 이용해 어떻게 하면 보안 기술을 ‘혁명’시킬 수 있는지를 다룬다. 고도로 숙달된 공격자의 능력을 무력화시키겠다는 목표와 함께, 머신 러닝 기술은 공격자와 방어자 간의 고양이-쥐 게임을 끝내는 기술로 홍보되고 있다. 주요 보안 콘퍼런스의 기조는 명확하다. 점점 더 많은 기업들이 보안 문제를 해결하기 위해 머신 러닝을 접목시키고 있다. 보안과 머신 러닝 두 분야의 만남에 대한 관심이 증가하면서 냉소적인 관점 또한 함께 제시되고 있다. 중심을 잡기 위해서 어떻게 해야 할까? AI의 진정한 잠재력은 무엇인가? 보안에 적용됐는가? 마케팅적인 측면과 전도유망한 기술을 어떻게 분간해낼 수 있는가? 보안 문제를 해결하기 위해 실제로 사용해야 하는 것은 무엇인가? 이러한 질문에 답하기 위해 생각할 수 있는 가장 좋은 방법은 과학에 깊이 빠져들고, 핵심 개념을 이해하고, 많은 실험을 반복하고, 결과를 통해 이야기하는 것이다.
이를 위해 데이터 과학와 컴퓨터 보안에 대한 실무 경험이 필요하다. 보안 시스템을 구축하고 오남용을 방지하는 팀을 결성하고, 콘퍼런스에서 발표하는 과정에서 이런 지식을 보유한 상대방의 의견을 듣고 이해하고자 하는 몇 명의 사람들을 만났다.
이 책이 바로 그 결과다.

지은이 소개

클라렌스 치오(Clarence Chio)

데프콘(DEFCON)과 12개국 이상의 기타 보안/소프트웨어 엔지니어링 회의와 모임에서 머신 러닝과 보안 분야에 대한 발표, 워크숍, 교육 과정을 진행한 엔지니어이자 기업가다. 과거 셰이프 시큐리티(Shape Security)의 보안 연구 팀원, 인텔의 커뮤니티 스피커, 오라클의 보안 컨설턴트를 역임했다. 보안 데이터 과학에 대해 소수의 스타트업에 조언하고 있으며, 샌프란시스코만 지역에서 가장 큰 보안 데이터 과학자 모임인 사이버 보안을 위한 데이터 마이닝 모임의 창립자이자 주최자다. 데이터 마이닝과 인공지능 전공으로 스탠포드대학교의 컴퓨터 과학 학사 및 석사 학위를 취득했다.

데이비드 프리먼(David Freeman)

스팸과 악용 문제를 연구하는 페이스북의 연구 과학자/기술자다. 이전에는 링크드인(LinkedIn)에서 악용 방지 기술과 데이터 과학 팀을 이끌었으며, 거기서 사기와 악용 탐지를 위한 통계 모델을 구축했고, 링크드인에서 더 큰 규모의 머신 러닝 커뮤니티와 협력해 확장 가능한 모델링과 스코어링 인프라를 구축했다. NDSS, WWW, AISec 등 머신 러닝과 보안에 대한 국제 콘퍼런스의 저자, 발표자, 주최자로 컴퓨터 보안의 수학적, 통계적 측면에 관한 20개 이상의 학술 논문을 저술했다. UC 버클리에서 수학 박사 학위를 받았고, CWI와 스탠포드대학교에서 암호학과 보안 분야에서 박사 후 연구를 했다.

옮긴이의 말

데이터가 중요하다는 이야기는 오랫동안 들어봤을 겁니다. 생성되는 데이터는 나날이 증가하고, 데이터를 분석 및 가공하는 기술의 수요도 크게 늘어나고 있습니다. 하지만 데이터가 생성되는 양과 중요성에 비해 데이터를 분석하는 기술자와 기술 모두 공급이 부족한 상황이 이어지고 있습니다.
보안 분야에 머신 러닝 기술을 접목시키기는 생각만큼 쉽지 않습니다. 사람이 자세히 분석하더라도 문제가 있는지 없는지 파악하기 어려운 경우가 많다는 특성 때문입니다.
하지만 보안 분야에서 많은 경험을 쌓은 경우에 직감을 통해 정확한 분석을 할 수 있다는 것은 분명합니다. 그 동안의 누적된 경험이 직감이라는 휴리스틱을 형성해낸 것입니다.
자신 고유의 추론 엔진이라고 볼 수 있겠지요. 머신 러닝 기술을 보안에 접목시키는 일은 이러한 도메인 지식을 찾아내는 것이 아닐까요?
이 책은 다른 머신 러닝 관련 자료에서는 쉽게 찾아보기 어려운 보안 문제를 다루고 있습니다. 보안 분야의 비정형성으로 인해 이 책에서 모든 내용을 다루지는 못합니다. 하지만 보안 분야에 머신 러닝을 접목시키기 위해 어떠한 방식으로 접근해야 하는지 방향성을 제시해 주는 데는 탁월하며, 도움이 될 거라 생각합니다.

옮긴이 소개

김창엽

현재 데이터 분석과 머신 러닝에 관심이 많아 고려대학교 산업경영공학과 데이터 사이언스 및 비즈니스 어낼리틱스(DSBA) 연구실에서 박사 과정 재학 중이다. 이전에는 안랩에서 9년간 근무하며 악성코드 대응 및 침해사고 분석 업무를 수행했다. 옮긴 책으로는 에이콘출판사에서 출간한 『텐서플로 入門』(2016), 『리눅스 바이너리 분석』(2016), 『모의 해킹을 위한 메타스플로잇』(2014), 『케라스로 구현하는 딥러닝과 강화학습』(2017), 『딥러닝 데이터 전처리 입문』(2018) 등이 있다.

강병호

한양대학교 공과대학 컴퓨터 공학부 및 동 대학원 컴퓨터 소프트웨어학과를 졸업했다. 안랩과 한국전자통신연구원(ETRI)에서 머신 러닝 기반 보안 기술을 연구했고, 현재 SK텔레콤에서 머신 러닝 기술을 연구하고 있다.

양지수

한양대학교에서 컴퓨터 공학을 전공했고, 동 대학원에서 소프트웨어 및 네트워크 보안으로 석사 학위를 받았다. 안랩에서 악성코드 및 네트워크 패킷 분석 업무를 수행했고, 빅데이터와 머신 러닝을 연구했다. 현재 국방과학연구소(ADD) 재직 중이다.

목차

목차
  • 1장. 왜 머신 러닝과 보안인가?
    • 사이버 위협 살펴보기
    • 사이버 공격의 경제학
      • 해킹 기술 시장
      • 간접적인 이익 창출
      • 결과
    • 머신 러닝은 무엇인가?
      • 머신 러닝으로는 할 수 없는 것
      • 머신 러닝을 사용하는 공격자
    • 실생활에서 사용하는 보안 분야에서의 머신 러닝 적용 사례
    • 스팸 메일 탐지: 반복 접근법
    • 보안 분야에서 사용하는 머신 러닝의 한계

  • 2장. 분류와 군집화
    • 머신 러닝: 문제와 접근법
    • 머신 러닝 적용: 실사례
    • 훈련 알고리즘 배우기
      • 모델 패밀리
      • 손실 함수
      • 최적화
    • 지도 학습 분류 알고리즘
      • 로지스틱 회귀
      • 의사결정 트리
      • 의사결정 포레스트
      • 서포트 벡터 머신
      • 나이브 베이즈
      • K-최근접 이웃 알고리즘
      • 신경망
    • 실상황에서 분류 문제를 풀 때 고려해야 할 사항
      • 모델 패밀리 선택
      • 학습 데이터 구성
      • 속성 선택
      • 과최적화와 과소적합
      • 임계치의 선택과 모델 간의 비교
    • 군집화
      • 군집화 알고리즘
      • 군집화 결과 평가
    • 결론

  • 3장. 이상치 탐지
    • 지도 학습 대신에 이상치 탐지를 사용해야 하는 경우
    • 휴리스틱을 사용한 침입 탐지
    • 데이터 기반 방법
    • 이상치 탐지를 위한 특성 공학
      • 호스트 침입 탐지
      • 네트워크 침입 탐지
      • 웹 애플리케이션 침입 탐지
      • 요약
    • 데이터 및 알고리즘을 이용한 이상치 탐지
      • 예측(지도 머신 러닝)
      • 통계 측정 항목
      • 적합도
      • 비지도 머신 러닝 알고리즘
      • 밀도 기반 기법
      • 요약
    • 이상치 탐지에서 머신 러닝을 사용하는 데 따른 어려움
    • 대응 및 완화
    • 실용적인 시스템 설계 문제
      • 설명 가능성 확보
      • 이상치 탐지 시스템의 유지 보수 가능성
      • 인간의 피드백 통합
      • 적대 효과 감소
    • 결론

  • 4장. 악성코드 분석
    • 악성코드 이해
      • 악성코드 분류 정의
      • 악성코드의 이면
    • 속성 생성
      • 데이터 수집
      • 속성 생성
      • 속성 선택
    • 속성에서 분석까지
      • 악성코드 샘플 및 레이블을 얻는 방법
    • 결론

  • 5장. 네트워크 트래픽 분석
    • 네트워크 방어 이론
      • 접근 제어와 인증
      • 침입 탐지
      • 네트워크 내의 공격자 탐지
      • 데이터 중심 보안
      • 허니팟
      • 요약
    • 머신 러닝과 네트워크 보안
      • 캡처에서 속성 추출
      • 네트워크 위협
      • 봇넷
    • 네트워크 공격을 분류하기 위한 예측 모델 구축
      • 데이터 탐색
      • 데이터 준비
      • 분류
      • 지도 학습
      • 준지도 학습
      • 비지도 학습
      • 고급 앙상블
    • 결론

  • 6장. 소비자 웹 보호
    • 소비자 웹으로 수익 창출
    • 악용 유형 및 데이터를 활용한 방어
      • 인증과 계정 탈취
      • 계정 생성
      • 금융사기
      • 봇 활동
    • 악용 문제에 대한 지도 학습
      • 데이터 레이블링
      • 콜드 스타트와 웜 스타트
      • 거짓 양성과 거짓 음성
      • 다중 응답
      • 대규모 공격
    • 악용 군집화
      • 예제: 스팸 도메인 군집화
      • 클러스터 생성
      • 클러스터 평가
    • 군집화의 추가 지침
    • 결론

  • 7장. 운영 시스템
    • 머신 러닝 시스템의 완성도와 확장성 정의
      • 보안 머신 러닝 시스템에서 중요한 것은 무엇일까?
    • 데이터 품질
      • 문제점: 데이터셋의 편향
      • 문제점: 레이블의 부정확성
      • 해결책: 데이터 품질
      • 문제점: 누락된 데이터
      • 해결책: 누락된 데이터
    • 모델 품질
      • 문제점: 하이퍼파라미터 최적화
      • 해결책: 하이퍼파라미터 최적화
      • 특징: 피드백 루프, A/B 모델 테스트
      • 특성: 재현 가능하고 설명 가능한 결과
    • 성능
      • 목표: 낮은 대기 시간과 높은 확장성
      • 성능 최적화
      • 분산 컴퓨팅 프레임워크를 사용한 수평 확장
      • 클라우드 서비스 사용
    • 유지 보수, 관리
      • 문제점:모델 저장 및 버전 관리,배포
      • 목표: 안정적인 성능 저하
      • 목표: 손쉬운 설정 변경
    • 모니터링 및 경고
    • 보안과 신뢰성
      • 특징: 공격에 대한 방어
      • 특징: 개인 정보 보호 및 보장
    • 피드백과 사용성
    • 결론

  • 8장. 적대적 머신 러닝
    • 용어
    • 적대적 ML의 중요성
    • 머신 러닝 알고리즘의 보안 취약점
      • 공격 전이성
    • 공격 기술: 모델 포이즈닝
      • 예제: 이진 분류기 포이즈닝 공격
      • 공격자의 지식
      • 포이즈닝 공격 방어
    • 공격 기술: 회피 공격
      • 예제: 이진 분류기 회피 공격
      • 회피 공격에 대한 방어
    • 결론

  • 부록 A. 2장 보충 자료
  • 부록 B. 오픈소스 인텔리전스 통합

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[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]
정규화 파라미터
->
일반화 파라미터