실전 네트워크 보안 모니터링 : 효과적인 네트워크 보안 데이터의 수집,...
Post on 29-Jul-2016
304 views
DESCRIPTION
크리스 샌더스, 제이슨 스미스 지음 | 김창규 옮김 | 강병탁 감수 | 해킹 & 보안 시리즈_007 | ISBN: 9791158390198 | 35,000원 | 2016년 05월 20일 발행 | 552쪽 | 효과적인 네트워크 보안 데이터의 수집, 탐지, 분석TRANSCRIPT
실전 네트워크 보안 모니터링 201 장
NSM의 중요 용어 4
자산(Asset) 4
위협(Threat) 4
취약점(Vulnerability) 5
익스플로잇(Exploit) 5
위험도(Risk) 6
이상 징후(Anomaly) 6
사건(Incident) 6
침입 탐지 6
네트워크 보안 모니터링 7
취약점 중심 대 위협 중심의 방어 10
NSM 사이클: 수집, 탐지, 분석 11
수집 12
탐지 12
분석 13
NSM의 어려움 13
분석가 정의 15
필수 능력 15
분석가의 등급 17
성공 측정 18
Security Onion 22
초기 설치 22
Security Onion 업데이트 24
NSM 서비스 설정 실행 24
Security Onion 테스트 25
결론 27
목차|XXIV
데이터 수집 준비 2802 장
데이터 수집 응용 프레임워크
(ACF; Applied Collection Framework) 29
위협 정의 30
위험도 정량화 32
데이터 피드 선별 33
데이터 정밀화 34
예제 사례: 온라인 쇼핑몰 37
조직의 위협 정의 38
위험도 정량화 39
데이터 피드 선별 40
데이터 정밀화 44
결론 46
센서 플랫폼 4703 장
NSM 데이터 타입 49
전체 패킷 수집 데이터 49
세션 데이터 49
통계 데이터 49
패킷 문자열(PSTR) 데이터 49
로그 데이터 50
경고 데이터 50
센서의 종류 51
수집 전용 센서 51
하프 사이클 52
전체 사이클 탐지 52
센서 하드웨어 53
CPU 54
메모리 55
목차 | XXV
하드디스크 용량 56
네트워크 인터페이스 59
로드 밸런싱: 소켓 출발지 호스트버퍼 요구사항 61
SPAN 포트 대 네트워크 탭 62
센서 운영체제 67
센서 배치 67
적절한 지원 활용 68
네트워크 인그레스/이그레스 위치 68
내부 IP 주소의 시야 확보 70
중요 자산과의 근접성 73
센서의 가시 영역도 제작 74
센서 보호하기 76
운영체제와 소프트웨어 업데이트 77
운영체제 보안 설정 강화 77
인터넷 접속 제한 78
최소한의 소프트웨어 설치 78
VLAN 분할 79
호스트 기반 IDS 79
2단계 인증 79
네트워크 기반 IDS 79
결론 80
세션 데이터 8104 장
플로우 레코드 83
넷플로우 86
IPFIX 87
기타 플로우 타입 87
세션 데이터 수집 88
하드웨어 생성 89
소프트웨어 생성 89
목차|XXVI
목차 | XXVII
SiLK를 이용한 플로우 데이터 수집 및 분석 91
SiLK 포장 도구 모음 91
SiLK 플로우 타입 93
SiLK 분석 도구 모음 94
Security Onion에 SiLK 설치 95
rwfilter를 이용한 플로우 데이터 필터링 95
파이프를 이용한 Rwtools 간의 데이터 전달 97
기타 SiLK 자료 101
Argus를 이용한 플로우 데이터 수집 및 분석 102
솔루션 구조 102
Argus의 기능 103
기본 데이터 추출 103
기타 Argus 자료 105
세션 데이터 저장 시 고려사항 105
결론 108
전체 패킷 수집 데이터 10905 장
Dumpcap 111
Daemonlogger 113
Netsniff-NG 115
FPC 수집 도구 선정 116
FPC 수집 준비 117
저장 공간 고려사항 118
Netsniff-NG와 IFPPS를 이용한
센서 인터페이스의 통신량 계산 119
세션 데이터를 이용한
센서 인터페이스의 통신량 계산 120
FPC 데이터의 저장 용량 줄이기 123
서비스 제거 123
호스트 간의 통신 제거 125
FPC 데이터 유지 관리 127
시간 기준의 데이터 유지 관리 128
용량 기준의 데이터 유지 관리 128
결론 133
패킷 문자열 데이터 13406 장
패킷 문자열 데이터의 정의 135
PSTR 데이터 수집 138
PSTR 데이터의 수동 생성 139
URLSnarf 141
Httpry 142
Justniffer 145
PSTR 데이터 조회 150
로그스태시 150
BASH 도구를 이용한 원시 텍스트 파싱 159
결론 162
탐지 장치, 침해 지표, 시그니처 16307 장
탐지 장치 164
침해 지표와 시그니처 165
호스트와 네트워크의 침해 지표 166
정적 지표 167
가변적 지표 170
지표와 시그니처의 진전 173
시그니처 튜닝 174
정확도 175
중요 지표와 시그니처 표준 176
목차|XXVIII
목차 | XXIX
지표와 시그니처의 관리 177
CSV 파일을 이용한 간단한 지표 및 시그니처 관리 179
지표와 시그니처 프레임워크 184
오픈 IOC 184
STIX 187
결론 189
평판 기반 탐지 19008 장
공개 평판 리스트 191
많이 사용되는 공개 평판 리스트 192
공개 평판 리스트를 사용 시 흔히 발생하는 문제 198
평판 기반 탐지의 자동화 200
BASH 스크립트를 이용한 수동 추출 및 탐지 201
집단 인텔리전스 프레임워크 207
Snort IP 평판 탐지 212
Suricata IP 평판 탐지 214
Bro를 이용한 평판 탐지 217
결론 221
Snort와 Suricata를 이용한 시그니처 기반 탐지 22209 장
Snort 224
Snort 구조 225
Suricata 227
Suricata 구조 228
Security Onion의 IDS 엔진 변경 230
침입 탐지를 위한 Snort와 Suricata의 초기화 230
Snort와 Suricata 설정 233
변수 233
IP 변수 233
룰 세트 정의 237
경고 출력 244
Snort 전처리기 248
NIDS 모드의 추가 명령줄 옵션 249
IDS 룰 251
룰의 구조 252
룰 튜닝 270
Snort와 Suricata 경고 조회 278
Snorby 278
Sguil 279
결론 280
Bro 플랫폼 28110 장
Bro의 기본 개념 282
Bro 실행 284
Bro 로그 285
Bro를 사용한 커스텀 탐지 도구 생성 290
파일 카빙 290
선택적인 파일 추출 293
실시간 네트워크 트래픽에서 파일 추출 295
Bro 코드 패키징 297
설정 옵션 추가 298
Bro를 활용한 “다크넷” 모니터링 300
다크넷 스크립트 확장 308
기본 알림 기능 덮어쓰기 309
더 쉬운 억제, 이메일, 경고 방법 313
Bro 로그에 새로운 필드 추가 314
결론 318
목차|XXX
목차 | XXXI
통계 데이터를 이용한 이상 징후 기반의 탐지 31911 장
SiLK를 이용한 탑 토커(Top Talker) 조회 320
SiLK를 이용한 서비스 발견 324
통계를 활용한 탐지 심화 분석 329
GNUPLOT을 이용한 통계 시각화 333
구글 차트를 이용한 통계 시각화 337
Afterglow를 이용한 통계 시각화 342
결론 348
카나리 허니팟을 이용한 탐지 34912 장
카나리 허니팟 350
허니팟의 종류 351
카나리 허니팟의 설계 구조 353
첫 번째 단계: 흉내낼 장비와 서비스 선정 353
두 번째 단계: 카나리 허니팟 위치 선정 354
세 번째 단계: 경고와 로그 생성 개발 355
허니팟 플랫폼 356
Honeyd 357
Kippo SSH 허니팟 362
Tom’s Honeypot 366
허니독스(Honeydocs) 369
결론 373
패킷 분석 37413 장
패킷 입문 375
패킷 수학 377
16진수 바이트 이해하기 377
16진수 값을 2진수와 10진수로 변환하기 379
바이트 집계 380
패킷 해부 383
NSM 분석을 위한 TCPDUMP 388
패킷 분석을 위한 TSHARK 393
NSM 분석을 위한 와이어샤크 397
패킷 수집 398
시간 표시 형식 변경 399
수집 요약 400
프로토콜 계층 401
종단점과 대화 402
스트림 따라가기 403
IO 그래프 404
객체 내보내기 405
커스텀 열 추가하기 406
프로토콜 해석 옵션 설정 408
수집과 디스플레이 필터 409
패킷 필터링 410
버클리 패킷 필터(BPF) 411
BPF 구조 411
와이어샤크 디스플레이 필터 415
결론 419
내부 인텔리전스와 위협 인텔리전스 42014 장
NSM을 위한 인텔리전스 사이클 421
요구사항 정의 422
계획 423
수집 423
가공 424
목차|XXXII
목차 | XXXIII
분석 424
전파 425
내부 인텔리전스 생성 425
네트워크 자산 기록과 물리적 상태 426
네트워크 자산 모델 정의 427
수동 실시간 자산 탐지 시스템 431
위협 인텔리전스 생성 438
적대적 호스트 조사 440
적대적인 파일 조사 450
결론 458
분석 절차 45915 장
분석 방법 460
관계적 수사 461
감별 진단 468
분석 방법 구축 477
분석 모범 사례 477
직접 만든 패킷이 아니라면 절대라는 것은
존재하지 않는다 477
데이터 추상화에 대한 경각심 유지 478
백지장도 맞들면 낫다 478
공격자를 절대로 (춤에) 초대하지 말라 479
패킷은 본질적으로 선하다 480
분석에서 와이어샤크의 중요도는
천문학에서 망원경의 중요도 정도일 뿐이다 480
분류와 등급은 든든한 아군이다 480
10의 규칙 482
말발굽 소리가 들리면 말을 찾아라,
얼룩말을 찾지 말고 482
사건 질병 및 사망사례 회의 483
의료 M&M 483
정보 보안 M&M 484
M&M 소집 시기 484
결론 489
Security Onion 제어 스크립트 490부록 01상위 명령어 491
nsm 491
nsm_all_del 491
nsm_all_del_quick 491
서버 제어 명령어 492
nsm_server 492
nsm_server_add 492
nsm_server_backup-config 492
nsm_server_backup-data 492
nsm_server_clear 492
nsm_server_del 493
nsm_server_edit 493
nsm_server_ps-status 493
nsm_server_ps-start 493
nsm_server_ps-stop 493
nsm_server_ps-restart 494
nsm_server_sensor-add 494
nsm_server_sensor-del 494
nsm_server_user-add 494
센서 제어 명령어 495
nsm_sensor 495
nsm_sensor_add 495
nsm_sensor_backup-config 495
목차|XXXIV
목차 | XXXV
nsm_sensor_backup-data 495
nsm_sensor_clean 495
nsm_sensor_clear 496
nsm_sensor_del 496
nsm_sensor_edit 496
nsm_sensor_ps-daily-restart 496
nsm_sensor_ps-status 497
nsm_sensor_ps-start 497
nsm_sensor_ps-stop 497
nsm_sensor_ps-restart 498
rule-update 498
Security Onion의 중요 파일과 디렉터리 499부록 02
애플리케이션 디렉터리와 설정 파일 500
Security Onion 500
Snort/Suricata 500
PulledPork 501
PRADS 501
Bro 501
ELSA 501
Snorby 502
Syslog-NG 502
Sguil 502
센서 데이터 디렉터리 502
패킷 헤더 503부록 03
10진수/16진수 /아스키 변환표 510부록 04
서문 | XI
저자는 악당 잡는 일을 좋아한다. 아주 어렸을 때부터 악당 잡는 놀이를 가장 좋아했다.
수건을 목에 망토로 두르고 뛰어놀 때도, 어릴 적 친구들과 경찰과 도둑 놀이를 할 때도
악당을 잡고 정의를 실현하는 스릴이 가장 즐거웠다. 하지만 아무리 노력해도 마음속의
분노를 초록색 거인으로 변신하는 능력으로 발전시키지 못했고, 아무리 거미에게 물려봐도
손목에서 거미줄을 쏘는 능력은 생기지 않았다. 그리고 경찰 쪽과 어울리지 않는다는 점도
빨리 깨달았다. 이러한 현실을 이해하고 나니 배트맨의 멋진 무기와 배트복을 만들어 입기에는
터무니없이 돈이 부족하다는 사실도 알게 됐고, 결국 저자의 관심은 컴퓨터로 향하게 됐다.
수년 후, 저자는 어릴적 꿈이었던 악당 잡는 일을 하게 됐지만 처음 생각했던 것과는 매우 다른
일을 하고 있다.
저자는 네트워크 보안 모니터링(NSM; Network Security Monitoring)을 통해 악당을 잡고
있다. 이 책의 주제 역시 네트워크 보안 모니터링이다. NSM은 예방 작업이 언젠가는 실패할
것이라는 개념을 전제로 한다. 즉, 우리가 아무리 많은 시간을 네트워크 보호에 투자해도
언젠가는 악당이 이기는 순간이 온다는 뜻이다. 그리고 그때가 오면 우리는 조직적, 기술적
준비를 바탕으로 침입자의 존재를 탐지하고, 빠른 대응을 통해 최소한의 피해로 악당을
몰아내야 한다.
“어떻게 네트워크 내의 나쁜 것을 찾아낼 수 있나요?”
NSM은 보통 이 질문에서 시작된다. 이 질문 때문에 저자는 NSM에 종사한다고 말하며
직업으로 NSM을 행하는 사람을 “NSM 종사자(practitioner)”라고 부른다.
과학자들이 전문직 종사자라고 불리는 이유도 과학을 하나의 학문으로서 진화시키기
때문이다. 멀지 않은 1980년대만 해도 의학계는 우유가 위궤양에 적합한 치료제라고 믿었다.
시간이 지나면서 위궤양의 원인이 헬리코박터(pylori)라고 하는 박테리아이고 유제품이
서문|XII
오히려 위궤양에 자극을 줄 수 있다는 사실을 발견했다. 우리는 일반적으로 과학적인 사실은
변하지 않는 진실처럼 인식하고 있지만 이것은 사실과 다르다. 모든 과학적 지식은 그 시대에
존재하는 최고의 데이터와 경험을 토대로 한 추측(가설)을 바탕으로 이뤄져 있다. 시간이
지나고 더 많은 데이터를 통해 우리가 맞다고 생각했던 답은 변하고 한때 진실로 받아들였던
사실들이 재정리된다. 이러한 과정이 의학계의 의사에게 적용되듯이 NSM 종사자에게도
적용된다.
안타깝게도 저자가 NSM을 시작했을 때는 이 주제에 관한 정보가 많지 않았다. 솔직히 말하면
지금도 많지 않다. 업계의 선두주자들이 가끔 올리는 블로그 글과 몇 권의 서적을 제외하면
대부분의 사람들은 각자 경험을 통해서 배워야 하는 것이 현실이다. 방금 한 말에 대해 오해가
생기지 않도록 한 가지 중요한 오해를 짚고 넘어가야 할 것 같다. 다양한 기술을 주제로 한
책들은 많다. TCP/IP에 대한 책들, 패킷 분석, 다양한 침입 탐지 시스템(IDS)에 대한 책은
수없이 많다. 이러한 책에서 제공하는 개념은 중요하지만 NSM을 하나의 “분야”이라고 봤을
때는 그저 NSM의 일부분일 뿐이다. 비유를 하자면 렌치에 대한 책을 통해 자동차 시동이 안
걸리는 문제를 진단할 수 있다고 말하는 것과 같다.
이 책은 NSM 종사자를 위한 책이다. NSM에서 활용하는 도구를 소개하는 책이 아니라
NSM을 실행하는 절차(프로세스)를 설명하고 다양한 도구와 개념을 어떻게 활용하는지
설명한다.
서문 | XIII
대상 독자
이 책은 NSM을 수행하는 분석가가 되는 방법을 설명한다. 새로운 분석가들을 교육하는
일이 저자의 일상 업무 중 하나이기 때문에 이 책은 다수를 대상으로 한 교재일뿐더러 교육
프로그램의 교재로도 충분히 사용될 수 있다. 독자가 이 책을 처음부터 끝까지 읽고 나면
훌륭한 NSM 분석가의 기본 개념을 모두 이해한 상태가 되기를 기대하면서 책을 준비했다.
독자가 이미 분석 업무를 하고 있는 사람이라면 이미 하고 있는 업무를 더 효과적으로 수행할
수 있도록 분석 기술을 키울 수 있는 기반이 되기를 희망한다. 저자는 이 책에서 다룬 내용과
기술을 바탕으로 능력을 키워서 유능한 분석가에서 대단한 분석가로 성장한 사람들과 함께
일해왔다. NSM을 효과적으로 수행하려면 여러 도구를 상당한 수준으로 능숙하게 다룰 수
있어야 한다. 이 책은 분석가의 시각에 집중해서 여러 도구들을 다룰 예정이다. Snort IDS나
SiLK 분석 도구에 대해 설명할 때는 설치 작업이나 유지보수 업무에 대해서는 상세하게
설명하지 않았다. 나중에 시간이 되면 관련 작업에 대한 참고 자료를 제공할 예정이다.
그리고 이 책에서 다루는 모든 도구는 무료이고 오픈소스 도구다. 오픈소스 도구에 집중한
이유는 NetWitness나 Arcsight 같은 상용 분석 도구를 구입하기에 예산이 부족한 대다수를
위해서만이 아니라 오픈소스 도구에서만 얻을 수 있는 고유의 장점을 보여주기 위해서다.
분석가들이 설계한 도구를 통해 어떻게 데이터를 사용하는지 좀 더 투명하게 관찰할 수 있다.
준비사항
보편적으로 가장 뛰어난 NSM 분석가들은 보안 분야의 업무를 시작하기 전에 다른 IT 분야의
경험을 가진 경우가 많다. 예를 들어, 시스템 운영이나 네트워크 관리처럼 분석가에게 필요한
다른 중요 기술들을 사전에 배웠기 때문이다. 이런 경험이 없는 독자를 위해 저자가 읽었던
책 가운데 분석가에게 정말 중요하다고 느낀 기술을 다룬 서적을 정리했다. 이 책을 쓰면서
가급적 높은 사전 지식이 필요하지 않도록 최대한 노력했지만 관심과 여유가 있는 독자에게는
아래의 책들을 보충 서적으로 적극 추천한다.
TCP/IP Illustrated, Vol 1, Second Edition: The Protocols by Kevin Fall and Dr. Richard Stevens (Addison
Wesley 2011)1
TCP/IP에 대한 개념 이해는 효과적인 NSM을 위해 가장 중요한 기술 중 하나다. 고인이 되신
리처드 스티븐스(Richard Stevens)의 고전이라 할 수 있는 책을 케빈 폴(Kevin Fall)이
나중에 추가된 프로토콜, 표준, 모범 사례, IPv6 등의 내용을 더해서 출간했다.
The Tao of Network Security Monitoring, by Richard Bejtlich (Addison Wesley, 2004)
리처드 베이트릭(Richard Bejtlich)은 NSM의 중요 개념들을 확립하는 데 크게 기여했다.
실제로 그의 책과 블로그 글을 이 책에서도 자주 인용했다. 리처드의 책이 출간된 지 10년
가까이 됐지만, 많은 내용이 지금까지도 NSM에 유용한 정보로 사용되고 있다.
Practical Packet Analysis, by Chris Sanders (No Starch Press, 2010)2
저자의 책을 직접 추천하기는 부끄럽지만 스티븐스 박사님의 책이 TCP/IP에 대한 심층적인
교재라면 PPA는 와이어샤크를 활용한 실전적인 패킷 분석에 대한 책이다. 이 책에서도 패킷에
대해 다룰 예정이지만 패킷 분석을 처음 접해보는 독자라면 PPA를 입문서로 추천한다.
Counter Hack Reloaded, by Ed Skoudis and Tom Liston (Prentice Hall, 2006)
저자는 항상 이 책을 최고의 기본 보안 서적 중 하나로 생각해왔다. 경험과 관계없이
누구에게나 추천할 수 있는 책이며, 보안 분야에 경험이 없는 독자라면 꼭 『Counter Hack
Reloaded』를 읽어볼 것을 권장한다.
1 한국어판: 『TCP/IP Illustrated, Volume 1, Second Edition 한국어판』(에이콘출판사, 2013)
2 한국어판: 『와이어샤크를 활용한 실전 패킷 분석』(에이콘출판사, 2012)
서문|XIV
서문 | XV
개념과 접근법
실전 NSM은 크게 수집, 탐지, 분석으로 나눠져 있다. 이 책은 이 세 가지 부분에 해당하는
도구와 기술, 절차로 구성돼 있다. 저자는 켄터키 출신의 단순한 시골 소년이기 때문에 최대한
간단 명료하게 설명하려고 최선을 다했다. 복잡한 개념은 가능한 한 쉽고 반복할 수 있는
단계로 나눠서 설명했다. 일반화된 개념을 다루는 모든 책들이 그렇듯 이 책에서 다루는
개념들이 모든 예외 상황들을 포괄하지는 않는다. 저자가 책에서 추천하는 방식은 여러 조사와
경험, 그리고 개인적인 의견을 모아서 만든 이론이기 때문에 독자가 직접 진행하는 조사나
경험으로 다른 결론에 도달할 수도 있다. 물론 그렇다고 해도 전혀 문제는 없다. NSM은
하나의 커다란 분야이기 때문이다.
1장: 실전 네트워크 보안 모니터링
첫 번째 장에서는 네트워크 보안 모니터링의 정의와 근대 보안 상황에서의 필요성을
이야기한다. 이 책에서 사용하는 핵심 용어와 전제 조건에 대해 설명한다.
1부: 수집
2장: 데이터 수집 준비
수집 섹션의 첫 번째 장은 데이터 수집과 그 중요성에 대한 개요다. 2장에서는 위험도(Risk)를
기반으로 수집해야 할 데이터를 선택하는 데 필요한 응용 수집 프레임워크(Applied
Collection Framework)를 소개한다.
3장: 센서 플랫폼
3장은 NSM 배포에서 가장 중요한 하드웨어인 센서를 소개한다. 먼저 다양한 NSM 데이터와
센서의 종류를 살펴보고, 센서를 구입하고 배포할 때 중요한 고려 사항을 다룬다. 마지막으로
네트워크에 NSM 센서의 배치 위치와 분석가를 위한 네트워크 시각화 지도를 만드는 방법에
대한 기초적인 내용을 설명한다.
4장: 세션 데이터
4장에서는 세션 데이터의 중요성과 넷플로우(NetFlow) 데이터를 생성하기 위한 SiLK 도구
모음에 대해 자세히 살펴본다. 세션 데이터 수집 및 파싱 도구인 Argus 도구 모음도 간략하게
소개한다.
5장: 전체 패킷 수집 데이터(Full Packet Capture Data)
5장은 전체 패킷 수집 데이터의 중요성에 대한 전반적인 설명으로 시작한다. PCAP 데이터로
전체 패킷 수집을 하는 Netsniff-NG, Daemonlogger, Dumpcap과 같은 도구를 살펴보고
FPC 데이터를 저장하고 관리하기 위한 여러 고려사항과 저장하는 데이터의 양을 줄일 수 있는
방법도 논의한다.
6장: 패킷 문자열 데이터(Packet String Data)
6장에서는 패킷 문자열(PSTR) 데이터에 대한 기본 개념과 NSM 분석 과정에서 어떻게
유용하게 사용되는지 설명한다. PSTR를 생성하는 Httpry와 Justniffer 같은 도구로 데이터를
생성하는 방법을 살펴보고 PSTR 데이터를 조회하고 파싱할 수 있는 Logstash와 Kibana
같은 도구도 함께 살펴본다.
서문|XVI
서문 | XVII
2부: 탐지
7장: 탐지 장치와 침해 징후 지표(Indicator of Compromise) 및 시그니처
(Signature)
7장에서는 탐지 장치와 침해 징후 지표(IOC) 간의 관계를 살펴보고, IOC를 논리적으로
관리하고 NSM 프로그램에 활용할 수 있는 방법을 설명한다. 지표를 분류할 수 있는 시스템과
다양한 탐지 장치에 배포된 지표의 정확도를 계산하고 추척할 수 있는 측정 기준도 함께
제공한다. 그리고 IOC의 두 가지 형식인 OpenIOC와 STIX도 살펴본다.
8장: 평판 기반 탐지(Reputation-Based Detection)
가장 먼저 소개할 탐지 방식은 평판 기반의 탐지다. 평판 기반 탐지의 기본적인 철학과 장비의
평판을 확인할 수 있는 다양한 소스를 살펴본다. 그리고 이 과정을 간단한 BASH 스크립트나
Snort, Suricata, CIF 또는 Bro를 사용해 자동화하는 방법을 설명한다.
9장: Snort와 Suricata의 시그니처 기반 탐지
가장 전통적인 침입 탐지는 시그니처 기반 탐지다. 9장에서는 시그니처 탐지의 기본 설명과
침입 탐지 시스템인 Snort와 Suricata의 사용법을 설명한다. 그리고 각 시스템의 사용법과
IDS 시그니처를 생성하는 방법도 설명한다.
10장: Bro 플랫폼
10장에서는 이상 징후(anomaly) 기반 탐지로 가장 유명한 솔루션 중 하나인 Bro를
소개한다. Bro의 구조와 Bro 언어, 그리고 여러 실용적인 사례를 들어 IDS이자 네트워크
로깅 엔진으로서 매우 강력한 Bro의 기능을 설명한다.
11장: 통계 데이터를 활용한 이상 징후 기반 탐지
11장에서는 통계를 사용해 네트워크의 이상 징후를 찾는 방법을 소개한다. Rwstats와
rwcount 같은 여러 넷플로우 도구에 집중하고 Gnuplot과 구글 차트 API를 사용해 통계를
시각화하는 방법도 소개한다. 다양한 실용적인 사례를 통해 NSM 데이터로 생성할 수 있는
유용한 통계 데이터를 설명한다.
12장: 탐지 용도의 카나리 허니팟(Honeypot)
기존에는 연구 목적으로만 사용됐지만 카나리 허니팟은 효과적인 탐지 도구로도 사용할 수
있다. 12장에서는 다양한 허니팟에 대한 설명과 NSM 환경에서 허니팟을 활용하는 방법을
소개한다. Honeyd, Kippo, Tom’s Honeypot 등 여러 유명한 허니팟 애플리케이션을
살펴보고 간략하게 Honeydocs의 개념도 설명한다.
3부: 분석
13장: 패킷 분석
NSM 분석가에게 가장 중요한 능력은 네트워크 통신의 패킷 데이터를 해석하고 해독하는
능력이다. 분석가는 근본적으로 패킷이 어떻게 구성돼 있는지 이해할 수 있어야 한다.
13장에서는 패킷에 대한 기본적인 지식과 패킷의 필드를 바이트별로 분해하는 방법을
제공한다. tcpdump와 와이어샤크를 이용해 분석하고 고차원의 패킷 필터링 기술인 버클리
패킷 필터(Berkeley Packet Filters)와 와이어샤크(Wireshark) 디스플레이 필터도
설명한다.
서문|XVIII
서문 | XIX
14장: 내부와 위협 인텔리전스(Friendly and Threat Intelligence)
내부 시스템과 위협적인 외부 시스템에 대한 인텔리전스를 생성하는 능력은 사고 조사의
성공을 좌우할 수 있다. 14장에서는 전통적인 인텔리전스 사이클에 대한 소개와 NSM 분석
인텔리전스와의 연관성을 설명한다. 다음으로 PRADS 데이터와 네트워크 스캔을 통해 내부
자산 데이터를 생성하고 내부 인텔리전스를 생성하는 방법을 살펴보고, 마지막으로 위협
인텔리전스의 종류와 전술적 위협 인텔리전스로 위협적일 가능성이 있는 호스트를 조사하는
방법을 살펴본다.
15장: 분석 절차
마지막 장에서는 전반적인 분석 절차를 설명한다. 먼저 분석 절차에 대한 논의로 시작해
두 가지 각기 다른 분석 절차인 연관성 조사(relational investigation)와 차별성
진단(differential diagnosis)을 예를 통해 설명한다. 그리고 사건에 대한 질병 및 사망
사례(Morbidity and Mortality) 검토를 통해 얻은 교훈을 논의하고 마지막으로 여러 분석
모범 사례를 살펴보면서 책을 마칠 것이다.
IP 주소에 대한 안내(IP ADDRESS DISCLAIMER)
이 책의 여러 예제에서 IP 주소를 원시 데이터 형태와 스크린샷 형태로 표시하고 있다. 특별히
명시하지 않는 한, 대부분의 경우 IP 주소는 다양한 도구를 통해 임의로 설정했다. 만약 공개
IP 주소가 언급된 곳이 있다면 순수한 우연일 뿐이고 실제로 발생한 트래픽을 의미하지는
않는다.
부록 웹 사이트
이 책에 담고 싶었지만 지면상 담을 수 없었던 정보가 상당히 많다. 결국 저자는 부록 웹
사이트를 만들어서 다양한 NSM 주제에 대한 생각과 코드 조각, 팁을 제공하고 있다. 이 책을
읽는 동안 http://www.appliednsm.com을 참고하기 바란다. 책을 쓰는 동안에는 새로운
내용이 많지 않았지만 책이 출간된 후에는 꾸준히 이 블로그에 정보를 올릴 예정이다. 이 책의
오탈자에 대한 내용도 웹 사이트에서 확인할 수 있을 것이다.
자선 단체 지원
저자는 기쁜 마음으로 저자 인세 100%를 다음 5곳의 특별한 자선 단체에 기부할 것이다.
Rural Technology Fund
농촌 학생들은 좋은 성적에도 불구하고 도시 근교에 사는 학생에 비해 기술을 접할 기회가
상대적으로 적다. 저자인 크리스 샌더스는 2008년에 Rural Technology Fund를 시작했고,
RTF는 농촌과 도시 사이의 디지털 격차를 줄이는 것을 목표로 하고 있다. RTF는 선별적
장학 프로그램, 커뮤니티, 그리고 농촌의 전반적인 기술 도입에 힘쓰고 있다. 장학금은 농촌
지역에 사는 학생 중 컴퓨터 기술에 열정이 있고 향후 컴퓨터 분야로 진학하려는 학생을
대상으로 하고 있다. 책의 인세 중 일부는 장학 프로그램에 쓰일 것이며, 농촌 학교에 라즈베리
파이(Raspberry Pi)를 보급하는 데 쓰일 것이다.
더 자세한 정보는 http://www.ruraltechfund.org를 참고한다.
서문|XX
서문 | XXI
Hackers for Charity
조니 롱(Johnny Long)이 설립한 HFC는 자원 봉사 해커들(모두가 가능)을 통해 전통적인
기술 자원을 구입할 여력이 없는 자선 단체들을 돕는 목적의 “마이크로 프로젝트”를 진행한다.
또 HFC는 우간다, 동아프리카에 사는 세계에서 가장 가난한 시민들을 돕는 일에도 참여한다.
무료 컴퓨터 교육과 기술 지원, 네트워크 등 다양한 서비스를 제공한다. 그리고 현지 학교에
여러 컴퓨터와 교육 소프트웨어도 제공했다. HFC는 동아프리카 어린이들에게 음식도
제공하고 있다.
더 자세한 정보는 http://www.hackersforcharity.org를 참고한다.
Kiva
Kiva는 개발도상국 사람들에게 직접 돈을 기부할 수 있도록 여러 현지 회사를 통해 돈을
대출하는 최초의 온라인 플랫폼이다. Kiva는 돈을 요청하는 각 개인의 이야기를 포함해서
기부자가 직접 연락이 가능하게 한다. 간단하게 말하면 Kiva는 누군가의 인생을 바꿀 수 있는
대출을 쉽게 해준다. 이 책의 수익금 중 일부는 이러한 대출에 사용될 것이다.
더 자세한 정보는 http://www.kiva.org를 참고한다.
Hope for the WarriorsⓇ
Hope for the Warriors의 사명은 9/11 테러에서 심리적으로나 물리적인 상처를 받은
공무원들, 피해를 입은 사람들과 가족들의 삶의 질을 개선하는 것이다. Hope for the
Warriors는 자존감을 되살리고 가족을 다시 뭉칠 수 있게 하며 군인 가정과 구조 활동에
참여한 공무원들에게 희망을 주기 위해 활동한다.
실전 네트워크 보안 모니터링
01
NSM의 중요 용어
침입 탐지
네트워크 보안 모니터링
취약점 중심 대 위협 중심의 방어
NSM 사이클: 수집, 탐지, 분석
NSM의 어려움
분석가 정의
Security Onion
01 _ 실전 네트워크 보안 모니터링 3
인터넷에 연결된 시스템의 보안 실정을 바라보면 개척 시대의 미국 서부가 떠오른다. 당시 미국 서부는
미국인들에게 다양한 상징적인 의미를 가지고 있었다. 아직 개발되지 않은 자원의 보고이자 기회의
땅이었던 서부로 점점 더 많은 사람들이 이동했고, 개인들과 가족 단위의 공동체들이 형성되어 부를
이뤘다. 성공과 부에는 항상 그렇듯 범죄가 뒤따랐고, 마을들은 서로 멀리 떨어진 채 각자 안전을
책임져야 했다. 각 마을 간의 연락과 협력 체계가 없다 보니 무법자들이 마을을 떠돌면서 강도와
약탈을 해도 운 나쁘게 마을 보안관의 총에 맞지 않는 한 잡히는 일은 거의 없었다.
현재의 인터넷 세상은 그 당시와 크게 다르지 않다. 인터넷은 과거의 서부처럼 아직 개발되지 않은
기회의 땅으로서, 도메인 이름과 약간의 노력만 투자하면 누구나 아메리칸 드림을 이룰 수 있는
곳을 의미한다. 하지만 서부 시대처럼 인터넷에도 무법자들은 존재한다. 서부에는 은행강도와 기차
납치범이 있었다면 인터넷에는 봇넷(Botnet) 마스터와 클릭 재커(click jacker)들이 도사리고 있다.
그리고 당시 각 마을을 직접 지키던 시절처럼 인터넷은 전 세계에서 공격이 들어오지만 각 국가마다,
더 작게는 각 주 단위로 자체 보안과 법률 준수를 위해 대응하고 있다.
서부 시대 문제의 핵심은 범죄자들은 조직적으로 행동했지만 법을 집행하는 쪽은 그렇지 못했다는
점이다. 컴퓨터 보안 분야가 지난 10년 동안 눈부시게 발전했지만 전 세계적으로 보면 아직도
방어하는 입장인 우리는 이미 전 세계적인 단위로 운영되는 범죄 조직의 규모와 네트워크를 따라 잡기
바쁘다. 그리고 이 문제가 단기에 해결될 수 없다는 점이 더욱 안타깝다.
이런 현실에서는 결국 개개인이 최전선에서 할 수 있는 모든 수단과 방법을 다해서 각자의 네트워크와
데이터를 지키기 위해 고군분투할 수밖에 없다. 저자는 범죄자들로부터 네트워크와 데이터를 지키기
위한 가장 효과적인 방법이 네트워크 보안 모니터링(NSM; Network Security Monitoring)이라고
믿는다.
NSM은 네트워크 보안 데이터의 수집, 탐지, 분석 과정을 의미한다. 전통적으로 정보 보호 분야는 여러
전문 분야로 나눠져 있지만 저자는 미국 국방부의 컴퓨터 네트워크 보호 범위(DoD 8500.21)에서
정의한 분류 기준을 선호한다.
보호: 보호 범위는 취약점 악용과 침입을 예방하기 위한 시스템 보호 분야에 집중한다. 보통 보호
범위에 포함되는 기능은 취약성 검사, 위험 평가, 안티 맬웨어(Anti-Malware) 관리, 보안 인식 교육,
기타 인증 관련 업무다.
1 미국 국방부 지침 8500.2, 정보 보증(IA; Information Assurance) 구현(2003년 2월 6일) - http://www.dtic.mil/whs/directives/corres/
pdf/850002p.pdf
4 실전 네트워크 보안 모니터링
탐지: 탐지 범위는 과거에 발생했거나 현재 진행 중인 침해 사고를 탐지하는 데 집중한다. 관련
기능으로 네트워크 모니터링, 공격 탐지 및 경고 등이 있다.
대응: 세 번째 범위는 침해사고가 발생한 후 대응 작업에 집중한다. 관련 기능으로 침해 사고
봉쇄(containment), 네트워크와 호스트 기반 포렌식, 악성코드 분석, 침해 사고 보고가 있다.
지속: 컴퓨터 네트워크 보호의 마지막 범위는 인력 관리, 프로세스(절차), CND(Computer Network
Defense) 관련 기술 관리다. 관련 기능으로 계약, 인력 보충과 교육, 기술 개발 및 구현, 지원 시스템
관리가 있다.
이미 눈치챘겠지만 이 책에서는 탐지를 중점적으로 다룰 예정이다. 하지만 NSM을 잘 수행한 효과는
CND의 모든 범위에 영향을 줄 것이다.
NSM의 중요 용어
시작하기에 앞서 이 책에서 자주 사용될 용어를 정의할 필요가 있다. NSM과 네트워크 보안은
상대적으로 새로운 과학이라서 사용되는 용어의 공통적이면서 특화된 정의를 찾기가 어렵다. 저자가
선택한 참고 자료는 US 국방부 문서, CISSP 인증 서적, 그리고 다른 NSM 자료다. 대부분의 경우
의역이 됐거나 출처와 함께 정확하게 인용했다.
자산(Asset)
자산은 조직 내에 값어치가 있는 모든 것이 될 수 있다. 쉽게 수치화할 수 있는 품목으로 컴퓨터, 서버,
네트워크 장비가 있다. 이 밖에도 자산에는 데이터, 사람, 절차, 지적 자산, 평판 등도 있다. 이 책에서
사용하는 “자산”의 의미는 신뢰할 수 있는 네트워크 내의 뭔가를 지칭하는 것이다. 여기에 외부의
분리된 네트워크라도 (정부, 자회사, 피해자 업체 등) 신뢰하는 네트워크는 포함된다. 저자는 자산,
아군, 목표, 피해자, 우호적(asset, good guy, target, victim, and friendly)이라는 용어를 같은
의미로 사용할 것이다.
위협(Threat)
위협은 자산의 취약점을 악용하려는 의도와 능력을 갖춘 단체를 뜻한다. 위협은 상대적이어서
대기업과 개인에 해당하는 위협은 다르고 신흥국과 세계적 강대국의 위협은 각기 다르다. 위협은
01 _ 실전 네트워크 보안 모니터링 5
크게 체계적인 위협과 체계적이지 않은 위협으로 나뉜다. 체계적인 위협은 명확하게 정의된 목표를
위해 정규 전술과 절차를 활용한다. 보통 조직적인 범죄 단체나 핵티비스트(Hacktivist) 그룹, 정부의
인텔리전스 조직, 군사 관련 조직에 해당한다. 체계적인 보통 여러 명의 그룹으로 구성돼 있지만 한
명의 개인이 체계적인 위협으로 간주된 경우도 존재한다. 체계적인 위협은 거의 항상 구체적인 이유나
목적을 위해 선택한 목표를 대상으로 한다.
체계적이지 않은 위협은 체계적인 위협에 비해 기술, 전략, 경험, 또는 의도가 부족한 편이다. 개인이나
느슨하게 연결된 그룹이 대부분 이 같은 위협에 해당한다. 공격의 대상도 보통 가장 공격하기가 쉬워
보이는 곳이 목표가 된다.
위협의 범위나 종류와 상관없이 한 가지 공통점이 있다. 바로 당신에게서 뭔가를 훔치려고 한다는
점이다. 돈이나 지적 자산, 평판, 또는 시간이 될 수 있다. 이 책에서는 위협, 악당, 공격자, 적대적인
대상이라는 표현을 혼용해서 사용할 것이다.
취약점(Vulnerability)
소프트웨어, 하드웨어 또는 절차적 약점의 취약점은 네트워크 자산에 공격자의 인가되지 않은 접근을
허용하는 기회를 제공할 수 있다. 버퍼 오버플로우 공격으로 악용할 수 있는 취약한 코드의 형태가 될
수도 있고 공개적인 장소에 노출돼 있는 네트워크 포트로 물리적인 네트워크 접근의 기회, 또는 잘못
고안한 인증 시스템에서 공격자가 피해자의 사용자 이름을 추측할 수 있는 문제가 될 수 있다. 그리고
사람이 취약점으로 활용될 수 있다는 점도 기억해야 한다.
익스플로잇(Exploit)
익스플로잇은 취약점을 공격하는 방법을 뜻한다. 소프트웨어 익스플로잇이라면 공격자가 원격으로
피해 시스템에 원하는 행동(예: 커맨드 셸을 실행)을 하는 페이로드를 포함한 익스플로잇 코드의
형태가 될 수 있다. 웹 애플리케이션에서는 애플리케이션이 입력과 출력을 처리하는 부분에 존재하는
취약점을 이용해 공격자가 SQL 주입(injection)으로 애플리케이션을 공격할 수 있다. 다른 예로
직원이 출입증 카드로 건물에 들어갈 때 공격자가 재빠르게 뒤따라 들어와 사무실 건물에 침입하는
것도 익스플로잇으로 간주할 수 있다.
6 실전 네트워크 보안 모니터링
위험도(Risk)
위험 관리에 대한 연구는 상당히 많은 편이라서 위험도에 대한 정의는 여러 가지가 있다. NSM과
관련해서 저자가 생각하는 가장 적합한 정의는 위협이 취약점을 익스플로잇할 가능성의 정도다.
대부분의 관리자는 수치화가 가능한 형태의 측정 기준을 원하지만 네트워크와 데이터 자산의 가치를
측정하는 것이 어려운 문제인 만큼 위험도를 수치화하려는 노력도 흔히 큰 성과가 없는 작업이 될
가능성이 높다. 저자는 자산의 위험도가 높아지거나 낮아지는 것에 대한 논의는 자주 하지만 수집
전략을 수립하기 위해 필요한 정도 이상의 위험도 수치화나 계산 방법에 대해서는 깊이 있게 논의하지
않는다.
이상 징후(Anomaly)
이상 징후는 시스템이나 네트워크에서 평소에 관찰된 것과 다른 내용을 의미한다. 이상 징후는 침입
탐지 시스템이나 로그 검토 애플리케이션과 같은 탐지 도구에서 경고를 생성한다. 이상 징후로 간주할
수 있는 사건의 예는 시스템 크래시, 잘못 구성된 패킷, 알려지지 않은 호스트와 수상한 접속, 짧은
시간에 대용량의 데이터가 전송된 경우가 될 수 있다.
사건(Incident)
조사 중이던 이벤트는 사건의 일부로 다시 분류될 수 있다. 사건은 일반적인 보안 절차나 정책에서
허용하지 않은 행위나 컴퓨터 보안 정책을 위배하는 행동이 발생하거나 발생하려는 위협을 말한다.
가장 간단하게 설명하면 사건은 네트워크 내에 무언가 나쁜 일이 일어났거나 아니면 현재 진행
중이라는 의미다. 사건은 루트 차원의 컴퓨터 침해나 단순한 악성코드 설치, 서비스 거부 공격, 피싱
이메일에 포함된 악성코드의 성공적인 실행 등을 포함한다. 여기서 기억해야 할 점은 사건에 하나 또는
여러 이벤트가 포함되지만 대부분의 이벤트는 직접적으로 사건을 의미하지는 않는다는 것이다.
침입 탐지
NSM이라는 용어가 정립되기 전에는 탐지 분야를 간단하게 침입 탐지(intrusion detection)라고
불렀다. NSM은 거의 10년 동안 존재했지만 두 용어는 같은 의미로 사용됐다. 하지만 두 용어는 서로
동의어가 아니다. 침입 탐지는 근대 NSM의 일부분이다. 탐지 분야는 다음과 같은 특징을 가지고 있는
옛 침입 탐지 패러다임을 중심으로 구성돼 있다.
01 _ 실전 네트워크 보안 모니터링 7
취약점 위주의 방어. 공격자가 컴퓨터 네트워크에 침투하는 가장 공통적인 모델은 소프트웨어의
취약점을 익스플로잇하는 방법이다. 이 모델은 워낙 간단하고 명확해서 대부분의 초기 침입 탐지
프로그램은 이 모델을 중심으로 개발됐다. 침입 탐지 시스템(IDS)은 이러한 취약점을 악용하는 사례를
탐지하기 위한 목적으로 배포된다.
수집보다 탐지에 초점. 대부분의 노력은 탐지에 집중된다. 데이터 수집은 이뤄지고 있지만 흔히
집중되지 않았고 수집 전략 또한 탐지 목적에 연결되지 않았다. 수집에 명확한 초점이 부족한 이유는
“데이터가 부족한 것보다는 많은 것이 당연히 더 낫다”와 “일단 모두 수집하고 나중에 정리하자”라는
마인드가 바탕에 깔려 있다.
대부분 시그니처 기반. 소프트웨어 취약점에 대한 익스플로잇은 흔히 고정적인 행동을 기반으로 해서
IDS 시그니처를 개발하는 것이 쉬운 편이다. 따라서 전통적인 침입 탐지는 모든 취약점에 대한 지식을
보유하고 탐지를 위한 시그니처를 개발하는 것에 의존한다.
분석의 완전한 자동화 시도. 단순한 취약점 중심의 침입 탐지 모델은 IDS가 생성하는 대부분의 경고가
평균 이상의 신뢰도로 믿을 수 있다는 생각을 갖게 만든다. 따라서 이 패러다임은 사람이 분석하는
것에 의존도가 매우 낮고 탐지 후 분석을 최대한 자동화하려는 시도가 있었다.
당시에는 어느 정도 성공적이었지만 현재의 보안 실정에서 전통적인 침입 탐지는 더는 효과적이지
않다. 그 실패의 가장 큰 이유는 취약점 중심의 방어에 있다.
이 현상에 대해 베이트릭이 잘 설명한 글이 있다. 예를 들어, 한 동네의 여러 집에 도둑이 든 상황을
생각해보자. 사건에 대응해 경찰은 동네의 다른 집 주변에 철망을 설치하는 대응을 할 수 있다. 또 모든
집에 커다란 강철 문과 창문에 창살을 설치할 수도 있을 것이다. 이런 식의 접근이 바로 취약점 중심의
방어다. 다행히 이런 식으로 대응하는 경찰 얘기는 들어본 적이 없을 것이다. 도둑이 만약 그 동네를
계속 노리고 있고 도둑질을 계속하려고 마음먹었다면 그냥 다른 취약점을 찾을 것이기 때문이다.
네트워크 보안 모니터링
NSM은 전통적으로 가장 방어적인 마인드를 가지고 있는 군대 덕분에 가장 큰 발전을 이뤘다.
군대에서 집중적으로 사용하는 정보 기술과 안정적인 운영의 절대적인 중요성, 그리고 생성하는
데이터의 높은 기밀성을 생각할 때 이는 당연하다고 볼 수 있다.
8 실전 네트워크 보안 모니터링
미국 정보 운영(IO; United States Information Operations)의 원칙 3에서 사령관의 정보 운영
능력은 다음과 같은 목표를 달성해야 한다고 명시돼 있다.
■ 파괴(Destroy): 시스템이나 주체를 심각하게 파괴해서 처음부터 다시 만들지 않고서는 정상적인 기능이나 복원이 될 수 없
게 한다.
■ 방해(Disrupt): 정보의 흐름을 깨거나 막는다.
■ 저하(Degrade): 적의 명령, 제어, 통신 시스템과 정보 수집 능력의 효과나 효율을 저하시킨다. IO는 부대의 사기를 낮추거나
목표의 값어치를 낮추고 적의 결정과 행동의 질을 저하시킬 수 있다.
■ 억제(Deny): 적이 중요한 정보나 시스템, 서비스에 접근할 수 없도록 방지한다.
■ 속임(Deceive): 거짓을 사실로 믿게 만든다. 적대적인 결정자의 인식을 조작해서 잘못된 방향으로 속인다.
■ 익스플로잇(Exploit): 적의 명령과 제어 시스템에 접근해서 정보를 수집하거나 잘못된 정보나 거짓 정보를 심어둔다.
■ 영향(Influence): 아군에 유리한 방식으로 행동하도록 영향을 준다.
■ 보호(Protect): 첩보 활동이나 민감한 장비나 정보를 빼앗기지 않도록 보호한다.
■ 탐지(Detect): 정보 시스템에 발생한 침입의 사실이나 존재를 찾아내거나 탐지한다.
■ 복원(Restore): 정보와 정보 시스템을 원래 상태로 복원한다.
■ 대응(Respond): 적이나 다른 IO 공격과 침입에 빠르게 대응한다.
여러 목표들은 서로 연결돼 있다. NSM의 주요 활동은 빠르게 대응하기 위한 탐지에 초점이
맞춰져 있다. 때에 따라서는 다른 분야의 요소도 포함될 수 있다. 이 책에서는 허니팟을 다룰 때
속임(Deception)과 저하(Degradation)에 대해 어느 정도 다룰 것이다.
IO의 탐지 부분은 미국 국방부의 공격 감지와 경고(AS&W; Attack Sense and Warning) 개념과
흡사하다. AS&W는 컴퓨터에 대한 침입과 공격도 포함한 폭넓은 범위의 대상에서 인가되지 않은
의도적인 활동의 특징을 식별, 탐지, 상관 관계를 분석한 결과를 사령부의 결정권자에게 전달함으로써
적절한 대응 방안이 개발되게 한다. AS&W는 공격과 침입에 대한 인텔리전스 수집과 전파, 제한적인
긴급 대응 제안, 제한적인 잠재적 영향도 분석도 담당한다.
NSM은 탐지 분야의 새로운 패러다임으로 전통적인 침입 탐지와는 크게 다른 특징을 띠고 있다.
예방은 언젠가 실패한다. 방어하는 입장의 사람으로서 받아들이기 힘든 현실 중 하나는 언젠가는
실패한다는 사실이다. 아무리 강력한 방어진을 구축하고 아무리 선제 작업을 실행한다 해도 목적을
01 _ 실전 네트워크 보안 모니터링 9
가진 공격자는 언젠가는 침입할 수 있는 방법을 찾아낼 것이다. 정보 보호 분야를 넘어서 방어하는
사람들의 현실은 항상 따라잡기에 바쁘다는 것이다. 방어자가 튼튼한 벙커를 건설하면 공격자는 더
큰 폭탄을 만들 것이고, 방어자가 방탄 조끼를 입기 시작하면 공격자는 갑옷을 뚫는 총알을 사용할
것이다. 방어자가 기업급 방화벽을 배포하거나 서버에 최신 패치가 적용되도록 작업하면 공격자는
사회공학적 공격으로 네트워크에 침투하거나 제로데이 익스플로잇(Zero-Day Exploit)을 사용해
패치된 서버의 루트 권한을 획득할 것이다. 언젠가는 침해가 발생할 것이라는 점을 인정하면
그때부터는 예방에만 의존하지 않고 탐지와 대응에 별도의 노력을 기울이는 방향으로 생각의 전환이
일어날 것이다. 이 같은 노력은 조직에 실제로 큰 침해가 발생했을 때 긴급히 효과적으로 대응해서
출혈을 막을 수 있는 상태로 만들어 줄 것이다.
수집에 집중. 기존 방식은 존재하는 모든 데이터 소스에서 데이터를 수집하고 중앙 저장소에 던져 넣는
접근법으로 엄청나게 많은 비용이 들고 관리하기가 어려운 상태일 뿐만 아니라 탐지 도구가 데이터의
양에 맞춰 확장하기도 어렵고 데이터는 필요한 데이터 형식으로 존재하지 않기 때문에 실제로는
아무런 가치도 제공하지 못하는 상태다.
약간의 예방이 큰 치료와 맞먹는다는 속담처럼 저자는 약간의 수집이 큰 탐지와 맞먹는다고 망설임
없이 말할 수 있다. 탐지나 분석을 실행하려면 파싱할 수 있는 데이터가 필요하다. 만약 같은 수준의
탐지를 적은 데이터로 실행할 수 있다면 CPU 사이클을 아낄 수 있고 좀 더 효과적인 것으로 볼 수
있다. 더불어 분석가에게 필요한 데이터만 제공할 수 있다면 올바른 결정을 훨씬 더 빨리 내릴 수 있게
할 것이고 작은 침해 사고부터 본격적인 데이터 유출 사례까지 큰 차이를 가져올 수 있다.
순환적 절차. 예전의 침입 탐지 패러다임은 직선적인 절차다. 경고가 발생하면 확인을 하고 필요하면
대응을 하고 작업이 종료된다. 직선적인 절차는 너무 고지식하고 무책임하다. 모든 네트워크 보안
사건을 개별적이고 고립된 상황인 것처럼 전제하고 처리하는 것은 네트워크를 방어하는 목적에
반한다. 일부 침해는 수초 내에 발생하기도 하지만 수준 높은 공격자는 더 천천히 절차적으로 접근하며
공격의 목적을 달생하기 위해 몇 개월씩 시간을 들이기도 한다.
보안 사건을 개별적으로 고립해서 처리하는 방식에서 벗어나려면 침입 탐지와 대응 절차가
순환적이어야 한다. 즉, 수집, 탐지, 분석, 그리고 다시 수집 작업으로 데이터 공급이 이어져야 한다.
방어자는 시간이 지날수록 데이터 공급을 통해 인텔리전스를 구축하고 네트워크 방어에 활용할 수
있게 돼야 한다.
10 실전 네트워크 보안 모니터링
위협 중심의 방어. 지금까지 설명한 모든 특징은 위협 중심의 방어라는 개념으로 연결된다. 취약점
중심의 방어가 “어떻게”에 집중한다면 위협 중심의 방어는 “누가”, “왜”라는 질문에 집중한다.
구체적으로 방어하는 네트워크를 누가 공격할 것인지와 무엇을 얻기 위해 공격을 감행할지를
자문해봐야 한다.
사실 위협 중심의 방어는 그 전의 방법보다 훨씬 더 수행하기가 어렵다. 그 이유는 두 가지 필요조건
때문이다. 즉, 내부 네트워크에 대한 광범위한 시야와 공격자의 의도와 능력에 대한 인텔리전스를
수집하고 분석할 수 있는 능력이다. 첫 번째 조건은 적절한 시간 투자만 이뤄진다면 너무도 쉽게 이룰
수 있는 조건이다. 두 번째 조건은 정부가 아닌 다른 분야에서는 획득하기 어려운 조건이지만 불가능한
것은 아니다.
조금 전에 사용한 동네 도둑의 예를 다시 생각해보자. 철망과 강철문 같은 예방 장치를 사용하는
취약점 중심의 접근법 대신 위협 중심의 접근법이라면 경찰은 이미 도둑이 든 집들을 살펴볼 것이다.
도둑이 든 집들에서 비슷한 점이나 동일한 지표를 찾아서 공격자가 무엇을 노리는가에 대한 경향도
함께 기록할 것이다. 이 같은 인텔리전스를 바탕으로 경찰은 범죄자의 프로파일을 만들 수 있을
것이다. 인텔리전스와 위협 프로파일을 연결해서 기존 체포 기록에서 비슷한 방식을 사용하는
범죄자를 찾아낼 수 있다. 이런 식의 분석과 다른 특징들을 잘 혼합하면 궁극적으로는 범죄자의
검거까지 이어지고 앞으로의 도난도 막을 수 있게 될 것이다. 이 같은 접근법이 위협 중심의 방어와
NSM의 핵심이다.
취약점 중심 대 위협 중심의 방어
하키 경기를 예로 들어 골키퍼가 사람인 경우와 벽돌로 만든 벽을 세우는 경우를 생각해보자. 처음에는
벽돌로 만든 벽이 더 좋은 선택으로 보일 것이다. 취약점 중심으로 생각하는 사람은 아마 벽돌 벽을 더
선호할 것이다. 벽돌 벽은 거의 모든 공격을 막을 수 있고 공격자가 벽을 뚫어야만 점수를 낼 수 있기
때문에 매우 튼튼해 보일 것이다. 하지만 시간이 지나면 공격에 의해 벽이 부숴질 것이고 나중에는
벽 전체가 넘어질 수도 있다. 물론 벽돌을 교체할 수도 있겠지만 한 개를 교체하는 동안 다른 벽돌이
또 공격을 받아서 넘어가버릴 수 있다. 위협 중심으로 생각하는 사람이라면 골키퍼를 더 선호할
것이다. 물론 골키퍼가 모든 공격을 막겠지만 때에 따라 공격이 성공할 것이다. 골을 먹은 골키퍼는
점수를 허용한 공격이 스틱을 들고 있는 쪽으로 낮게 들어왔다는 점을 알아차릴 것이고 다음 번에
같은 공격수를 만났을 때는 스틱을 들고 있는 쪽의 낮은 방향에 더 신경을 써서 같은 공격이 성공할
01 _ 실전 네트워크 보안 모니터링 11
가능성이 낮아질 것이다. 골키퍼와 벽돌 벽과의 가장 큰 차이는 벽은 전략을 바꾸지도 못하고 새로
배우지도 못한다는 점이다. 골키퍼는 공격수의 버릇을 습득한다. 골키퍼는 더욱 배우고 적응해서
성공률이 높아지는 것이다.
취약점 중심의 방어와 위협 중심의 방어 모두 네트워크를 지키는 목적은 같지만 다른 방법으로
접근한다. 표 1.1에 지금까지 설명한 차이점을 정리했다.
표 1.1 취약점 중신 대 위협 중심 방어
취약점 중심 위협 중심
예방에 의지한다 예방은 언젠가 실패한다는 것을 알고 있다
탐지에 집중 수집에 집중
모든 위협에 대한 보편적인 지식이 있다는 것을 전제로 한다 위협은 각기 다른 도구, 전술, 절차를 사용한다는 것을 알
고 있다
각 공격을 개별적으로 고립해서 분석한다 모든 공격의 인텔리전스를 결합한다
시그니처 기반의 탐지에 크게 의존한다 모든 소스의 데이터를 활용한다
알려지지 않은 위협을 탐지할 수 있는 능력은 최소한이다 알려진 시그니처 이상으로 적대적인 활동을 탐지할 수 있
는 높은 능력을 가지고 있다
직선적 절차 순환적 절차
NSM 사이클: 수집, 탐지, 분석
NSM 사이클은 크게 수집, 탐지, 분석이라는 세 가지 단계로 구성돼 있다. 이 책도 각 단계에 맞게 세
가지 영역으로 분리돼 있다(그림 1.1).
수집
분석 탐지
그림 1.1 NSM 사이클
12 실전 네트워크 보안 모니터링
수집
NSM 사이클은 가장 중요한 단계인 수집으로 시작한다. 수집은 NSM 탐지와 분석을 위한 하드웨어와
소프트웨어의 조합으로 데이터를 생성, 분류, 저장한다. 수집 작업이 효과적인 탐지와 분석을 수행할
수 있는 기반이 되기 때문에 전체 사이클에서 가장 중요한 부분이다. NSM 데이터는 여러 종류가
있으며, 수집 방법도 여러 가지다. 가장 일반적인 NSM 데이터로는 전체 콘텐츠 데이터, 세션 데이터,
통계 데이터, 패킷 문자열 데이터, 경고 데이터가 있다. 조직의 요구사항, 네트워크 구조, 사용 가능한
자원에 따라 이러한 데이터는 주로 탐지나 분석에만 사용되거나 두 가지 모두에 사용되기도 한다.
처음에는 수집 작업이 가장 인력을 많이 필요로 해서 NSM 사이클 중에서 가장 노력이 많이 필요한
단계가 될 수 있다. 효과적인 수집을 위해서는 조직의 리더십, 정보보호팀, 네트워크와 시스템 관리
그룹의 협력이 필요하다.
수집은 다음과 같은 작업을 포함한다.
■ 조직의 가장 위험도가 높은 부분을 정의한다
■ 조직의 목표에 적용되는 위협을 정의한다
■ 연관된 데이터 소스를 확인한다
■ 데이터 소스의 수집 부분을 정교하게 다듬는다
■ 패킷 데이터를 수집하기 위해 SPAN 포트를 설정한다
■ 로그 유지를 위해 SAN 저장소를 구축한다
■ 데이터 수집 하드웨어와 소프트웨어를 설정한다
탐지
탐지는 수집된 데이터를 조사해서 예상하지 못한 데이터나 특정 이벤트에 대해 경고를 생성하는
절차다. 보통 특정 형태의 시그니처나 이상 징후, 또는 통계 기반의 탐지로 이뤄진다. 이 작업의
결과물은 경고 데이터의 생성이다.
탐지는 거의 대부분 소프트웨어의 몫이며, 네트워크 침입 탐지 시스템(NIDS)으로 유명한 소프트웨어
패키지로는 Snort IDS와 Bro IDS가 있고 호스트 침입 탐지 시스템(HIDS)으로는 OSSEC, AIDE,
McAfee HIPS가 있다. 일부 보안 정보 및 이벤트 관리(SIEM; Security Information and Event
01 _ 실전 네트워크 보안 모니터링 13
Management) 애플리케이션에서도 네트워크와 호스트 기반의 데이터로 이벤트를 연관 분석할 때
탐지를 하기도 한다.
탐지 작업의 상당 부분은 소프트웨어가 하지만 일부 탐지 작업은 데이터 소스를 수작업으로 분석해서
진행한다. 특히 회귀(retrospective) 분석이 여기에 해당한다.
분석
분석은 NSM 사이클의 마지막 단계이고 사람이 경고 데이터를 직접 해석하고 조사하는 작업이다. 분석
작업에서는 다른 데이터 소스에서 추가적인 조사 데이터를 수집하거나 탐지 장치에서 생성된 경고의
종류나 적대적으로 보이는 호스트에 대한 오픈소스 인텔리전스(OSINT; Open Source Intelligence)
조사를 진행할 수도 있다.
분석 방법은 수십 가지가 있지만 다음과 같은 작업을 포함하게 된다.
■ 패킷 분석
■ 네트워크 포렌식
■ 호스트 포렌식
■ 악성코드 분석
분석 작업은 NSM 사이클에서 가장 시간이 많이 소요되는 단계다. 이 단계에서 특정 이벤트가 보안
사건으로 승격되거나 대응 작업이 시작된다.
NSM 사이클의 순환 구조는 탐지와 분석 단계에서 알게 된 이상 징후를 가지고 수집 전략을 다시
다듬는 것으로 완성된다.
NSM의 어려움
패러다임의 변화가 그렇듯이 NSM과 위협 중심의 보안도 상당한 어려움을 겪어왔다. 가장
큰 어려움 중 하나는 NSM 자체도 아직 성숙하지 못한 것과 더불어 정보 기술(Information
Technology) 분야 전체도 아직은 성숙하지 못한 과학 안에 존재한다는 점이다. 다양한 프로토콜과
명명법(Nomenclature)을 표준화하려는 노력이 있었지만 아직도 문서화된 내용과 실제 구현된
14 실전 네트워크 보안 모니터링
내용의 차이는 매우 크다. 이 같은 현상은 우리가 사용하고 있는 운영체제, 그 위에서 실행되는
애플리케이션, 서로 통신하는 프로토콜에 모두 존재한다.
정보 보호에 좀 더 초점을 맞춰서 각기 다른 3명의 사람과 같은 주제에 대해 토론하면 모두 3가지 다른
용어를 사용하는 경우도 있다. 이런 현실은 교육 측면에서 심각한 제약을 준다. 의료 분야가 새로운
의사를 교육하는 데 매우 성공적인 이유는 어떤 의대를 나오든 모두 (이론상으로) 레지던트 과정을
시작하기 전에 같은 수준의 기본 지식을 가지고 졸업하기 때문이다. 그리고 레지던트 프로그램의
표준화된 요구사항과 의사 면허 시험을 기반으로 모든 레지던트 의사들은 실제 의사 자격증을 받을
때까지 비슷한 수준의 의료 능력을 유지하게끔 돼 있다. 이 같은 구조는 모두 공통된 이론, 의술,
요구사항들이 정립된 덕분이다. NSM은 이런 규정이 존재하지 않아서 다른 그룹의 종사자들은 서로
다른 주파수에서 대화를 한다. 더욱이 모두들 같은 내용을 말하고 있지만 흔히 서로 다른 용어를
사용한다. 의료 분야는 우리보다 몇 천년 더 일찍 시작됐으니 비교하기 어렵겠지만 현재로서는 큰
문제이며 금방 해결되지는 않을 것이다.
NSM의 또 다른 문제는 효과적으로 수행하는 데 필요한 능력치다. 간단하게 말하면 수요를 충족시킬
만한 경험과 지식을 가진 인력의 공급이 부족하다. 경기가 어려운 상황에서 많은 사람들이 직장을
구하지 못해 어려움을 겪고 있지만 NSM이나 관련 기술을 가진 사람을 찾는 자리는 상당히 많다. 물론
신입 직원도 NSM 업무를 맡을 수 있지만 상급 수준의 업무를 수행하면서 신입 직원들도 가이드하려면
경력이 필요하다. 이런 중간급에서 상급자들은 더 많은 급여를 제시하는 컨설팅 자리나 다른
관리직으로 옮기는 경우가 많아서 자리에 계속 잡아두기가 어렵다.
마지막으로 NSM의 발전에 큰 걸림돌로 작용하는 문제는 NSM 프로그램을 만들고 유지하는 비용이다.
보통 높은 초기 투자 비용은 수집과 NSM 기능에 맞도록 데이터를 파싱하는 하드웨어 구입에
집중되지만 비용의 상당 부분은 보통 NSM 분석을 이끌어갈 인력과 분석가들을 지원하기 위한 NSM
인프라의 비용이다. 여기에 추가로 NSM 업무를 1년에 365일, 24시간 가동해야 하는 큰 조직의
경우에는 더욱 비용이 커진다. 만약 조직에서 상용 SIEM 소프트웨어를 사용해야 한다면 또 하나의 큰
추가 비용 부담이 있다. 이러한 패키지들이 모두 필요한 것은 아니지만 큰 기업 환경에서는 “필수”로
인식되고 있으며 흔히 수십 억에서 수백 억대의 비용이 든다.