Information Security ˗ˋˏ ♡ ˎˊ˗

Security/Network

[보안장비] Snort 정의와 rule 설정

토오쓰 2021. 10. 8. 16:11

 

1. Snort 정의

1998년 "마틴 로시"에 의해 처음 개발됐다.

Snort라는 단어는 "Sniffer and More"에서 유래된 이름이다.

IP 네트워크에서 실시간 트래픽 분석과 패킷 로깅 작업을 수행하여
다양한 공격과 스캔을 탐지하는 방법

 

 

2. 주요 기능

- 패킷 스니퍼(sniffer): 네트워크 상의 패킷을 스니핑 하여 보여주는 기능

- 패킷 로거(logger): 패킷을 저장하고 로그에 기록

- 네트워크 IDS/IPS: 네트워크 트래픽 분석하여 공격을 탐지 및 차단

 

 

3. Snort Rule 설정 방법

- 룰 헤더(header)와 룰 바디(body)로 구성되어 있다.

- 헤더 부분은 처리방식, 프로토콜 등 처리할 패킷을 판단하는 기준이 명시되어 있고 바디 부분은 패킷을 탐지하는 규칙을 명시한다.

 

룰헤더                 룰옵션
Action Protocol 소스 IP 소스 Port ->
목적지 IP 목적지 Port
msg Content
alert tcp any any
->(<>) 192.168.1.0/24 111
msg:”attack access” content:”hacker”

 

1) 룰 헤더(Header)

Action 설명
alert 선택한 alert 방식을 이용해서 alert를 발생시키고 패킷 로그를 남긴다.
log 패킷을 로그에 남긴다.
pass 패킷을 무시한다.
drop 패킷을 차단하고 로그에 남긴다.

 

2) 룰 바디(Body): 기본 설정

옵션 설명
msg msg 옵션에 기록된 내용이 alert 발생 시 이벤트 이름으로 사용한다.
sid snort rule id 정보
99 이하는 시스템에 예약된 sid
100-1000000 이하는 snort에서 사용하는 sid
classtype rule에 대한 이벤트 유형 정보
rev rule 버전 정보로 수정(revision) 횟수를 표기한다. 1씩 증가

 

예시) alert tcp any any -> 11.11.11.11 80 (\sid:1000004; content:"POST"; msg:"POST detected";)

= 웹 서버의 POST 메서드 탐지하기

 

 

2-1) 룰 바디(Body): 페이로드/범위 관련 옵션

Action 설명
content 페이로드에서 검사할 문자열 지정
text 형식: 문자열 검사
binary 형식: 파이프 기호 사이에 헥사값 표현
offset 페이로드에서 content 패턴을 검사할 시작위치
depth offset부터 몇 바이트까지 검사할 것인지 지정
distance 이전 content 패턴에 매치된 경우, 매치된 이후 바이트부터 몇 바이트 떨어진 위치에서 다음 content를 검사할 것인지 지정
within distance부터 몇 바이트 범위 내에서 다음 content를 검사할 것인지 지정
nocase 대/소문자 구분하지 않음

 

예시) alert tcp any any -> 20.20.75.20 80 (\sid:1000013; msg:"Hello Message";\content:"hello"; nocase;)

= 대/소문자를 무시하고 문자열을 찾는다.