본문 바로가기
IT/Snort

[Snort] #2 Snort Rule 기초 - RTN, OTN, General Option

by 초록술 2023. 7. 17.
반응형

Snort Rule 기초 - RTN, OTN, General Option

 

Snort Rule의 기초에 대해 알아보겠습니다. Snort Rule은 Rule Tree Node인 RTN과 Option Tree Node인 OTN으로 나뉩니다. RTN을 룰헤더(header), OTN을 룰 옵션(Option)이라고도 부릅니다. 방화벽(Firewall)과 다르게 IDS/IPS는 OTN을 이용하여 패킷의 데이터영역(Payload)까지 검사/차단 할 수 있습니다.

 

Snort에 기본 가이드는 아래 포스팅 링크를 참고해 주세요.

[Snort 기본 가이드 링크]

 

[Security][Network] Snort #1 Snort Overview

Snort Overview Snort SNORT는 IP 네트워크에서 실시간 트래픽 분석 및 패킷 로깅을 수행할 수 있는 오픈 소스 네트워크 침입 탐지 시스템입니다. 영어로는 Network Intrusion Detection & Prevention System (Network IDS

greensul.tistory.com

 

Snort Rule 구조

Snort Rule의 구조는 RTN(Rule Tree Node)과 OTN(Option Tree Node)으로 구분됩니다.

RTN을 Rule header , OTN을 Rule Option이라고 부르기도 합니다.

snort rule 구조

위 이미지에서는 alert tcp any any -> 192.168.98.20 8080 부분이 RTN 이 되고

괄호 안의 msg:"snort-rule-01"; content:"abc"; sid:10000001; 부분이 OTN 이 됩니다.

 

 

RTN

RTN (Rule Tree Node) 은 [Action][Protocol][srcIP][srcPort][direction][dstIP][dstPort] 정보가 기록된 Rule Header입니다.

RTN 순서대로 Action, Protocol, 출발지 IP,  출발지 Port, 방향성, 목적지 IP, 목적지 Port 설정이 들어갑니다.

 

Action 은 탐지 이후 행동에 대한 설정을 뜻하며 다음과 같은 Option 값이 존재합니다.

alert 경고 발생
log 패킷에 대한 로그 기록 처리
pass 패킷 무시하고, Pass 동작 처리
drop 패킷 차단하고, 로그 기록 처리
reject 패킷 차단하고, 로그 기록 후 TCP인경우 TCP 재설정 전송 또는 UDP인 경우 ICMP 연결 불가 메시지 전송 처리
sdrop 패킷 차단하고, 로그 기록하지 않음 처리

 

Protocol 은 4가지 프로토콜 분석이 가능하며 소문자를 사용합니다.

  • tcp
  • udp
  • icmp
  • ip

출발지/목적지 IP

  • 모든 IP : any 
  • 단일 IP : 1.1.1.1 
  • 다수 IP : [1.1.1.1, 2.2.2.2] or [192.168.1.0/24,192.168.1.0/24,10.1.1.0/24]
  • 부정(!) IP : !1.1.1.1 (1.1.1.1 을 제외한 모든 IP)

출발지/목적지 Port

  • 모든 Port : any
  • 단일 Port : 80 or 22
  • 다수 Port : 1:1024(1~1024 사이의 범위), :5000(~5000 이하의 범위), 1024: (1024~ 이상의 범위) 
  • 부정(!) port : !80 (80 을 제외한 모든 Port

 

Direction

  • -> : 단방향 사용 시 [direction] 기준 왼쪽이 출발지(송신자) 주소
  • <> : 양방향 사용시 방향성 없이 출발지(송신)/목적지(수신) 사이 모든 패킷 검출
  • 역방향은 없음

 

snort 기본 구문 예제)

alert udp any any -> 192.168.100.0/24 [1024:65535] (msg:"sample-01"; sid:100000001;)

  • alert : 경고 발생
  • udp : udp 프로토콜
  • any any : 모든 출발지IP 와 모든 출발지 포트
  • -> : 단방향
  • 192.168.100.0/24 [1024:65535] : 목적지 IP- 192.168.100.0/24이고 목적지 Port - 1024 ~ 65535 인 트래픽

alert tcp ![192.168.1.0/24,10.1.1.0/24] any <> [192.168.1.0/24,10.1.1.0/24] 111 (msg:"sample-02"; sid:100000002;)

  • alert : 경고 발생
  • tcp : tcp 프로토콜로
  •  ![192.168.1.0/24,10.1.1.0/24] any : 출발지 IP가 192.168.1.0/24, 10.1.1.0/24가 아닌 IP이고 모든 출발지 포트
  • <> : 양방향
  • [192.168.1.0/24,10.1.1.0/24] 111 : 목적지 IP 가 192.168.1.0/24 or 10.1.1.0/24이고 목적지 Port 가 111 인 트래픽

 

OTN

OTN (Option Tree Node) : RTN(Rule Header) 뒤 "( )" 안에 정의된 Rule Body를 OTN 이라 합니다.

 ;(세미콜론)을 사용하여 Option 이 서로 구분됩니다.
또한 :(콜론)으로 구분되어 왼쪽에는 keyword, 오른쪽은 value 가 됩니다.

OTN의 주요 범주는 다음 4가지입니다.

  • General Option
  • Payload Option
  • Non-Payload Option
  • Post-Detection Option

 

General Option - OTN

General Option 은 패킷 검사에 영향을 끼치지 않고 Rule에 대한 정보를 제공하는 Option입니다.

msg /차단 로그에서 msg 값이 기록 ex) msg:”detect signature”;
reference url, CVE코드 등 참고가 되는 정보 연결 ex) reference:”CVE-2020-0000”;
gid 비슷한 형태의 Signiture Type의 그룹화 id
sid 규칙을 구별하는 식별자(id), 1~99는 예약되었고, 100~1,000,000Snort가 배포하는 규칙.
1,000,001부터 사용자가 정의할 수 있는 규칙
rev Signiture의 버전 정보. 수정작업을 거친 후에는 rev값을 변경. ex) rev:1;
classtype 탐지된 공격의 규칙을 클래스화(ex. shellcode, trojan, DoS )
priority classtype에 따른 우선순위(위험도)를 나타냄. 높음(high)/보통(medium)/낮음(low)으로 구분 ex) priority:high;

 

다음은 OTN의 Payload 옵션에 대해 알아보겠습니다.

[Snort] #3 Payload Option - Snort Rule OTN

 

[Snort] #3 Payload Option - Snort Rule OTN

Snort Rule - Payload Option 앞에서 Snort Rule 기초 RTN, OTN 및 General Option에 대해 알아보았습니다. 이번에는OTN(Option Tree Node)의 Payload Option에 대해 포스팅을 하겠습니다. Snort에서 Payload Option 은 말 그대로 Pa

greensul.tistory.com

 

반응형

댓글