128 Max 의해킹과보안시리즈 네트워크보안시스템구축과장상근지음보안관제 - 보안관제편 -
128 Max 의해킹과보안시리즈 네트워크보안시스템구축과장상근지음보안관제 - 보안관제편 -
Max 의해킹과보안시리즈네트워크보안시스템구축과보안관제 - 보안관제편 - 초판발행 2016 년 4 월 15 일 지은이장상근 ( 맥스 ) / 펴낸이김태헌펴낸곳한빛미디어 ( 주 ) / 주소서울시마포구양화로 7길 83 한빛미디어 ( 주 ) IT출판부전화 02-325-5544 / 팩스 02-336-7124 등록 1999년 9월 30일제10-1779호 ISBN 978-89-6848-804-7 15000 / 정가 12,000원 총괄전태호 / 책임편집김창수 / 기획 편집정지연디자인표지 / 내지여동일, 조판최송실마케팅박상용, 송경석, 변지영 / 영업김형진, 김진불, 조유미 이책에대한의견이나오탈자및잘못된내용에대한수정정보는한빛미디어 ( 주 ) 의홈페이지나아래이메일로알려주십시오. 한빛미디어홈페이지 www.hanbit.co.kr / 이메일 ask@hanbit.co.kr Published by HANBIT Media, Inc. Printed in Korea Copyright c 2016 장상근 & HANBIT Media, Inc. 이책의저작권은장상근과한빛미디어 ( 주 ) 에있습니다. 저작권법에의해보호를받는저작물이므로무단복제및무단전재를금합니다. 지금하지않으면할수없는일이있습니다. 책으로펴내고싶은아이디어나원고를메일 (ebookwriter@hanbit.co.kr) 로보내주세요. 한빛미디어 ( 주 ) 는여러분의소중한경험과지식을기다리고있습니다.
저자소개 지은이 _ 장상근 ( 맥스 ) 현재 KBS( 한국방송공사 ) 에서정보보호업무를하고있다. 1998년중학교시절부터해킹과보안분야에관심을가졌으며고등학교때에는충북지역정보보안연구모임 ( 충북해커스랩 ) 에서활동했다. 대학에입학해서는세종대정보보안소모임 (S.S.G) 에서활동했고, 육군정보보호기술 (CERT) 병및자이툰파병으로군복무를했다. 제대후 2008년도대학정보보호동아리연합회 (KUCIS) 회장직을맡았고, 국내보안업체들에서악성코드분석, 모바일보안과보안취약점분석등선행보안기술연구활동을했다. 그외활동으로해킹과보안커뮤니티 (Haru) 및 SECUINSIDE 보안컨퍼런스등에도참여하고있으며, 사물인터넷, 인공지능, 첨단농업등에관심이많다. 홈페이지 : http://maxoverpro.org 이메일 : maxoverpro@gmail.com
저자서문 현재시중에있는해킹과보안관련책은웹해킹, 리버스엔지니어링, 모의해킹등공격및분석에초점이맞춰있고, 방어의관점에서저술된책은상대적으로적다는생각이문득들었습니다. 사실, 보안업체와일반기업에서는공격이목표가아니라어떻게하면서버, 네트워크, PC 등자신의자산을안전하게보호할수있을까를고민합니다. 하지만자체적으로보안조직을구성해보안시스템을운영및유지보수하고보안관제하면서사이버침해사고에대응할수있는능력을갖춘곳은생각보다많지않습니다. 이책은중소기업, 스타트업, 학교, 게임방등소규모조직에서오픈소스를활용해적은예산으로도자체적으로보안시스템을구축하고보안관제중발생할수있는다양한사이버공격유형에대응할수있도록내용을구성했습니다. 보안관제는보안관제시스템을구축하는것이끝이아니라제대로된보안을위한시작입니다. 점점고도화되는사이버공격에대응할수있게이책이작지만큰도움이되었으면합니다. 또한, 최신사이버공격을분석하고보안시스템에적용해침해사고를예방할수있도록스스로노력이필요함을잊지않았으면합니다. 이책이나오는데많은도움을주신한빛미디어관계자분들께감사의말씀을드리며항상응원하고격려해주시는부모님과가족, 동료, 친구들에게감사의말을전합니다. 마지막으로책을쓰는동안책의내용을검토해주는등세심하게배려해준여자친구에게사랑한다는말을전합니다.
대상독자및참고사항 초급초중급중급중고급고급 이책은보안시스템을구축하고보안관제를하려는기업과공공기관의보안담당자, 보안시스템구축과보안관제를배우려는학생을대상으로합니다. 이책은네트워크와운영체제 (Linux) 에대한기본적인내용을알면좀더쉽게이해할수있습니다. 이책은어떻게보안조직과보안관제센터를만들어야할지그리고보안관제시스템구축과운용에대한기본적인내용등을이해하고실제사이버공격유형에따른대응방법을익혀실제보안관제업무에도움을주는것을목표로합니다. 이책에서사용하는웹해킹실습예제는 http://maxoverpro.org/pds/webhack.zip 에서다운로드하기바랍니다. 그밖에이책과관련해궁금한점은필자의홈페이지나이메일로문의해주기바랍니다.
차례 chapter 6 웹방화벽 011 6.1 웹방화벽설치 011 6.2 웹방화벽정책관리 012 6.2.1 웹방화벽정책적용 013 6.2.2 웹방화벽정책설정 015 6.3 정리 017 chapter 7 네트워크접근제어시스템 019 7.1 네트워크접근제어시스템의필요성 019 7.2 네트워크접근제어시스템구축 020 7.2.1 NAC 구축방식 020 7.2.2 NAC 설치 022 7.2.3 In-Line 방식의 PacketFence 환경구축 026 7.2.4 Out-of-Band 방식의 PacketFence 환경구축 032 7.3 PacketFence 운영 034 7.3.1 단말기네트워크접근제어 035 7.3.2 사용자관리 037 7.4 정리 038 chapter 8 보안관제시스템 039 8.1 보안관제구성 039 8.2 데이터분석과검색을위한 Elasticsearch 040 8.2.1 Elasticsearch 설치 041 8.2.2 Elasticsearch 설정과구동 042 8.2.3 Elasticsearch 플러그인 044
8.3 로그수집을위한 Logstash 045 8.3.1 Logstash 설치와설정 045 8.3.2 Logstash-forwarder 설치와설정 050 8.4 데이터시각화를위한 Kibana 052 8.4.1 Kibana 설치와설정 052 8.4.2 Kibana를이용한데이터분석 055 8.4.3 Kibana를이용한데이터시각화 057 8.5 정리 061 chapter 9 보안취약점점검을위한도구활용법 063 9.1 netstat 064 9.2 tcpdump 065 9.3 WireShark 067 9.3.1 특정패킷만수집하기 068 9.3.2 패킷데이터필터링 070 9.3.3 패킷데이터파일저장 072 9.3.4 패킷데이터로부터파일추출 073 9.4 EtherApe 074 9.5 Bit-Ttwist 076 9.5.1 네트워크패킷재전송 076 9.5.2 네트워크패킷수정 078 9.6 Nmap 079 9.6.1 Nmap을이용한네트워크점검 080 9.6.2 Nmap 스크립트엔진을이용한네트워크취약점점검 082 9.7 OpenVAS 082 9.7.1 OpenVAS 설치와설정 083 9.7.2 OpenVAS를통한취약점점검 084
9.8 정리 088 chapter 10 실전보안관제 089 10.1 보안관제기본운영 090 10.1.1 IP/Port 기반공격탐지와대응 090 10.1.2 프로토콜기반공격탐지와대응 092 10.1.3 시그니처기반공격탐지와대응 094 10.2 임계치기반공격탐지와대응 094 10.2.1 트래픽과부하공격 094 10.2.2 무작위대입공격 095 10.3 유해및악성사이트탐지와대응 097 10.3.1 블랙리스트 097 10.3.2 유해콘텐츠분석기반탐지 / 차단 099 10.3.3 유해및악성코드배포 IP 조사와추적 100 10.4 웹해킹탐지와대응 103 10.4.1 인젝션 103 10.4.2 인증및세션관리취약점 106 10.4.3 크로스사이트스크립팅 108 10.4.4 보안설정오류 109 10.4.5 민감한데이터노출 110 10.4.6 크로스사이트요청변조 111 10.4.7 알려진취약점이있는컴포넌트 112 10.4.8 홈페이지위 변조및웹셸을이용한침해사고과정과대응 113 10.5 공격코드탐지와대응 116 10.5.1 Exploit 116 10.5.2 Shellcode 118 10.6 서버및엔드포인트공격탐지와대응 118
10.6.1 서버보안이벤트분석 119 10.6.2 네트워크접근제어를통한엔드포인트보안위협차단 120 10.7 정리 122 chapter 11 보안관제의미래 123 11.1 보안관제트렌드의변화 123 11.1 보안관제트렌드변화에따른고려사항 124 11.2 보안관제인력의전문성 125 11.3 보안시스템구축시체크리스트 126 11.5 정리 127
chapter 6 웹방화벽 웹을통한침해사고 ( 정보유출및금전적피해 ) 가지속해발생하면서웹보안의필요성과중요도가높아졌다. 하지만웹애플리케이션에존재하는취약점은네트워크영역에서발생하는것이아니라내부의웹서버나 DB에서다양한형태로발생할수있어서기존의방화벽과 IDS/IPS로는네트워크영역에서정교한형태의웹해킹을탐지하기어려웠다. 이에따라웹해킹에대응할수있는특화된웹방화벽 WAF, Web Application Firewall 이라는보안시스템이나타났다. 이장에서는호스트기반웹방화벽인 ModSecurity 를설치하고이를운영하 는방법에대해알아보겠다. 6.1 웹방화벽설치 ModSecurity는 Apache 웹서버에서적용할수있는오픈소스웹방화벽으로, 실시간으로웹애플리케이션의모니터링과로그를확인할수있고웹공격에대한침입탐지와방지기능을갖추고있어중 소형규모의웹서비스를운영하는곳이라면웹보안을강화하는데유용하게사용할수있다. Apache 외에도 Nginx, IIS 웹서버도지원하며, 최근에 2.9.1 버전까지배포되었다. 무료판에서는기본정책 Rule 을제공하고, 최신정책은상업적으로 ( 유료로 ) 제공한다. 이책에서는 CentOS 6.x 환경에서 ModSecurity 안정화버전인 2.9.0 소스코드를다운로드해설치해보겠다. 설치는다음명령으로한다. 6 웹방화벽 - 011
// ModSecurity 설치에필요한라이브러리설치 # yum -y install httpd-devel git gcc make libxml2 pcre-devel libxml2-devel curl-devel // 소스코드기반설치 # cd /tmp # wget https://www.modsecurity.org/tarball/2.9.0/modsecurity-2.9.0.tar.gz # tar -xvzf modsecurity-2.9.0.tar.gz # cd modsecurity-2.9.0 #./configure ; make ; make install 설치를완료하면다음과같이설정파일을웹서버설정파일이위치한곳에복사 하고, 설정파일을수정한후웹서버를재가동하면정상적으로 ModSecurity 가 적용된다. // Apache 폴더에 ModeSecurity 복사 # cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf # cp unicode.mapping /etc/httpd/conf.d/ // Apache 설정파일 (httpd.conf) 에 mod_security2.so 모듈적용내용추가 # echo LoadModule security2_module modules/mod_security2.so >> /etc/httpd/ conf/httpd.conf // 설정완료후서비스 httpd 재기동 # service httpd restart 6.2 웹방화벽정책관리 웹방화벽을설치했다고끝나는것이아니다. 웹방화벽이웹공격을탐지및대응 하려면웹공격에대한정책을적용하고운영해야한다. 012 -
6.2.1 웹방화벽정책적용 ModSecurity에는 OWASP The Open Web Application Security Project 에서일반적인웹공격에대한탐지와대응을위해제공하는 Rule set과 Trustwave SpiderLabs 01 에서제공하는상용 Rule set이있으며더많은형태의웹공격을탐지할수있다. 이책에서는 OWASP에서제공하는 Rule set을적용하는방법을알아보겠다. 그림 6-1 OWASP ModeSecurity Core Rule Set Project 02 // Rule 다운로드및설치 # cd /etc/httpd # git clone https://github.com/spiderlabs/owasp-modsecurity-crs.git # mv owasp-modsecurity-crs/ modsecurity-crs # cd modsecurity-crs # cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf // modsecurity_crs_10_config.conf 설정 // 내용추가 SecRuleEngine On SecAuditEngine On SecAuditLog /var/log/httpd/modsec_audit.log 01 참고 : https://www.trustwave.com/company/spiderlabs/ 02 참고 : https://goo.gl/s9cuj 6 웹방화벽 - 013
SecAuditLogParts ABCFHZ SecDataDir /tmp // SecDefaultAction에 auditlog 추가 SecDefaultAction "phase:1,deny,log,auditlog" SecDefaultAction "phase:2,deny,log,auditlog" // httpd.conf 설정파일에 ModSecurity Rule set 추가 # echo Include modsecurity-crs/modsecurity_crs_10_config.conf >> /etc/httpd/ conf/httpd.conf # echo Include modsecurity-crs/base_rules/*.conf >> /etc/httpd/conf/httpd.conf // httpd.conf 설정파일수정 LoadModule unique_id_module modules/mod_unique_id.so // 주석해제 // 재기동 # service httpd restart 재기동한후다음과같이테스트해보면정상적으로작동하는지확인할수있다. 그림 6-2 ModSecurity 에의한비정상접근탐지 / 차단 // 앞의테스트에대한 /var/log/httpd/modsec_audit.log 로그 Message: Access denied with code 403 (phase 2). Pattern match "\\.\\./" at ARGS:file. [file "/etc/httpd/conf.d/modsecurity.conf"] [line "230"] [id "50904"] [msg "Drive Access"] [severity "WARNING"] Action: Intercepted (phase 2) 014 -
Apache-Handler: php5-script Stopwatch: 1455878158993805 1113 (- - -) Stopwatch2: 1455878158993805 1113; combined=345, p1 =269, p2 =26, p3=0, p4 =0, p5=50, sr=18, sw=0, l =0, gc =0 Producer: ModSecurity for Apache/2.9.0 (http://www.modsecurity.org/); OWASP_ CRS/2.2.9. Server: Apache/2.2.15 (CentOS) Engine-Mode: "ENABLED" 6.2.2 웹방화벽정책설정 ModSecurity를처음운영할때에는오탐이발생할수있으므로 ModSecurity 모드를탐지상태인 SecRuleEngine DetectionOnly 로설정한상태에서웹애플리케이션을정상적으로이용시오탐이발생하지않는지먼저확인해야한다. 방화벽정책설정을위해서는 modsecurity_crs_10_config.conf 파일을확인해다음과같이정책을어떻게운영할것인지기본정책운영설정을하도록한다. // modsecurity_crs_10_config.conf // modsecurity On: 활성화, Off: 비활성화, DetectionOnly: 탐지만사용 SecRuleEngine ( On Off DetectionOnly ) // 로깅설정 (On: 모든트랜잭션로깅, Off: 모든트랜잭션로깅하지않음, RelevantOnly: Error, Warning 트랜잭션과 SecAuditLogRelevantStatus의상태코드만로깅 SecAuditEngine (On Off RelevantOnly ) // 감사로그파일경로정의 SecAuditLog /var/log/httpd/modsec_audit.log // 로그파일에기록할항목정의 // A(Audit log header), B(Request header), C(Request body), F(Response header) // H( 감사로그트레일러 ), Z( 로그끝 ) SecAuditLogParts ABCFHZ // 감사로그구조타입설정 6 웹방화벽 - 015
// Serial: 파일하나에만감사로그저장, Concurrent: 트랜잭션별로나눠서감사로그저장 SecAuditLogType (Serial Concurrent) // 정책이매칭되는경우행동정의 SecDefaultAction "phase:1,deny, log, auditlog" // 웹서버응답정보변경 SecServerSignature "Microsoft-IIS/5.0" 오탐이발생하는경우정책을수정하거나예외처리를위한화이트리스트정책을관리하면서커스터마이징 Customizing 해야한다. 예외처리방법은정책파일이존재하는 modsecurity-crs/base_rules에다음과같이특정정책에대한예외처리를관리할 whitelist.conf 정책파일을생성하면된다. // 예외처리정책을관리할 whitelist.conf <LocationMatch.*> <IfModule mod_security2.c> SecRuleRemoveByID 960017 SecRuleRemoveByMsg "Injection" </IfModule> </LocationMatch> // Rule ID가 960017이면정책제거 // Msg가 Injection인정책제거 // 특정 URL에대한예외처리 <LocationMatch /upload/upload.php> <IfModule mod_security2.c> SecRuleEngine Off </IfModule> </LocationMatch> 이와같이 DetectionOnly 상태로운영하면서오탐으로판단되는정책은제거하거나정책을변경하고화이트리스트정책을적용한후 SecRuleEngine On 으로설정을변경해허용범위외의웹해킹을시도하면탐지 / 차단될수있도록운영한다. 016 -
6.3 정리 웹방화벽은호스트기반과어플라이언스 Appliance 기반으로구축할수있다. ModSecurity와같은호스트기반방화벽은중 소형규모의웹서버에각각설치하고운영해야하는번거로움이있지만, 세밀한웹방화벽정책을운영할수있다. 어플라이언스기반방화벽은대부분 Reverse Proxy 또는 In-Line 형태로구축할수있다. 다수의웹서비스를운영하는경우라면운영이편리한어플라이언스형태의웹방화벽을운영하는것이좋다. 6 웹방화벽 - 017
한빛리얼타임 한빛리얼타임은 IT 개발자를위한전자책입니다. 요즘 IT 업계에는하루가멀다하고수많은기술이나타나고사라져갑니다. 인 터넷을아무리뒤져도조금이나마정리된정보를찾기도쉽지않습니다. 또한, 잘정리되어책으로나오기까지는오랜시간이걸립니다. 어떻게하면조금이라 도더유용한정보를빠르게얻을수있을까요? 어떻게하면남보다조금더빨 리경험하고습득한지식을공유하고발전시켜나갈수있을까요? 세상에는수 많은종이책이있습니다. 그리고그종이책을그대로옮긴전자책도많습니다. 전자책에는전자책에적합한콘텐츠와전자책의특성을살린형식이있다고생 각합니다. 한빛이지금생각하고추구하는, 개발자를위한리얼타임전자책은이렇습니다. 1 ebook First - 빠르게변화하는 IT 기술에대해핵심적인정보를신속하게제공합니다 500페이지가까운분량의잘정리된도서 ( 종이책 ) 가아니라, 핵심적인내용을빠르게전달하기위해조금은거칠지만 100페이지내외의전자책전용으로개발한서비스입니다. 독자에게는새로운정보를빨리얻을기회가되고, 자신이먼저경험한지식과정보를책으로펴내고싶지만너무바빠서엄두를못내는선배, 전문가, 고수분에게는좀더쉽게집필할수있는기회가될수있으리라생각합니다. 또한, 새로운정보와지식을빠르게전달하기위해 O'Reilly의전자책번역서비스도하고있습니다. 2 무료로업데이트되는전자책전용서비스입니다 종이책으로는기술의변화속도를따라잡기가쉽지않습니다. 책이일정분량이상으 로집필되고정리되어나오는동안기술은이미변해있습니다. 전자책으로출간된이 후에도버전업을통해중요한기술적변화가있거나저자 ( 역자 ) 와독자가소통하면서보완하여발전된노하우가정리되면구매하신분께무료로업데이트해드립니다.
3 4 독자의편의를위해 DRM-Free 로제공합니다 구매한전자책을다양한 IT 기기에서자유롭게활용할수있도록 DRM-Free PDF 포맷으로제공합니다. 이는독자여러분과한빛이생각하고추구하는전자책을만들어나가기위해독자여러분이언제어디서어떤기기를사용하더라도편리하게전자책을볼수있도록하기위함입니다. 전자책환경을고려한최적의형태와디자인에담고자노력했습니다종이책을그대로옮겨놓아가독성이떨어지고읽기어려운전자책이아니라, 전자책의환경에가능한한최적화하여쾌적한경험을드리고자합니다. 링크등의기능을적극적으로이용할수있음은물론이고글자크기나행간, 여백등을전자책에가장최적화된형태로새롭게디자인하였습니다. 앞으로도독자여러분의충고에귀기울이며지속해서발전시켜나가겠습니다. 지금보시는전자책에소유권한을표시한문구가없거나타인의소유권한을표시한문구가있다면위법하게사용하고있을가능성이큽니다. 이경우저작권법에따라불이익을받으실수있습니다. 다양한기기에사용할수있습니다. 또한, 한빛미디어사이트에서구매하신후에는횟수와관계없이다운로드할수있습니다. 한빛미디어전자책은인쇄, 검색, 복사하여붙이기가가능합니다. 전자책은오탈자교정이나내용의수정 보완이이뤄지면업데이트관련공지를이메일로알려드리며, 구매하신전자책의수정본은무료로다운로드할수있습니다. 이런특별한권한은한빛미디어사이트에서구매하신독자에게만제공되며, 다른사람에게양도나이전은허락되지않습니다.