Intrusion Detection System (IDS) 실습 Information Security Intrusion Detection System (IDS) 실습
Outline IDS Snort 소개 Snort 실습 IDS 종류 및 탐지 방법 Snort 기능 Snort 구조
Intrusion Detection System (IDS) 네트워크나 시스템의 활동을 감시하여 시스템으로 침입하려 하거나 해를 끼치려 하는 등의 공격을 발견하고 필요한 조치를 취하는 시스템 단순한 접근 제어 기능을 넘어서 침입의 패턴 데이터베이스와 Expert System을 사용해 네트워크나 시스템의 사용을 실시간 모니터링하고 침입을 탐지하는 보안 시스템
IDS Information Source 기준 분류 Host 기반 IDS : OS 감사 자료, 시스템 로그 탐지 트로이 목마 등 네트워크 기반에서 불가능한 침입 탐지 가능 Network 기반 IDS : 네트워크 패킷 탐지 포트 스캐닝 등 호스트 기반에서 탐지 불가능한 침입 탐지 가능 전체 네트워크에 대한 침입 탐지 가능 Hybrid IDS : 네트워크와 호스트 IDS의 장점을 모두 가지고 있음 네트워크와 호스트의 개별 감시 및 통합 감시 가능
IDS IDS Analysis 기준 분류 Misuse Detection(오용 탐지) IDS : 정해진 공격모델과 일치하는 경우 침입으로 간주 상대적으로 오판율이 낮음 침입에 사용된 특정 도구/기술에 대한 분석 가능 Anomaly Detection(비정상 행위 탐지) IDS : 비정상적인 행위나 컴퓨터 자원의 사용을 탐지 정해진 모델을 벗어나는 경우를 침입으로 간주 새로운 침입 유형에 대한 탐지 가능
Snort 1998년 Sourcefire 사 CTO Martin Roesch 발표 공개 네트워크 침입탐지시스템(NIDS) Snort 용어는 sniffer and more 라는 말에서 유래 커뮤니티를 통해 지속적인 탐지 Rule 제공 Multi-Platform(다양한 OS)에서 실행 가능 관리자가 직접 탐지 Rule 설정 가능
Snort 기능(모드) 분류 Sniffer Logger Network IDS Snort Inline 네트워크의 패킷을 읽어 보여주는 기능 패킷 데이터의 id/pass 도청 가능 Logger 모니터링 한 패킷을 저장 로그 기록, 트래픽 디버깅에 유용 Network IDS 침입탐지 시스템 네트워크 트래픽(패킷) 분석, 공격 탐지 기능 Snort Inline 침입방지 시스템 패킷 분석, 공격 차단 가능
Snort 구조 Sniffer : Snort를 통과하는 모든 패킷 수집 Preprocessor : 효율적인 공격 탐지를 위해 몇 가지 플러그인을 먼저 거치며 매칭되는지 확인 Detection Engine : rule 기반의 탐지 엔진, 사전에 정의된 detection rule과 매칭되는지 확인 Logging : 정책에 따라 로그 기록
Snort 설치 APMSETUP adodb Base Snort http://apmsetup.com/download.php https://sourceforge.net/projects/adodb/?source=dir ectory Base https://sourceforge.net/projects/secureideas/postdo wnload?source=dlp Snort https://www.snort.org/downloads
Snort 설치 APMSETUP ID : root PW : apmsetup
Snort 설치 C:\APM_Setup\htdocs에 adodb5 복사 index.php 파일 삭제
Snort 설치 Snort 설치
Snort 설치 C:\APM_Setup\htdocs에 base 복사
Snort 설정 명령 프롬프트로 열기 cmd→cd \snort\schemas
Snort 설정 >mysqladmin –u create snort (snort DB 생성) >mysql –D –u root –p < create_mysql (snort DB에 현재 폴더에 있는 create_mysql 내용 넣음) >mysql –u root –p (mysql 콘솔 로그인) >use snort; (snort DB 선택) >show table; (snort DB 테이블 확인)
Snort 설정
Snort 설정 Base 설정 C:\APM_Setup\htdocs\base\includes\base_actio n.inc.php //include_once("Mail.php"); // r.rioux added for PEAR::Mail //include_once("Mail/mime.php"); //r.rioux added for PEAR::Mail attachments
Snort 설정 http://localhost/base C:\APM_Setup\htdocs\adodb5
Snort 설정
Snort 설정
Snort 설정 base 메인화면
Snort 설정 C:\Snort\etc\snort.conf protvar, ipvar → var / → \
Snort 설정
Snort 설정 # 주석처리
Snort 설정 #database에 추가 output database: alert, mysql, user=root password=apmsetup dbname=snort host=localhost output database: log, mysql, user=root password=apmsetup dbname=snort host=localhost
Snort 설정
Snort 설정 방화벽 해제
Snort 실행 snort -W
Snort 실행 snort -c [설정파일] -l [로그경로] -i [네트워크 카드 번호] snort -c C:\Snort\etc\snort.conf -l C:\Snort\log -i 1
Snort Rule 구조 Rule은 Header, Option으로 구성 됨
Snort Rule 구조 action protocol IP address port direction alert : Alert 발생시킴, 패킷 기록 log : 패킷 기록 pass : 패킷 무시 protocol TCP, UDP, ICMP, IP IP address 임의의 주소 any 또는 IP 주소 지정 특정 호스트만 지정 : 192.168.1.10/32 동시에 여러 IP 지정 192.168.1.0/24, 172.16.0.0/16 port 임의의 주소 any 또는 port 번호 지정 포트 범위 지정 ‘:’ 사용 direction 패킷 방향 나타내는 기호 -> 좌측 송신자, 우측 수신자 <> 송수신자 구별없이 지정한 IP 사이의 모든 패킷 대상
Snort Rule 구조 option
Snort 실습 C:\snort\rules 폴더에 user.rules 파일을 만들고 alert icmp any any -> any any (msg:"ICMP TEST"; sid:50001;) 를 추가 C:\Snort 에는 so_rules라는 파일을 만들어서 50001 || ICMP TEST 를 추가
Snort 실습 다른 PC에서 ping 보내기
Snort 실습
실습 오늘 실습 한 것과 특정 포트 (예:http, ftp)로 전송된 패킷을 받으면 alert 되도록 rule 설정한 결과 캡쳐 p37에 있는 Rule 분석 보고서에 설정한 rule과 탐지된 결과 및 분석 결과 첨부 E-mail 제출 : daeunlee@khu.ac.kr (5/15 자정까지) 보고서 제목 : [정보보호]hw3_학번_이름.hwp 메일 제목 : [정보보호]hw3_학번_이름
실습 Detection Engine : Rules
Snort 실행 옵션 options Decription -A Alert 모드를 fast, full, none 중의 하나로 지정 스노트를 데몬 모드로 실행 -F <bpf> BPF 필터링 식을 <bpf>로 지정된 파일에서 읽어온다. -h <hn> 홈네트워크 변수 HOME_NET 을 <hn> 의 값으로 셋팅 -n <cnt> <cnt> 개의 패킷만을 모니터링하고 프로그램을 종료 -N 로깅 기능을 사용하지 않는다. Alert 만이 저장 -o 룰셋 테스트 순서를 Pass, Alert, Log 순으로 변경 -p 난잡모드 (promicuous) 를 사용하지 않고 스니핑 -r <tf> <tf>로 지정된 tcpdump 파일의 패킷 읽어 들임 -V 버전 정보를 표시 -X 링크 레이어의 law 패킷 데이터를 덤프 -e 두번째 레이어의 헤더 정보를 프린트 -d 어플리케이션 레이어를 덤프 -? 도움말 표시 <filter options> 위치에 지정되는 필터링 옵션은 tcpdump 같이 BPF 를 사용