본문 바로가기
IT/Snort

[Snort] #6 Payload Option - offset, depth & Rule test

by 초록술 2023. 8. 11.
반응형

depth:<number>;

depth는 Snort rule 에서 사용되는 옵션 중 하나로 앞에 선언된 content를 검색해야 할  거리(byte)를 지정합니다.
depth는 offset 과 마찬가지로 content 키워드에 대한 수정자(modifier)이므로 depth 키워드를 지정하기 전에 content 키워드가 있어야 합니다. depth의 value 로 사용되는 byte는 1 ~ 65535를 입력할 수 있습니다.

 

※ 테스트 방법에 대해 아래 offset Rule test 를 참고 바랍니다.

[Snort] #5 Payload Option - offset & Rule test

 

[Snort] #5 Payload Option - offset & Rule test

offset:; offset 옵션은 Snort 규칙에서 중요한 역할을 수행하는 옵션 중 하나입니다. offset 을 사용하면 패턴 검색의 시작 위치를 지정할 수 있습니다. offset 은 content modifier 이므로 offset 키워드를 지정

greensul.tistory.com

 

depth snort rule Test

depth 테스트를 위한 기존 offset 테스트 시 사용한 패킷을 준비합니다.

Payload를 확인해보면 "GET / HTTP/1.1" 으로 시작됩니다.

(hex |47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31|)

GET / HTTP/1.1 Packet
GET / HTTP/1.1 Packet

 

※ offset에서 사용한 테스트용 샘플 패킷을 아래 첨부합니다.

websnort-get.pcap
0.00MB

 

이번에도 찾고자 하는 content는 "HTTP/1.1"입니다. Hex  |48 54 54 50 2f 31 2e 31|

이는 Payload 기준 6 bytes ~ 14 bytes 위치에 있습니다.

47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a 20 31 39 32....
G  E   T        /        H  T   T   P   /   1   .    1

GET / HTTP/1.1 Packet

depth 테스트를 위해 다음 snort rule 을 만들어 보겠습니다.

3번째 rule "offset-depth"는 offset 과 함께 depth 를 사용하였습니다. 

alert tcp any any -> any 8080 (msg:"depth-13"; content:"HTTP/1.1"; depth:13; sid:10000001;)
alert tcp any any -> any 8080 (msg:"depth-14"; content:"HTTP/1.1"; depth:14; sid:10000002;)
alert tcp any any -> any 8080 (msg:"offset-depth"; content:"HTTP/1.1"; offset:6; depth:8; sid:10000003;)

/etc/snort/rules/local.rules 에 snort rules 등록
/etc/snort/rules/local.rules 에 snort rules 등록

websnort 를 구동하고 다운로드한 pcap 을 첨부합니다. 

websnort 구동
websnort 구동
websnort 접속
websnort 접속

submit 버튼을 클릭하면 탐지 결과가 나옵니다.

websnort 탐지 결과
websnort 탐지 결과

참고) Payload Hex 값

|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d 0a 48 6f 73 74 3a 20 31 39 32....|
 G  E   T        /        H  T   T   P   /   1   .    1

 

다시 한번 더 Payload를 확인해 보면"HTTP/1.1" (Hex : 48 54 54 50 2f 31 2e 31)는 Payload 의 시작점에서 6 bytes 떨어진 위치에 존재합니다. 

sid snort rule content의 탐지 범위 결과
10000001 content:"HTTP/1.1"; depth:13; |47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d ...|
GET\x20/\x20HTTP 1.1
미탐
10000002 content:"HTTP/1.1"; depth:14; |47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d ...|
GET\x20/\x20HTTP 1.1
탐지
10000003 content:"HTTP/1.1"; offset:6; depth:8; |47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d ...|
GET\x20/\x20HTTP 1.1
탐지

 

sid:10000003 규칙은 offset 과 depth를 같이 사용함여 탐지 범위를 시작 위치와 탐지 길이를 같이 조절할 수 있는 예제입니다.

반응형

댓글