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
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|)
※ offset에서 사용한 테스트용 샘플 패킷을 아래 첨부합니다.
이번에도 찾고자 하는 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 |
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;)
websnort 를 구동하고 다운로드한 pcap 을 첨부합니다.
submit 버튼을 클릭하면 탐지 결과가 나옵니다.
참고) 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를 같이 사용함여 탐지 범위를 시작 위치와 탐지 길이를 같이 조절할 수 있는 예제입니다.
'IT > Snort' 카테고리의 다른 글
[Snort] #5 Payload Option - offset & Rule test (0) | 2023.08.10 |
---|---|
Colasoft Packet Builder - Windows용 패킷 전송툴(snort rule 검증) (1) | 2023.07.28 |
[Snort] #4 Payload Option - content, nocase / rule test (0) | 2023.07.27 |
[Snort] #3 Payload Option - Snort Rule OTN (0) | 2023.07.19 |
[Kali Linux] Kali(Debian)에 Snort 설치 방법 (8) | 2023.07.17 |
댓글