66
마이클 콜린스 지음 문성건 옮김 IoT 시대에 맞는 상황 인식형 보안 구축하기 Network Security Through Data Analysis 데이터 분석을 통한 네트워크 보안

『데이터 분석을 통한 네트워크 보안』 - 맛보기

Embed Size (px)

Citation preview

Page 1: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

관련 도서

마이

클 콜

린스

지음

문성

건 옮

마이클 콜린스 지음

문성건 옮김

IoT 시대에 맞는 상황 인식형 보안 구축하기

Network Security ThroughData Analysis데이터 분석을 통한 네트워크 보안

모바일 기기의 범람에 IoT까지, 오늘날의 복잡한 네트워크를 보호하려면 전통적인 침입 탐지와 로그 분석만

으로는 충분하지 않다. 이 책에서 보안 전문가인 마이클 콜린스는 점점 더 거대해지는 네트워크에서 트래픽

데이터를 수집, 정리, 분석하는 여러 기법과 도구를 선보인다. 네트워크가 어떻게 이용되는지 이해하고 이를

보호하고 개선하기 위한 조치가 무엇인지 배울 수 있다.

진화하는 네트워크에 대처하는 진보된 보안 기술

예제 소스 http://www.hanbit.co.kr/exam/2258

다양한 도구를 활용하는 방법과 수집한 데이터를 실행 가능한 정보로 통합하는 방법을 자세히 설명하는 책이다.

숙련된 분석가뿐 아니라 주니어 분석가도 이 책이 선보인 응용 분석 기법에 고마워할 것이다.

앙드레 디미노, 조지 워싱턴 대학교 선임 네트워크 보안 엔지니어

성숙해가는 산업 분야에서 네트워크 분석과 포렌식을 다루는 책이 부족하여 아직도 어려움을 겪는다는 사실은

놀랄 만한 일이다. 이 책은 보안 분석이라는 매우 중요한 주제를 밝혀주는 반갑고 유일한 빛이다.

랍비 롭 토머스, Team Cymru CEO

네트워크/보안

정가 30,000원

•네트워크, 호스트, 서비스 센서에서 보안 데이터 얻기

•RDB, 그래프 데이터베이스, 레디스, 하둡에 트래픽 데이터 저장하기

•SiLK, R 등의 도구로 분석 및 시각화하기

•탐구적 데이터 분석으로 이상 현상 탐지하기

•그래프 분석으로 경보와 포렌식 개선하기

•트래픽 양과 행위를 살펴 DDoS와 데이터베이스 급습 검진하기

•네트워크 지도와 장비 목록의 단계별 활용 방법

N e t w o r k S e c u r i t y T h r o u g h D a t a A n a l y s i s

Page 2: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

www.hanbi t .co.kr

이것이 프로그래밍이다!

이것이 안드로이드다

진정한 안드로이드 개발자로 이끌어줍니다.

SDK 5.0 롤리팝 호환!

책만 보고,

동영상 강좌로도 만족하지 못했다면 Daum

카페 '슈퍼드로이드'에서 만나요

cafe.daum.net/superdroid

박성근 저 | 1,164쪽 | 45,000원

이것이 C언어다

세상에 없던 새로운

C언어 입문서 탄생!

삼성, LG에서 펼쳐졌던

전설의 명강의를 풀타임 동영상 강좌로!

이보다 더 확실한 방법은 없다, 칠판강의

전체 동영상 강좌 유투브 전격 공개!

http://goo.gl/tJK3Tu

서현우 저 | 708쪽 | 25,000원

이것이 자바다

가장 중요한 프로그래밍 언어를 하나배워야 한다면, 결론은 자바다!

중급 개발자로 나아가기 위한 람다식,

JavaFX, NIO 수록

자바의 모든 것을 알려주는 인터넷 강의

궁금한 것은 카페에서!

cafe.naver.com/thisisjava

신용권 저 | 1,224쪽 | 30,000원

저자 직강 동영상 제공!

Page 3: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

모던 웹을 위한

JavaScript + jQuery 입문

www.hanbi t .co.kr

지금은모던 웹 시대!

HTML5 분야 부동의 1위 도서

HTML5 표준안 확정에 맞춘 완전 개정판의 귀환!

HTML5 권고안과 최신 웹 브라우저 환경 대응

윤인성 저 | 624쪽 | 30,000원

모던 웹 디자인을 위한

HTML5 + CSS3 입문

자바스크립트에서 제이쿼리, 제이쿼리 모바일까지 한 권으로 끝낸다!

시대의 흐름에 맞춰 다시 쓴 자바스크립트 교과서

윤인성 저 | 980쪽 | 32,000원

페이스북, 월마트, 링크드인은 왜

Node.js를 선택했는가?

이 물음에 대한 답은 Node.js가 보여주는 빠른 처리 능력 때문이다.

윤인성 저 | 484쪽 | 25,000원

모던 웹을 위한

Node.js프로그래밍

필요한 것만 배워 바로 현장에서 쓰는 HTML5

순서대로 읽으며 실습할 수 있는 HTML5 자습서

김상형 저 | 700쪽 | 32,000원

HTML5 + CSS3 정복

Page 4: 『데이터 분석을 통한 네트워크 보안』 - 맛보기
Page 5: 『데이터 분석을 통한 네트워크 보안』 - 맛보기
Page 6: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

데이터 분석을 통한 네트워크 보안 :IoT 시대에 맞는 상황 인식형 보안 구축하기

초판발행 2016년 4월 1일

지은이 마이클 콜린스 / 옮긴이 문성건 / 펴낸이 김태헌

펴낸곳 한빛미디어 (주) / 주소 서울시 마포구 양화로 7길 83 한빛미디어(주) IT출판부

전화 02 – 325 – 5544 / 팩스 02 – 336 – 7124등록 1999년 6월 24일 제10 – 1779호 / ISBN 978 – 89 – 6848 – 258 – 8 93000

총괄 전태호 / 책임편집 김창수 / 기획 이복연 / 교정·조판 김철수

디자인 강은영

영업 김형진, 김진불, 조유미 / 마케팅 박상용, 송경석, 변지영 / 제작 박성우

이 책에 대한 의견이나 오탈자 및 잘못된 내용에 대한 수정 정보는 한빛미디어(주)의 홈페이지나 아래 이메일로

알려주십시오. 잘못된 책은 구입하신 서점에서 교환해드립니다. 책값은 뒤표지에 표시되어 있습니다.

한빛미디어 홈페이지 www.hanbit.co.kr / 이메일 [email protected]

©2016 Hanbit Media Inc.

Authorized Korean translation of the English edition of Network Security Through Data

Analysis, ISBN 9781449357900 © 2014 Michael Collins.

This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls

all rights to publish and sell the same.

이 책의 저작권은 오라일리와 한빛미디어(주)에 있습니다.

저작권법에 의해 한국내에서 보호를 받는 저작물이므로 무단전재와 복제를 금합니다.

지금 하지 않으면 할 수 없는 일이 있습니다.

책으로 펴내고 싶은 아이디어나 원고를 메일 ( [email protected] ) 로 보내주세요.

한빛미디어(주)는 여러분의 소중한 경험과 지식을 기다리고 있습니다.

지은이 마이클 콜린스Michael Collins

워싱턴 D.C에 위치한 네트워크 보안 및 데이터 분석 회사인 RedJack, LLC의 수석 과학자다. 그전에는 카네기 멜론 대학교의

CERT/네트워크 상황 인식 그룹의 엔지니어였다. 콜린스는 네트워크 측정 및 트래픽 분석, 특히 대규모 트래픽 데이터 분석에

관심이 많다. 2008년 카네기 멜론 대학교에서 전기공학 박사 학위를 받았다.

옮긴이 문성건

서울대학교에서 전자공학을 전공하고 동일 대학원에서 전기·컴퓨터공학 석사 과정을 밟았다. 안랩에서 보안 제품 개발에 몸담

았고, 특히 네트워크 보안 제품 개발을 맡으면서 네트워크 보안에 관심이 있다. 현재는 LG전자에 있으며 자동차 보안 분야에 관

심을 두고 있다.

Page 7: 『데이터 분석을 통한 네트워크 보안』 - 맛보기
Page 8: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

4

표지의 동물은 유럽 쇠황조롱이European Merlin로 학명은

Falco columbarius다. 북아메리카와 유럽/아시아

의 쇠황조롱이는 실제로 다른 종이라는 논란이 있

다. 칼 리나우스Carl Linnaeus는 아메리카에서 온 표

본을 가지고 1758년에 최초로 이 새를 분류한 사람이

다. 그 후 1771년에 조류학자인 마마듀크 턴스톨Marmaduke Tunstall이 유러시안 쇠황조롱이에 별

도의 분류군을 지정하고 『Ornithologica Britannica영국 조류학』란 그의 책에서 이 새를 ‘Falco

aesalon’이라고 부르게 되었다.

최근에는 쇠황조롱이의 북아메리카와 유럽종 사이에는 유전적인 차이가 있다고 밝혀져, 이 두

종을 공식적으로 구분해야 한다는 생각을 뒷받침한다. 학자들은 두 종의 분화가 백만 년 전에 일

어났고, 그때 이후로 서로 완전히 독립적으로 존재했다고 믿는다.

쇠황조롱이는 대부분의 다른 작은 매에 비해 크며 1년 중 몸무게가 가장 많이 나갈 때는 거의 1

파운드에 이른다. 암컷이 보통 수컷보다 크며, 이는 포식자 동물에게는 공통적인 현상이다. 이

로써 수컷과 암컷이 다른 종류의 동물을 사냥할 수 있게 되어, 암수 한 쌍이 사는 데 필요한 영역

이 더 좁아도 된다. 쇠황조롱이는 보통 관목지, 숲, 공원, 초원, 황야와 같이 개방된 곳에 산다.

이 새는 키가 작거나 중간 정도인 식물이 자라는 지역을 선호하는데, 이는 이런 지역이 사냥하기

쉽고 버려진 둥지를 찾아서 자기 것으로 삼기 좋기 때문이다. 쇠황조롱이는 겨울에 잿빛개구리

매Hen Harriers라는 다른 맹금류 새와 함께 무리지어 쉬는 것으로 알려졌다.

5, 6월에 일부일처로 짝을 맺어 번식한다. 종종 까마귀나 까치의 빈 둥지를 이용하지만, 영국에

서는 절벽이나 빌딩 틈에 둥지를 트는 일이 종종 있다. 암컷은 3개에서 6개의 알을 낳으며 28일

에서 32일의 배양 기간을 거쳐 부화한다. 새끼는 4주까지 부모에게 의존하며 그 후 독립한다.

중세에는 사냥에 사용하기 위해 쇠황조롱이의 새끼를 둥지에서 빼내어 손수 길렀다. 『The

Book of St. Albans세인트 알반스의 책』라는 신사의 행복에 관한 소책자에는 ‘매사냥’이란 장에 쇠

황조롱이를 언급하며 ‘숙녀를 위한 매’라고 불렀다. 오늘날에도 더 작은 새를 사냥하기 위해 매

표지 설명

Page 9: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

5

를 부리는 이들이 이 새를 훈련한다. 하지만 종을 보존하려는 노력으로 이러한 관습은 줄어들고

있다. 쇠황조롱이에게 가장 위협이 되는 것은 서식지, 특히 번식지가 파괴되는 것이다. 하지만

이 새는 정착지에 매우 빠르게 적응하여 성공적으로 살아왔기 때문에 그 숫자는 전 세계적으로

일정하게 유지되고 있다.

Page 10: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

6

정보 보안은 크게 엔드 포인트 보안과 네트워크 보안으로 나눌 수 있다. 엔드 포인트 보안은 말

단 정보 기기에서 악성 행위를 방어하는 것으로 악성 코드 진단, 취약점 업데이트 등으로 실행되

는 프로그램을 감시하고 차단하는 데 중점을 둔다. 네트워크 보안은 단말 사이, 네트워크 사이의

트래픽을 감시하여 이상 행위를 감시하고 진단하여 차단하는 역할을 한다. 이 두 분야 모두 공

격자와 방어자 사이에 치열한 두뇌 싸움이 진행되고 있다. 그래서 방어하는 입장에서는 기존에

방어가 잘 이루어졌다고 해서 방심할 수 없는 것이 보안의 속성임을 더욱 절실히 느낀다.

보안 회사에 몸담으면서 처음에는 모바일 단말에서의 엔드 포인트 보안 제품을 개발했고, 최근

에는 네트워크 보안 제품 개발에 몸담게 되었다. 엔드 포인트 보안 제품이란 게 결국 Anti-Virus

제품으로 악성 코드 실행을 탐지하고 차단하는 것이 가장 중요한 일이지만, 점차 진화하는 공격

방법 앞에서는 무력화되고 있는 것이 현실이다. 네트워크 보안 제품 또한 단순히 기술적으로 자

동화되어 일정 패킷의 패턴에 대해 탐지하고 차단하는 방식으로는 변화무쌍한 공격에 그대로 노

출되고 있음을 직접 느끼고 있다.

결국 이러한 공격의 진화에 대처하기 위해서는 단순히 기술을 고도화하는 것뿐 아니라 현장에서

사람이 대응하는 방법에 대해서도 고민해야 한다. 그리고 이를 위해 실제 운영하는 입장에서의

대응 방법이나 문제점을 아는 것이 중요하다. 마침 이 책을 접하면서 실제 보안 제품을 이용하

여 어떻게 네트워크 및 IT 관리자가 이상 행위를 좀 더 스마트하게 탐지하고 차단할 수 있는지

많은 통찰을 얻을 수 있었다. 특히 각종 보안 제품에서 쏟아져 나오는 데이터를 일일이 눈으로

확인하고 대응하는 것이 아니라 데이터 분석에 수학적/통계적 기법을 적용한 점이 인상적이었

다. 즉, 요즘 빅데이터라고 하는 분야의 지식이 네트워크 보안에도 필요하며 앞으로 IT 관리자

가 갖춰야 할 역량 중 하나가 바로 데이터 분석 능력으로 보인다.

보안 제품 또한 이러한 추세에 맞춰 IT 관리자가 데이터 분석을 쉽게 할 수 있도록 각 제품이 가

진 데이터를 분석하여 내놓거나 표준에 맞춰 생산하여 공유할 수 있도록 해야 할 것으로 보인다.

옮긴이의 말

Page 11: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

7

이 책은 데이터 분석 기법을 어떻게 네트워크 보안에 접목시킬 수 있는지에 관한 지침을 제시한

다. 하지만 현장의 보안 제품 개발자와 IT 관리자는 이 책의 내용에만 머무르지 말고 현장 업무

에서 더욱 효과적인 적용 방안에 대해 고민하고 발전시켜야 할 것이다. 앞으로도 네트워크 보안,

데이터 분석에 관한 좋은 책이 많이 나오길 기대한다.

문성건

Page 12: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

8

이 책은 네트워크를 이야기한다. 더 구체적으로는 네트워크를 감시하고 연구하며 그 결과를 이

용하여 네트워크를 개선하는 방법을 다룬다. 여기서 ‘개선’은 더욱 안전하게 만든다는 의미다.

하지만 우리는 아직 이렇게 자신 있게 말할 수 있는 용어 또는 지식을 충분히 갖추고 있지 않다

고 생각한다. 그래서 우리는 보안을 구현하기 위해 좀 더 정량적이고 설명할 수 있는 어떤 것, 즉

상황 인식situational awareness을 구축하려 한다.

군사 분야에서 많이 사용되는 용어인 상황 인식은 말 그대로 우리가 활동하는 환경에 대한 이해

를 말한다. 우리 목적에 따르면 상황 인식은 네트워크를 구성하는 요소와 그 요소들이 어떻게 사

용되는지 이해하는 것이다. 이러한 인식은 네트워크가 어떻게 구성되었는지 그리고 원래 어떻게

설계되었는지와 전혀 다른 경우가 많다.

정보 보안에서 상황 인식이 얼마나 중요한지 알려면 여러분 집에 얼마나 많은 웹 서버가 있는

지 세어보길 바란다. 무선 라우터도 포함했는가? 케이블 모뎀은? 프린터는? CUPS (공통 유닉

스 인쇄 시스템)에 붙는 웹 인터페이스는 고려했는가? 텔레비전은 어떤가?

수많은 IT 관리자가 이 중 몇 가지 장치는 ‘웹 서버’로 다루지도 않는다. 하지만 임베디드 웹 서

버는 HTTP 메시지를 전송하고 알려진 취약점을 갖고 있으며, 전용 제어 프로토콜이 웹 인터페

이스로 대체되면서 점차 보편화되고 있다. 공격자는 무엇인지 모른 채 임베디드 시스템을 공격

하게 될 것이다. 예를 들어 스카다(SCADA, 산업용 제어 시스템)는 몇 개의 흥미로운 디렉터

리를 가진 윈도우 서버가 되고, MRI 기계는 완벽하게 동작하는 스팸봇이 될 수 있다.

이 책에서는 네트워크가 어떻게 사용되는지 이해하기 위해 데이터를 수집하고 네트워크를 살펴

볼 것이다. 특히 보안 데이터를 가져와서 조치 가능한 결정을 내리는 데 필요한 분석에 중점을

둔다. 보안과 관련된 결정은 실질적으로 사용자의 행동을 제약하기 때문에 ‘조치 가능한actionable’

이란 단어를 강조하고자 한다. 보안 정책에는 사람들에게 하지 말아야 할 것, 또는 좀 더 성가시

게 해야 할 것을 알려주는 것을 포함한다. 예를 들어 ‘회사 자료를 드롭박스에 담아서는 안 된

다’, ‘로그온할 때는 비밀번호와 RSA 동글을 써라’, ‘프로젝트 서버 전체를 복사하여 경쟁사에 팔

지 마라’ 등이 있다. 보안 조치는 사람들이 일하는 방식을 간섭하기 때문에 결정하기 전에 그렇게

이 책에 대하여

Page 13: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

9

해야 하는 충분하고 확고한 이유가 있어야 한다.

모든 보안 시스템은 결국 보안을 중요하게 여기고 필요악임을 받아들이는 사용자에 달려 있다.

보안은 사람에 의존한다. 보안은 규칙을 따르는 개별 사용자, 규칙을 언제 위반하는지 살펴보는

분석가와 감시자에 달려 있다. 보안 중 아주 일부만 기술적인 문제다. 정보 보안 분야에는 기술

을 악용하는 새로운 방식을 찾으려는 창의적인 공격자들이 끊이질 않는다. 그 결과 늘 변하는

위협 환경에 맞서기 위해서는 방어하려는 사람과 사용자 모두로부터 협조가 필요하다. 나쁜 보

안 정책을 세우면 사용자는 일을 수행하거나 분풀이를 위해 점차 탐지를 피해가려 할 것이므로

방어하는 이의 일이 더 많아질 것이다.

조치 가능성을 강조하고 보안을 강화한다는 목적이 이 책과 다른 데이터 과학 서적과의 차이점

이다. 분석에 대한 부분은 여러 다른 분야에서 가져온 통계 및 데이터 분석 기법을 적절히 다루

고 있다. 하지만 전체적으로는 네트워크 구조의 이해와 네트워크를 보호하기 위해 내리는 결정

에 중점을 두고 있다. 이를 위해 이론을 최대한 간추렸으며 침해 행위를 찾기 위한 기법도 다루

었다. 보안 분석에는 관찰 대상이 감시받고 있음을 스스로 알 뿐만 아니라, 할 수 있다면 감시

망을 무효화하는 데 적극적이라는 고유한 문제가 있다.

MRI와 장군의 노트북

몇 년 전, 대학 병원에서 일하는 분석가와 대화를 나눴다. 그는 네트워크를 차지하는 가장 흔한 기

기가 MRI라고 했다. 생각해보면 그럴 만도 하다.

“생각해봐.” 그가 말했다. “이 기계는 의료기기야. 윈도우의 특정 버전을 사용하도록 인증되어 있

지. 그래서 매주 누군가 그 버전의 취약점을 이용해서 공격하고 봇을 설치해. 스팸은 보통 수요일

즈음에 퍼지곤 하지.” 나는 왜 그 기계를 인터넷에서 차단하지 않느냐고 물어보았고, 그는 으쓱

하고는 의사들이 스캔한 데이터에 접속해서 사용하길 원했다고 말했다. 그는 이러한 문제에 봉착

한, 내가 만난 첫 분석가였으나, 마지막은 아니었다.

우리는 의사, 사장, 장군 등 권위가 강한 인물이 있는 조직에서 이러한 문제를 많이 보게 된다.

Page 14: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

10

여러분은 보호 장치를 원하는 만큼 많이 만들 수 있지만, 장군이 주말 동안 노트북을 빌려서 손

녀가 네오펫1을 하며 가지고 놀길 원한다면, 월요일에는 감염된 노트북이 되어 돌아올 것이다.

이제까지 숨겨온 이야기를 하나 꺼내보겠다. 나는 네트워크를 지키기 위한 가장 효과적인 방법

은 보호하고 지켜야 할 것만 보호하고 지키는 것이라고 굳게 믿는다. 정보 보안은 항상 감시하고

조사하는 사람이 필요하므로 이 말은 분명한 사실이다. 공격은 너무 자주 변하고, 방어를 자동

화하면 공격자는 이제 이를 이용하여 역으로 우리를 공격한다.2

나는 보안 분석가로서, 보안은 불편하고, 잘 정의되어야 하고, 제약이 있어야 한다고 굳게 믿는

다. 안전한 시스템의 최후 방어선은 시스템 내의 ‘사람’이기 때문에, 보안은 보호해야 할 자산에

대한 부자연스러운 행위여야 한다. 그리고 보안을 담당하는 사람은 의심을 품어야 하고 편집증

적이어야 하며 수상한 행위를 잘 살펴야 한다. 이는 삶을 행복하게 즐기는 방식이 아니다. 그러

니 삶을 조금이라도 덜 힘들게 하려면 반드시 보호해야 할 것에만 보안을 적용해야 한다. 모든

것을 감시하려고 하면 정말 중요한 것을 보호하는 데 필요한 주의력을 잃게 된다.

보안은 불편한 것이므로, 유능한 보안 분석가라면 미래에 닥칠지 모르는 추상적인 공격을 예방

하기 위해 사람들에게 조금 더 귀찮지만 그동안 일해오던 방식을 바꿔야 함을 설득하고 그들의

직무를 제한할 수 있어야 한다. 이를 위해 분석가는 결정사항을 확인하고 이를 받쳐줄 정보를

만들어서 대중에게 그 위험성을 보여줄 수 있어야 한다.

이 책에서 데이터 분석 과정은 보안 관련 결정을 효과적으로 하기 위해 보안 관련 지식을 쌓는

데 중점을 두고 있다. 이러한 결정은 사건 발생 후에 공격이 왜 발생했는지, 어떻게 성공했는지,

또는 어떤 피해가 일어났는지 판단하기 위해 사건을 재구성하는 포렌식(컴퓨터 법의학)이 될

수 있다. 그리고 속도 제한 장치, 침입 탐지 시스템, 네트워크에 대한 공격자의 영향을 제한하

는 조치 등의 선행 행동이 될 수도 있다.

1 역주_ 어린이용 온라인 애완동물 기르기 게임

2 비밀번호를 x번 잘못 입력하면 자동으로 계정이 잠기며, 이메일 주소를 계정으로 사용한다고 해보자. 이를 이용하면 얼마나 많은 계정을

잠글 수 있는지 생각해보라.

Page 15: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

11

대상 독자

정보 보안 분석은 새로운 분야며 ‘이걸 익혀라’라고 꼭 집어서 말할 수 있는 지식 체계가 아직

잘 잡혀 있지 않다. 이 책은 나를 포함한 여러 사람이 지난 십여 년간 경험하여 효과가 있다고 생

각하는 분석 기법의 한 단면을 제공한다.

이 책은 네트워크 관리자와 운영 관련 보안 분석가, 그리고 네트워크 운영 본부(NOC )에서 일

하거나 주기적으로 침입 탐지 시스템(IDS ) 콘솔을 다루는 직원을 위해 쓰였다. netstat 같은

TCP/IP 도구를 조금 다뤄보았고 약간의 수학과 통계 지식이 있다면 내용을 이해하는 데 도움

이 될 것이다.

또한 독자가 스크립트 언어에 어느 정도 친숙하길 기대한다. 이 책에서는 도구들을 통합하는 데

파이썬을 주요 언어로 자주 사용한다. 파이썬 코드는 그 자체로 설명할 수 있으며 파이썬 지식이

없더라고 이해할 수 있다. 하지만 여러분만의 언어로 필터나 다른 도구를 만들 수 있는 기술을

가지고 있다고 가정하겠다.

이 책을 집필하는 과정에서 여러 분야의 기법들을 모았다. 가능한 한 출처를 밝혀 원본 자료를

찾아 다른 방법도 더 확인할 수 있도록 하였다. 그중 많은 방법이 수학이나 통계적 추론을 하는

데, 아주 깊게 들어가기보다는 의도적으로 기능적 수준에서 다루었다. 기본적인 통계 지식이 있

다면 이 책을 이해하는 데 도움이 될 것이다.

이 책의 구성

이 책은 데이터, 도구, 분석, 이렇게 총 3부로 구성되었다. 1부 ‘데이터’에서는 데이터를 수집하

고 체계적으로 정리하는 과정을 다룬다. 2부 ‘도구’에서는 분석 과정을 지원하는 여러 도구를 다

룬다. 3부 ‘분석’에서는 여러 분석 시나리오와 기법을 다룬다.

1부에서는 데이터의 수집, 저장, 구조화에 대해 다룬다. 데이터의 저장과 운반은 보안 분석에서

중요한 문제다. 데이터를 수집하기는 쉽지만, 이를 검색하여 실제 현상을 찾는 것은 어렵다. 데

이터는 용량을 차지하며, 전혀 검색할 수 없을 정도로 많은 데이터를 수집할 수도 있다. 1부는

Page 16: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

12

다음과 같이 구성되어 있다.

| 1장 |

정보 수집의 일반적인 과정을 다룬다. 서로 다른 여러 센서가 정보를 수집하고 보고하는 방식과

그 센서들이 어떻게 상호작용하는지 파악하기 위한 프레임워크를 제공한다.

| 2장 |

1장의 논의를 확장해서 트래픽 데이터를 수집하는 센서를 다룬다. tcpdump와 NetFlow 같은

센서는 네트워크 활동 전체를 보여주지만, 네트워크 트래픽을 재구성하기 어려워서 해석에 종종

어려움을 겪는다.

| 3장 |

호스트 기반의 침입 탐지 시스템과 HTTP 같은 서비스에서 가져오는 로그처럼, 특정 시스템에

서 작동하는 센서를 다룬다. 이 센서는 네트워크 센서보다 트래픽을 훨씬 적게 살펴보지만, 더

이해하기 쉽고 해석과 추측을 덜 요구하는 데이터를 제공한다.

| 4장 |

트래픽 정보를 저장하는 도구와 기법을 다룬다. 도구와 기법에는 전통적인 데이터베이스, 하둡

같은 빅데이터 시스템, 그래프 데이터베이스와 레디스 같은 전문 도구 등이 있다.

2부에서는 분석, 시각화, 보고에 사용할 수 있는 여러 도구를 다룬다. 2부에서 다루는 도구들은

나중에 다양한 분석을 어떻게 수행하는지 이야기할 때 자주 언급할 것이다.

| 5장 |

SiLK는 카네기 멜론 대학교의 CERT에서 개발한 흐름flow 분석 도구 모음이다. 이 장에서는

SiLK와 NetFlow 데이터를 분석할 때 이 도구를 어떻게 이용하는지 설명한다.

Page 17: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

13

| 6장 |

R은 상상할 수 있는 대부분의 데이터를 효과적으로 살펴보는 데 사용할 수 있는 통계 및 시각화

환경이다. 이 장에서는 R 환경에 대한 기본적인 배경 지식을 제공하고 기초적인 통계 분석에 이

용하는 방법을 설명한다.

| 7장 |

침입 탐지 시스템(IDS )은 트래픽을 살펴보고 수상한 무언가가 확인되면 경보를 울리는 자동화

된 분석 시스템이다. 이 장에서는 IDS의 작동 방식, 탐지 오류가 IDS 경보에 미치는 영향 등을

살펴본다. 그리고 SiLK 같은 도구를 이용한 IDS 구축 혹은 Snort 같은 기존 IDS 설정 방법 등

을 통해 더 나은 IDS 구축 방법을 고민한다.

| 8장 |

분석에서 더 보편적이고 어려운 작업 중 하나는 IP 주소가 어디에서 오는지 또는 시그니처가 무

엇을 의미하는지 파악하는 것이다. 이 장에서는 소유권과 주소의 출처, 이름, 그리고 네트워크

트래픽에 포함된 다른 태그를 확인하는 데 사용할 수 있는 도구와 조사 방법을 설명한다.

| 9장 |

이전 장에서 다루기에는 적절치 않으나 분석에 유용한 여러 전문 도구를 간단히 다룬다. 전문적

인 시각화 도구, 패킷 생성 및 처리 도구, 그리고 분석가라면 잘 다뤄야 할 다양한 도구 모음을

선보인다.

3부에서는 이 모든 데이터 수집의 목표, 즉 분석에 대해 다룬다. 데이터를 조사하는 데 사용할

수 있는 다양한 트래픽 현상과 수학적 모델을 살펴본다.

| 10장 |

탐구적 데이터 분석Exploratory Data Analysis (EDA )은 구조 또는 이상 현상을 파악하기 위해 데이터

Page 18: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

14

를 조사하는 과정이다. 보안 데이터는 매우 많이 바뀌기 때문에 EDA는 어느 분석가에게나 필

요한 기술이다. 이 장에서는 데이터를 살펴보는 데 사용되는 기본적인 시각화 및 수학적 기법의

기본이 되는 배경 지식을 제공한다.

| 11장 |

커뮤니케이션에서 발생하는 실수와 그 실수가 어떻게 스캐닝과 같은 현상을 파악하는 데 사용되

는지 살펴본다.

| 12장 |

시간에 따른 트래픽 양과 트래픽의 움직임을 살펴봄으로써 이루어질 수 있는 분석에 대해 다룬

다. DDoS와 데이터베이스 침해와 같은 공격, 하루 일과가 트래픽 양에 미치는 영향, 분석 결과

를 더 효과적으로 만들기 위해 트래픽 양을 걸러내는 기법 등을 설명한다.

| 13장 |

네트워크 트래픽을 그래프 데이터로 전환하고 네트워크에서 의미 있는 구조를 파악하는 데 그래

프가 어떻게 사용되는지 알아본다. 구심성과 같은 그래프 속성은 중요한 호스트 또는 이상 행위

확인에 사용할 수 있다.

| 14장 |

네트워크에서 어떤 트래픽이 서비스 포트를 가로질러 가는지 판단하는 기법을 다룬다. 이 기법

에는 포트 번호 확인 같은 간단한 방법뿐 아니라 배너 찾기와 패킷 크기의 기댓값을 보는 방법도

있다.

| 15장 |

네트워크의 장비 목록을 만들고 그 네트워크에서 중요한 호스트를 파악하는 단계별 과정을 다

룬다. 네트워크 매핑과 장비 목록은 정보 보안에서 필수적인 과정이고 주기적으로 이루어져야

한다.

Page 19: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

15

예제 코드

이 책의 예제 코드는 다음 주소에서 얻을 수 있다.

https://github.com/mpcollins/nsda_examples

http://hanbit.co.kr/exam/2258

이 책은 독자의 업무를 돕는 것을 목적으로 한다. 일반적으로 이 책의 코드는 독자의 프로그램

과 문서에 사용할 수 있다. 코드 전체의 상당 부분을 복제하지 않는 이상은 필자에게 허가를 구

할 필요는 없다. 예를 들어 이 책에 나온 코드 일부를 사용하여 프로그램을 작성하는 경우에는

허가를 받지 않아도 된다. 반면 예제 코드를 CD에 담아서 판매하거나 배포하려면 허가가 필요

하다. 또한 질문에 답하기 위해 이 책과 예제 코드를 인용할 때는 허가가 필요하지 않지만, 독

자의 제품에 포함된 문서에서 이 책의 예제 코드 상당 부분을 활용하려면 허가가 필요하다.

앞서 이야기한 범위를 벗어난 목적으로 활용하려 한다면 [email protected]으로 문의

하기 바란다.

Page 20: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

16

우선 편집자인 앤디 오람Andy Oram의 지원과 피드백에 대해 감사한다. 그가 없었으면 네트워크

감시점에 대한 글을 아직도 수정하고 있었을 것이다. 또한 작업을 완료할 수 있게 해준 보조 편

집자 앨리슨 맥도날드Allyson MacDonald와 마리아 글릭Maria Gulick에게 감사드린다. 기술 검토를 해

준 리아논 위버Rhiannon Weaver, 마크 토마스Mark Thomas, 롭 토마스Rob Thomas, 앙드레 디미노André

DiMino, 헨리 스턴Henry Stern에게 감사드린다. 그들의 조언으로 사소한 것을 제거하고 중요한 문

제에 집중할 수 있었다.

실제 운영 현장과 연구소에서 얻은 수많은 경험을 이 책에 담기 위해 두 분야의 많은 이들에게

빚을 지게 되었다. 다음의 모든 분께 감사드린다. 톰 롱스테프Tom Longstaff, 제이 캐다네Jay Kadane,

마이크 라이터Mike Reiter, 존 맥휴John McHugh, 캐리 게이츠Carrie Gates, 팀 시미얼Tim Shimeall, 마커스

데숀Markus DeShon, 짐 다우니Jim Downey, 윌 프랭클린Will Franklin, 샌디 패리스Sandy Parris, 숀 맥칼리

스터Sean McAllister, 그렉 버진Greg Virgin, 스콧 카울Scott Coull, 제프 제니스Jeff Janies, 마이크 위트Mike

Witt.

마지막으로 부모님께 감사드린다. 아버지는 이 책을 탈고하기 전에 돌아가셨지만, 나의 설명이

이해될 때까지 끊임없이 질문해주셨다.

마이클 콜린스

감사의 글

Page 21: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

17

표지 설명 ....................................................................................................................... 4 옮긴이의 말 .................................................................................................................... 6 이 책에 대하여 ................................................................................................................ 8 감사의 글 ..................................................................................................................... 16

CHAPTER 1 센서와 탐지기

1.1 감시점: 센서의 위치가 정보 수집에 미치는 영향 ................................................................ 30

1.2 영역: 수집할 정보 선택하기 .......................................................................................... 33

1.3 동작: 센서가 데이터로 하는 일 ...................................................................................... 37

1.4 마치며 ...................................................................................................................... 40

CHAPTER 2 네트워크 센서

2.1 네트워크 계층 나누기와 계층이 계측에 미치는 영향 ........................................................... 42

2.1.1 네트워크 계층과 감시점 .................................................................................... 45

2.1.2 네트워크 계층과 어드레싱 ................................................................................. 49

2.2 패킷 데이터 ................................................................................................................ 51

2.2.1 패킷과 프레임 형식 .......................................................................................... 51

2.2.2 회전 버퍼 ....................................................................................................... 52

2.2.3 패킷에서 추출하는 데이터 제한하기 .................................................................... 52

2.2.4 특정 유형의 패킷 필터링하기 ............................................................................. 52

2.2.5 이더넷이 아니라면 어떤 일이 벌어질까? ............................................................... 57

2.3 NetFlow ................................................................................................................... 58

CONTENTS

데이터Part I

Page 22: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

18

2.3.1 NetFlow v5 형식과 필드 .................................................................................. 58

2.3.2 NetFlow 생성과 수집 ....................................................................................... 60

2.4 읽을거리 추천 ............................................................................................................. 61

CHAPTER 3 호스트와 서비스 센서: 출발지에서 트래픽 로그 남기기

3.1 로그 파일 접근과 처리 .................................................................................................. 64

3.2 로그 파일의 내용 ......................................................................................................... 67

3.2.1 좋은 로그 메시지의 요건 ................................................................................... 67

3.2.2 로그 파일 다루기 ............................................................................................. 70

3.3 대표적인 로그 파일 형식 ............................................................................................... 72

3.3.1 HTTP : CLF와 ELF ......................................................................................... 72

3.3.2 SMTP ........................................................................................................... 77

3.3.3 마이크로소프트 익스체인지: 메시지 추적 로그 ...................................................... 79

3.4 로그 파일 전송: 전송, syslog, 메시지 큐 ......................................................................... 80

3.4.1 전송과 로그 파일 순환 교대 ............................................................................... 81

3.4.2 syslog .......................................................................................................... 81

3.5 읽을거리 추천 ............................................................................................................. 83

CHAPTER 4 분석을 위한 데이터 저장: 관계형 데이터베이스, 빅데이터, 그리고

다른 선택

4.1 로그 데이터와 CRUD 패러다임 ..................................................................................... 86

4.1.1 잘 조직된 플랫 파일 시스템 만들기: SiLK에서 얻은 교훈 ........................................ 87

4.2 NoSQL 시스템 소개 ................................................................................................... 90

4.3 어떤 저장 방법을 사용해야 하나? ................................................................................... 93

4.3.1 저장 계층, 질의 시간, 에이징 .............................................................................. 95

CONTENTS

Page 23: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

19

CHAPTER 5 SiLK 패키지

5.1 SiLK는 무엇이며 어떻게 작동하는가? ............................................................................. 99

5.2 SiLK 설치하기 ......................................................................................................... 100

5.2.1 데이터 파일 .................................................................................................. 101

5.3 출력 필드 처리 방식을 선택하고 형식 지정하기: rwcut .................................................... 102

5.4 기본 필드 조작: rwfilter ............................................................................................. 107

5.4.1 포트와 프로토콜 ............................................................................................ 108

5.4.2 크기 ............................................................................................................ 110

5.4.3 IP 주소 ........................................................................................................ 110

5.4.4 시간 ............................................................................................................ 112

5.4.5 TCP 옵션 .................................................................................................... 112

5.4.6 도움 옵션 ..................................................................................................... 114

5.4.7 기타 필터링 옵션과 기법 ................................................................................. 115

5.5 rwfileinfo와 그 기원 .................................................................................................. 116

5.6 정보 흐름 결합하기: rwcount ..................................................................................... 118

5.7 rwset과 IP 집합 ....................................................................................................... 121

5.8 rwuniq ................................................................................................................... 125

5.9 rwbag .................................................................................................................... 127

5.10 고급 SiLK 기능 ...................................................................................................... 128

5.10.1 pmaps .................................................................................................... 128

5.11 SiLK 데이터 수집하기 ............................................................................................. 131

5.11.1 YAF ......................................................................................................... 131

5.11.2 rwptoflow ................................................................................................ 133

5.11.3 rwtuc ...................................................................................................... 134

5.12 읽을거리 추천 ......................................................................................................... 135

도구Part II

Page 24: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

20

CHAPTER 6 보안 분석가를 위한 R 소개

6.1 설치 ....................................................................................................................... 138

6.2 R 언어 기초 ............................................................................................................ 138

6.2.1 R 프롬프트 ................................................................................................... 138

6.2.2 R 변수 ......................................................................................................... 140

6.2.3 함수 작성 ..................................................................................................... 146

6.2.4 조건문과 반복문 ............................................................................................ 148

6.3 R 작업공간 사용하기 ................................................................................................. 151

6.4 데이터 프레임 ........................................................................................................... 152

6.5 시각화 .................................................................................................................... 156

6.5.1 시각화 명령어 ............................................................................................... 156

6.5.2 시각화 옵션 .................................................................................................. 156

6.5.3 시각화에 주석 달기 ........................................................................................ 158

6.5.4 시각화 내보내기 ............................................................................................ 160

6.6 분석: 통계 가설 검정 ................................................................................................. 160

6.6.1 가설 검정 ..................................................................................................... 160

6.6.2 데이터 검정 .................................................................................................. 163

6.7 읽을거리 추천 ........................................................................................................... 166

CHAPTER 7 분류 및 이벤트 도구: IDS, AV, SEM

7.1 IDS는 어떻게 작동하는가 ........................................................................................... 170

7.1.1 기본 용어 ..................................................................................................... 170

7.1.2 분류기 실패 비율: 기본 비율 오류 이해하기 ........................................................ 175

7.1.3 분류 적용하기 ............................................................................................... 177

7.2 IDS 성능 개선하기 .................................................................................................... 179

CONTENTS

Page 25: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

21

7.2.1 IDS 탐지 향상시키기 ...................................................................................... 179

7.2.2 IDS 대응 향상시키기 ...................................................................................... 185

7.2.3 데이터 미리 가져오기 ..................................................................................... 186

7.3 읽을거리 추천 ........................................................................................................... 187

CHAPTER 8 참조와 조회: 누군지 파악하는 도구

8.1 MAC과 하드웨어 주소 ............................................................................................... 190

8.2 IP 주소 할당하기 ...................................................................................................... 192

8.2.1 IPv4 주소의 구조와 주요 주소 .......................................................................... 192

8.2.2 IPv6 주소의 구조와 주요 주소 .......................................................................... 194

8.2.3 연결 점검: ping을 이용하여 주소에 연결하기 ...................................................... 196

8.2.4 경로 추적하기 ............................................................................................... 198

8.2.5 IP 정보 수집: 지리적 위치와 인구 통계 정보 ....................................................... 200

8.3 DNS ...................................................................................................................... 201

8.3.1 DNS 이름 구조 ............................................................................................. 202

8.3.2 dig를 이용한 순방향 DNS 질의 ....................................................................... 203

8.3.3 DNS 역조회 ................................................................................................. 212

8.3.4 whois로 소유권 찾기 ..................................................................................... 213

8.4 추가 참조 도구 .......................................................................................................... 217

8.4.1 DNSBL ....................................................................................................... 217

CHAPTER 9 기타 도구

9.1 시각화 .................................................................................................................... 221

9.1.1 Graphviz .................................................................................................... 221

9.2 통신과 프로브 ........................................................................................................... 225

Page 26: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

22

9.2.1 netcat ........................................................................................................ 225

9.2.2 nmap ......................................................................................................... 227

9.2.3 Scapy ........................................................................................................ 228

9.3 패킷 분석 및 조회 ...................................................................................................... 232

9.3.1 와이어샤크 ................................................................................................... 232

9.3.2 GeoIP ......................................................................................................... 233

9.3.3 NVD, 악성 사이트, C*E ................................................................................. 234

9.3.4 검색 엔진, 메일링 리스트, 사람 ......................................................................... 236

9.4 읽을거리 추천 ........................................................................................................... 237

CHAPTER 10 탐구적 데이터 분석과 시각화

10.1 EDA의 목표: 분석 적용하기 ...................................................................................... 243

10.2 EDA 작업 순서 ....................................................................................................... 245

10.3 변수와 시각화 ......................................................................................................... 247

10.4 일변량 시각화: 히스토그램, QQ 도표, 상자 도표, 계층 도표 ............................................ 248

10.4.1 히스토그램 ............................................................................................... 249

10.4.2 막대 도표 ................................................................................................. 251

10.4.3 QQ 도표 .................................................................................................. 252

10.4.4 다섯 가지 수치로 이루어진 요약 정보와 상자 도표 ............................................ 254

10.4.5 상자 도표 만들기 ....................................................................................... 255

10.5 이변량 설명 ............................................................................................................ 258

10.5.1 산점도 ..................................................................................................... 258

10.5.2 분할표 ..................................................................................................... 261

10.6 다변량 시각화 ......................................................................................................... 261

CONTENTS

분석Part III

Page 27: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

23

10.6.1 보안 시각화를 운영할 수 있게 하는 것 ............................................................ 263

10.7 읽을거리 추천 ......................................................................................................... 270

CHAPTER 11 헛발질에 대하여

11.1 공격 모델 ............................................................................................................... 272

11.2 헛발질: 잘못된 설정, 자동화, 스캐닝 ........................................................................... 274

11.2.1 조회 실패 ................................................................................................. 275

11.2.2 자동화 ..................................................................................................... 275

11.2.3 스캐닝 ..................................................................................................... 276

11.3 헛발질 식별하기 ...................................................................................................... 277

11.3.1 TCP 헛발질: 상태 기계 .............................................................................. 277

11.3.2 ICMP 메시지와 헛발질 ............................................................................... 281

11.3.3 UDP 헛발질 탐지하기 ................................................................................ 282

11.4 서비스 수준에서의 헛발질 ......................................................................................... 282

11.4.1 HTTP 헛발질 ........................................................................................... 283

11.4.2 SMTP 헛발질 ........................................................................................... 285

11.5 헛발질 분석하기 ...................................................................................................... 286

11.5.1 헛발질 경고 만들기 .................................................................................... 286

11.5.2 헛발질에 대한 포렌식 분석 .......................................................................... 287

11.5.3 헛발질에서 이득을 취할 수 있도록 네트워크 개조하기 ....................................... 288

11.6 읽을거리 추천 ......................................................................................................... 289

CHAPTER 12 트래픽 양과 시간 분석

12.1 근무일이 네트워크 트래픽 양에 미치는 영향 ................................................................. 292

12.2 신호 보내기 ............................................................................................................ 294

Page 28: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

24

12.3 파일 전송과 급습 ..................................................................................................... 297

12.4 지역성 .................................................................................................................. 301

12.4.1 서비스 거부와 자원 소모 ............................................................................. 304

12.4.2 디도스와 라우팅 기반 시설 .......................................................................... 306

12.5 트래픽 양과 지역성 분석 적용하기 .............................................................................. 311

12.5.1 데이터 선택 .............................................................................................. 311

12.5.2 트래픽 양을 경보로 이용하기 ....................................................................... 314

12.5.3 신호 보내기를 경보로 이용하기 .................................................................... 315

12.5.4 지역성을 경보로 이용하기 ........................................................................... 316

12.5.5 엔지니어링 해결책 ..................................................................................... 316

12.6 읽을거리 추천 ......................................................................................................... 317

CHAPTER 13 그래프 분석

13.1 그래프 속성: 그래프란 무엇인가? ............................................................................... 319

13.2 라벨 붙이기, 가중치, 경로 ......................................................................................... 324

13.3 요소와 연결성 ......................................................................................................... 330

13.4 클러스터링 계수 ...................................................................................................... 331

13.5 그래프 분석하기 ...................................................................................................... 332

13.5.1 요소 분석을 경보로 이용하기 ....................................................................... 333

13.5.2 포렌식에 구심성 분석 이용하기 .................................................................... 334

13.5.3 포렌식에 너비 우선 탐색 이용하기 ................................................................ 335

13.5.4 엔지니어링에 구심성 분석 이용하기 .............................................................. 337

13.6 읽을거리 추천 ......................................................................................................... 337

CONTENTS

Page 29: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

25

CHAPTER 14 애플리케이션 식별

14.1 애플리케이션 식별 방법 ............................................................................................ 339

14.1.1 포트 번호 ................................................................................................. 340

14.1.2 배너 획득으로 애플리케이션 식별하기 ........................................................... 344

14.1.3 행위로 애플리케이션 식별하기 ..................................................................... 347

14.1.4 부수적인 사이트를 통한 애플리케이션 식별 ..................................................... 352

14.2 애플리케이션 배너: 식별 및 분류 ............................................................................... 353

14.2.1 웹이 아닌 배너 .......................................................................................... 353

14.2.2 웹 클라이언트 배너: User-Agent 문자열 ...................................................... 354

14.3 읽을거리 추천 ......................................................................................................... 356

CHAPTER 15 네트워크 지도 만들기

15.1 최초 네트워크 장비 목록과 지도 만들기 ....................................................................... 357

15.1.1 장비 목록 만들기: 데이터, 범위, 파일 ............................................................ 358

15.1.2 1단계: 첫 질문 세 가지 ............................................................................... 360

15.1.3 2단계: IP 주소 조사 ................................................................................... 363

15.1.4 3단계: 눈먼 그리고 혼란을 일으키는 트래픽 식별하기 ...................................... 368

15.1.5 4단계: 클라이언트와 서버 식별하기 .............................................................. 373

15.1.6 탐지 및 차단 설비 식별하기 ......................................................................... 375

15.2 장비 목록 갱신하기: 지속적인 감사를 향해 ................................................................... 376

15.3 읽을거리 추천 ......................................................................................................... 376

찾아보기 ................................................................................................................................................... 377

Page 30: 『데이터 분석을 통한 네트워크 보안』 - 맛보기
Page 31: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

29

효과적인 정보 감시의 시작은 여러 센서가 수집한 데이터다. 이 데이터는 각자의 목적을 가진 수

많은 사람에 의해 서로 다른 형태로 만들어진다. 센서는 네트워크 탭tap부터 방화벽 로그에 이르

기까지 무엇이든 될 수 있다. 네트워크 정보를 수집하고 네트워크의 보안성을 판단하는 데 사용

될 수 있다면 센서라 할 수 있다. 유용한 센서 시스템을 구성하려면 완전성completeness과 중복성

redundancy 사이에 균형을 잡아야 한다. 완벽한 센서 시스템은 모두 아우르면서 전혀 중복되지 않

을 것이다. 모두 아우른다는 말은 모든 이벤트가 의미 있게 표현된다는 의미고, 중복되지 않는

다는 말은 센서들이 이벤트 정보를 중복해서 만들지 않는다는 의미다. 달성할 수 없는 목표일지

는 몰라도 감시 솔루션을 어떻게 만들어야 할지 결정하는 지표다.

한 종류의 센서가 모든 일을 수행할 수는 없다. 네트워크 기반 센서는 제공 범위가 넓지만 트래

픽을 조작하면 감지를 피할 수 있으며, 암호화된 트래픽은 분석할 수 없고, 호스트에서의 동작은

어림짐작만 할 수 있을 뿐이다. 호스트 기반 센서는 현상에 대한 정보를 더 광범위하고 정확하게

제공한다. 센서를 효과적으로 조합하기 위해 다음 세 가지 기준으로 센서를 분류할 것이다.

| 감시점vantage |

네트워크에서 센서의 위치. 다른 감시점을 가진 센서는 같은 이벤트에 대해 서로 다른 부분을 볼

것이다.

센서와 탐지기

CHAPTER 1

Page 32: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

30 1부 데이터

| 영역domain |

호스트, 호스트 내 서비스, 네트워크와 같은 센서의 위치 정보. 감시점은 같지만 영역이 다른

센서는 같은 이벤트에 대해 보완적인 정보를 제공한다. 이벤트에 따라 정보를 한 영역에서만

얻을 수도 있다. 예를 들어 호스트 감시는 누군가 호스트에 물리적으로 접근했는지 알 수 있는

유일한 방법이다.

| 동작action |

센서가 정보를 보고하는 방식. 센서는 정보를 기록하거나 이벤트를 발생하거나 데이터를 생성

하는 트래픽을 조작하기도 한다. 다르게 동작하는 센서들은 서로 간섭할 가능성이 있다.

1.1 감시점: 센서의 위치가 정보 수집에 미치는 영향

센서의 감시점은 센서가 관찰하게 될 패킷에 대해 알려준다. 감시점은 센서의 위치와 네트워크

의 라우팅 구조를 함께 고려하여 결정한다. [그림 1-1]을 통해 감시점에 영향을 주는 현상을 이해

해보자. 그림에서 알파벳 대문자는 잠재적인 센서의 위치를 나타낸다. 각 센서는 다음과 같이 동

작한다.

A: 라우터를 인터넷과 연결하는 인터페이스를 감시한다.

B: 라우터를 스위치와 연결하는 인터페이스를 감시한다.

C: 라우터를 호스트 128.2.1.1과 연결하는 인터페이스를 감시한다.

D: 호스트 128.1.1.1을 감시한다.

E: 스위치가 운영하는 스패닝 포트를 감시한다. 스패닝 포트는 스위치를 통과하는 모든 트래

픽을 기록한다(스패닝 포트에 대한 자세한 정보는 2.2.4절을 참조하라).

F: 스위치와 허브 사이의 인터페이스를 감시한다.

G: 호스트 128.1.1.2의 HTTP 로그 정보를 수집한다.

H: 허브의 모든 TCP 트래픽을 가로챈다.

Page 33: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

311장 센서와 탐지기

그림 1-1 간단한 네트워크의 감시 지점과 그래프 표현

인터넷

(스패닝 포트)

128.2.1.1(워크스테이션)

128.1.1.1(워크스테이션)

128.1.1.2(HTTP 서버)

128.1.1.3-32(워크스테이션)

그래프 표현

각 센서는 다른 감시점을 가지며, 이 감시점에 따라 다른 트래픽을 살피게 된다. 이를 [그림

1-1]의 오른쪽 아래와 같은 단순한 노드-링크 그래프로 바꾸면 노드를 연결하는 링크들을 추적

하여 네트워크의 감시점을 어림짐작할 수 있다. 링크는 해당 링크를 지나 목적지로 가는 어떠한

트래픽도 기록할 수 있다. [그림 1-1]의 경우는 다음과 같다.

● A에 있는 센서는 네트워크와 인터넷 사이를 지나는 트래픽만 볼 수 있다. 예를 들어 128.1.1.1

과 128.2.1.1 사이의 트래픽은 볼 수 없다.

● B에 있는 센서는 그 아래에 속하는 주소 중 하나가 출발지 또는 목적지 주소고, 그 반대 주소

가 128.2.1.1이거나 외부 인터넷에 속하는 주소인 트래픽을 볼 수 있다.

Page 34: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

32 1부 데이터

● C에 있는 센서는 128.2.1.1에서 시작하거나 끝나는 트래픽만 볼 수 있다.

● D에 있는 센서는 C에 있는 센서와 같이 128.1.1.1에서 시작하거나 끝나는 트래픽만 볼 수

있다.

● E에 있는 센서는 스위치의 포트들을 지나는 트래픽을 볼 수 있다. 128.1.1.1에서 어디론가

가는 트래픽, 128.1.1.2에서 시작하는 트래픽, 128.1.1.3에서 128.1.1.32 중 허브 외부

와 통신하는 트래픽 등을 볼 수 있다.

● F에 있는 센서는 E에 있는 센서가 보는 것 중 일부를 보며, 허브 외부의 호스트와 통신하는

128.1.1.3에서 128.1.1.32까지의 트래픽만 본다.

● G는 HTTP 로그의 특별한 경우다. 이 센서는 128.1.1.2가 서버인 HTTP 트래픽(80 포트

와 443 포트)만 본다.

● H는 128.1.1.3에서 128.1.1.32 사이의 주소 중 하나가 출발지 또는 목적지인 트래픽뿐

아니라 이 호스트들 사이의 트래픽도 본다.

단일 센서로는 이 네트워크를 전부 살펴볼 수 없다는 사실을 알아야 한다. 게다가 센서를 배치할

때는 중복된 트래픽도 고려해야 한다. 예를 들어 H와 E 지점에 센서를 배치하면 128.1.1.3에서

128.1.1.1까지의 트래픽을 두 번 보게 된다. 올바른 감시점 위치를 선택하려면 트래픽을 모두 볼

수 있는지 여부와 중복된 데이터의 홍수 사이에서 균형을 잘 잡아야 한다.

네트워크에 센서를 배치할 경우 감시점 결정은 세 단계로 진행한다. 네트워크 지도를 획득하고,

잠재적인 감시점 위치를 결정하고, 최적화된 지점을 결정한다.

첫 번째 단계에서는 잠재적인 센서 위치 목록과 함께 네트워크와 어떻게 연결되는지 보여주는

지도를 획득한다. [그림 1-1]은 이 지도의 단순한 버전이다.

두 번째 단계는 각 지점의 감시점을 결정하는 것으로, 네트워크에서 모든 가능한 배치 위치를 파

악하고 각 위치에서 무엇을 볼 수 있는지 판단한다. 이 값은 IP 주소/포트 값의 범위로 표현할

수 있다. [표 1-1]은 [그림 1-1]에 대한 이러한 목록의 한 예다. 그래프를 이용하면 감시점이 무

엇을 보게 될지 추측할 수 있다. 하지만 모델을 정밀하게 구축하려면 라우팅과 네트워킹 하드

웨어에 대한 자세한 정보가 필요하다. 예를 들어 라우터에 대해서는 감시점이 비대칭적인([표

1-1]의 트래픽은 모두 대칭이다) 지점을 찾는 것이 가능하다. 자세한 정보는 2.1절 ‘네트워크

계층 나누기와 계층이 계측에 미치는 영향’을 참조하라.

Page 35: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

331장 센서와 탐지기

표 1-1 [그림 1-1]에서의 감시점 목록

감시 지점 출발지 IP 범위 목적지 IP 범위

A 인터넷

128.1,2.1.1-32128.1,2.1.1-32인터넷

B 128.1.1.1-32128.2.1.1, 인터넷

128.2.1.1, 인터넷

128.1.1.1-32

C 128.2.1.1128.2.1.1-32, 인터넷

128.1.1.1-32, 인터넷

128.2.1.1

D 128.1.1.1128.1.1.2-32, 128.2.1.1, 인터넷

128.1.1.2-32, 128.2.1.1, 인터넷

128.1.1.1

E 128.1.1.1128.1.1.2128.1.1.3-32

128.1.1.2-32, 128.2.1.1, 인터넷

128.1.1.1, 128.1.1.3-32, 128.2.1.1, 인터넷

128.1.1.1-2, 128.2.1.1, 인터넷

F 128.1.1.3-32128.1.1.1-32, 128.2.1.1, 인터넷

128.1.1.1-2, 128.2.1.1, 인터넷

128.1.1.3-32

G 128.1,2.1.1-32, 인터넷

128.1.1.2:tcp/80128.1.1.2:tcp/80128.1,2.1.1-32

H 128.1.1.3-32128.1.1.1-32, 128.2.1.1, 인터넷

128.1.1.1-32, 128.2.1.1, 인터넷

128.1.1.3-32

마지막 단계에서는 작성한 표의 감시점 중에서 최적화된 지점들을 고른다. 중복을 최소화하는

지점을 고르는 것이 목표다. 예를 들어 센서 E는 센서 F가 제공하는 정보 중 일부를 제공한다.

따라서 이 둘을 모두 포함할 이유는 없다. 감시점을 선택할 때 대부분 어느 정도의 중복은 허용

하게 되는데, 때때로 필터링 규칙으로 제한을 둘 수 있다. 예를 들어 128.1.1.3-32에 해당하는

호스트 사이의 트래픽을 살펴보려면 H 지점을 반드시 계측해야 하고, 이 트래픽은 E, F, B, A

에서도 나타날 것이다. 이들 지점에 있는 센서에 128.1.1.3-32에서 발생하는 트래픽을 감시하

지 않도록 설정하면 중복 문제를 해결할 수 있다.

1.2 영역: 수집할 정보 선택하기

[그림 1-1]에서 센서 G는 다른 센서와 다르다. 다른 센서들은 모든 네트워크 트래픽을 기록하

게 되어 있는 데 반해, 센서 G는 HTTP 트래픽(TCP/80 )만을 기록한다. 다른 센서들이 네트워

크 트래픽 정보를 수집한다면 센서 G는 다른 영역에 있는 정보를 수집한다. 센서의 영역이란

기록하는 정보의 범위를 말한다. 센서는 다음 세 가지 영역 중 하나의 정보를 수집할 수 있다.

Page 36: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

34 1부 데이터

| 네트워크 |

네트워크 트래픽 정보를 수집한다. 이 영역에 속한 센서로는 VPN, 침입 탐지 시스템Intrusion

Detection System (IDS ), YAF 같은 NetFlow 수집기(YAF는 5.11.1절에서 설명한다), Snort 같

은 TCP 수집기, tcpdump로 수집되는 원시 데이터 등이 있다.

| 호스트 |

호스트에 존재하며 로그인, 로그아웃, 파일 접근처럼 호스트 안에서 발생하는 활동을 감시한

다. 호스트 기반 센서는 특정 호스트로의 물리적 로그인이나 USB 장치 사용 같은 정보를 제공

할 수 있다. 이는 네트워크 기반 센서는 제공하지 못하는 정보다. 호스트 기반 센서로는 시스템

로그 파일이나 보안 로그뿐 아니라 트립와이어Tripwire 같은 IPS 도구나 맥아피McAfee의 HIPS 애

플리케이션 등이 있다. 호스트 기반 센서는 호스트의 하위 계층 동작에 관한 정보를 제공하지만,

그 호스트에서 실행 중인 서비스에 대한 정보는 그다지 제공하지 않을 것이다. 또한 알려진 호

스트에만 호스트 기반 센서를 구현할 수 있으며, 권한이 없는 호스트는 미리 파악해야 감시할 수

있다.

| 서비스 |

서비스 센서는 HTTP, SMTP 서버 로그 같은 특정 서비스 프로세스가 생성한다. 서비스 센서는

서비스 안에서 일어나는, 꼭 명문화되어 있진 않더라도 형식에 잘 들어맞는 활동을 추적한다. 예

를 들어 HTTP 센서는 URL을 가져오는 데 실패한 시도는 기록하겠지만, HTTP에 부합하는 명

령을 보내지 않는 80 포트 세션은 기록하지 않을 것이다. 일반적인 센서인 호스트 기반 센서와

달리 서비스 기반 센서는 특정 서비스와의 상호작용에 관한 로그를 남기는 데 초점을 맞춘다. 전

송된 메일 메시지, 처리된 HTTP 요청 등이 여기 해당한다. 호스트 기반 센서와 같이 서비스 기

반 센서 또한 해당 서비스가 동작하고 있어야 이용할 수 있음에 주의하자.

스트림 재조립과 패킷 분해

네트워크 트래픽을 수집하고 패킷으로부터 정보를 추출하여 적절한 서비스 로그로 남기는 데 유

용한 도구가 있다. 예를 들어 HTTP 클라이언트와 서버는 CLFCommon Log Format1 레코드(3.3.1

절 ‘HTTP: CLF와 ELF’ 참조)의 내용을 주고받는다.

1 역주_ 공통 로그 양식. 웹서버에서 통용되는 서비스 로그 형식이다.

Page 37: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

41

네트워크 센서는 에이전시 애플리케이션의 도움 없이 네트워크로부터 직접 트래픽 데이터를 수

집한다. 이것이 3장에서 다룰 호스트 기반 센서와 다른 점이다. 네트워크 센서의 예로는 라우

터에 있는 NetFlow 센서, 그리고 tcpdump와 같은 스니핑sniffing 도구로 트래픽을 수집하는

센서 등을 들 수 있다.

네트워크 트래픽을 다룰 때의 어려움은 모든 로그 데이터를 처리해야 한다는 것이다. 그중 실제

보안 이벤트는 드물고 데이터 처리에는 시간과 저장 공간이 소요된다. 로그에는 사람이 알아보

기 쉬운 높은 수준의 이벤트가 기록되므로 깔끔하고 간결하다. 따라서 로그 데이터는 얻을 수 있

는 상황이라면 수집하는 것이 낫다. 같은 이벤트를 네트워크 트래픽에서 직접 추출하려면 중복

되어 있거나, 암호화되어 있거나, 해석하기 어려워서 수백만 개의 패킷을 분석해야 할 수도 있

다. 또한 공격자는 네트워크 트래픽을 조작하여 겉으로는 정상으로 보이지만 완전히 위조된 세

션을 생성할 수 있다. 300바이트짜리 로그 기록 하나는 수 메가바이트의 패킷을 응축한 정보를

내포할 수 있으며, 더욱이 그 많은 패킷 중 처음 10개 외에는 분석할 가치가 없는 것일 수 있다.

지금까지는 네트워크 센서에 불리한 이야기였고, 이제 유리한 이야기를 해보자. 프로토콜 불가

지론protocol agnosticism이란 것이 있는데, 감사auditing의 맹점을 찾기 가장 좋은 곳이 바로 네트워

크 트래픽이라는 의미다. 호스트 기반 수집 시스템의 맹점은 일차적으로 그 호스트가 존재하는

지 알고 있어야 하는데, 트래픽을 확인하기 전까지는 네트워크에 어떤 서비스들이 동작하고 있

는지조차 알지 못하는 경우가 허다하다. 네트워크 트래픽은 네트워크 본연의 모습을 드러내준

다. 있는지 몰랐던 호스트, 인지하지 못했던 백도어, 이미 안에 침입해 있는 공격자, 전혀 생각

네트워크 센서

CHAPTER 2

Page 38: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

42 1부 데이터

지 못했던 새로운 네트워크 경로의 존재 등을 알려준다. 또한 제로데이zero-day 취약점이나 새로

운 악성 코드가 나타나면, 패킷 데이터 외에는 이를 확인할 방도가 없다.

2장은 다음과 같이 구성되어 있다. 2.1절에서는 네트워크 감시점에 대해 다룬다. 즉, 패킷이 네

트워크를 어떻게 흐르는지, 네트워크를 계측할 때 이를 어떻게 이용하는지 이야기한다. 2.2절에

서는 기본적인 네트워크 트래픽 수집 프로토콜인 tcpdump를 다루며, 패킷을 샘플링하고 필터

링하고 길이를 조작하는 방법을 알아본다. 2.3절에서는 네트워크 트래픽에서 가치 있는 정보를

요약해서 제공하는 강력한 도구인 NetFlow에 대해 다룬다. 2.4절에서는 몇 가지 네트워크의 예

를 보면서 다양한 수집 전략의 장점을 논의한다.

2.1 네트워크 계층 나누기와 계층이 계측에 미치는 영향

컴퓨터 네트워크는 계층적으로 설계되어 있다. 계층layer이란 물리적인 동작과 세세한 구현사항

을 감추기 위해 네트워크 기능을 추상화한 것이다. 이상적으로 각 계층은 별개의 독립체다. 즉,

한 계층의 구현은 또 다른 구현으로 바꿀 수 있고, 그 결과가 상위 계층에는 영향을 주지 않는다.

예를 들어 인터넷 프로토콜Internet Protocol (IP )은 OSI 모델에서 3계층에 위치한다. IP 구현은 이

더넷Ethernet이나 FDDI와 같은 서로 다른 2계층 프로토콜 위에서 동작할 수 있다.

계층 모델에는 여러 가지가 있다. 가장 널리 사용되는 것은 OSI 7계층 모델과 TCP/IP 4계층

모델이다. [그림 2-1]은 이 두 모델, 대표적인 프로토콜, 그리고 1장에서 정의한 센서 영역과의

관계를 보여준다. 그림에서 보듯이 OSI 모델과 TCP/IP 모델은 대략 대응한다. OSI 모델은 다

음과 같이 7개의 계층으로 구성되었다.

1. 물리physical 계층: 네트워크를 서로 물리적으로 연결하는 기계적 요소로 이루어진다. 다

른 곳으로 정보를 전달하기 위해 전선과 전파 등의 방법이 사용된다.

2. 데이터 링크data link 계층: 물리 계층에서 전송되는 정보를 관리한다. 이더넷 같은 데이터

링크 프로토콜은 비대칭 통신이 정확하게 릴레이되도록 보장한다. IP 모델에서는 데이

터 링크 계층과 물리 계층이 링크 계층으로 묶여 있다.

3. 네트워크network 계층: 한 데이터 링크에서 다른 데이터 링크로 트래픽 경로를 지정한다.

IP 모델에서는 2계층인 인터넷 계층과 일치한다.

Page 39: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

432장 네트워크 센서

4. 전송transport 계층: 네트워크 계층에서 전송되는 정보를 관리한다. 규모는 다르지만 데이

터 링크 계층과 비슷하게, 흐름 제어와 신뢰할 수 있는 데이터 전송 등을 수행한다. IP

모델에서 전송 계층은 3계층이다.

5. 세션session 계층: 세션을 구성하고 유지하며 인증과 같은 이슈에 중점을 둔다. 오늘날 가

장 많이 사용되는 세션 계층 프로토콜은 SSL로, HTTP와 SMTP 등 많은 서비스에서

안전한 통신을 위해 사용하는 암호화 및 인증 계층이다.

6. 프레젠테이션presentation 계층: 상위 계층에서 출력하는 데 사용하는 정보를 인코딩한다.

프레젠테이션 계층의 보편적인 예로는 이메일에 사용되는 메시지 인코딩 프로토콜인

MIME을 들 수 있다.

7. 애플리케이션application 계층: HTTP, DNS, SSH와 같은 서비스다. OSI 모델의 5~7계층

은 IP 모델의 애플리케이션 계층(4계층)에 대략 대응한다.

그림 2-1 계층 모델

7계층: 애플리케이션

6계층: 표현

5계층: 세션

4계층: 전송

3계층: 네트워크

2계층: 데이터 링크

1계층: 물리 계층

OSI 모델

NNTP, DNS, FTP, HTTP

MIME

SSL

GRE, TCP, UDP

IP, AppleTalk, DECnet

이더넷, FDDI, 802.11, ATM

SONET, 꼬임2선식 케이블, 동축케이블

구현

4계층: 애플리케이션

3계층: 전송

2계층: 인터넷

1계층: 링크

TCP/IP 모델

서비스

네트워크

영역

계층 모델은 표준이라기보다는 모델이며, 모델은 필연적으로 불완전하다. 예를 들어 TCP/IP 모

델은 OSI 모델과 같은 상세함은 피하며 OSI 모델의 프로토콜들은 여러 계층에 존재하는 경우가

많다. 네트워크 인터페이스 컨트롤러Network Interface Controller (NIC )는 OSI 모델의 1계층과 2계층

Page 40: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

44 1부 데이터

에 걸쳐 있다. 계층들은 서로 영향을 주는데, 특히 하위 계층은 상위 계층이 데이터를 전송하고

관찰하는 방법과 성능에 큰 영향을 준다.

네트워크 트래픽에서 계층화의 영향을 알 수 있는 대표적인 예는 최대 전송 유닛Maximum Transmission

Unit (MTU )이다. MTU는 데이터 프레임 크기의 상한값으로, 전송할 수 있는 패킷의 최대 크기

에 영향을 준다. 이더넷의 MTU는 1500바이트고, 이 제한 때문에 IP 패킷은 거의 이 크기를

넘지 않는다.

계층 모델은 또한 네트워크 센서 영역과 서비스 센서 영역 사이의 차이를 명확하게 보여준다. [그

림 2-1]에서 보듯이 OSI 모델에서 네트워크 센서는 2~4계층에 중점을 둔다면 서비스 센서는

5계층 이상에 중점을 둔다.

계층화 및 네트워크 센서의 역할

생각해보면 왜 네트워크 센서로 모든 것을 감시할 수 없는지 의문을 가지는 것은 당연하다. 결국

우리는 네트워크상에서 이루어지고 있는 공격에 관해 얘기하고 있다. 게다가 네트워크 센서는 호

스트 로그처럼 변조되거나 삭제될 수 없으며, 호스트 로그가 볼 수 없는 스캔scan은 물론 실패한

연결 시도와 같은 것도 볼 수 있다.

네트워크 센서는 광범위하게 감시하지만, 상위 계층으로 올라갈수록 무슨 일이 일어났는지 정확

하게 복원하는 것이 점점 복잡해진다. 5계층 이상에서는 프로토콜과 패킷을 해석하는 문제가 더

중요해진다. 5계층에서는 세션 암호화가 가능하며 암호화된 세션은 읽을 수 없다. 6계층과 7계

층에서는 실제 사용되는 프로토콜의 복잡한 세부사항을 알지 못하면 의미 있는 정보를 추출하기

어렵다.

패킷 데이터로부터 프로토콜을 재구성하는 작업은 복잡하고 애매하다. TCP/IP는 종단간end-to-

end 원칙에 따라 설계되었는데, 이는 패킷으로부터 세션을 만드는 데 필요한 당사자는 서버와 클

라이언트뿐임을 의미한다. 와이어샤크Wireshark(9장 참조) 또는 넷위트니스NetWitness 같은 도구는

세션의 내용을 재구성해주지만 실제 일어난 일의 근사치를 제공할 뿐이다.

네트워크, 호스트, 서비스 센서는 서로 보완하도록 사용될 때 가장 유용하다. 네트워크 센서는

다른 센서가 기록하지 않는 세부 정보를 제공하는 반면 호스트와 서비스 센서는 실제 이벤트를 상

위 수준에서 기록한다.

1장에서 센서의 ‘감시점’이란 특정 센서가 관찰하는 트래픽이라고 했다. 컴퓨터 네트워크의 경

Page 41: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

452장 네트워크 센서

우, 감시점은 센서가 관찰한 패킷을 말한다. 이 패킷은 스위치나 라우터를 통해 전송된 패킷이

든 충돌 영역collision domain 안에서 관찰한 것이든 상관없다. 네트워크를 효율적으로 계측하기 위

해서는 감시점을 정확하게 모델링할 필요가 있으므로 네트워크의 동작 방식을 더 깊게 알아야

할 필요가 있다.

2.1.1 네트워크 계층과 감시점

트래픽이 OSI 모델의 세 계층 사이를 돌아다니는 모습을 보면 네트워크 감시점이 무엇인지 쉽

게 이해할 수 있다. 여기서 세 계층은 공유 버스와 충돌 영역을 넘나드는 1계층, 네트워크 스위

치가 처리하는 2계층, 라우터로 대표되는 3계층을 말한다. 각 계층의 감시점은 그 모습과 구현

방식이 서로 다르다.

가장 기본적인 네트워킹은 충돌 영역을 넘나드는 것이다. 충돌 영역이란 한 개 이상의 네트워

크 인터페이스가 데이터를 전송하기 위해 사용하는 공유 자원이다. 네트워크 허브와 무선 라우

터에서 사용되는 채널 등이 대표적인 예다. 충돌 영역이라 불리는 이유는 여러 인터페이스가 동

시에 데이터를 발송하면 서로 충돌할 수 있기 때문이다. 2계층 프로토콜은 충돌을 보완하거나

방지하는 방법을 포함하고 있다.

그 결과 2계층 데이터그램은 공통 자원을 통해 브로드캐스트broadcast된다(그림 2-2 ). 같은 충돌

영역을 공유하는 네트워크 인터페이스는 모두 같은 데이터그램을 보게 되며, 그중 자신이 수신

자로 지정된 데이터그램만 해석한다. 하지만 tcpdump 같은 네트워크 수집 도구는 이를 무작위

모드로 설정할 수 있고, 충돌 영역에서 관찰되는 모든 데이터그램을 기록하게 된다.

그림 2-2 충돌 영역에 걸쳐진 감시점

전송 수신 무시 기록

Page 42: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

46 1부 데이터

[그림 2-2]는 충돌 영역에 걸쳐 있는 감시점을 보여준다. 이 그림에 따르면 A에서 B로 가는 프

레임은 공유 버스인 허브를 통해 브로드캐스트된다. 허브에 연결된 모든 호스트는 프레임을 수

신하거나 반응할 수 있지만, 오직 B만이 그래야 한다. 이 규칙을 따르는 호스트 C는 프레임을 무

시하고 버린다. 그러나 무작위 모드로 동작하는 호스트 D는 프레임을 기록한다. 허브의 감시점

은 결국 허브와 연결된 모든 주소address다.

공유된 충돌 영역은 효율이 높지 않으며, 이더넷 같은 비동기 프로토콜에서는 특히 심하다. 결국

각 호스트가 자신만의 전용 이더넷 포트를 가지도록 이더넷 스위치 같은 2계층 장치가 활용된다.

[그림 2-3]은 스위치가 추가된 모습이다.

그림 2-3 스위치에 걸쳐진 감시점

전송 수신 수신 내용 없음

미러링 포트

수신 내용 없음

무작위 모드로 동작하는 캡처 도구는 인터페이스에 수신되는 모든 프레임을 기록하지만, 2계층

스위치는 각 인터페이스가 명확히 자신에게 향하는 프레임만 수신하도록 해준다. [그림 2-3]에서

는 결국 A에서 B로 향하는 프레임은 B만 수신하고, C와 D는 아무것도 받지 못한다.

이 문제에 대한 하드웨어 기반의 해법이 있다. 스위치 대부분은 포트 미러링port mirroring을 제공한

다. 포트 미러링이란 다른 포트들 사이에서 전송되는 프레임을 원래 목적지뿐 아니라 공통 미러

링 포트common mirrored port로도 복사해주는 기능이다. 즉, 스위치가 수신한 모든 프레임의 복사본

을 공통 인터페이스로 전송하도록 설정할 수 있다. 그러나 그 비용이 많이 들 수 있어서, 스위치

대부분은 감시할 수 있는 인터페이스나 VLAN의 수를 제한하고 있다.

Page 43: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

63

이 장에서는 호스트 또는 서비스 영역에서 동작하는 센서를 다룬다. 호스트 센서로는 안티바이

러스(AV ) 소프트웨어, 맥아피의 호스트 침해 방지 시스템Host Intrusion Prevention System (HIPS ) 같

은 호스트 기반 보안 도구뿐 아니라 시스템 로그가 있다. 호스트 센서는 호스트와 호스트 운영

체제의 상태를 감시하는데, 로컬 디스크 사용 현황 및 주변 장치 접근과 같은 정보를 추적한다.

서비스 센서는 HTTP 서버 로그나 메일 전송 로그 등 특정 서비스의 활동을 기술한다. 즉, 누가

누구에게 메일을 보냈는지, 최근 5분 사이에 어떤 URL에 접근했는지 등 특정 서비스를 통해

이루어지는 활동을 기술한다. 혼란을 피하기 위해 이 장에서는 ‘로그’를 호스트 로그 또는 서비

스 로그를 지칭하는 데 사용하도록 하겠다.

로그는 네트워크 데이터보다 유용할 때가 많다. 로그는 관련 있는 프로세스가 직접 생성하고, 네

트워크 데이터와 달리 별다른 해석과 추정을 할 필요가 없기 때문이다. 호스트 로그와 서비스 로

그는 네트워크 관점에서는 재구성하기 어려운 이벤트를 구체화한 정보다.

하지만 단점도 있다. 그중에서도 관리하기 어렵다는 점이 가장 큰 문제다. 어떤 로그가 존재하

는지, 어떻게 접근할 수 있는지 알아야 한다. 게다가 호스트 로그는 형태가 다양하고 제대로 된

설명도 없는 경우가 많다. 만들어지는 로그의 양도 엄청난데, 그중 대다수는 네트워크 보안보다

는 디버깅과 문제 해결을 위한 것이다. 그래서 보안 관련 정보가 더 많이 포함되도록 로그 설정

을 바꿔야 할 필요가 자주 있을 것이다. 이렇게 하려면 직접 자신만의 통합 프로그램을 작성해야

할지도 모른다. 마지막 문제는 로그 역시 공격 대상이라는 점이다. 즉, 공격자는 가능하다면 로

그를 변경하거나 로그가 남지 않도록 할 것이다.

호스트와 서비스 센서:

출발지에서 트래픽 로그 남기기

CHAPTER 3

Page 44: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

64 1부 데이터

로그는 네트워크 데이터를 보완한다. 네트워크 데이터는 맹점을 찾고 로그가 말하는 결과가 올

바른지 확인하며 로그가 놓친 점을 알아채는 데 유용하다. 그래서 효과적인 보안 시스템은 이 둘

을 혼용한다. 넓은 시야가 필요할 때는 네트워크 로그를, 세부적인 것을 확인할 때는 로그를 활

용한다.

이제부터 시스템 로그 파일을 포함하여 수많은 호스트 로그의 데이터에 집중할 것이다. 먼저 각

양각색의 로그 데이터와 잘 다듬어진 메시지 포맷의 예를 살펴보자. 그러고 나서 유닉스 시스템

로그, HTTP 서버 로그, 이메일 로그를 직접 들여다볼 것이다.

3.1 로그 파일 접근과 처리

대부분의 운영 체제는 수시로 로그 데이터를 생성하는 프로세스를 여러 개 가지고 있다. 유닉스

시스템은 보통 /var/log 디렉터리에 텍스트 파일 형태로 로그를 저장한다. [예제 3-1]은 Mac

OS X의 /var/log 디렉터리 모습이다.

예제 3-1 Mac OS X의 /var/log 디렉터리

drwxr-xr-x 2 _uucp wheel 68 Jun 20 2012 uucp

...

drwxr-xr-x 2 root wheel 68 Dec 9 2012 apache2

drwxr-xr-x 2 root wheel 68 Jan 7 01:47 ppp

drwxr-xr-x 3 root wheel 102 Mar 12 12:43 performance

...

-rw-r--r-- 1 root wheel 332 Jun 1 05:30 monthly.out

-rw-r----- 1 root admin 6957 Jun 5 00:30 system.log.7.bz2

-rw-r----- 1 root admin 5959 Jun 6 00:30 system.log.6.bz2

-rw-r----- 1 root admin 5757 Jun 7 00:30 system.log.5.bz2

-rw-r----- 1 root admin 5059 Jun 8 00:30 system.log.4.bz2

-rw-r--r-- 1 root wheel 870 Jun 8 03:15 weekly.out

-rw-r----- 1 root admin 10539 Jun 9 00:30 system.log.3.bz2

-rw-r----- 1 root admin 8476 Jun 10 00:30 system.log.2.bz2

-rw-r----- 1 root admin 5345 Jun 11 00:31 system.log.1.bz2

-rw-r--r-- 1 root wheel 131984 Jun 11 18:57 vnetlib

drwxrwx--- 33 root admin 1122 Jun 12 00:23 DiagnosticMessages

-rw-r----- 1 root admin 8546 Jun 12 00:30 system.log.0.bz2

-rw-r--r-- 1 root wheel 108840 Jun 12 03:15 daily.out

Page 45: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

653장 호스트와 서비스 센서

-rw-r--r-- 1 root wheel 22289 Jun 12 04:51 fsck_hfs.log

-rw-r----- 1 root admin 899464 Jun 12 20:11 install.log

잘 살펴보면 몇 가지 특징이 보인다. system.log 파일은 매일 0시 30분에 만들어지고 숫자로

구별된다. 서비스별로 할당된 많은 하위 디렉터리가 보인다. 서비스의 설정을 보면 알겠지만,

많은 유닉스 서비스가 로그 파일을 저장할 기본 위치로 /var/log의 하위 디렉터리를 활용한다.

유닉스 로그 파일은 거의 항상 평문이다. 예를 들어 시스템 로그의 모습은 다음과 같다.

$ cat system.log

Jun 19 07:24:49 local-imac.home loginwindow[58]: in pam_sm_setcred(): Done

getpwnam()

Jun 19 07:24:49 local-imac.home loginwindow[58]: in pam_sm_setcred(): Done

setegid() & seteuid()

Jun 19 07:24:49 local-imac.home loginwindow[58]: in pam_sm_setcred():

pam_sm_setcred: krb5 user admin doesn't have a principal

Jun 19 07:24:49 local-imac.home loginwindow[58]: in pam_sm_setcred(): Done

cleanup3

유닉스 시스템 로그의 대부분은 정해진 양식에 특정 이벤트 정보를 채워서 만든 텍스트 메시지

다. 이런 양식화된 텍스트templated text는 읽기 쉬우나 확장하기는 어렵다.

윈도우는 비스타부터 로그 체계에 많은 손질을 가했다. 윈도우가 인식하는 로그 파일의 종류는

두 가지다. 바로 윈도우 로그와 애플리케이션/서비스 로그다. 그리고 윈도우 로그는 다시 다섯

가지로 나뉜다.

| 애플리케이션 로그 |

각 애플리케이션에서 수집한 메시지를 담는다. 인터넷 정보 서버Internet Information Server (IIS )와 같

은 서비스는 추가 정보를 담기 위해 별도의 로그를 추가로 이용할 수 있음에 유의하자.

| 보안 로그 |

로그인 시도 및 감사 정책 변경과 같은 보안 이벤트를 담는다.

| 설치 로그 |

애플리케이션 설치와 관련된 이벤트를 포함한다.

Page 46: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

66 1부 데이터

| 시스템 로그 |

드라이버 실패와 같은 시스템 상태에 대한 메시지를 담는다.

| ForwardedEvents 로그 |

원격 호스트에서 수집한 이벤트를 저장한다.

이들 로그 대부분은 기본적으로 %SystemRoot%\System32\Config에 기록된다.

%SystemRoot%는 윈도우가 설치된 위치를 말한다. 하지만 이벤트 뷰어를 이용하면 이 파일들

을 더 효과적으로 살펴볼 수 있다(그림 3-1 ).

그림 3-1 이벤트 뷰어로 본 윈도우 로그

[그림 3-1]에서 이벤트 ID의 사용을 보자. 유닉스 시스템과 같이, 윈도우 이벤트 메시지도 양식

화된 텍스트다. 다만 윈도우는 이벤트 유형별로 고유한 숫자 코드를 부여하여 명시적으로 알아

낸다. 각 메시지에 대한 설명은 마이크로소프트 웹사이트에 공개되어 있다.

Page 47: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

673장 호스트와 서비스 센서

애플리케이션 로그 파일이 저장되는 위치는 일정하지 않다. /var/log 같은 특정 위치에 기록하

도록 관리 체계를 설정할 수는 있지만, 애플리케이션이 다른 경로를 이용하는 걸 강제하긴 어렵

다. 로그가 저장되는 위치를 알려면 각 애플리케이션의 문서를 참고하기 바란다.

3.2 로그 파일의 내용

호스트 로그의 주된 목적은 호스트 관리자가 문제를 해결하고 디버깅하는 데 필요한 정보를 제

공하는 것이다. 이런 목적에 맞게 설계되었기 때문에 호스트 로그를 만족할 만한 보안 로그로 변

환하려면 종종 어느 정도의 분석과 재구성이 필요하다. 이 절에서는 호스트 로그 데이터를 해석

하고, 문제를 찾아 해결하고, 변환하는 방법을 다루겠다.

3.2.1 좋은 로그 메시지의 요건

로그 메시지를 어떻게 변환할지, 그리고 대부분의 로그 메시지가 얼마나 나쁜지 불평하기 전에,

좋은 보안 로그는 어떠해야 하는지 설명하는 것이 마땅하다. 좋은 보안 로그는 서술적이어야 하

고, 다른 데이터와 연관 지을 수 있어야 하며, 완결되어야 한다.

서술적인 메시지란 메시지가 기술하는 이벤트를 분석하는 데 꼭 필요한 모든 자원을 파악할 수

있을 만큼 충분한 정보를 담고 있는 메시지를 말한다. 예를 들어 누군가 허용되지 않은 파일에

접근하려 했다는 메시지라면 사용자 ID와 접근하려 했던 파일 정보를 포함해야 한다. 특정 사

용자의 그룹 권한이 변경되었다는 메시지는 그 사용자와 그룹 정보를 포함해야 한다. 원격 로

그인에 실패했다는 메시지는 로그인을 시도한 ID와 원격지 주소를 포함해야 한다.

다음을 로컬 이름이 myhost인 192.168.2.2 호스트에서 로그인에 실패했을 때 남긴 로그 메

시지라 하자. 하지만 보다시피 서술적이지 못하다.

Mar 29 11:22:45.221 myhost sshd[213]: Failed login attempt

이 메시지는 실패한 이유를 알려주지 않고 다른 로그인 실패와 구별할 수 있는 정보도 전혀 없

다. 공격 대상이 누구인지, 즉 탈취하려는 계정이 관리자 계정인지 다른 사용자인지 알 수 없다.

결국 시간 정보만으로 공격을 재구성해야 한다. 호스트 이름도 서술적이지 못하고 주소 정보도

담겨 있지 않기 때문에 어느 호스트에 접근했는지 확신할 수 없다.

Page 48: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

68 1부 데이터

다음은 같은 이벤트를 더 서술적으로 기술한 메시지다.

Mar 29 11:22:45.221 myhost (192.168.2.2) sshd[213]: Failed

login attempt from host 192.168.3.1 as 'admin',

incorrect password

육하원칙을 활용하면 서술적인 메시지를 더 쉽게 만들 수 있다. 육하원칙이란 연구 논문이나

언론 기사가 반드시 포함해야 하는 여섯 가지 기본 요소인 누가who, 언제when, 어디서where, 무

엇을what, 왜why, 어떻게how를 말한다. 앞서 본 서술적이지 못한 메시지는 무엇을(로그인 실패)

과 언제에는 답을 제공하고 어디서(myhost )에는 부분적으로 답을 하고 있다. 서술적인 메시지

는 누가(admin으로서의 192.168.3.1 ), 언제, 어떻게(잘못된 패스워드)에 답을 하고 있고 어

디서에 대해서도 더 나은 답을 제공한다.

연관 지을 수 있는 메시지란 해당 이벤트를 다른 정보원으로부터 수집한 정보와 쉽게 연관 지을

수 있는 것을 말한다. 호스트 기반 이벤트는 IP 주소, 시간은 물론이고 원격 이벤트인지 로컬 이

벤트인지에 대한 구분 정보가 필요하다. 원격 이벤트라면 그 이벤트의 IP 주소와 포트, 그리고

호스트의 IP 주소와 포트가 추가로 필요하다. 서비스 로그에서는 이 연관 짓기가 골치 아픈 문

제다. 서비스 로그 중에는 IP 위에 독자적인 주소 체계를 만들어서 사용하는 경우가 많기 때문이

다. 예를 들어 다음의 메일 로그 메시지는 연관 짓기가 쉽지 않다.

Mar 29 11:22:45.221 myhost (192.168.2.2) myspamapp[213]:

Message <[email protected]> title 'Herbal Remedies and Tiny Cars'

from '[email protected]' rejected due to unsolicited commercial content

많은 정보를 담고 있지만, 이 메시지를 전송한 특정 IP 주소로 되돌려 보낸 메시지와 연관 지을

방법이 없다. 로그 메시지를 살펴볼 때는 다른 정보원, 특히 네트워크 트래픽과 어떻게 연관 지

을지 생각해보라. 다음은 연관 짓기 더 좋은 메시지다.

Mar 29 11:22:45.221 myhost (192.168.2.2) myspamapp[213]:

Message <[email protected]> title 'Herbal Remedies and Tiny Cars'

from '[email protected]' at SMTP host 192.168.3.1:2034 rejected due

to unsolicited commercial content

이 메시지는 클라이언트 주소와 포트 정보를 담고 있으니 네트워크 트래픽과 연관 지을 수 있다.

완결된 메시지란 하나의 로그 메시지가 특정 이벤트에 관한 모든 정보를 온전히 담고 있는 것을

말한다. 완결성은 분석을 위해 검색해야 할 레코드의 수를 줄여주고 추가로 필요한 정보가 더는

Page 49: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

85

4장에서는 트래픽 분석을 위해 데이터를 저장하는 방법을 다룬다. 데이터 저장은 정보 보안 분석

에서 기본적인 문제(정보 보안과 관련한 이벤트는 수많은 일반 로그 파일에 흩어져 있어서, 이

를 효과적으로 분석하려면 방대한 양의 데이터를 빠르게 처리할 수 있어야 한다)와 연결된다.

데이터에 빠르게 접근하기 위한 여러 방법 중에서도 플랫 파일flat file1, 전통적인 데이터베이스,

새롭게 떠오르는 NoSQL 패러다임이 대표적이다. 각 방법이 사용하는 데이터 저장 구조와 분석

기법은 나름의 장단점을 가진다.

플랫 파일 방식에서는 디스크에 기록된 데이터에 직접 접근하여 간단한 분석 도구로 분석하는

것이 보통이다. 대부분의 로그 시스템은 기본적으로 플랫 파일을 생성한다. 일정한 수의 레코드

가 쌓이면 시스템은 파일을 닫고 새로운 파일을 연다. 플랫 파일은 읽고 분석하기는 간단하지만

최적화된 접근을 위한 특별한 도구는 없다.

오라클과 PostgreSQL 같은 데이터베이스 시스템은 주로 기업 컴퓨팅 환경의 기반이 된다. 이

들 시스템은 잘 정의된 인터페이스 언어를 이용하고, 매우 안정적이고, 확장 가능한 솔루션을 제

공하도록 설정할 수 있으며, 시스템 관리자와 유지보수 인력도 비교적 쉽게 구할 수 있다. 하지

만 데이터베이스 시스템은 로그 데이터를 다루도록 설계되지 않았는데, 이 책에서 다루는 데이

터는 관계형 데이터베이스의 장점을 이용할 수 없는 여러 가지 특징을 가지고 있다.

마지막으로 NoSQL과 빅데이터로 분류할 수 있는 떠오르는 기술들이 있다. 그중에는 하둡Hadoop

1 역주_ 구조적 상하 관계가 없는 레코드로 구성된 파일

분석을 위한 데이터 저장:

관계형 데이터베이스, 빅데이터,

그리고 다른 선택

CHAPTER 4

Page 50: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

86 1부 데이터

같은 분산 플랫폼과 몽고디비MongoDB나 모넷Monet 같은 데이터베이스, 레디스Redis나 아파치 솔

라Apache SOLR 같은 전문 도구가 있다. 이들을 적절한 하드웨어 인프라와 함께 활용하면 매우 강

력하고 신뢰할 수 있는 분산 질의 도구가 될 수 있다. 하지만 프로그래밍과 시스템 관리 기술뿐

아니라 하드웨어에도 상당한 투자를 해야 한다.

분석할 때는 원천 데이터를 여러 차례 들여다보게 된다. 어떤 문제를 풀려는 분석가는 주 데이

터 저장소로 가서 관련 데이터를 가져올 것이다. 이때 가져오는 데이터는, 패턴이 점차 분명해

지고 질문이 날카로워짐에 따라, 그전에 가져왔던 데이터의 특정 기능과 관련된 것일 가능성이

높다(자세한 작업 순서는 10장을 참조하라). 이런 이유로 데이터에 효율적으로 접근하기 위한

기술적인 노력이 중요해진다. 데이터 접근에 걸리는 시간은 분석가가 질의할 수 있는 횟수와 직

결되기 때문에 구체적인 분석 방식을 결정하는 데 영향을 주기 때문이다.

저장되는 데이터의 양과 유형, 분석하려는 사람의 수에 따라 알맞은 데이터 시스템을 선택해야

한다. 모든 경우에 최선인 단 하나의 정답은 없다. 예상되는 질의와 저장될 데이터의 조합에 따

라 최선의 전략은 달라질 것이다.

4.1 로그 데이터와 CRUD 패러다임

생성create, 읽기read, 갱신update, 삭제delete를 의미하는 CRUD 패러다임은 안정된 저장 시스템이

제공해야 할 기본 연산이다. 가장 널리 이용되는 안정된 저장 형태인 관계형 데이터베이스 관

리 시스템relational database management system (RDBMS )은 사용자가 기존의 내용을 규칙적이면서 비

동기적으로 갱신할 것이라 가정한다. 관계형 데이터베이스는 성능보다는 데이터 무결성integrity

에 중점을 두고 설계되었다.

데이터 무결성을 보장하려면 시스템 자원이 많이 필요하다. 데이터베이스는 무결성을 위해 각

행별로 메타데이터를 덧붙이거나 추가적인 처리를 하는 등 많은 방법을 이용한다. 이런 기능은

RDBMS가 다루려는 유형의 데이터에는 필요하지만, 그 데이터가 로그 데이터는 아니다.

[그림 4-1]은 이런 차이를 보여준다. RDBMS에서 사용자는 계속 시스템에 데이터를 추가하고

질의하며, 시스템은 그에 대응하려고 자원을 소모한다. 하지만 로그 데이터는 변하지 않는다. 한

번 발생한 이벤트는 절대 수정되지 않는다. 이는 [그림 4-1]이 보여주는 데이터 흐름을 바꾼다.

로그 수집 시스템에서 디스크에 쓰는 것은 오로지 센서뿐이다. 사용자는 디스크에서 읽을 뿐이다.

Page 51: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

874장 분석을 위한 데이터 저장

그림 4-1 RDBMS와 로그 수집 시스템 비교

사용자

사용자 사용자 사용자 사용자

RDBMS

센서

센서

로그 수집기

사용자와 센서의 역할이 구분되는 이유는 로그 데이터를 다룰 때는 데이터베이스의 무결성 기능

이 필요 없기 때문이다. 로그 데이터용으로는 잘 설계된 플랫 파일 수집 시스템이 관계형 데이터

베이스만큼 빠를 것이다.

4.1.1 잘 조직된 플랫 파일 시스템 만들기: SiLK에서 얻은 교훈

5장에서는 CERT가 대규모의 NetFlow를 다루고자 개발한 분석 시스템인 SiLK를 다룬다. SiLK

는 초기의 빅데이터 시스템이었다. 현재 사용하는 빅데이터 기술을 사용하지는 않았지만, 비슷

한 원칙하에 설계되었고, 그 원칙이 어떻게 작동하는지 이해하면 현재의 시스템을 개발하는 데

도움이 될 것이다.

로그 분석 성능은 레코드를 처리하는 알고리즘의 복잡성보다는 읽어 들이는 레코드의 수에 민

감하다. 즉, 입출력 성능에 크게 좌우된다. 예를 들어 SiLK의 원래 설계에서는 파일을 압축해서

보관해야 훨씬 유리했다. 디스크에서 읽어 들이는 레코드의 양을 줄여서 얻는 이득이 메모리에

서 압축을 풀어야 하는 손해를 상쇄하고도 남았다.

Page 52: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

88 1부 데이터

성능이 입출력에 의존적이기 때문에, 잘 만들어진 질의 시스템은 가능하면 관련 레코드를 최

소한으로 읽으려 할 것이다. 로그 수집 시스템에서 읽는 레코드 수를 줄이는 가장 효과적인 방

법은 레코드를 시간순으로 색인하고 질의할 때 시간 범위를 반드시 명시하도록 하는 것이다.

SiLK는 로그 레코드를 날짜별로 매시간 다른 파일에 저장한다. 예를 들어 2016년 1월 14일의

로그는 0시를 의미하는 ‘/data/2016/01/14/sensor1_20160114.00’부터 23시를 의미하는

‘/data/2016/01/14/sensor1_20160114.23’까지 총 24개의 파일로 나눠서 저장한다. SiLK

명령어에는 실제 파일 이름을 숨기는 globbing 기능2이 있어서 질의 시에 사용자가 시작 날짜

와 종료 날짜만 명시하면 자동으로 해당 파일을 찾아준다.

분할을 꼭 시간 기준으로만 할 필요는 없다. 네트워크 트래픽과 로그 데이터는 보통 한두 개의

프로토콜이 대부분을 발생시키며, 레코드를 프로토콜별로 다른 파일에 기록하도록 할 수 있다.

SiLK를 설치할 때 웹 트래픽을 다른 트래픽과 분리하는 경우도 흔한데, 대부분의 네트워크에서

전체 트래픽의 40~80%를 웹이 차지하기 때문이다.

대부분의 데이터 분할 전략에서 데이터를 어느 정도까지 나눠야 하는지 결정하는 기준은 과학

보다는 예술의 영역에 속한다. 경험상 시간 외의 추가 기준은 세 개에서 다섯 개를 넘기지 않는

것이 좋은데, 잘게 나눌수록 사용자와 개발자를 더욱 복잡하게 만들기 때문이다. 게다가 정확한

분할 전략을 정하려면 네트워크 트래픽에 대한 지식이 다소 필요하다. 따라서 네트워크 구조와

구성, 데이터의 유형에 대해 더 잘 이해한 후에야 효율적인 분할 전략을 정할 수 있다.

데이터 형식과 데이터 최적화

하루에 십억 개의 레코드를 받아서 플랫 파일에 저장하는 시스템을 만든다고 해보자. 그런데 목적

지와 출발지 IP 주소를 0으로 채운 ASCII 문자를 사용하기로 했다. 이는 바이너리 방식일 때는 4

바이트면 충분하던 IPv4 주소 하나가 총 15바이트의 저장 공간을 차지한다는 것을 의미한다. 이

는 주소 저장에만 매일 22GB를 낭비한다는 말이다. 데이터를 주고받는 인터페이스가 기가비트

이더넷 하나라면, 낭비되는 공간을 전송하는 데만 3분이 소요될 것이다.

대규모의 데이터를 다루기 시작하는 순간, 공간 의존성은 디스크 문제(질의 시간과 보관 기간)와

네트워크 문제(질의 시간과 성능)로 이어진다. 이 동작은 입출력에 제약을 받기 때문에 주소 표

현을 바이너리 형식으로 바꾸면 공간을 절약하고 성능을 높이며 실제로 구현할 수 있는 설계가

될 가능성이 매우 커진다.

2 역주_ 아직도2 역주_ globbing은 와일드카드 문자(*, ?, [, ], -)를 이용하여 패턴 매칭을 통해 파일명을 찾는 기능이다.

Page 53: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

99

원래 대규모의 NetFlow 분석을 수행하기 위해 카네기 멜론 대학교의 CERT팀에서 개발한 도구

모음인 SiLKthe System for Internet-Level Knowledge는 현재 미 국방부, 학교, 산업계에서 기본 분석 도구

로 광범위하게 사용하고 있다.

이 장에서는 SiLK를 분석 도구로 이용하는 방법을 주로 설명한다. CERT의 네트워크 상황인식

팀에서는 SiLK 사용법, 수집기 설치, 설정 등을 광범위하게 설명한 자료를 제공하니 참고하기 바

란다(http://tools.netsa.cert.org ).

5.1 SiLK는 무엇이며 어떻게 작동하는가?

SiLK는 NetFlow 데이터에 대해 질의하고 분석하는 도구들의 모음이다. SiLK 패키지를 이용하

면 복잡한 전체 현상을 파악하고 개별 이벤트를 뽑아내기 위해 방대한 네트워크 트래픽에 대한

질의를 빠르고 효율적으로 수행할 수 있다.

SiLK는 사실상 명령행에서 작동하는 데이터베이스다. 각 도구는 특정 질의, 처리, 데이터 취합

등을 수행하며, 원하는 결과를 얻기 위해 여러 명령어를 엮게 된다. 파이프pipe를 따라 여러 레코

드를 일렬로 연결하여 동시에 여러 채널의 데이터를 처리하는 복잡한 명령어를 만들 수 있다.

예를 들어 [예제 5-1]의 연속된 SiLK 질의는 흐름 데이터에서 HTTP (80 포트) 트래픽을 가

져오고, 시간과 활동 목록을 가장 바쁜 주소순으로 정렬해준다. 이는 명령어를 연속된 파이프

SiLK 패키지

CHAPTER 5

Page 54: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

100 2부 도구

로 전달하는 SiLK의 기본 동작 방식을 잘 보여준다. 파이프로는 표준 입력(stdin ), 표준 출력

(stdout ), 혹은 이름 있는 파이프named pipe (fifo ) 등이 사용될 수 있다.

예제 5-1 매우 복잡한 rwfilter 명령의 예

$ mkfifo out2

$ rwfilter --proto=6 --aport=80 data.rwf --pass=stdout |

rwfilter --input=stdin --proto=6 --pass=stdout

--all=out2 | rwstats --top --count=10 --fields=1 &

rwcount out2 --bin-size=300

데이터는 마지막 순간까지, 즉 문자 등의 다른 출력물을 생성하는 명령어가 호출되기 전까지 효

율적인 이진 데이터 형태로 유지된다.

SiLK는 오래된 유닉스 애플리케이션 묶음이다. 즉, 도구들이 서로 파이프로 연결되고 다양한 선

택 인수를 제공한다. 이 방식을 활용하면 SiLK로 강력한 분석 스크립트를 만들 수 있다. 이진 데

이터를 효율적으로 처리할 수 있는 잘 정의된 인터페이스가 갖춰져 있기 때문이다. SiLK를 효과

적으로 사용하려면 이진 데이터를 처리하기 위해 적절한 도구를 연결하고 처리가 끝날 때 문자

로 변환해서 출력해야 한다.

이 장에서는 ls, cat, head와 같은 기본적인 유닉스 셸 명령어도 함께 사용한다. 그렇다고 셸을

전문가 수준으로 알 필요는 없다.

5.2 SiLK 설치하기

SiLK 홈페이지는 CERT NetSA 보안 스위트 웹페이지에서 함께 관리한다. SiLK 패키지는 무

료로 내려받을 수 있고, 큰 어려움 없이 대부분의 유닉스 시스템에 설치할 수 있다. CERT는 그

자체로 이용 가능한 라이브 CD 이미지도 제공한다.

SiLK 라이브 CD에는 LBNL-05라는 훈련용 데이터가 함께 제공되는데, 이는 2005년 로렌스버

클리 국립연구소Lawrence Berkeley National Laboratory (LBNL )에서 제공하는 익명의 헤더 추적 정보다.

라이브 CD를 설치하면 이 데이터에 바로 접근할 수 있다. 데이터는 LBNL-05 참조 데이터 페이

Page 55: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

1015장 SiLK 패키지

지(http://bit.ly/lbnl-ref )에서 따로 내려받을 수도 있다.1

라이브 CD 외에도 홈브루homebrew 등 몇 가지 패키지 관리자도 SiLK를 포함하고 있다.

5.2.1 데이터 파일

LBNL 데이터 파일은 파일 계층 구조에 따라 저장된다. [예제 5-2]는 이 파일을 내려받은 후 압

축을 푼 결과를 보여준다.

예제 5-2 SiLK 압축 파일 풀기

$ gunzip -c SiLK-LBNL-05-noscan.tar

$ gunzip -c SiLK-LBNL-05-scanners.tar

$ cd SiLK-LBNL-05

$ ls

README-S0.txt in out silk.conf

README-S1.txt inweb outweb

$ ls in/2005/01/07/*.01

in/2005/01/07/in-S0_20050107.01 in/2005/01/07/in-S1_20050107.01

SiLK는 수집한 데이터를 트래픽 유형과 이벤트 발생 시각을 기준으로 하위 디렉터리에 나누어

서 저장한다. 이는 규모 확장을 용이하게 하고 분석을 빠르게 한다. 하지만 이는 또한 일반적으

로 블랙박스며, 지금은 이 블랙박스를 쪼개어, 작업에 사용할 몇 개의 파일을 만들려고 한다. 시

연과 교육 차원에서 다음 네 파일을 살펴볼 것이다.

● inweb/2005/01/06/iw-S0_20050106.20

● inweb/2005/01/06/iw-S0_20050106.21

● in/2005/01/07/in-S0_20050107.01

● in/2005/01/07/in-S1_20050107.01

이 파일들에 특별한 의미는 없다. 단지 스캔과 비스캔nonscan 트래픽의 예를 보여주기 위해 선택

했을 뿐이다. 다음에 나오는 데이터를 통해 데이터 분할 방법과 파일 이름의 의미를 설명한다.

1 두 가지 버전의 데이터가 있음을 볼 수 있는데, 하나는 스캐닝 트래픽이 포함되어 있고 다른 것은 없다. 그 이유는 팡(Pang)이 2006년 1월 ACM CCR 36(1)에서 저술한 “악마와 패킷 추적 익명 처리(The Devil and Packet Trace Anonymization)”를 읽어 보면 알 수

있다.

Page 56: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

102 2부 도구

5.3 출력 필드 처리 방식을 선택하고 형식 지정하기: rw cut

SiLK 레코드는 조밀한 이진 형식으로 저장된다. 직접 읽을 수 없는 대신 rwcut이라는 도구를 이

용하여 접근할 수 있다(예제 5-3 ). 앞으로 볼 예제에서 길이가 80자를 넘는 줄은 독자의 편의

를 위해 줄을 나눠서 표시할 것이다.

예제 5-3 rwcut으로 파일 살펴보기

$ rwcut inweb/2005/01/06/iw-S0_20050106.20 | more

sIP| dIP|sPort|dPort|pro| packets| bytes|\

flags| sTime| dur| eTime|sen|

148.19.251.179| 128.3.148.48| 2497| 80| 6| 16| 2631|\

FS PA |2005/01/06T20:01:54.119| 0.246| 2005/01/06T20:01:54.365| ?|

148.19.251.179| 128.3.148.48| 2498| 80| 6| 14| 2159|\

S PA |2005/01/06T20:01:54.160| 0.260| 2005/01/06T20:01:54.420| ?|

...

이처럼 rwcut을 별다른 인수 없이 사용하면 출발지 IP (sIP ), 목적지 IP (dIP ), 출발지 포트

(sPort ), 목적지 포트(dPort ), 프로토콜(pro ), 패킷 수(packets ), 바이트 수(bytes ), TCP

플래그(flags ), 시작 시각(sTime ), 기간(dur ), 종료 시각(eTime ), 흐름 센서(sen ) 등 총 12

개의 필드를 출력한다. 이 중 센서 필드를 제외하고는 2장에서 다룬 바 있다. SiLK는 개별 센서

를 인식하도록 설정할 수 있어서 트래픽이 어디에서 오며 어디로 가는지 파악하는 데 유용하다.

센서 필드는 설정할 때 정해지는 ID다. 기본 데이터에는 센서가 없으므로 값이 물음표(?)로 설

정된다.

모든 SiLK 명령어는 도움말을 내장하고 있다. rwcut --help라고 입력하면 방대한 도움말 페

이지가 나타난다. 여기서는 기본 옵션만 설명한다. 더 자세한 설명은 SiLK의 rwcut 문서를 참고

하기 바란다(http://bit.ly/silk-rwcut ).

rwcut 명령어에서 가장 빈번하게 사용되는 옵션은 출력 필드를 결정하는 --field= 옵션이다.

rwcut으로는 총 29가지 필드를 원하는 순서로 출력할 수 있다. 필드 목록은 [표 5-1]에서 확인

할 수 있다. 이 옵션으로 [표 5-1]의 숫자 ID나 문자열을 명시하면, 그 순서대로 필드를 출력한

다(예제 5-4 ).

Page 57: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

1035장 SiLK 패키지

표 5-1 rwcut 필드

필드 숫자 ID 설명

sIP 1 출발지 IP 주소

dIP 2 목적지 IP 주소

sPort 3 출발지 포트

dPort 4 목적지 포트. ICMP의 경우 ICMP 유형과 코드 값도 이 필드에 인코딩한다.

protocol 5 3계층 프로토콜

packets 6 흐름에 있는 패킷 수

bytes 7 흐름에 있는 바이트 수

flags 8 TCP 플래그의 OR 연산 값

sTime 9 시작 시각(초)

eTime 10 종료 시각(초)

dur 11 기간(eTime - sTime)

sensor 1 2 센서 ID

in 13 라우터에서 들어오는 인터페이스의 SNMP ID

out 14 라우터에서 나가는 인터페이스의 SNMP ID

nhIP 15 다음 홉 주소

sType 16 출발지 주소 분류(내부, 외부)

dType 17 목적지 주소 분류(내부, 외부)

scc 18 출발지 IP의 국가 코드

dcc 19 목적지 IP의 국가 코드

class 20 흐름 분류

type 21 흐름 유형

sTime +msec 22 시작 시각(밀리초)

eTme +msec 23 종료 시각(밀리초)

dur +msec 24 기간(밀리초)

icmpTypeCode 25 ICMP 유형과 코드

intitialFlags 26 첫 TCP 패킷의 플래그

sessionFlags 27 첫 번째를 제외한 모든 패킷의 플래그

attributes 28 생성자generator가 관찰한 흐름의 속성

application 29 흐름의 애플리케이션에 대한 추측 값

예제 5-4 필드 순서 지정 예

$# ‘-’를 이용해서 범위를 지정할 수 있다.

$ rwcut --field=1-5 inweb/2005/01/06/iw-S0_20050106.20 | head -2

sIP| dIP|sPort|dPort|pro|

148.19.251.179| 128.3.148.48| 2497| 80| 6|

Page 58: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

104 2부 도구

$# 범위를 지정하는 ‘-’ 대신 직접 명시할 수 있다.

$ rwcut --field=1,2,3,4,5 inweb/2005/01/06/iw-S0_20050106.20 | head -2

sIP| dIP|sPort|dPort|pro|

148.19.251.179| 128.3.148.48| 2497| 80| 6|

$# 출력 순서를 정할 수 있다.

$ rwcut --field=5,1,2,3,4 inweb/2005/01/06/iw-S0_20050106.20 | head -2

pro| sIP| dIP|sPort|dPort|

6| 148.19.251.179| 128.3.148.48| 2497| 80|

$# 숫자 대신 문자를 사용할 수 있다.

$ rwcut --field=sIP,dIP,proto inweb/2005/01/06/iw-S0_20050106.20 |head -2

sIP| dIP|pro|

148.19.251.179| 128.3.148.48| 6|

rwcut은 출력 양식을 조절하는 옵션도 제공한다. 그중 출력되는 줄을 제어하는 다음 옵션은 특

히 유용하다.

● --no-title

주로 표 형태로 출력하는 SiLK 명령어와 함께 사용된다. 출력 표에서 제목을 생략한다.

● --num-recs

정해진 개수의 레코드만 출력한다. 앞의 예제에서 사용한 head 파이프는 사용할 필요가 없다. 기본값인 0은

읽는 파일의 모든 내용을 출력하게 한다.

● --start-rec-num과 --end-rec-num

파일에서 지정한 범위의 레코드만 가져온다.

[예제 5-5]는 레코드의 개수와 헤더를 다루는 방법을 보여준다.

예제 5-5 레코드의 개수와 헤더 조작하기

$# 제목 생략하기

$ rwcut --field=1-9 --no-title inweb/2005/01/06/iw-S0_20050106.20 | head -5

148.19.251.179| 128.3.148.48| 2497| 80| 6| 16| 2631|FS PA

|2005/01/06T20:01:54.119|

148.19.251.179| 128.3.148.48| 2498| 80| 6| 14| 2159| S PA

|2005/01/06T20:01:54.160|

148.19.251.179| 128.3.148.48| 2498| 80| 6| 2| 80|F A

|2005/01/06T20:07:07.845|

56.71.233.157| 128.3.148.48|48906| 80| 6| 5| 300| S

|2005/01/06T20:01:50.011|

56.96.13.225| 128.3.148.48|50722| 80| 6| 6| 360| S

|2005/01/06T20:02:57.132|

Page 59: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

137

R은 오클랜드 대학교의 로스 이하카Ross Ihaka와 로버트 젠틀맨Robert Gentleman이 개발한 오픈 소

스 통계 분석 패키지다. R은 통계와 데이터 분석에 중점을 두고 개발되었으며 S와 SPSS 같은 상

용 통계 패키지와 관련이 있다. R은 실험적인 데이터 분석을 위한 종합 도구로, 통계 모델링, 데

이터 처리 기능, 시각화, 완전한 기능을 갖춘 프로그래밍 언어 등을 제공한다.

R은 거의 만능 분석 도구다. 분석 작업에는 원시 데이터를 요약할 작은 임시 데이터베이스를 생

성하고 조작하는 도구가 필요하다. 예를 들어 여러 서비스를 운영 중인 특정 호스트로부터 트

래픽의 시간별 요약 정보를 얻었다고 해보자. 이 자료는 원시 데이터에 비해 복잡하여 최종 결과

물을 만들기까지는 분석이 더 필요하다. 전통적으로 이런 분석에는 주로 마이크로소프트의 엑

셀이 사용되었다. 엑셀은 걸러내고 정렬할 수 있는 데이터에 대한 산술 분석, 그래프 그리기, 간

단히 열로 구분하여 보여주기 같은 기능을 제공한다. 분석가들이 엑셀 파일을 신문 스크랩처럼

주고받는 모습도 드물지 않았다.

나는 주로 사용하는 도구를 엑셀에서 R로 바꾸었는데, 대규모 수치 분석에 R이 더 뛰어남을 깨

달았기 때문이었다. 시각적인 모습을 중시하는 엑셀의 특성은 매우 큰 데이터를 다룰 때는 오히

려 단점으로 바뀐다. R은 엑셀보다 뛰어난 표 처리 능력을 바탕으로 저장과 공유가 가능한 작업

공간을 제공한다. 시각화 기능도 강력하며 완전한 기능을 갖춘 스크립트 언어로 빠르게 자동화

할 수 있다. 이 장에서 다룰 내용 중 많은 부분은 엑셀로도 할 수 있지만 R을 배우는 데 투자하는

시간이 절대 아깝지 않을 것이다.

보안 분석가를 위한 R 소개

CHAPTER 6

Page 60: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

138 2부 도구

이 장의 전반부는 R의 프로그래밍 환경을 이용하여 데이터에 접근하고 처리하는 방법에 집중하

고, 후반부는 R을 이용한 통계 테스트 과정을 다룬다.

6.1 설치

R은 잘 관리되고 있는 오픈 소스 프로젝트다. CRANThe Comprehensive R Archive Network (http://cran.

r-project.org )이 윈도우/OS X/리눅스용 최신 바이너리 파일, R 패키지 저장소, 광범위한 문

서 등을 관리하고 있다.

R을 설치하는 가장 쉬운 방법은 자신의 환경에 맞는 바이너리 파일을 홈페이지에서 가져오는 것

이다. 모든 주요 패키지 관리자로도 R을 가져올 수 있다. 이 책에서는 R 고유의 그래픽 인터페

이스를 사용한다고 가정하고 설명하겠다.

여러분에게 익숙한 다른 환경에 어울리는 R 도구들도 준비되어 있다. 예를 들어 RStudio

(http://www.rstudio.com )는 데이터, 프로젝트, 작업 관리 기능을 제공하는 전통적인 형태

의 통합 개발 환경이다. ESSEmacs Speaks Statistics (http://ess.r-project.org )는 이맥스 사용자를

위한 인터렉티브한 환경을 제공한다.

6.2 R 언어 기초

이 절에서는 R 언어에 대한 집중 훈련을 한다. R은 필자가 별로 가르칠 게 없는 풍부한 인터페

이스 언어다. 하지만 이 절이 끝날 즈음엔 간단한 R 프로그램을 작성하고 실행하고 라이브러리

로 저장할 수 있을 것이다.

6.2.1 R 프롬프트

R을 시작하면 R 콘솔 창이 뜨고 명령 프롬프트를 보여준다. [그림 6-1]은 R 콘솔의 모습이다.

보다시피 텍스트 영역이 대부분을 차지하고 상단에는 보조 기능을 제공하는 도구 막대가 있다.

잠시 도구 막대 아래에 있는 두 텍스트 필드를 살펴보자. 첫 번째 필드는 현재 작업 디렉터리를

Page 61: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

1396장 보안 분석가를 위한 R 소개

보여주고, 두 번째는 도움말 검색 기능이다. R은 문서가 잘 작성되어 있으니 이 검색 기능을 이

용하여 익숙해지도록 하자.

그림 6-1 R 콘솔

[그림 6-1]에는 다음과 같이 간단한 명령어 몇 개를 실행한 내용이 보인다.

> s<-'Hi There'

> x<- 3 + 11 + (3 * log(exp(2)))

> print(s)

[1] "Hi There"

> print(x)

[1] 20

R의 명령어 프롬프트는 ‘>’다. 이 문자 다음에 키보드로 명령어를 입력할 수 있다. 명령어가 완성

되지 않은 상태에서(예를 들면 다음처럼 괄호를 열고 닫지 않은 상태에서) 리턴키를 누르면 명

령이 완성될 때까지 명령어 프롬프트가 ‘+’로 바뀐다.

Page 62: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

140 2부 도구

> s<- 3 * (

+ 5 + 11

+ + 2

+ )

> s

[1] 54

R이 값을 반환할 때는 [1]로 시작함을 주목하자. 괄호 안의 값은 배열 색인 값이다. 배열이 여러

줄에 걸쳐 출력되면, 이 값이 해당 색인 값으로 출력될 것이다.

> s<-seq(1,20)

> s

[1] 1 2 3 4 5 6 7 8 9 10 11 12

[13] 13 14 15 16 17 18 19 20

도움말은 ‘help (단어)’ 또는 ‘?단어’ 형태로 접근할 수 있다. 도움말을 검색하려면 help.

search( ) 또는 ??를 사용하면 된다.

R을 종료하려면 화면 상단의 전원 스위치 아이콘을 클릭하거나 종료 단축키(윈도우와 리눅스에

서는 Ctrl-Q, OS X에서는 Command-Q )를 누르면 된다. 명령줄에서 사용 중이라면 프롬프

트에서 Ctrl-D를 누르거나 q( )를 입력해서 세션을 종료할 수 있다.

R은 종료될 때 작업공간을 저장할지 여부를 묻는다. 다음 세션을 시작할 때 이 작업공간을 다

시 불러들여 이전 종료 시점에 진행하던 작업을 이어서 진행할 수 있다.

6.2.2 R 변수

R은 스칼라 정수, 문자 데이터(문자열), 부울값, 부동소수점값, 벡터, 매트릭스, 리스트 등 다

양한 데이터 유형을 지원한다. 다음 예에서 보듯이 스칼라 유형은 ‘<-’(가져오다), ‘=’, ‘->’ 등의

연산자로 값을 설정할 수 있다. R은 대입 연산자에 복잡한 범위 설정 기능도 지원하며, 우리 목

적(그리고 거의 모든 R 프로그램)을 위해 R 스타일 안내서에서는 ‘=’ 대신 ‘<-’ 연산자를 사용

하도록 권하고 있다.

> # 값을 곧바로 대입한다.

> a<-1

> b<-1.0

> c<-'A String'

> d<-T

Page 63: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

1416장 보안 분석가를 위한 R 소개

> # e에 d를 대입한다.

> e<-d

> e

[1] TRUE

> d

[1] TRUE

> # d에 다른 값을 대입하면, d는 바뀌지만 e는 그대로임을 볼 수 있다.

> d<-2

> d

[1] 2

> e

[1] TRUE

R 벡터는 같은 유형(문자, 논리값, 문자열)의 값 한 개 이상을 가진 순서가 있는 집합이다. 벡터

는 c( ) 함수 등을 이용하여 생성할 수 있다. 벡터는 R에서 가장 많이 사용되는 요소다. 조금 전

에 사용했던 스칼라 값은 기술적으로 보면 길이가 1인 벡터다.1

> # 정수 벡터의 예

> int.vec<-c(1,2,3,4,5)

> int.vec

[1] 1 2 3 4 5

> # 필요한 만큼 부동소수점수가 정수로 형변환되거나

> # 정수가 부동소수점수로 형변환된다.

> float.vec<-c(1,2.0,3)

> float.vec

[1] 1 2 3

> float.vec<-c(1,2.45,3)

> float.vec

[1] 1.00 2.45 3.00

> # 벡터는 논리값도 가질 수 있다.

> logical.vec<-c(T,F,F,T)

> logical.vec

[1] TRUE FALSE FALSE TRUE

> # 숫자 벡터에 논리값을 넣으면 정수로 형변환된다.

> mixed.vec<-c(1,2,FALSE,TRUE)

> mixed.vec

[1] 1 2 0 1

> # 문자 벡터는 하나 이상의 문자열로 구성된다.

> # 문자열은 하나의 원소임을 주의하자.

1 밑줄 문자(_) 대신 마침표(.)를 사용한 것에 주의해야 한다. R 이전 언어(S와 S-Plus)에서 이러한 관습이 정해졌고 밑줄 문자를 쓰는 것

이 구문 오류는 아니지만, 대부분의 R 코드는 다른 언어가 밑줄 문자를 쓰는 방식 그대로 마침표를 쓸 것이다.

Page 64: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

www.hanbi t .co.kr

Hanbit eBook Realtime

DRM free!어떤 디바이스에서도 자유롭게

eBook Oriented!전자책에 꼭 맞는 최적의 내용과 디자인

Hanbit eBook

Realtime 70

김세훈 지음

MFC프로그래밍주식분석 프로그램 만들기

이연복 지음

Hanbit eBook

Realtime 49Hanbit eBook

Realtime 89

자바 개발자를 위한

Vert.x애플리케이션 개발

Hanbit eBook

Realtime 49Hanbit eBook

Realtime 92

모바일/웹 메시징STOMP와 MQTT로 개발하는 IoT

모바일/웹 애플리케이션

제프 메스닐 지음 / 조건희 옮김

Mobile and Web Messaging

Hanbit eBook

Realtime 90

JavaScriptPromiseazu지음 /주우영옮김

www.hanbi t .co.kr /ebook

Page 65: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

www.hanbi t .co.kr

전자부품 백과사전 vol.1찰스 플랫 지음 / 배지은 옮김 / 30,000원

취미공학에 필요한 핵심 전자부품을 사전식으로 정리한 안내서.

Zero to Maker: 누구나 메이커가 될 수 있다데이비드 랭 지음 / 장재웅 옮김 / 14,000원

일반인에서 메이커로. 날백수에서 무인 잠

수정 회사 CEO가 된 사나이, 데이비드 랭의 메이커 도전기.

처음 시작하는 센서키모 카르비넨,테로 카르비넨 지음임지순 옮김 / 13,000원

세상을 수치로 읽어내는 부품인 센서를 알려주는 책. 이 책을 통해 자신만의 프로젝트에 다양한 센서를 사용해보자.

프로젝트로 배우는 라즈베리 파이 도날드 노리스 지음 / 임지순 옮김

다양한 실전 프로젝트를 통해 라즈베리 파이를 쉽고 재미있게 배워본다.

Maker Pro 존 베이첼 지음 / 가격미정

메이커라면 반드시 읽어야 할 필수 계발서. 프로 메이커들과의 인터뷰 및 에세이 수록.

Make: 센서 키모 카르비넨, 테로 카르비넨, 빌 발토카리 지음 / 가격미정

필수 전자부품인 센서를 마이크로 컨트롤러 보드에 응용하는 방법을 담았다.

전자부품 백과사전 vol.2 찰스 플랫 지음 / 가격미정

<전자부품 백과사전> 시리즈의 두 번째 도서다.

즐거운 상상이 가득! 2015년 화제의 신간

전자부품 백과사전 vol.1찰스 플랫 지음 / 배지은 옮김 / 30,000원

취미공학에 필요한 핵심 전자부품을 사전식으로 정리한 안내서.

Zero to Maker: 누구나 메이커가 될 수 있다데이비드 랭 지음 / 장재웅 옮김 / 14,000원

일반인에서 메이커로. 날백수에서 무인 잠

수정 회사 CEO가 된 사나이, 데이비드 랭의 메이커 도전기.

처음 시작하는 센서키모 카르비넨,테로 카르비넨 지음임지순 옮김 / 13,000원

세상을 수치로 읽어내는 부품인 센서를 알려주는 책. 이 책을 통해 자신만의 프로젝트에 다양한 센서를 사용해보자.

프로젝트로 배우는 라즈베리 파이 도날드 노리스 지음 / 임지순 옮김

다양한 실전 프로젝트를 통해 라즈베리 파이를 쉽고 재미있게 배워본다.

Maker Pro 존 베이첼 지음 / 가격미정

메이커라면 반드시 읽어야 할 필수 계발서. 프로 메이커들과의 인터뷰 및 에세이 수록.

Make: 센서 키모 카르비넨, 테로 카르비넨, 빌 발토카리 지음 / 가격미정

필수 전자부품인 센서를 마이크로 컨트롤러 보드에 응용하는 방법을 담았다.

전자부품 백과사전 vol.2 찰스 플랫 지음 / 가격미정

<전자부품 백과사전> 시리즈의 두 번째 도서다.

즐거운 상상이 가득! 2015년 화제의 신간

Page 66: 『데이터 분석을 통한 네트워크 보안』 - 맛보기

관련 도서

마이

클 콜

린스

지음

문성

건 옮

마이클 콜린스 지음

문성건 옮김

IoT 시대에 맞는 상황 인식형 보안 구축하기

Network Security ThroughData Analysis데이터 분석을 통한 네트워크 보안

모바일 기기의 범람에 IoT까지, 오늘날의 복잡한 네트워크를 보호하려면 전통적인 침입 탐지와 로그 분석만

으로는 충분하지 않다. 이 책에서 보안 전문가인 마이클 콜린스는 점점 더 거대해지는 네트워크에서 트래픽

데이터를 수집, 정리, 분석하는 여러 기법과 도구를 선보인다. 네트워크가 어떻게 이용되는지 이해하고 이를

보호하고 개선하기 위한 조치가 무엇인지 배울 수 있다.

진화하는 네트워크에 대처하는 진보된 보안 기술

예제 소스 http://www.hanbit.co.kr/exam/2258

다양한 도구를 활용하는 방법과 수집한 데이터를 실행 가능한 정보로 통합하는 방법을 자세히 설명하는 책이다.

숙련된 분석가뿐 아니라 주니어 분석가도 이 책이 선보인 응용 분석 기법에 고마워할 것이다.

앙드레 디미노, 조지 워싱턴 대학교 선임 네트워크 보안 엔지니어

성숙해가는 산업 분야에서 네트워크 분석과 포렌식을 다루는 책이 부족하여 아직도 어려움을 겪는다는 사실은

놀랄 만한 일이다. 이 책은 보안 분석이라는 매우 중요한 주제를 밝혀주는 반갑고 유일한 빛이다.

랍비 롭 토머스, Team Cymru CEO

네트워크/보안

정가 30,000원

•네트워크, 호스트, 서비스 센서에서 보안 데이터 얻기

•RDB, 그래프 데이터베이스, 레디스, 하둡에 트래픽 데이터 저장하기

•SiLK, R 등의 도구로 분석 및 시각화하기

•탐구적 데이터 분석으로 이상 현상 탐지하기

•그래프 분석으로 경보와 포렌식 개선하기

•트래픽 양과 행위를 살펴 DDoS와 데이터베이스 급습 검진하기

•네트워크 지도와 장비 목록의 단계별 활용 방법

N e t w o r k S e c u r i t y T h r o u g h D a t a A n a l y s i s