IDS(Snort) 10111119 이기준.

Slides:



Advertisements
Similar presentations
을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
Advertisements

HTTPS Packet Capture Tutorial
컴퓨터와 인터넷.

목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
Snort & Snorby.
스마트워크(가상화) 외부 접속 방법 정보관리실.
新 연구관리 프로그램 SAP 설치 안내 1. SAP GUI 7.3 설치 2전자증빙 솔루션 설치 배포 :
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
<<< 시스템등록정보 “하드웨어-장치관리자” 설정 >>>
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
코크파트너 설치 가이드 Window 7.
윈도우7 체크 설치 매뉴얼
MYSQL 설치.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
DPR-1630&1615 IP공유기 셋팅 방법 고객지원팀 작성자 : 정청석.
네트워크 프로그래밍 및 실습.
ANSYS17.2 Student 제품 무료 다운로드
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
Intrusion Detection System (IDS) 실습
OpenVPN KISEC 44th.
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
4-1장. MySQL 제13장.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Root Filesystem Porting
Chapter 21 Network Layer: ARP, ICMP (IGMP).
Root Filesystem Porting
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
Snort and suricata 발표자 : 이경문.
Cross Compiler를이용한 커널 컴파일 및 포팅
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
IPAD2(ios 5.0.1) 사용자 메뉴얼 Mobile Service Team.
UpToDate® Anywhere(UTDA)
솔라리스10 3장. 솔라리스 패키지 관리.
㈜시스원이 제공하는 시스템 관리 통합 솔루션 SysmanagerOne Agent설치 안내서
홀인원2.0 설치 메뉴얼.
IPython Notebook + Spark + TensorFlow on MacOS
LIT-GenAppSetup ※ Texting+ 클라이언트 프로그램은 제품 인증을 받은 제품입니다.
ACL(Access Control List)
Wi-Fi 취약점 분석 본 프로젝트는 Wi-Fi 환경에서의 취약점 분석을 위한 프로젝트로 다양한 공격방법을 테스트
툴 설치 가이드 Formality SynopsysMentor.
2 보안 1 도구 윈도우 XP > 온밀크 프로그램 설치 장애 (보안 설정) / 품목추가 깨질 때 장애증상
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
Nessus 4 설치 정보보호응용 조용준.
PC에 설치된 엔드포인트 클라이언트 프로그램을 클릭하여 프로그램 상자를 엽니다
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
-네트워크 관리 개요 및 SNMP 프로토콜 동작과정
리눅스 커널 프로그래밍 환경 구축 IT EXPERT 리눅스 커널 프로그래밍 Author : Byungki Kim
Snort의 구성.
1. 스크립트 작성 마법사 2. NSIS 스크립트 컴파일
PMIS 서버 설정 환경설정 작성자 : 배경환.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Kernel, Ramdisk, JFFS2 Porting
Cold Spring Harbor Laboratory Press 저널 이용 매뉴얼
STS 에서 웹 서버 설치 방법.
OpenCV 설정 2.21 만든이 딩딩.
 파일 아카이브와 압축 명령 익히기.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
1. 인터넷 보안 옵션 레지스트리 등록 Config Setup 클릭.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
무선랜 사용자 설명서 (Windows Vista 사용자).
IPC 펌웨어 업그레이드 방법 안내 ** 반드시 IPC를 NVR POE 포트 연결 전에 작업 하시기 바랍니다. IPC를 NVR POE 포트에 연결 하실 경우 IP 대역폭을 마추셔야 하는 작업이 필요합니다. **
UpToDate® Anywhere(UTDA)
FTP 스캔 설정 방법 강사 : 이성휘 대리.
CCIT 네트워크 발표 정보보호학과 평문 사이트와 SSL 사이트, SSL strip과 데이터 변조를 이용한 로그인 취약점
숙제 작성 및 제출 과정 김진하 2008/03/14.
Docker Study 6~7.
JAVA 프로그래밍 16장 JNLP.
ARP.
Presentation transcript:

IDS(Snort) 10111119 이기준

Snort? snort는 프로토콜 분석, 컨텐츠 검색, 웜, 취약점 공격, 포트스캔, 버퍼 오버플로우 등 다양한 공격을 탐지하는 OpenSource IDS snort 기능 패킷 스니퍼 모드(패킷을 읽고 출력하는 기능) 패킷 로거 모드(모니터링 한 패킷을 저장하고 로그에 남기는 기능) 침입 탐지 시스템 모드 침입 차단 시스템 모드 옵션 v: snort를 패킷 스니퍼 모드로 동작(tcp) d: 모든 네트워크 계층을 포함. e: 데이터링크 계층 헤더를 포함. c: 패킷 검출

Snort? snort 구조(Sniffer -> Preprocessor -> Detection Engine -> Alert/Logging) Sniffer 네트워크를 도청하는데 쓰이는 하드웨어 또는 소프트웨어 장치 어플리케이션 또는 하드웨어 장치에서 해당 네트워크의 트래픽을 도청할 수 있다. Preprocessor 패킷 Sniffer로부터 전달받은 패킷을 특정한 플러그인으로 전달하여 패킷에서 특정한 종류의 행위를 찾는다. 패킷에서 특정한 행위를 찾은 뒤에 Detection Engine으로 전송하게 된다. Detection Engine Preprocessor로부터 패킷을 전달받아 패킷과 일치하는 Ruleset이 있다면 해당 패킷은 Alert/Logging으로 전달된다. Alert/Logging Detection Engine과 일치하는 패킷이 있다면 경고가 발생하는데, 이 때 경고는 로그파일, SMB, SNMP 트랩 등으로 전달된다. SMB(Server Message Block, 서버 메시지 블록)는 도스나 윈도우에서 파일이나 디렉터리 및 주변 장치들을 공유하는데 사용되는 메시지 형식 SNMP(Simple Network Management Protocol, 간이 망 관리 프로토콜)는 네트워크 장비를 관리 감시하기 위한 목적으로 UDP 상에 정의된 응용 계층 표준 프로토콜이다. SNMP는 지원하는 서버에 관리자가 질의를 해 자료를 받아갈 수 있고, 반대로 어떤 값은 설정을 요청할 수도 있다.

Snort 설치 필요한 패키지 gcc flex zlib(zlib-devel) libnet(libnet-devel) pcre tcpdump libpcap

Snort 설치 EPEL 저장소를 추가한 yum 명령어로 설치 Epel이란? Extra Packages for Enterprise Linux Red Hat 계열 리눅스 (RHEL, CentOS, Oracle Linux, Amazon Linux ...) 에서 유용한 유틸리티가 많이 포함되어 있어 필수적으로 설치하는 추가 Repository 이다. http://fedoraproject.org/wiki/EPEL 다운로드 경로 Repository - 데이터 집합체가 보관되고 조직적인 방식으로 유지되는 대체로 컴퓨터 저장장치 내의 주요 장소

Snort 설치 wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm –Uvh epel-release-6-8.noarch.rpm sed –i –e “s/enabled=1/enabled=0/g” /etc/yum.repos.d/epel.repo 기본 저장소와 충돌하지 않게 epel.repo 파일을 enable=0으로 비활성화. 이 저장소를 사용하려면 yum 명령에서 –enablerepo=epel이라고 지정해야 함. yum --enablerepo=epel –y install gcc make rpm-build autoconf automake flex bison libpcap-devel libdnet libdnet-devel zlib zlib-devel Yum –y install pcre*

Snort 설치 wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz daq와 snort 설치 및 확인 작업 파일을 다운로드 받고 설치하는 경로는 임의로 해도 되지만 처음 설치할 때는 헷갈리기 때문에 그대로 하는 것을 추천함 cd /usr/local/src <- 이 경로에 들어가서 설치 wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz wget https://www.snort.org/downloads/snort/snort-2.9.7.6.tar.gz 홈페이지에서 설치하도록 두 가지 파일을 모두 다운받았다면, 각각 압축을 풀고 설치를 하면 된다.

Snort 설치 daq 파일 설치 tar –zxvf daq-2.0.6.tar.gz cd daq-2.0.6 ./configure; make; make install 여기서 ;의 의미는 앞의 명령어가 실행된 뒤 다음 명령어를 실행하라는 의미. * yum 명령어로 설치하는 방법 yum install https://www.snort.org/downloads/snort/daq-2.0.6-1.centos7.x86_64.rpm

Snort 설치 snort 파일 설치 tar –zxvf snort2.9.7.6.tar.gz cd snort-2.9.7.6 ./configure --enable-sourcefire; make; make install * yum 명령어로 설치하는 방법 yum install https://www.snort.org/downloads/snort/snort-2.9.7.6-1.centos7.x86_64.rpm

Snort 설치 daq 파일과 snort 파일을 설치하는 방법은 https://www.snort.org 사이트에 들어가면 자세하게 설명이 되어 있다.

Snort 설치 snort 설치 확인 및 버전 확인 snort –V daq 모듈 확인 snort –daq-list

Snort 설치 필요한 폴더 작성과 룰 세트 복사 mkdir –p /etc/snort – 룰이 들어가게 됨 snort를 설치했지만, 필요한 rules은 설치되지 않았다. 즉, 데이터가 들어오는 것은 확인할 수 있어도, 그에 필요한 필터는 되지 않는다는 것을 뜻한다. 디렉터리를 만들고, 다운받은 룰 세트의 압축을 푼 뒤, 정해진 위치에 복사해 넣는다. mkdir –p /etc/snort – 룰이 들어가게 됨 P : 폴더를 생성시 상위폴더가 없으면 같이 만들어줌 mkdir –p /var/log/snort – 로그가 남을 경우 기록 cd /etc/snort /etc/snort 폴더에 snort 룰을 다운받은 뒤 압축을 해제한다.

Snort rules 설치 snort rules은 홈페이지에 다운받을 수 있도록 링크가 걸려있다. 여기서는 wget 명령어로 다운받는다. Registered rules 룰을 받을 예정인데, 이것은 사용자 등록을 한 뒤 30일간 유효한 룰을 구할 수 있는 것을 뜻한다. 스노트 홈페이지에 로그인을 해서 계정 생성을 위한 URL을 받는다. 지정된 URL로 계정에 로그인하고 다운로드 페이지에 들어간다. 취득을 위한 코드 생성을 하고 나서 다운로드한다.

Snort rules 설치(/etc/snort) 스노트 홈페이지에 로그인을 해서 계정 생성을 위한 URL을 받는다. 오른쪽 상단에 sign in을 클릭한 뒤, sign up for an account 페이지에서 계정을 만들 수 있도록 Login, Email address, password를 치고, 라이선스에 동의한 후 sign up을 클릭하면 지정한 메일로 계정 활성화 URL을 보내준다. 지정된 URL로 계정에 로그인하고 다운로드 페이지에 들어간다. 여기서 자신의 메일로 들어가서 확인을 해보면 URL이 적힌 메일을 볼 수 있다. 들어가서 인증을 해주면 가입이 완료된다. rules을 다운받기 위해서 Oinkcodes를 받아야 하는데 메일계정을 클릭하면 Oinkcode를 받을 수 있는 곳이 있다. 거기서 Documentation이라는 창에 How to use your oinkcode라는 곳을 클릭하면 다운로드 받을 수 있는 경로가 나온다. wget 명령어로 다운을 받아준다. 압축해제(tar –zxvf 명령어) touch /etc/snort/rules/white_list.rules /etc/snort/rules/black_list.rules

Snort 설치 snort 설정 파일 변경 및 권한 설정 – 경로가 안맞기 때문 어떤 경로에 로그가 생성되는지, 어떤 룰을 적용시킬지 설정. 설정 하기 전에 반드시 백업파일을 만들어 두고 할 것!! cp –p snort.conf snort.conf.original vi snort.conf 라인 변경 전 변경 후 45 ipvar HOME_NET any ipvar HOME_NET [자신의IP주소] 48 ipvar EXTERNAL_NET any ipvar EXTERNAL_NET !$HOME_NET 104 var RULE_PATH ../rules var RULE_PATH /etc/snort/rules 105 var SO_RULE_PATH ../so_rules var RULE_PATH /etc/snort/so_rules 106 var PREPROC_RULE_PATH ../preproc_rules var PREPROC_RULE_PATH /etc/snort/preproc_rules 113 var WHITE_LIST_PATH ../rules var WHITE_LIST_PATH /etc/snort/rules 114 var BLACK_LIST_PATH ../rules var BLACK_LIST_PATH /etc/snort/rules

Snort 설치 snort config 파일 옵션 var HOME_NET : snort에서 탐지할 목적지 ip 주소를 뜻함 var EXTERNAL_NET : snort에서 탐지할 출발지 ip 주소를 뜻함 var RULE_PATH : 룰 파일이 저장된 디렉터리를 지정 종류 특징 White List - 화이트리스트에 등록된 사용자만 서버와 통신이 가능하다. - 첫 사용자는 화이트리스트에 등록이 되어 있지 않으므로 관리자에게 등록을 요청하고, 등록이 될 때 까지 기다려야 한다. Black List - 블랙리스트에 등록된 사용자는 서버와 통신이 불가능하다. - 첫 사용자도 마음대로 접속 가능하기 때문에, 블랙리스트에 등록될 경우, 다른 IP로 변조하여 다시 들어올 가능성이 높다. 결론 - 보안적 측면에서는 화이트리스트가 블랙리스트보다 보안성이 높다. - 유저 편이 입장에서는 블랙리스트가 화이트리스트보다 효율적이다.

Snort 설치 snort 그룹과 사용자를 생성하고 각 파일과 폴더의 권한과 소유자를 설정 그룹 추가 권한 설정 groupadd –g 40000 snort useradd snort –u 40000 –d /var/log/snort –s /sbin/nologin –c SNORT_IDS –g snort 권한 설정 cd /usr/local/src chown –R snort:snort daq-2.0.6 snort:snort는 그룹과 유저 chmod –R 700 daq-2.0.6 chown –R snort:snort snort-2.9.7.6 chmod –R 700 snort-2.9.7.6 chown –R snort:snort snort_dynamicsrc/ chmod –R 700 snort_dynamicsrc

Snort 설치 권한 설정 cd /var/log chmod 700 snort chown –R snort:snort snort cd /usr/local/lib mkdir –p snort_dynamicrules chown –R snort:snort snort* chown –R snort:snort pkgconfig chmod –R 700 snort* chmod –R 700 pkgconfig cd /usr/local/bin chown –R snort:snort daq-modules-config chown –R snort:snort u2* chmod –R 700 daq-modules-config chmod –R 700 u2*

Snort 설치 권한 설정 cd /etc chown –R snort:snort snort chmod –R 700 snort 설정 확인 snort –T –i eth0 –u snort –g snort –c /etc/snort/etc/snort.conf Snort successfully validated th configureation! Snort exiting 마지막에 이런 문구가 나오면 설치 완료

Snort 룰 설명 snort가 제대로 작동되는지 간단한 ping 명령어로 테스트를 해본다. vi /etc/snort/rules/local.rules alert icmp any any -> $HOME_NET any (msg:”ICMP test!!”; sid:10000001; rev:001;) ICMP test!!라는 룰의 설명으로 icmp 패킷이 외부에서 들어오거나 외부로 나가는 패킷 중에 icmp 패킷은 alert(경고창)과 로그를 남기라는 뜻 snort -vde –c /etc/snort/etc/snort.conf –A full –l /var/log/snort

Snort 룰 설명 alert icmp any any -> $HOME_NET any (msg:"ICMP packet catched!"; sid:10000001; rev:001;) 룰 타입 항목 설명 헤더 alert alert - 룰에 매칭 되면 log와 경보를 남긴다. log - 룰에 매칭 되면 log만 남긴다. pass - 룰에 매칭 되든 말든 무시하고 그냥 보낸다. activate - 경보를 띄우고 다른 동적 룰(dynamic)들을 활성화 시킨다. dynamic - activate룰이 활성화시키기 전 까지는 log로 행동한다. drop - 룰에 매칭되면 패킷을 드랍 시키고 로그를 남긴다. reject - 룰에 매칭되면 패킷을 드랍 시키고 로그를 남긴다. TCP는 RST 패킷, UDP는 unreachable packet을 발생시킨다. sdrop - drop과 동일하지만 로그를 남기지 않는다. icmp 룰에서 매칭하는 프로토콜 (tcp/udp/ip/icmp)을 지정한다. any any 아무 소스 IP와 아무 소스 포트 지정한다. -> 패킷의 방향이다. $HOME_NET 목적지 ip를 자신의 IP로 설정한다. any 목적지 포트를 모든 포트로 지정한다. 옵션 msg 룰 매칭시 alert 파일에 표시할 내용이다. flags TCP 헤더에 포함되는 플래그를 설정한다. content 패킷에 특정한 문자열이 있는지 확인한다. sameip 수신지와 송신지의 IP 주소가 같은지 확인한다. sid 각 룰의 (id 번호이다. 룰마다 고유 번호가 사용된다.) rev 룰의 버전으로 같은 제목의 룰이라도 rev가 높은 것을 사용하는 것이 좋다.

Snort alert log 기록 cd /var/log/snort snort라는 폴더 안에 alert log가 남게 된다. Syn flooding공격 룰 추가하고 잡는거 확인해보기