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
# 변경사항 확인
BackTrack(.135) 머신은 모니터링을 담당할 머신이기에
모든 패킷을 수신 가능하게 만들어주는 PROMISC 모드로 전환
cp -arp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
# 해당 명령어로 recommended 구성파일을 .conf 파일로 복사해준다.
해당 첨부 사진에는 표기되지 않았지만, 53번째 줄을 주석처리 한 후,
54번째 줄에 "var EXTERNAL NET !$HOME_NET(192.168.100.0/24가 아닌 네트워크를 의미)"를 추가한다.
이번 실습에서는 실질적으로 사용되지 않는 설정 내용이지만, 추후 외부(External) 네트워크와의 실습 진행 시 필요한 부분이다.
해당 설정파일의 하단부분을 확인해보면 참조 될 *.rules 파일이 지정 되어 있는 것을 볼 수 있다.
줄을 한 칸 추가하여 "include $RULE_PATH/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"라는
# 경고문을 출력해주는 역할의 구문이다.
해당 명령어로 snort를 재시작 시켜준다.
• -q : 패킷을 잡아냄
• -A : 경고를 콘솔로 출력해냄
• -i : 인터페이스를 지정
• -c : 적용시킬 롤 파일
첨부사진과 내용은 다르지만, snort 설정을 완료한 후, 다른 가상 머신에서 ubuntu(.130)머신으로 ssh 연결 요청 시
위의 명령어로 모니터링을 시작하게 되면 아래의 사진과 동일한 형식으로
Source[n] -> Destination[22] 간의 패킷을 출력해주는 것을 확인할 수 있다.
● snort로 nmap을 이용한 포트스캔 감지
metasploitable(.136) 머신에서 ubuntu(.130) 머신을 타겟으로 포트스캔을 시도
이 외에도 다양한 룰을 추가 및 활성화하여 침입감지가 가능하며,
추후에는 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 |