반응형

패킷 수집 라이브러리인 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 정보보안기사 문제

https://developmentdiary.tistory.com/524

반응형

'보안 > 정보보안기사' 카테고리의 다른 글

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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기