침입탐지시스템 영동대학교스마트 IT 학부 : 컴퓨터와해킹 이호준 hjlee@yd.ac.kr
Contents 학습목표 침입탐지시스템과침입차단시스템의기능과목적을이해한다. 네트워크에서침입탐지시스템의위치와구조를이해한다. 침입탐지시스템을설치하고운용할수있다. 내용 침입탐지시스템의기능과목적 침입탐지시스템의구조 침입차단시스템의기능과목적 2/29
침입탐지시스템의기능과목적 DISA 에서발표한미국방성에대한해킹통계자료 총 38,000 여회공격을시도하는동안방화벽등으로차단이가능했던공격은 13,000 여회로 1/3 가량 1997 년자료로, IDS 의공격에대한탐지능력이그다지좋은편은아니었음 3/29
침입탐지시스템의기능과목적 침입탐지시스템 (IDS, Intrusion Detection System) 근래들어중요성이강조되면서많이발전했지만아직부족한부분이많음 크게다음네가지요소와기능으로이루어져있음 데이터수집 (Raw Data Collection) 데이터필터링과축약 (Data Reduction and Filtering) 침입탐지 (Analysis and Intrusion Detection) 책임추적성과대응 (Reporting and Response) 4/29
침입탐지시스템의기능과목적 데이터수집 IDS 는설치위치와목적에호스트기반 IDS 와네트워크기반 IDS 로나뉨 호스트기반 IDS(Host-Based IDS, HIDS) 윈도우나유닉스등의운영체제에부가적으로설치되어운용되거나일반클라이언트에설치됨 운영체제에설정된사용자계정에따라어떤사용자가어떤접근을시도하고, 어떤작업을했는지에대한기록을남기고추적하며, 스위칭환경과는전혀상관이없음 전체네트워크에대한침입탐지는불가능. 스스로가공격대상이될때만침입탐지가능 운영체제의취약점은 HIDS 를손상시킬수있으며, 다른 IDS 에비해비용이많이드는편 네트워크기반 IDS(Network-Based IDS, NIDS) NIDS 는감사와로깅을할때네트워크자원이손실되거나데이터가변조되지않음 HIDS 로는할수없는네트워크전반의감시를할수있으며, 감시영역이상대적으로아주넓음 IP 주소를소유하지않기때문에해커의직접적인공격에는거의완벽하게방어할수있으며, 존재사실도숨길수있음 당한시스템의공격에대한결과를알수없으며, 암호화된내용을검사할수없음 스위칭환경에서 NIDS 를설치하려면부가장비가필요하며, 1Gbps 이상의네트워크에서는정상적으로작동하기힘듦 5/29
침입탐지시스템의기능과목적 데이터필터링과축약 HIDS 와 NIDS 를통해쌓인로그에서유효성을확인하는작업을보안감사라함 보안감사를실시하는입장에서는필요에따라세밀하고자세한데이터가필요한경우도있지만, 보통은정확하고빠른시간에파악할수있는데이터가더유용 클리핑레벨 (Clipping Level) 을설정 일정수이상잘못된패스워드로접속을요구할때로그를남기도록한함 관리자는공격의지가있다고생각하는만큼의숫자를클리핑레벨로설정 침입탐지 오용탐지 (Misuse Detection) 와이상탐지 (Anomaly Detection) 로나눔 오용탐지기법 Signature Base 나 Knowledge Base 라고함 이미발견되고정립된공격패턴을미리입력해두고, 해당패턴을탐지했을때이를알려주는것 탐지오판확률이낮고비교적효율적이지만알려진공격외에는탐지할수없으며, 많은데이터를분석하는데는부적합 공격을실시한순서에관한정보는얻기힘듦 전문가시스템 (Expert System) 을이용한 IDS 도이를기반으로함 상태전이 (State Transition) 에따른탐지방법이있음 : 각공격상황에대한시나리오를작성하여, 각상태에따른공격을분석 6/29
침입탐지시스템의기능과목적 이상탐지기법 Behavior 나 Statistical Detection 이라고함 정상적이고평균적인상태를기준으로하여, 이에상대적으로급격한변화를일으키거나확률이낮은일이발생할경우침입탐지를알리는것 정량적인분석, 통계적인분석, 비특성통계분석등이있음 인공지능 IDS 는공격에대해스스로판단하고결정을내려알려주지만판단의근거가확실하지않고오판확률도높음 면역시스템은새로운공격을당할경우그에대한학습을스스로하게되어해당공격이다시일어날때대응하도록한것. 재설치시최초설치시의초기상태로돌아가는큰단점이있음 인공지능과면역시스템은아직많은상품이개발중이고일부상품이나와있으나다른 IDS 시스템과공존하는형태로만운용 7/29
침입탐지시스템의기능과목적 책임추적성과대응 능동적인기능을많이탑재한 IDS 를침입차단시스템 (IPS) 이라고도함 IDS 가실행할수있는능동적인기능 공격자로확인된연결에 TCP Reset 패킷을보내연결을끊는다. 공격자의 IP 주소나사이트를확인하여라우터나방화벽을통해이를차단한다. 방화벽과 IDS 는점점서로연동해서작동하도록변하고있으며, 이연동이점점중요해져방화벽과 IDS 가결국하나로통합될것이라는의견도있다. 공격포트를확인하여라우터와방화벽을설정한다. 공격자가일정포트를이용한공격을하고있을때포트를막는방법도있다. 웜과같이정해진포트로급격하게전송되는공격을막을때유용하다. 심각한사태에이르렀을때는네트워크구조자체를임시로바꾸는경우도있다. 8/29
실습 15-1 Snort 설치하고운용하기 실습환경 실습대상시스템 : 윈도우 XP 필요프로그램 : WinPcap(WinPcap 4.0.2) MySQL(mysql-essential-5.0.67-win32) Snort(Snort_2_8_3_1_Installer) HSC(hsc.v2.6.0.4).Net Framework 1.1 WinPcap 설치 1 Wireshark를설치했다면 WinPcap이자동설치됨 MySQL 설치 2 CD를넣고설치마법사로설치. 설치유형은 Typical 선택 3 설치완료와설정수준선택 9/29
실습 15-1 Snort 설치하고운용하기 4 서버유형과데이터베이스용도선택 : 서버유형은일반 PC에설치한다면 Developer Machine 을선택, 서버수준시스템이라면 Server Machine 선택. 데이터베이스용도로는 Multifunctional Database 선택 5 데이터베이스저장공간설정 6 최대가용사용자수선택 : 기본값인 Decision Support (DSS) / OLAP 나 Manual Setting으로임의값선택 10/29
실습 15-1 Snort 설치하고운용하기 7 서비스포트설정 : MySQL 기본포트는 3306번 8 서버의인스턴스에대해설정 : Best Support For Multilingualism 선택 9 윈도우서비스및 PATH 설정 11/29
실습 15-1 Snort 설치하고운용하기 10 관리자패스워드를설정 11 MySQL의동작여부확인 Snort 설치 12 데이터베이스종류선택 13 설치할모듈과경로설정 12/29
실습 15-1 Snort 설치하고운용하기 HSC(Honeynet Security Console) 설치 14 라이선스동의 Snort 설정 15 Snort 설치디렉토리 ( 기본디렉토리는 C:\Snort) 아래에있는 etc 디렉토리에 snort.conf 파일열기 16 모니터링할네트워크대역설정 : var HOME_NET 부분에모니터링할네트워크범위를 192.168.0.0/24로설정 13/29
실습 15-1 Snort 설치하고운용하기 17 주요디렉토리경로설정 var RULE_PATH 부분에 Snort 탐지를위한디렉토리를절대경로로설정한다. var RULE_PATH C:\Snort\rules classification.conf를 Snort 절대경로를포함하도록수정한다. include C:\Snort\etc\classification.conf reference.conf를 Snort 절대경로를포함하도록수정한다. include C:\Snort\etc\reference.config dynamicengine를 Snort 절대경로를포함하도록수정한다. dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll dynamicpreprocessor directory를 Snort 절대경로를포함하도록수정한다. dynamicpreprocessor directory C:\Snort\lib\snort_dynamicpreprocessor 18 Snort 사이트 (http://www.snort.org/pub-bin/downloads.cgi) 에서 Snort 탐지룰 (Community Rules) 을다운로드해압축을품. 생성된 rules와 docs 디렉토리를각각 C:\Snort\rules와 C:\Snort\doc\signature에복사 14/29
실습 15-1 Snort 설치하고운용하기 19 Snort 탐지룰에서 / 문자를윈도우디렉토리구분자인 \ 로변경 MySQL과 Snort 연동부분설정 20 snort 데이터베이스생성 mysqladmin -u root -p create snort 21 snort 데이터베이스구조생성 mysql -D snort -u root -p < create_mysql 15/29
실습 15-1 Snort 설치하고운용하기 22 snort.conf 파일에서다음부분주석 (#) 을제거. 패스워드부분에앞서설정한 MySQL 패스워드삽입. dbname에는데이터베이스생성시사용한데이터베이스이름을사용 output database: log, mysql, user=root password=[password] dbname=snort host=localhost Snort 설정점검 23 Snort 적용가능인터페이스확인 mysqladmin -u root -p create snort 16/29
실습 15-1 Snort 설치하고운용하기 24 Snort 설치상태점검완료 snort -T -l c:\snort\log -c c:\snort\etc\snort.conf -i 2 -T : Snort 설정파일정상여부테스트 -l : 로그파일저장위치 -c : Snort 설정파일위치 -i : 모니터링할네트워크카드의번호 W : 결과를통해확인후지정 17/29
실습 15-1 Snort 설치하고운용하기 HSC와 MySQL의연동 25 HSC가사용할데이터베이스생성 mysqladmin -u root create aw_hsc 26 HSC가사용할데이터베이스구조생성 mysql -D aw_hsc -u root -p < hsc.v104.sql 27 HSC 실행 18/29
실습 15-1 Snort 설치하고운용하기 28 IDS 생성 29 HSC 와 MySQL 접속성공후 IDS 항목확인 Snort 실행 30 Snort 구동 snort -c c:\snort\etc\snort.conf -l c:\snort\log -i 2 19/29
실습 15-1 Snort 설치하고운용하기 31 HSC를통한 Snort 증적모니터링 20/29
침입탐지시스템의구조 NIDS(Network Intrusion Detection System) 의설치위치 21/29
침입탐지시스템의구조 ➊ 패킷이라우터로들어오기전 실제로네트워크에실행되는모든공격을탐지할수있다. 따라서공격의도가있는이들을미연에쉽게파악할수있다. 그러나너무많은공격에대한데이터를수집하여, 정작네트워크에치명적인공격에는대처하기어렵다. ➋ 라우터뒤 라우터의패킷필터링을거친후의패킷들을검사한다. ➊ 의경우보다는좀더적은수의공격을탐지하며좀더강력한의지가있는공격자를탐지할수있다. ➌ 방화벽뒤 방화벽뒤에서탐지되는공격은네트워크에영향을준다. 따라서탐지되는공격에대한정책과방화벽과의연동성이가장중요한부분이다. 내부에서외부를향한공격역시탐지가능한곳이므로내부공격자도어느정도탐지가가능하다. 네트워크특성과목적에따라조금다른경우도있지만, 만약침입탐지시스템을한대만설치할수있다면이곳에설치해야한다. ➍ 내부네트워크 방화벽은외부의침입을일차적으로차단한다. 하지만내부에대해서는거의무방비상태라고할수있다. FBI 의통계자료에따르면가장치명적인공격자는내부공격자며, 실제로해킹으로인한손실의 75% 가량이내부공격자때문에발생한다고한다. 사람수나사용하는사람의특성에따라관리하고자하는내부클라이언트들을신용할수없을때, 내부클라이언트에의한내부네트워크해킹을감시하고자할때설치할수있는곳이다. ➎DMZ 아주능력이뛰어난외부공격자와내부공격자들에의한중요데이터손실이나서비스의중단을막기위함이다. 중요한데이터와자원을보호하기위해별도의 IDS 를운영하기도한다. 22/29
침입탐지시스템의구조 설치한 IDS 들을모두개별적으로관리하지는않음. 정책에따라각시스템을통합해서관리하거나부분적으로분할해서운영 각 IDS 시스템이외부에있는관리시스템으로로그정보를보내는구성 IDS 를설치한곳에서설비및전문화된인력의부재로중앙집중화된관리가어려울경우외부침입탐지전문가에게위임하는형태다. 현재많은보안업체가제공하는관제서비스도이와비슷 23/29
침입탐지시스템의구조 24/29
침입탐지시스템의구조 25/29
침입차단시스템의기능과목적 침입차단시스템 (IPS, Intrusion Prevention System) 침입탐지시스템에방화벽의차단기능을부가한시스템 방화벽은공격차단이가능하지만새로운패턴의공격에대한적응력이무척낮으며, 대부분 IP 나포트를통한차단만가능. 실시간대응을불가능 침입탐지시스템은실시간탐지는가능하지만, 그에대한대응책을제시할수없음 속도 Eoansd 에현재방화벽과침입탐지시스템만으로는해킹, 바이러스, 웜의공격을막을수없음 취약점이발표된후웜, 바이러스, 해킹공격으로발전하는데, 과거에일년에서반년의시간이걸리던것이, 지금은아침에발표되면저녁쯤에세계의네트워크에해당취약점을공격하는웜이떠돌게됨 (Zero Day Attack) 이를위한대책이 IPS 패킷에대한검사수준이높아방화벽밖에설치할경우방화벽보다높은수준의성능이필요해일반적으로방화벽다음에설치 성능이충분이강력하고방화벽이오히려성능이부족한경우에는 IPS 를앞단에두고, 그뒤에 IPS 를설치하기도함 이렇게설치되는 IPS 는네트워크의변형이불필요하기때문에다른보안솔루션보다설치가무척간편 높은성능을내기위해서소프트웨어를하드웨어칩으로만든 ASIC 를많이이용. ASIC 으로만들어진장비를보통어플라이언스 (Appliance) 라고부름 26/29
침입차단시스템의기능과목적 27/29
침입차단시스템의기능과목적 28/29
영동대학교스마트 IT 학부 : 컴퓨터와해킹