'snort'에 해당되는 글 5건

  1. 2008.07.18 linux - snort , DB 연동 , apache . webserver 연동
  2. 2008.07.17 linux - snort , DB 연동
  3. 2008.07.16 linux - snort , NIDS , 침입탐지모드
  4. 2008.07.10 linux - snort , NIDS
  5. 2008.07.10 linux - IDS
2008. 7. 18. 00:24

linux - snort , DB 연동 , apache . webserver 연동

snort , DB , apache
---------------------------------------------------------------------------------------------------------
snort 에 의해 생긴 자료를 DB와 연동 시켜 보았지만 이를 분석 하기가 상당히? 까다롭다 .
해서 웹상에서 간편히 볼 수 있도록 웹서버와 연동시켜 보자.
---------------------------------------------------------------------------------------------------------

아파치 서버 설치
---------------------------------------------------------------------------------------------------------
아파치를 돌리기 위해서는 APM ( httpd, php-gd, php-mysql)관련 패키지가 필요하다.
또한 adodb, base source 도 필요하다.

[centos]
사용자 삽입 이미지
필요한 패키지를 yum을 이용해 설치 하자.

역시 adodb, base source도 받자
사용자 삽입 이미지
# tar xvfz adodb495a.tgz -C /var/www
# tar xvfz base-1.3.6.tar.gz -C /var/www/html        // -C    풀릴 위치 지정
# cd /var/www ; ls
adodb  cgi-bin  error  html  icons                 //adodb
# cd html ; ls
base-1.3.6
# mv base-1.3.6/ base
# cd base
# ls
# cp base_conf.php.dist base_conf.php
# vi base_conf.php

48 $BASE_urlpath = '/base';
70 $DBlib_path = '/var/www/adodb';
92 $alert_dbname   = 'snort';
95 $alert_user     = 'base';
96 $alert_password = 'base123';               // 각각 수정


# service httpd start             // 웹데몬 시작 . mysql 이 정지 되어있다면 시작시켜야한다.
사용자 삽입 이미지
인터넷 창을 열어 확인
setup page   광클
사용자 삽입 이미지

create BASE AG를 누르게 되면 DB를 바탕으로 웹페이지가 생성 된다.
사용자 삽입 이미지

여기서 HOME을 눌른 다음 그 페이지에서 각각 끌리는? 것에 눌러 보면 /var/log/snort에서 본 정보가
일목 요연? 하에 보여진다는 것을 알 수 있다.
2008. 7. 17. 01:41

linux - snort , DB 연동

snort LOG를 DB로
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DB를 생각 하면 머리에 쥐가..쳇..

DB언어
DDL ( 정의어 ) : create, drop, alter
DML ( 조작어 ) : select, insert, update, delete(데이터만 삭제)
DCL ( 제어어 ) : grant, reboke , deny

성능에 따라
IBMDB2   >    Oracle > MS- SQL > Access > excel  > my- sql
순으로 성능이 좋고 가격도 좋다? 비싸다 ㅡㅡㅋ
--------------------------------------------------------------------------------------------------------

실습
--------------------------------------------------------------------------------------------------------
[centos]
[root@centos ~]# rpm -qa | grep sql
sqlite-3.3.6-2
python-sqlite-1.1.7-1.2.1
hsqldb-1.8.0.4-3jpp.4
mysql-5.0.22-2.2.el5_1.1
php-mysql-5.1.6-15.el5
postgresql-libs-8.1.9-1.el5
mysql-server-5.0.22-2.2.el5_1.1                    // mysql-server가 있따.
없다면
# yum -y install mysql-server                     // 의존성 패키지 (mysql, perl-DBD-MYSQL, perl-DBI)
사용자 삽입 이미지

yum설치 하면 잘됩니다.

//fedora 가 아닌 centos다 이미지의 제목이랑 다르다..잠결에 엉뚱한데다....

[root@centos ~]# service mysqld start
어찌 됐는 okok 뜨면서 실행 된다. ㅡㅡ/
# netstat -ntlp   // 3306 포트 확인
# /usr/bin/mysqladmin -u root password '123456'      
                                     // 처음 접속시 관리자 계정과 패스워드를 설정해줘야 한다.
mysql> show databases;
mysql> create database snort;
mysql> use snort;
mysql> show tables;

[fedora]
// snort를 받아 압축을 푼 폴더로 이동
# cd /tmp/snort
# make clean    // 컴파일된 파일 삭제
# reset             // 메모리 올려진 컴파일 삭제
// 재 컴파일 하자
# ./configure --prefix=/etc/snort --with-mysql && make && make install
or
# ./configure  --with-mysql && make && make install
// 여기서 주의할 점은 나중에 # snort -c snort.conf 로 실행 했을때 에러가 뜨면
위의 작업을 다시 해야한다.  --prefix  부분을 삭제하고 다시 하자.
# ehco $?
0
# vi /etc/snort/snort.conf
/mysql
830
사용자 삽입 이미지
output database 부분을 수정하자
alert 와 log를 mysql 로 내보낼때 쓰인다.
user snort가 DB에 쓸때 쓰일 계정이다. 임의로 해도 된다 . 단 mysql에서 맞춰우어야 하낟.
dbname - snort가 데이터가 들어갈 db
host   db가 저장될 host
수정후 저장
/tmp/snort-2.6.1.5/schemas 로 이동 후
# pwd
/tmp/snort-2.6.1.5/schemas
# ls
Makefile     Makefile.in  create_mssql  create_oracle.sql
Makefile.am  create_db2   create_mysql  create_postgresql
# more create_mysql    // snort에 쓰일 db구문이 있다.
# scp create_mysql root@192.168.10.30  //centos로 이동

[centos]
다른 터미널로 로긴
# mysql -u root -p snort < create_mysql   // 리다이렉션을 이용 snort 테이블에 대해 create_mysql문 적용

sql접속되어있는 터미널에서
mysql> shoq tables;
mysql> select * from data;
mysql> select * from signature;     // data, sig 둘다 비어있다.
mysql> use mysql;
mysql> select host,user,password form user;
계정에 권한을 주자
mysql> grant CREATE,SELECT,INSERT,UPDTE,DELETE on snort.* to base@localhost;
                      //base@localhost 에게 CREATE ~~등등의 권한 할당
mysql> set password for base@localhost=PASSWORD('base123');
                      // 암호 설정
mysql> grant CREATE,SELECT,INSERT,UPDATE,DELETE on snort.* to base@192.168.10.10;
                      //base@192.168.10.10 에게 CREATE ~~등등의 권한 할당                     
mysql> set password for base@192.168.10.10=PASSWORD('base123');
                       //암호설정
mysql> select host,user,passwrod from user;  
                       // 권한이 grant되어진것을 확인 할 수 있다.

[fedora]
# snort -c /etc/snort/snort.conf
정상 실행 되는지 확인해보자
만약 메모리가 모자르다면 일단 필요없는 프로세스 를 잠깐 끄자.
ctrl +z
# pkill -9 snort
# snort -c /etc/snort/snort.conf -D

[centos]
# nmap -sS -O -v 192.168.10.10           // 스캔

sql이 켜진 터미널로 이동
mysql> user snort;
mysql> select * from data;
mysql> select * from signature;      // 데이터가 생성 된것을 볼 수 있다.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


2008. 7. 16. 13:11

linux - snort , NIDS , 침입탐지모드


3. 침입탐지 모드
------------------------------------------------------------------------------------------------------
rule 을 이용하여 캡처된 패킷과 비교 후 경고 및 기록

[fedora]
받은 패키지를 푼 디렉토리로 이동하자
# cd /tmp
# cd snort-2.6.1.5
# ls
COPYING        aclocal.m4     configure     libtool        snort.8
ChangeLog      config.guess   configure.in  ltmain.sh      src
LICENSE        config.h       contrib       m4             stamp-h1
Makefile       config.h.in    depcomp       missing        templates
Makefile.am    config.log     doc           mkinstalldirs  verstuff.pl
Makefile.in    config.status  etc           rpm
RELEASE.NOTES  config.sub     install-sh    schemas
# cd etc
# mkdir /etc/snort             // 룰 적용을 위한 설정 폴더
# cp * /etc/snort -v          // 설정파일  복사
# cd /etc/snort
# vi snort.conf
사용자 삽입 이미지
사용자 삽입 이미지
46 line 에서 자신의 네트워크 대역으로 수정
114 line 에서 rule의 위치를 절대경로 로 수정 후 저장

# ls /var/log/snort       // 기존 로그가 있다면 삭제
# rm -rf /var/log/snort/*

snort 구동
#  pwd
/etc/snort
# snort -c snort.conf      // -c conf 파일 위치
                                   // rule파일이 없어서 error
# wget http://www.snort.org/pub-bin/downloads.cgi/Download/vrt_pr/snortrules-pr-2.4.tar.gz
            // rule 다운로드
# ls
# tar xvfz snortrules-pr-2.4.tar.gz     // snort rule파일을 풀어 주자 # pwd 는 /etc/snort
# ls                                               // rules     폴더가 생겼다.
사용자 삽입 이미지
# snort -c /etc/snort/snort.conf
에러가 메시지가 뜬다 . 아마도?     web-misc 부분일것이다.
snort.conf 파일 수정하자
# vi /etc/snort/snort.conf
/web-misc
해당 라인을 주석 처리 하자.
사용자 삽입 이미지
수정후 재실행
# snort -c /etc/snort/snort.conf

/var/log/snort          폴더 가 없다는 이유로 에러가 뜰수 있다.
# mkdir /var/log/snort      
# snort -c /etc/snort/snort.conf
정상 작동 된다면
ctrl + z
강종
# ps -ef | grep snort       // snort 는 아주 독한? 프로그램이라 ctrl +z 만 먹는다.
                                    // 종료후 남은 프로세스를 킬해주자
    snort pid #
# kill -9 # ( snort pid )
or     // 귀찮다면 아래처럼 해도 된다.
# pkill -9 snort
# ps -ef | grep snort

# snort -c /etc/snort/snort.conf -D      // -D 데몬 형태로 백그라운드에서 실행

[ centos ]
# nmap -sS -O -v 192.168.10.10            // fedora로 스캔 땡겨보자

[ fedora ]
# ls -l /var/log/snort
alert    외 snort.log.xxxx     파일이 생성되었다. 탐지 했다는 뜻 ㅡㅡ/
# cat alert | more
# cat snort.log.xxxx // 꺠져 보인다.   alert는 그냥 볼 수 있지만 log파일은 snort로 보자.
# snort -r /var/log/snort/snort.log.xxxx
------------------------------------------------------------------------------------------------------

2008. 7. 10. 14:37

linux - snort , NIDS

snort
------------------------------------------------------------------------------------------------------
1. snort 는 공개형 s/w 가장 대표적인 침입탐지 시스템이다
2. 패킷 수집 라이브러리인 libpcat에 기반한 네트워크 스니퍼로 정의되며 침입탐지 rule들에 일치 하는 네트워크 트래픽을 감시, 기록, 경고 할 수 있다.
3. Overflow, Stealth 포트 스캔, CGI공격, SMB탐색, OS확인 시도등 다양한 공격에 대해 탐지가 가능하다.
4. 탐지 룰은 지속적으로 업데이트 되며, 자신이 직접 작성할 수 있으므로 최신의 공격에 대응이 가능하다.
------------------------------------------------------------------------------------------------------


SPAN을 이용한 snort 구성
------------------------------------------------------------------------------------------------------
switch에 물린 각 client가 물려져 있다면 이에 더해서 IDS를 같이 물려 사용할 수 있다.
이때 이용하는 방법이 switch에 SPAN이다. 또는 미러링 포트, 모니터 포트라고도 한다.
 ----------------------------
|ㅁ     ㅁ     ㅁ      ㅁ       ㅁ    ㅁ    |      Switch
-+---+------------------+--
  |       |                                     |
clientS ....                                  IDS
------------------------------------------------------------------------------------------------------


설치 전 준비사항
------------------------------------------------------------------------------------------------------
libpcap
             :    http://www.tcpdump.org
             :    libpcat v0.9.8
             :    wget http://www.tcpdump.org/release/libpcap-0.9.8.tar.gz
pcre
             :   http://sourceforge.net/progect.showfiles.php?group_id=10194
             :   pcre       ,     pcre-devel
snort
             :  snort v2.6.1.5
             :  소스    http://www.snort.org/dl/old/snort-2.6.1.5.tar.gz
             :  sign     http://www.snort.org/dl/old/snort-2.6.1.5.tar.gz.sig
             :  공개키        http://www.snort.org/sl/pubkeys/public_key_2601
------------------------------------------------------------------------------------------------------

설치
------------------------------------------------------------------------------------------------------
사용자 삽입 이미지

libpcap과 pcre는 설치되어있으나 pcre-devel은 없다. yum을 통해서 설치하자. 역시 앞의 두가지도 없다면 설치하자
사용자 삽입 이미지

snort 설치
 
사용자 삽입 이미지

# wget http://www.snort.org/dl/old/snort-2.6.1.5.tar.gz.sig
# wget http://www.snort.org/sl/pubkeys/public_key_2601
# gpg --import public_key_2601
# gpg --list-key                   // 공개키값을 확인하자
# gpg --edit-key ####(공개키값 )
                            command> trust
                            command> 5     
                                                    y
                            command> quit
# gpg --verify snort-2.6.1.5.tar.gz.sig snort-2.6.1.5.tar.gz
                  // 하게 되면 good signature 어쩌구 저쩌구 나온다
이작업은 snort에 대한 변조 유무를 확인 하는작업이다.
tip . 에러 메시지 뜰때는 # rdate -s time.bora.net으로 시간 동기화를 해보길 바란다.
# tar xvzf snort-2.6.1.5.tar.gz
]# cd snort-2.6.1.5
# ls
COPYING        aclocal.m4    contrib     m4             src
ChangeLog      config.guess  depcomp     missing        templates
LICENSE        config.h.in   doc         mkinstalldirs  verstuff.pl
Makefile.am    config.sub    etc         rpm
Makefile.in    configure     install-sh  schemas
RELEASE.NOTES  configure.in  ltmain.sh   snort.8
# ./configure && make && make install
# echo $?

touble 발생
사용자 삽입 이미지

헌데 문제가 생겼다 libpcap 문제로 설치 중단이 되었다. 해서 원본 소르를 받아 설치하려
tcpdump 사이트를 뒤져 봤으나
사이트가 문을 닫은 상태였다 ..
해서 일단 중지
------------------------------------------------------------------------------------------------------
하여 이리저리 문서를 찾은 결과

CentOS에서는 libpcap-devel을 설치 한뒤에 해야 한단다. 설치해야 한다는건지 필요하다는건지''
죄 영어라 원..
fedora 로 썼을때는 따로 설치 한 기억이없었는데 이거원..... 가짢은게 괴롭힌다...
http://www.snort.org/archive-11-4370.html

# yum -y install libpcap-devel
설치후
# ./configure && make && make install
이자 잘된다 ㅡ.,ㅡㅋ
# echo $?
0
설치끝 ㅡ.,ㅡ헥헥
------------------------------------------------------------------------------------------------------

snort의 동작 방식
------------------------------------------------------------------------------------------------------
1. 스니핑 모드 (ethereal 처럼 패킷을 캡쳐, 화면에 출력)
2. 로깅 모드(파일에 저장)
3. 침입탐지 모드
------------------------------------------------------------------------------------------------------

1. 스니핑 모드
------------------------------------------------------------------------------------------------------
[fedora]
# snort -v
[centos]
# nmap -sS -O -v 192.168.10.30                           // 조금 하다가 중지
[fedora]
관찰 정보가 주르르륵 뜬다 탐지가 된다는것
[centos]
ctrn +z
# pkill -9 snort
# ps -ef | grep snort
snort가 남아있는지 확인~
------------------------------------------------------------------------------------------------------

2. 로깅 모드(파일에 저장)
------------------------------------------------------------------------------------------------------
# snort --help
                        -K <mode> : logging mode (pcap (default), ascii, none)
# snort -vde -K ascii                    // log 디렉토리가 없어 에러
# mkdir /var/log/snort                  로그 디렉토리 생성
# snort -vde -K ascii       
                         -v: verbose
                         -d : dump the application layer
                         -e : display the second layer header info
                         -vde : layer 2~7 packet 정보 감시
[xp]
telnet 192.168.10.10 [fedora]
------------------------------------------------------------------------------------------------------

2008. 7. 10. 13:41

linux - IDS

침입 탐지 시스템
-----------------------------------------------------------------------------------------------------
방화벽을 성문에 비유했을 때 성문에서 철저히 감시한다고 해도 성 안에서 나쁜짓을 하는 경우도 있다. 어디나 구멍은 있기 마련이다. 특히 개구멍 ''
아무튼 이런 경우를 캐치 하기 우해 경찰과 같은 감시가자 필요하다.
이것이 바로 IDS다
이번에 다뤄볼 것은 snort로   네트워크 기반의 침입탐지 시스템이라고도 하며 NIDS라 한다.
-----------------------------------------------------------------------------------------------------

IDS의 3가지 특성
-----------------------------------------------------------------------------------------------------
1. 무결성(intergrity)
 - 자원이 훼손되거나 변경되지 않음을 뜻한다. 해커에 의해서 귀중한 정보를 파괴 당하거나 정보의 내용이 변경되었다면 해커는 자원의 무결성을 해치는 침입자인것이다.

2. 가용성(availabillty)
 - 권한을 가진 사용자에게는 접근이 언제나 가능함을 뜻한다. 해커에 의해서 자원의 접근을 방해 받는 다면 해커는 지금 자원의 가용성을 해치고 있는 침입자이다.

3. 기밀성(confidentiality)
 - 자원으로 접근은 권한은 가진 사람만이 가능하다는 것을 뜻한다. 공개가 되면 안되는 중요한 정보가 해커에 의해서 공개가 된다면 해커는 기밀성을 해치는 침입자이다.
-----------------------------------------------------------------------------------------------------

IDS의 분류
-----------------------------------------------------------------------------------------------------
호스트 기반 IDS(Tirpwire, AIDE(파일 ,디렉토리), Portsentry(port)...)
- 바이러스 , 백도어 탐지 , 설치 및 유지 비용 저렴

네트워크 기반 IDS(snort(free), Etrust Intrustion Dection, RealSecure)
- 오탐율 높다, 트래픽이 높은 곳에서는 유용하지 않다., 네트워크 전체에 대한 트래픽 감시 및 검사 가능, 초기 설치 비용 높다.
-----------------------------------------------------------------------------------------------------

HIDS vs NIDS
-----------------------------------------------------------------------------------------------------
HIDS는 보통 O/S 의 일부로서 작동된다. 전체적인 네트워크에 대한 침입탐지는 불가능하며 스스로가 공격 대상이 될때만 침입탐지 할 수 있다.
NIDS 는 네트워크에 하나의 독립적으로 운용된다. TCPdump도 하나의 NIDS가 된다. TCPdump를 기반하는 것이
snort이다. HIDS로 할 수 없는 네트워크 전반에 대한 감시할 수 있으며 보통 스위칭 환경에 물려 있고 또한 ip를 소유 하지 않아 침입 공격에 대해 거의 완벽한? 방어를 할 수 있다.
-----------------------------------------------------------------------------------------------------

IDS 의 요소 ,기능
-----------------------------------------------------------------------------------------------------
자료의 수집(Raw Data Collection)
자료의 필터링과 축약(data Reduction and Filtering)
 - 수집된 자룡를 한곳에 모아 상호 연관 분석을 통해 좀더 효과를 누릴 수 있다. 또한 보안이 강화된 시스템에 자료를 보관 함으로써 침입에 대한 자료 손실을 막을 수 있다. 또한 IDS는 자료가 매우 크기 때문에 효과적으로 필터링 하는 방법도 필요하다.

침입 탐지(Analysis and Intrusion Detection)
 - 오용탐지 (Misuse Detection)  : 이미 발견된 패턴에 대해서 탐지
 - 이상탐지 (Anomaly Detection) : 정상 상태를 기준으로 이상에 대한?(정량적 분석, 통계적분석, ...)에 대한 인공지능으로 탐지, 역시 오탐율이 높다.
책임 추적성과 대응(Reporting and Response)
-----------------------------------------------------------------------------------------------------


IDS vs IPS
-----------------------------------------------------------------------------------------------------
IDS - detection
       - 단순히 침입에 대한 메시지를 남겨 주지만.
IPS - prevention
       - IPS는 detection 을 넘으 탐지 한 결과에 대해 prevention 까지 겸한다 , 좀더 능동적인~
-----------------------------------------------------------------------------------------------------

NIDS의 설치 위치
-----------------------------------------------------------------------------------------------------
1, 패킷이 라우터로 들어오기전
2. 라우터 뒤
3. 방화벽 뒤
4. 내부 네트워크
5. DMZ
-----------------------------------------------------------------------------------------------------