Snort(Network Intrusion Prevention / Detection System)

Snort는 침입감지를 수행하는 IDS의 역할을 주로하지만, IPS의 역할을 동시에 수행하여

외부로부터의 침입여부를 빠르게 알려준다.

 

Snort는 Sniffer mode, Logger mode, IDS/IPS mode 세 가지 모드로 작동될 수 있는데,

Snort가 제대로 작동되려면 AV에서의 악성코드에 대한 데이터베이스가 있어야 하듯이

유효한 침투에 대한 rule set가 필요한데, 이러한 정보들은 /etc/snort/rules에 저장 및 새롭게 생성이 가능하다.

 

- 스니퍼 모드(Sniffer Mode) : 네트워크 패킷을 읽고 콘솔에 출력

- 패킷 로거 모드(Packet Logger Mode) : 패킷을 디스크에 기록

- 침입 탐지 모드(Intrusion Detection) : 네트워크 트래픽 모니터링, rule.conf를 참조하여 violation 판단 및 동작 수행

 

* VMWare 네트워크 : 192.168.100.0/24

** 사용된 가상 호스트 : Ubuntu(.130), BackTrack(.135), metasploitable(.136)

 

해당 실습은 snort 패키지가 사전에 설치되어 있는 BackTrack 머신에서 진행하였음

패키지 설치 시 apt, yum(epel-release) 패키지 관리자로 snort 다운로드 가능

 

 

● Sniffer Mode 실습

root@bt:~# ifconfig eth0 promisc
# eth0 네트워크 카드를 PROMISC 모드로 전환

root@bt:~# ifconfig
# 변경사항 확인

 

Promiscuous Mode(eth0)

BackTrack(.135) 머신은 모니터링을 담당할 머신이기에

모든 패킷을 수신 가능하게 만들어주는 PROMISC 모드로 전환

 

 

cp -arp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
# 해당 명령어로 recommended 구성파일을 .conf 파일로 복사해준다.

 

vim /etc/snort/snort.conf

해당 첨부 사진에는 표기되지 않았지만, 53번째 줄을 주석처리 한 후,

54번째 줄에 "var EXTERNAL NET !$HOME_NET(192.168.100.0/24가 아닌 네트워크를 의미)"를 추가한다.

이번 실습에서는 실질적으로 사용되지 않는 설정 내용이지만, 추후 외부(External) 네트워크와의 실습 진행 시 필요한 부분이다.

 

 

vim /etc/snort/snort.conf

해당 설정파일의 하단부분을 확인해보면 참조 될 *.rules 파일이 지정 되어 있는 것을 볼 수 있다. 

줄을 한 칸 추가하여 "include $RULE_PATH/ssh.rules" 를 추가해준다.

 

 

vim /etc/snort/rules/ssh.rules

 

alert tcp any any -> $HOME_NET 22 (msg:"SSH Login Detected"; sid:000001;)

# snort.conf에 추가해준 새로운 *.rules을 생성하는 과정이다.
# any(0.0.0.0) any(0.0.0.0)에서 SSH를 요청하는 트래픽 발생 시 "SSH Login Detected"라는 
# 경고문을 출력해주는 역할의 구문이다.

 

/etc/init.d/snort restart

해당 명령어로 snort를 재시작 시켜준다.

 

snort -q -A console -i eth0 -c /etc/snort/snort.conf

• -q : 패킷을  잡아냄

• -A : 경고를 콘솔로 출력해냄

• -i : 인터페이스를 지정

• -c : 적용시킬 롤 파일

 

첨부사진과 내용은 다르지만, snort 설정을 완료한 후, 다른 가상 머신에서 ubuntu(.130)머신으로 ssh 연결 요청 시

위의 명령어로 모니터링을 시작하게 되면 아래의 사진과 동일한 형식으로

Source[n] -> Destination[22] 간의 패킷을 출력해주는 것을 확인할 수 있다.

위의 사진은 ICMP 룰을 설정한 후 해당 패킷이 감지됐을 때 출력해주는 알림(Alert)

 

 

● snort로 nmap을 이용한 포트스캔 감지

nmap -v -A 192.168.100.130

metasploitable(.136) 머신에서 ubuntu(.130) 머신을 타겟으로 포트스캔을 시도

 

 

snort -q -A console -i eth0 -c /etc/snort/snort.conf

이 외에도 다양한 룰을 추가 및 활성화하여 침입감지가 가능하며,

추후에는 snort를 이용한 침입감지 후 조치를 알아보도록 하겠다.

'System_Security' 카테고리의 다른 글

[Security]Digital_Certificate  (0) 2023.02.12
[Security]TrueCrypt  (0) 2023.02.02
[Security]SSH_Keygen  (0) 2023.02.01
[Security]HTTPS  (0) 2023.01.31
[Security]chroot  (0) 2023.01.27

+ Recent posts