OS/Windows

windows에서 SNORT 설치

s0ccer 2017. 1. 26. 11:04

출처

snort.org

base.secureideas.net

adodb.org

ehey0214.tistory.com/51

 

Snort ?
Snort는 네트워크 상에서 발생한 패킷을 관찰하여 Snort 규칙으로 작성된 패턴(사용자가 작성한 특정 문자열)이 탐지되면

모니터에 보여주는 오픈소스 기반의 패킷 모니터링 및 탐지 툴이라고 생각하시면 됩니다.
이 툴을 기반으로 만든 대표적인 장비는 IDS/IPS, TMS가 있으며 IDS와TMS는 탐지만 IPS는 탐지 및 차단 기능이 있습니다.
IDS/IPS는 탐지 시 횟수 당 최대 84byte의 패킷을 보여주고 TMS는 1524byte의 패킷을 보여줍니다.
TMS가 IDS/IPS보다 패킷의 탐지 범위가 넓죠 그렇지만 가장 큰 단점이 있습니다.

예를 들어 보안 관리자가 웹서버의 공격을 탐지하기 위해 외부IP에서 내부망 IP로 PORT는 80으로 접근하는 snort 패턴을 내부망 IP대역을  지정하지 않을 경우 1번 처럼 외부IP -> 내부IP port 80으로 접근하는 이벤트를 탐지하고 2번 처럼 내부IP에서 외부IP port 80으로 접근하는 이벤트도 탐지합니다. 이처럼 TMS는 외부에서 내부로 들어오는 패킷만 보고 싶은면 패턴마다 내부망 IP 대역을 수동으로 지정해야하는 큰 단점이 있습니다.

 

 

 

SNORT 설치
1. 프로그램 설치 환경
VM이 설치된 XP 또는 Windos7 환경에서 구현

APMSETUP 7, Snort_2_9_2_3_Installer.exe

Snort_2_9_2_3_Installer.exe

, WinPcap 설치

 

2. DB 설정

cd c:\Snort\schemas // cmd 창에서 입력
mysqladmin -u root -p create snort // snort DB 생성 passwd 는 apmsetup
mysql -D snort -u root -p < create_mysql // table 생성 및 내용 저장
mysql snort -u root -p // 테이블 접근
show tables; // 테이블 확인

exit

 

3. SNORT 설정

C:\Snort\etc\snort.conf 파일을 아래와 같이 수정한다. (파란 글씨는 수정/추가 빨간 글씨는 삭제 입니다.)

ipvar -> var로 전체 수정

--------------------------------------------------------------------------------------------------------------------------------------------------

# Setup the network addresses you are protecting

var HOME_NET 192.168.X.0/24 // 스노트 설치 PC의 IP대역 C클래스로 설정

--------------------------------------------------------------------------------------------------------------------------------------------------
# Note for Windows users:  You are advised to make this an absolute path,

var RULE_PATH C:\Snort\rules  // 절대 경로로 변경
var SO_RULE_PATH C:\Snort\so_rules
var PREPROC_RULE_PATH C:\Snort\preproc_rules

--------------------------------------------------------------------------------------------------------------------------------------------------

# Set the absolute path appropriately

var WHITE_LIST_PATH c:\snort\rules

var BLACK_LIST_PATH c:\snort\rules

--------------------------------------------------------------------------------------------------------------------------------------------------

# path to dynamic preprocessor libraries

dynamicpreprocessor directory c:\snort\lib\snort_dynamicpreprocessor

# path to base preprocessor engine
dynamicengine c:\snort\lib\snort_dynamicengine\sf_engine.dll

# path to dynamic rules libraries
dynamicdetection directory c:\snort\lib\snort_dynamicrules // c:\snort\lib\snort_dynamicrules 폴더 생성

--------------------------------------------------------------------------------------------------------------------------------------------------
whitelist $WHITE_LIST_PATH/white_list.rules, \ // C:\Snort\rules\white_list.rules 빈파일 생성
blacklist $BLACK_LIST_PATH/black_list.rules // C:\Snort\rules\black_list.rules 빈파일 생성

--------------------------------------------------------------------------------------------------------------------------------------------------

# Inline packet normalization. For more information, see README.normalize
# Does nothing in IDS mode
# preprocessor normalize_ip4
# preprocessor normalize_tcp: ips ecn stream
# preprocessor normalize_icmp4
# preprocessor normalize_ip6
# preprocessor normalize_icmp6

--------------------------------------------------------------------------------------------------------------------------------------------------

# 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

--------------------------------------------------------------------------------------------------------------------------------------------------

# site specific rules
include $RULE_PATH/local.rules

include $RULE_PATH/attack-responses.rules
include $RULE_PATH/backdoor.rules
include $RULE_PATH/bad-traffic.rules
include $RULE_PATH/blacklist.rules
include $RULE_PATH/botnet-cnc.rules
include $RULE_PATH/chat.rules
include $RULE_PATH/content-replace.rules
include $RULE_PATH/ddos.rules
include $RULE_PATH/dns.rules
include $RULE_PATH/dos.rules
include $RULE_PATH/exploit.rules
include $RULE_PATH/file-identify.rules
include $RULE_PATH/finger.rules
include $RULE_PATH/ftp.rules
include $RULE_PATH/icmp.rules
include $RULE_PATH/icmp-info.rules
include $RULE_PATH/imap.rules
include $RULE_PATH/info.rules
include $RULE_PATH/misc.rules
include $RULE_PATH/multimedia.rules
include $RULE_PATH/mysql.rules
include $RULE_PATH/netbios.rules
include $RULE_PATH/nntp.rules
include $RULE_PATH/oracle.rules
include $RULE_PATH/other-ids.rules
include $RULE_PATH/p2p.rules
include $RULE_PATH/phishing-spam.rules
include $RULE_PATH/policy.rules
include $RULE_PATH/pop2.rules
include $RULE_PATH/pop3.rules
include $RULE_PATH/rpc.rules
include $RULE_PATH/rservices.rules
include $RULE_PATH/scada.rules
include $RULE_PATH/scan.rules
include $RULE_PATH/shellcode.rules
include $RULE_PATH/smtp.rules
include $RULE_PATH/snmp.rules
include $RULE_PATH/specific-threats.rules
include $RULE_PATH/spyware-put.rules
include $RULE_PATH/sql.rules
include $RULE_PATH/telnet.rules
include $RULE_PATH/tftp.rules
include $RULE_PATH/virus.rules
include $RULE_PATH/voip.rules
include $RULE_PATH/web-activex.rules
include $RULE_PATH/web-attacks.rules
include $RULE_PATH/web-cgi.rules
include $RULE_PATH/web-client.rules
include $RULE_PATH/web-coldfusion.rules
include $RULE_PATH/web-frontpage.rules
include $RULE_PATH/web-iis.rules
include $RULE_PATH/web-misc.rules
include $RULE_PATH/web-php.rules
include $RULE_PATH/x11.rules

include $RULE_PATH\user_defind.rules // C:\Snort\rules\user_defind.rules 빈파일을 생성한다.

 

4. BASE 설정

base-1.4.5base-1.4.5.tar.gz 압축해제 후 디렉토리 이름을 base로 변경하고 C:\APM_Setup\htdocs\ 이하 디렉토리에 저장

base\includes\base_action.inc.php 파일에서 아래 두 줄 앞에 // 주석을 붙여준다.

// include_once("Mail.php"); // r.rioux added for PEAR::Mail
// include_once("Mail/mime.php"); //r.rioux added for PEAR::Mail attachments

 

5. BASE 설치

http://localhost/base 에 접속하여 BASE를 설치하고 아래 항목 부분만 입력하고 Countinue

 

Path to ADODB : C:\APM_Setup\htdocs\adodb5 // php는 표준화된 DB 접근함수를 가지고 있지않아 ADODB 라이브러리 필요함

adodb5adodb-5.20.9.zip 압축해제 후 C:\APM_Setup\htdocs\adodb5에 저장

Database Name : snort

Databse Host : localhost

Database User Name : root

Database Password : apmsetup

 

"Create BASE AG" 누르고 다음 화면에서 "Now continue to step 5" 눌러 BASE 설치를 완료한다.

6. SNORT 룰 입력

user_defind.rules 파일을 열어서 아래와 같이 입력하고 저장

 

7. SNORT 실행

cd c:\snort\bin // cmd 창에서 입력
snort -c c:\snort\etc\snort.conf -l c:\snort\log -i 1

 

8. SNORT 테스트

같은 C클래스로 설정된 다른 PC에서 SNORT가 설치된 IP로 http://192.168.X.X/test 입력하여 룰 테스트를 진행함

 

SORT가 설치된 PC에서 http://localhost/base 로 접속하여 Alerts 누름

 

이벤트 ID #0-(1-1) 누름

 

이벤트 탐지 확인