2018-11-14
SNORT IDS 설치를 위한 설정
필수 패키지 설치
- apt-get -y install flex bison build-essential checkinstall libpcap-dev libpcre3-dev libmysqlclient-dev libnetfilter-queue-dev iptables-dev libdnet-dev
- flex : 텍스트 패턴 생성
- bison : GNU Parser ( Parser: Parse + er = 구문분석 + 하는 놈 =구문분석 하는 툴)
- build-essential : 소스코드를 컴파일하는데 필요한 최소한의 도구모음
- checkinstall : 소스코드를 컴파일이 된 것을 패키지로 만들고 실제로 설치도 해준다.
- libpcap-dev : libpcap 개발자 버전
- libpcap : 리눅스/유닉스용 Packet Capture Library ( 윈도우용은 WinPcap)
- dev -> devlopment -> 개발자들을 위한 라이브러리
- libpcre3-dev : 개발자용 pcre 라이브러리
- libpcre3 : pcre 라이브러리
- pcre : Perl Compatible Regular Expression = 펄 호환 정규화 표현식
- Perl : 스크립트 언어의 한 종류, 문법이 쉽고 활용 범위가 넓다.
- libmysqlclient-dev : 개발자용 libmysqlclient -> Snort가 탐지한 내역을 DB에 저장하려고
- libmysqlclient : mysql client 용 라이브러리
- libnetfilter-queue-dev :
- libnetfilter-queue(NFQUEUE) : iptables로부터 패킷을 전달받는 역할 (NFQUEUE)
- iptables-dev : 개발자용 Ipatables(방화벽)
- libdnet-dev : libdnet 개발자용
- libdnet : 네트워크 관련 정보 확인, 수정, 방화벽 제어, 패킷생성/전송
작업 디렉토리 생성
- mkdir -p /root/snort-install
- cd /root/snort-install
libdnet 컴파일 설치
- libdnet 최신버전이 아닌 1.12버전을 필요로하기 때문에 어쩔수 없이 다운받아 설치
- wget http://ftp.psu.ac.th/pub/snort/libdnet-1.12.tgz
- tar zxvf libdnet-1.12.tgz
- cd libdnet-1.12
- ./configure "CFLAGS=-fPIC" //빌드(컴파일) 할 옵션을 지정하는 과정
- make //실제 컴파일(빌드) 과정
- checkinstall -y //CheckInstall will build a .deb package and install it.
- dpkg -l |grep libdnet //패키지 설치 확인
- ln -s /usr/local/lib/libdnet.1.0.1 /usr/lib/libdnet.1
DAQ 컴파일 및 설치
- 설명: Data AcQuisition : 데이터 수집
- 참고 https://snortrules.wordpress.com/2010/10/22/snort-2-9-0-%EC%9D%98-daq-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EA%B8%B0%EB%8A%A5/
- 스노트가 공격탐지할 때 필요한 정보를 제공하는 역할
- cd /root/snort-install
- wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz
- tar zxvf daq-2.0.6.tar.gz
- cd daq-2.0.6
- ./configure
- make
- checkinstall -y //CheckInstall will build a .deb package and install it.
- dpkg -l |grep daq
Snort 설치
- cd /root/snort-install
- wget https://www.snort.org/downloads/archive/snort/snort-2.9.11.1.tar.gz
- tar zxvf snort-2.9.11.1.tar.gz
- cd snort-2.9.11.1
- ./configure --enable-sourcefire
- make
- checkinstall -y //CheckInstall will build a .deb package and install it.
- ln -s /usr/local/bin/snort /usr/sbin/snort
- ldconfig -v //설치 확인(버전 체크)
- snort -V //설치 확인(버전 체크)
[ 실습 ]
◎ IDS 설치
- ICMP 탐지
- Back Door 탐지
- ICMP 탐지
- Back Door 탐지
Snort 탐지 Rule 설치
- Snort.org 로그인
- Step3 에서 Registered Rules 클릭
- 로그인 하고 다운받아서(웹)
- mkdir /etc/snort
- tar -xvfz snortrules-snapshot-29111.tar.gz -C /etc/snort
Snort 설정
- mv /etc/snort/etc/* /etc/snort
- vi /etc/snort/snort.conf
- ipvar HOME_NET 192.168.0.0/24 //보호할 네트워크의 IP영역
- ipvar EXTERNAL_NET !$HOME_NET
- var RULE_PATH /etc/snort/rules
- var SO_RULE_PATH /etc/snort/so_rules
- var PREPROC_RULE_PATH /etc/snort/preproc_rules
- var WHITE_LIST_PATH /etc/snort/rules
- var BLACK_LIST_PATH /etc/snort/rules
**주의
- HTTP 전처리기 설정에서 처리할 수 없는 오류 발생
324번줄 \(BackSlash) 제거
325줄 주석처리 (맨앞에 # 추가) --> webroot no 이거 제거하려고
326 주석처리 (맨앞에 # 추가) --> decompress_swf 이거 제거하려고
326 주석처리 (맨앞에 # 추가) --> decompress_pdf 이거 제거하려고
스노트 실행 에러 발생 시 해결
- touch /etc/snort/rules/white_list.rules --> 파일이 없어서 snort 실행시 에러발생
- touch /etc/snort/rules/black_list.rules --> 파일이 없어서 snort 실행시 에러발생
- mkdir /usr/local/lib/snort_dynamicrules --> 디렉토리가 없어서 snort 실행시 에러발생
추가 룰 추가
- 설치한 Registered Rules에 포함된 룰이 부실하므로 추가적으로 다운로드하여 추가한다.
- wget https://raw.githubusercontent.com/eldondev/Snort/master/rules/icmp.rules
- $RULE_PATH 를 확인하여 복사해준다.
Large ICMP 공격 탐지 테스트
- IDS 준비 작업
- mkdir -p /var/log/snort --> 로그를 남길 디렉토리 생성
- snort --daq pcap --daq-mode passive -c /etc/snort/snort.conf -A full -l /var/log/snort -K ascii
- 공격(칼리)
- ping -s 1000 VictimIP
[ 공격 ]
nmap이나 nessus로도 가능
- 탐지 확인
- cd /var/log/snort
- cat alert
- 탐지된 내역 --> [**] [1:499:4] ICMP Large ICMP Packet [**]
백도어 탐지하기
- Rule 추가
- cd /etc/snort/rules
- vi backdoor_test1.rules
- alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"Backdoor beast2.07 Connection"; flow:to_server,established; content:"666"; offset:0; depth:12; sid:181818; rev:1)
- snort.conf 설정
- include $RULE_PATH/backdoor_test1.rules //추가
No comments:
Post a Comment