'ids'에 해당되는 글 3건

  1. 2008.07.10 linux - snort , NIDS
  2. 2008.07.10 linux - IDS
  3. 2008.07.08 linux - 침입차단 , portsentry , IDS
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
-----------------------------------------------------------------------------------------------------

2008. 7. 8. 23:38

linux - 침입차단 , portsentry , IDS

portsentry , IDS

portsentry 는  host기반 침입 탐지 시스템으로 열려 있는 모든 포트를 모니터링 할 수 있는 것이 특징이다.
포트 스캔 공격을 받았을 경우 방화벽과 연동하여 보안정책을 구성 할 수 있다.


특징 ( 차단방법)
----------------------------------------------------------------------------------------------------
호스트로 들어오는 모든 패킷을 ROUTE명으로 DROP시킬 수 있다.
      xinetd 기반의 서비스에 접근하지 못하도록  /etc/hosts.deny 파일을 갱신 할 수 있다. (tcpd)
      연결을 막지 위해 iptables와 연동가능
----------------------------------------------------------------------------------------------------


다운로드
----------------------------------------------------------------------------------------------------
http://rpm.pbon.net

# wget ftp://ftp.pbone.net/mirror/ftp.falsehope.net/home/tengel/centos/4/te/i386/RPMS/portsentry-1.2-1.te.i386.rpm  // centos용

http://rpmfind.net
http://centos.org
----------------------------------------------------------------------------------------------------

설치
----------------------------------------------------------------------------------------------------
portsentry                 실행파일
portsentry.conf          환경설정 파일
portsenty.history        거부된 host정보 저장
portsenty.ignor          감시예외파일
----------------------------------------------------------------------------------------------------


실행 모드
----------------------------------------------------------------------------------------------------
portsentry 는 스캔 공격자가 스캔을 하기 위해 사용하는 다양한 공격에 대비하여 탐지하고 싶은 공격에 따라서 여러가지 방법으로 실행가능
----------------------------------------------------------------------------------------------------

실행 옵션
----------------------------------------------------------------------------------------------------
-tcp / -udp       : 표준 tcp/udp host기반 IDS로 동작
-stcp / -sudp   : 스텔스 tcp/udp 스캔 감시
-atcp / -audp   : portsentry.conf 파일에 지정한 port 에 어떤 host도 접근하지 못하도록 설정
----------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------
[fedora]
위에서 받은 rpm 패키지를  설치 하자
# rpm -Uvh portsentry
# rpm -ql portsentry
# cd /etc/portsentry
# ls
portsentry.conf  portsentry.ignore  portsentry.modes
# vi portsentry.conf
사용자 삽입 이미지

35~36 라인에 감시할 포트를 추가할 수 있다.최대64


     42 ###########################################
     43 # Advanced Stealth Scan Detection Options #
     44 ###########################################
     58 ADVANCED_PORTS_TCP="1024"
     59 ADVANCED_PORTS_UDP="1024"
                                                        // 스텔스 스캔 포트 감시영역
     
     72 # Default TCP ident and NetBIOS service
     73 ADVANCED_EXCLUDE_TCP="21,22,25,53,80,110,113,135,137,138,139,443"
     74 # Default UDP route (RIP), NetBIOS, bootp broadcasts.
     75 ADVANCED_EXCLUDE_UDP="520,517,518,513,138,137,123,68,67,53"
                                                        // 감시제외 포트

     78 ######################
     79 # Configuration Files#
     80 ######################
     81 #
     82 # Hosts to ignore
     83 IGNORE_FILE="/etc/portsentry/portsentry.ignore"                           // 각 파일 위치
     84 # Hosts that have been denied (running history)
     85 HISTORY_FILE="/etc/portsentry/portsentry.history"
     86 # Hosts that have been denied this session only (temporary until next re        start)
     87 BLOCKED_FILE="/etc/portsentry/portsentry.blocked"



     89 ##############################
     90 # Misc. Configuration Options#
     91 ##############################

     96 RESOLVE_HOST = "1"       : DNS 사용안함 ' 0' 으로 수정

    109 ##################
    110 # Ignore Options #
    111 ##################
    128 # 0 = Do not block UDP/TCP scans.                         : 차단 안함
    129 # 1 = Block UDP/TCP scans.                                   : 차단
    130 # 2 = Run external command only (KILL_RUN_CMD)    : 역해킹
                            // ?????

    135 ###################
    136 # Dropping Routes:#
    137 ###################

    160 #KILL_ROUTE="/sbin/route add $TARGET$ 333.444.555.666"            // route 명령어로 차단

    205 # iptables support for Linux
    206 KILL_ROUTE="/sbin/iptables -I INPUT -s $TARGET$ -j DROP"
                                                                                  // iptables로 차단 시킴

    220 ###############
    221 # TCP Wrappers#
    222 ###############
   
    229 #KILL_HOSTS_DENY="ALL: $TARGET$"
    282 SCAN_TRIGGER="2"      : 스캔 간격     딜레이 ' 0 '

이상 conf 파일을 둘러 봤지만 집중하지 않아서 그런지 그냥 넘어간 부분이 있다 이해해주길
----------------------------------------------------------------------------------------------------

실행
----------------------------------------------------------------------------------------------------
# portsentry --help
# portsentry -stcp
# ps ax | grep port
# iptables -F
# iptables -P INPUT ACCEPT      // free nmap으로는 DROP상태에서 안됨

[Centos]
# yum -y install nmap
# nmap -v -sS -o 192.168.10.10        // fedora 스캔하다 멈추고

[fedora]
# iptables -L
192.168.10.20 즉 centos 에 대한 차단 룰이 적용되어 있는것을 볼 수 있다.
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------