패킷 수집 라이브러리인 libpcap에 기반한 실시간 트래픽 분석과 IP 네트워크 상에서 패킷 로깅이 가능한 네트워크 침입탐지시스템(IDS)
기능
Rule기반으로 프로토콜 분석,내용 검색/매칭을 수행할 수 있으며 오버플로우, Stealth 포트스캔,
CGI공격 ,SMB탐색 ,OS확인 시도 등의 다양한 공격과 스캔을 탐지하며 , 해당 로그를 파일 형태나
Mysql등의 DBMS나 syslog연동하여 관리 가능하다.
Packet Sniffer : 네트워크 상의 패킷을 sniffing하여 보여주는기능
Packet Logger: 모니터링한 패킷을 저장하고 로그에 남기는 기능
IDS/IPS : 네트워크 트래픽을 분석해 공격을 탐지/차단하는 기능
동작방식
Sniffer & Decoder -> Preprocessor -> Detection -> Logging & Aleart
구조
[액션] [protocol] [송신IP] [송신 port] [방향] [수신 IP] [수신 port] ([룰 옵션])
룰 헤더와 룰 옵션으로 구성
롤 옵션은 선택사항 이지만 일반적으로 룰 옵션이 더 많이 사용된다.
룰 헤더
액션
alert:경고를 발생
log:로그를 기록한다.
path:패킷을 무시한다.
active:alert를 발생시키고 대응하는 dynamic을 유효화 한다.
dynamic:active에 의해 유효화된 경우 한쪽의 패킷을 기록한다.
Drop:패킷을 차단하고 로그를 남긴다.
Sdrop:패킷을 차단하고 로그를 남기지 앟는다.
protocol
패킷의 프로토콜을 tcp,udp,icmp,ip중에서 선택한다.
송수신IP,Port
ex)
211.11.22.33 80
211.11.22.0/24 443
any 80 또는 211.11.22.33 any 또는 any any와 같이 사용 가능
'$HOME_NET'와 같이 snort.conf에서 지정한 변수를 참조할 수도 있다.
방향
->또는 <>
룰 옵션(Rule Option)
세미콜론(;)을 이용하여 옵션과 옵션을 구분한다.
msg:지정한 메시지가 이벤트 명으로 사용된다.
dsize:dizis:<바이트,dsize:바이트<>바이트 와 같이 상한선 하한선,범위를 지정할수 있다.
content:문자,바이너리로 패턴을 탐지한다.
content:"문자"
content:| 00 01 0A AA|
content:"| 90 90 90 | /bin/sh"
offset:검색을 시장할 byte수를 지정한다.
depth:offset부터 시작하여 검색할 byte수를 지정한다.
distance : 이전 검색 결과 후에 몇 byte부터 검색할지를 정하는 옵션. 다수의 content옵션이 지정되었을경우 유용하다.
within:이전 검색결과 후에 몇 byte이내에 다음 content 탐지 패턴이 나와야 하는지 지정하는 옵션
nocase:대소문자를 구별하지 않는다.
flags:TCP제어 플래그를 지정한다. F,S,FA,FSA등으로 지정가능하다.
A=ACK 플래그 검사
P=PSH 플래그 검사
U=URG 플래그 검사
O=패킷에 설정된 TCP플래그가 없는 경우
1=패킷의 예약비트 1
2=패킷의 예약비트 2
+=특정 플래그가 켜져있고 다른플래그도 켜져있는지 검사
pcre:정규식을 사용한다.
threshold:패킷 발생량을 기반으로 탐지한다.
아직까지 흔히 사용되고 있지만 공식적으론 사용을 권하지 않는다.
비슷한 기능을 하는 detction_filter사용이 권장된다.
sid:룰을 식별할고자 하는 식별자
-100미만:예약
-100~100만사이:www.Snort.org에서 배포하는 룰번호
-100만 초과:사용자정의 룰번호
ex)
alert tcp 192.168.1.0/24 any -> 192.168.1.0/24 80
(content:|00 01 86 a5|);pcre:"/\/foo.php?id=[0-9]{1,10}/i";msg:"found";)
참고
http://itwiki.kr/w/%EC%8A%A4%EB%85%B8%ED%8A%B8
실제 사용법(ubuntu)
apt-get update
apt-get install
snort 버전확인
snort -V
snort 테스트 모드로 실행
snort -i 1 -T -c /etc/snort/snort.conf
snort 기본 룰 위치
/etc/snort/rules
attack-response.rules 기본탐지 규칙
snort.conf 파일 설정
snort.conf에서 local.rules를 제외하고 모두 주석 처리를 해주어야 합니다. 사용할 규칙은 local.rules이고 나머지는 사용하지 않을 것이기 때문
578~696 줄을 모두 주석 처리해줍시다.
룰 추가하기
sudo nano /etc/snort/rules/local.rules
ex)
alert icmp any any -> 192.190.11.13 any (sid:1000001;) 추가하기
실행옵션
https://security3-3.tistory.com/entry/snort-%EC%8B%A4%ED%96%89-%EC%98%B5%EC%85%98
https://jihwan4862.tistory.com/107
각종예시
https://kkomuri.tistory.com/41
Snort 정보보안기사 문제
'보안 > 정보보안기사' 카테고리의 다른 글
Snort 정보보안기사 실기문제모음 (0) | 2020.07.10 |
---|---|
/etc/passwd /etc/shadow 필드 (0) | 2020.07.05 |
TCP 헤더 (0) | 2020.06.22 |
VLAN (0) | 2020.03.11 |
WAP 계층구조 (0) | 2020.03.09 |
최근댓글