정보보안심화 · 20분 읽기

Snort 규칙과 검사 흐름 이해하기

Snort 규칙은 특정 트래픽 조건과 검사할 데이터 영역을 결합한다. 규칙 문법·프로토콜 해석·수집 경로를 함께 확인해야 탐지를 설명할 수 있다.

개념부터 찾아보기

정의·역할·동작 원리를 독립 페이지에서 확인하세요. 본문의 밑줄 용어에도 설명이 있습니다.

이 노트에서 설명할 수 있게 되는 것

  1. 캡처·디코딩·스트림·검사기·규칙·출력의 역할을 순서대로 설명한다.
  2. flow와 HTTP 버퍼 조건이 검사 대상을 좁히는 방식을 이해한다.
  3. 정규화와 재조립을 고려해 규칙의 실패 지점을 찾아낸다.

01개념과 구성 요소

  • 가 인터페이스 또는 PCAP에서 패킷을 받으며 passive와 경로를 구분한다.
  • Decoder·/·service 가 패킷을 규칙이 검사할 상태와 버퍼로 바꾼다.
  • 헤더와 옵션이 조건을 정의하고 ·revision이 규칙을 식별하며 /action이 결과를 처리한다.

02Snort 3에서 HTTP 경로 규칙을 평가하는 순서

  1. 가 패킷을 받고 주소·포트·프로토콜과 관점의 방향을 확인한다.
  2. · 처리가 연결 방향과 상태, 재조립된 바이트를 만든다.
  3. 와 설정이 해당 의 서비스 해석을 연결한다. 80번 포트라는 사실만으로 정상 HTTP가 보장되지는 않는다.
  4. http_uri 같은 에서 정규화된 를 검사한다. 버퍼에는 요청 메서드 전체가 들어 있지 않다.
  5. ··빈도 등 조건이 맞는지 확인하고 와 사건 문맥을 결과에 연결한다.
  6. 선택한 로 경보를 남긴다. 실제 차단은 지원 · 경로·정책이 모두 맞아야 한다.

03DAQ가 패킷을 받고 Inspector가 의미를 만든다

  • 의 입력은 (Data Acquisition) 모듈이 담당한다. 실시간 인터페이스와 저장된 PCAP은 서로 다른 입력이며 passive 캡처와 처리도 구분된다.
  • Decoder가 헤더를 읽고 ··service 가 연결과 응용 계층을 해석한 뒤 규칙 엔진과 /action으로 이어진다.
  • Sniffer·Packet ·는 표시·저장·탐지라는 목적이 다른 동작이다. 패킷을 화면에 표시한 것, PCAP으로 저장한 것, 특정 규칙이 일치하여 경보를 낸 것을 같은 결과로 취급하지 않는다.
  • 실행 중인 바이너리··설정·룰·가 실제로 연결되어야 의도한 경로가 완성된다.

04SPAN·TAP과 보호 네트워크 변수

  • Passive 센서는 /TAP 또는 가상 스위치 미러링 등으로 복사본을 받는다. 일반 스위치의 아무 포트에 연결했다고 다른 두 호스트의 unicast를 모두 볼 수 있는 것은 아니다.
  • 양방향 미러링을 설정했더라도 복사 대상 합계 대역폭이 출력 포트나 센서 처리량을 넘으면 손실이 생긴다. 복수 위치에서 같은 패킷을 복사하면 중복도 생길 수 있다.
  • 은 보호할 범위이고 EXTERNAL_NET은 규칙이 외부로 취급할 범위이다. EXTERNAL_NET을 !으로 정의하면 내부 호스트 사이의 사건은 해당 외부→내부 규칙에 맞지 않을 수 있다.
  • 앞과 뒤에서 주소가 달라지는 것도 헤더 조건에 직접 영향을 준다. ->는 규칙 왼쪽에서 오른쪽으로의 논리 방향이며 장비 인터페이스의 in/out과 자동으로 같지 않다.
수업 원본 자료

SPAN으로 센서에 복사 트래픽 보내기

가상 스위치의 f1/2 양방향 트래픽을 f1/1으로 복사해 Snort 센서에 보내는 수업 네트워크 구성도원본 크기로 보기 ↗
수업 원본 구성도. 그림 속 설정 문법은 당시 실습 장비의 예시이며 실제 장비 설정으로 실행한 것은 아닙니다.

이 자료에서 읽어낼 것

  1. source interface f1/2 both는 해당 포트의 양방향 트래픽을 복사 대상으로 삼는 설정입니다. 센서가 모든 포트의 모든 트래픽을 자동으로 보는 것은 아닙니다.
  2. destination interface f1/1은 복사본을 보내는 관찰 포트입니다. 이 연결의 센서는 원래 사용자 데이터 경로를 통과시키는 inline 장비로 그려져 있지 않습니다.
  3. 관찰 포트 과부하나 캡처 누락이 생기면 원본 트래픽과 센서가 분석한 트래픽이 달라질 수 있습니다. 규칙을 조정하기 전에 센서에 필요한 패킷이 도착하는지 확인합니다.
  4. 이 토폴로지는 복사 기반 관찰 위치를 설명합니다. 다른 구성에서 가능한 IPS 차단 기능과 구분하며, 경보가 생겼다는 이유만으로 이 그림의 원래 세션이 차단되었다고 판단하지 않습니다.

Cisco 공식 문서: SPAN 관찰 방식 ↗

05Lua 설정·Wizard·Binder

  • .는 설정으로 기본값과 ··를 연결한다. 상대 경로는 서비스의 작업 디렉터리와 include 경로에 영향을 받는다.
  • 별도의 테이블을 뒤에 다시 대입하면 앞서 설정한 내용이 덮어써질 수 있으므로 한 구조 안에서 필요한 항목을 병합한다.
  • Wizard는 서비스 식별을 돕고 Binder는 포트·프로토콜·네트워크·서비스 조건에 맞는 를 연결한다. HTTP가 항상 80번에서만 동작한다고 가정하면 다른 포트의 HTTP를 잘못 처리할 수 있다.
  • 반대로 80번이라는 이유만으로 모든 바이트가 정상 HTTP인 것도 아니다. 규칙의 HTTP 버퍼가 채워지려면 해당 가 HTTP로 해석되는 단계가 필요하다.

06규칙 헤더와 옵션을 한 줄씩 읽기

  • 헤더는 action, protocol, source address/port, direction, destination address/port로 구성된다. 괄호 안에는 msg, , 같은 조건과 같은 관리 정보가 들어간다.
  • 는 규칙 식별자, 는 변경 버전이며 같은 를 다른 의미의 규칙에 중복 사용하면 분석과 갱신이 혼란스러워진다.
  • 아래는 HTTP 요청의 정규화 에서 무해한 교육 경로를 찾는 예이다. to_server는 클라이언트→서버 방향, 는 연결 상태, http_uri는 이후 의 검사 버퍼를 지정한다.
  • 요청 줄의 GET까지 버퍼에 들어 있는 것은 아니므로 버퍼에서 “GET /...” 전체를 찾는 규칙과 혼동하지 않는다.
text
alert tcp $EXTERNAL_NET any -> $HOME_NET 80 (
  msg:"Training URI observed";
  flow:established,to_server;
  http_uri;
  content:"/training-marker";
  sid:1000001;
  rev:1;
)

무해한 경로를 찾는 문법 학습 예입니다. 운영에 적용된 규칙이라는 뜻은 아닙니다.

07Raw content와 정규화 버퍼의 차이

  • raw payload는 요청 바이트의 배치에 민감하다. HTTP 버퍼는 응용 파서가 부분을 제공하며 정규화된 버퍼와 원본 버퍼를 구분할 수 있다.
  • 퍼센트 인코딩·경로 정리· 분할 같은 조건에서 어느 표현을 검사하는지에 따라 결과가 달라진다. 정규화가 수행된 값과 원본 값을 함께 이해해야 규칙 일치 이유를 설명할 수 있다.
  • 는 특정 문자열·바이트 패턴, pcre는 조건을 표현한다. / 등 위치 제한은 특정 버퍼 안에서 어떤 영역을 볼지 정하는 의미를 가진다.
  • 규칙의 쉼표·옵션 철자·필수 ·중복 는 로드 전 문법과 식별자 검증 대상이다.
원리 심화

08Content 검색 커서와 절대·상대 범위

  • 은 선택된 검사 버퍼 시작을 기준으로 검색 위치를 옮긴다. 는 그 시작점에서 검사할 범위를 제한한다.
  • 는 이전 일치가 끝난 위치를 기준으로 다음 검색 시작을 이동시킨다. 같은 버퍼에서의 검색 문맥이 필요하다.
  • 은 다음 가 일치해야 할 상대 검색 범위를 제한한다. 문자열 전체가 허용된 범위 안에 들어오는지 계산해야 한다.
  • http_uri 같은 를 선택하면 비교 대상과 커서 문맥이 달라진다. raw payload의 오프셋을 정규화 의 오프셋으로 재사용하지 않는다.
  • 여러 는 모두 일치해야 하지만 작성 순서만으로 바이트의 등장 순서가 제한되지는 않는다. 위치 옵션이 없으면 기본·선택 버퍼의 처음부터 검색한다. 앞선 일치 뒤의 상대 위치·범위는 으로 지정한다.
  • 무해한 가상 버퍼 XYZABC에서 ABC 뒤에 위치 옵션 없는 XYZ를 쓰면 두 값이 각각 존재한다. 두 번째 조건에 0을 붙이면 ABC 뒤에는 XYZ가 없으므로 실패한다. 같은 버퍼의 두 만 비교한 예다.
예제로 추적

09가상 문자열 ABC12XYZ의 커서 추적

  1. 8바이트 ASCII 버퍼 ABC12XYZ를 가정한다. 위치는 0부터 시작하며 ABC는 0~2, XYZ는 5~7이다.
  2. ABC에 =0·=3을 적용하면 첫 세 바이트에서 일치한다. 검색 커서는 ABC 끝 다음인 위치 3을 기준으로 한다.
  3. 두 번째 XYZ에 =2를 적용하면 위치 3에서 두 바이트를 건너뛰어 위치 5부터 찾는다.
  4. =3인 검색 범위에 XYZ 세 바이트가 정확히 들어오므로 조건이 맞는다. 이는 문서의 상대 범위 동작을 설명하는 무해한 표본이다.
  5. ABC123XYZ에서는 XYZ 시작이 위치 6이어서 같은 3바이트 검색 범위에 전부 들어오지 않는다. 문자열 존재 여부만 비교한 결과와 달라진다.
text
content:"ABC",offset 0,depth 3;
content:"XYZ",distance 2,within 3;

옵션 부분 예시. 동일 검사 버퍼 ABC12XYZ와 ABC123XYZ의 범위 차이를 설명하며 완성된 운영 규칙은 아니다.

검증·예외

10같은 문자열인데 규칙이 맞지 않는 경우

  • 패킷 원문·재조립 ·정규화 HTTP 버퍼 중 무엇을 검사했는지 먼저 확인한다. 디코딩된 값과 원시 바이트가 다를 수 있다.
  • 문자의 화면 길이를 바이트 으로 사용하지 않는다. 의 실제 바이트와 버퍼 시작점을 대조한다.
  • ·서비스 식별·방향·포트· 조건이 전에 맞는지 확인한다. 문자열만 PCAP에 존재해도 모든 조건은 아닐 수 있다.
  • 일치 표본과 한 바이트 거리만 다른 실패 표본을 함께 보존한다. Alert가 한 번 났다는 사실만으로 범위 조건을 검증하지 않는다.

11SYN 빈도 규칙과 임계값

  • 다음 규칙은 SYN 플래그와 stateless 조건에 맞는 패킷을 출발지별로 세어 5초에 20회를 초과하는 활동을 탐지한다. detection_filter는 규칙 조건을 만족한 빈도를 기준으로 이벤트 생성을 제한한다.
  • 이는 고유 목적지 포트 수를 자동으로 계산하는 기능과 다르므로 동일 포트로의 많은 정상 연결도 조건에 들어올 수 있다.
  • 뒤의 여러 사용자를 하나의 출발지로 세면 집계가 커지고, 여러 출발지로 분산된 행위는 출발지별 임계값에 안 닿을 수 있다. 임계값은 트래픽 기준선과 목적에 맞는 가설이며 보편적인 공격 경계가 아니다.
text
alert tcp $EXTERNAL_NET any -> $HOME_NET any (
  msg:"TCP Excessive SYN Activity"; flags:S; flow:stateless;
  detection_filter:track by_src,count 20,seconds 5;
  sid:4001001; rev:1;
)

수업 원문의 탐지 규칙입니다. SYN 빈도를 탐지하며 고유 포트 수나 사용 여부를 확정하지 않습니다.

12배너·오류·특정 URI의 증거 강도

  • OpenSSH 배너· 오류 1130·특정 HTTP probe 경로·WebDAV PROPFIND·비정상 flags는 각각 다른 관찰 단서다. SSH 배너는 정상 로그인 클라이언트도 받으므로 스캔 확정 근거가 아니다.
  • ERR 패킷의 FF와 1130의 little-endian 표현 6A 04도 접근 거부를 뜻할 수 있지만 어떤 도구가 연결했는지까지 말해주지 않는다.
  • 특정 도구가 사용하는 특징적인 는 연관성이 더 강하지만 문자열을 다른 프로그램이 보낼 수도 있다. PROPFIND는 WebDAV의 정상 메서드이다.
  • 각 경보의 사실은 “이 패턴이 관찰됨”이며 전체 스캔 판단은 시간·출발지·대상 포트와 다른 이벤트를 연결해야 한다.

13Flowbit와 연결을 넘는 상관분석

  • flowbits는 동일 안에서 이전 규칙의 상태를 기억해 후속 조건에 이용하는 데 적합하다. 서비스 probe처럼 새 출발지 포트를 사용해 연결을 여러 번 만들면 이전 의 bit를 전체 조사 세션의 상태처럼 쓸 수 없다.
  • 각 연결에서 개별 특징을 탐지한 뒤 의 시간창과 주체 기준으로 연결하는 역할 분담이 필요하다.
  • 서버 응답을 검사하는 to_client 규칙은 요청 규칙과 방향이 반대다. 같은 src_ip 필드가 요청에서는 클라이언트, 응답에서는 서버를 뜻하므로 무조건 같은 필드명으로만 묶으면 잘못된 상관분석을 만들 수 있다.
  • initiator/responder와 센서 위치를 보존하는 이유다.

14Alert JSON 필드와 실제 차단

  • Alert JSON의 예시 필드는 timestamp, pkt_num, proto, pkt_len, dir, src_ap, dst_ap, rule, action이다. rule의 1::는 generator·signature·revision 구분에 쓰이고 pkt_num은 그 입력 처리 문맥의 패킷 번호다.
  • 다른 실행이나 별도 PCAP의 번호와 직접 같다고 가정해서는 안 된다. 로그 형식은 선택한 와 fields 설정에 따라 달라진다.
  • alert는 조건 일치 사실이며 passive 센서가 기록한 action만으로 트래픽 차단을 주장하지 않는다. 실제 차단은 패킷이 통과하는 경로와 지원 , 정책 동작이 모두 맞아야 한다.
  • ·block 같은 규칙 동작과 최종 전달 결과를 구분하여 해석한다.

15문법 검사·PCAP 재현·Live 관찰

  • -T는 설정과 규칙을 읽을 수 있는지 검사하지만 기대한 트래픽에서 올바르게 탐지하는지까지 증명하지 않는다. 같은 PCAP을 입력하면 네트워크 변동을 줄여 규칙 변경 전후를 비교할 수 있다.
  • 예상 ·횟수와 정상 PCAP의 불필요한 경보를 함께 본다. 다음 live 단계는 실제 캡처 위치와 drop·CPU·로그 지연을 확인한다.
  • 이 단계가 나뉘어 있으면 미탐 원인이 규칙인지 입력 가시성인지 구분하기 쉽다. 한 PCAP의 탐지 성공은 해당 입력·규칙·버전의 결과이며 전체 트래픽 성능이나 모든 변형 탐지를 보증하지 않는다.
text
snort -V
snort --daq-list
snort -c <설정.lua> -T
snort -q -c <설정.lua> -r <교육.pcap> -R <교육.rules> -A alert_fast

기능 확인과 저장된 교육 PCAP 분석 예입니다. 실제 명령 인수는 설치 환경에 맞게 치환합니다.

설명과 함께 보는 보조 도식

처리 과정

모식도 · Snort의 검사 파이프라인

Snort 3의 논리적인 처리 단계를 단순화했다.

전체 단계를 한 번에 읽기
  1. 01

    캡처

    필요한 트래픽과 헤더가 보이는지 확인한다.

  2. 02

    흐름 구성

    패킷을 연결 문맥과 재조립 데이터로 만든다.

  3. 03

    의미 영역 선택

    설정과 프로토콜에 맞는 검사기를 적용한다.

  4. 04

    규칙 검사

    선택한 버퍼에서 조건을 평가한다.

    구분
    raw URI와 정규화 URI
  5. 05

    결과 기록

    매칭 결과를 출력 설정과 연결한다.

구성요소와 데이터 이동을 단순화한 학습용 모식도입니다. 실제 제품의 모든 내부 모듈을 나타내지는 않습니다.
LEARN THROUGH PRACTICE

SPAN 수신 위치와 TCP 플래그 규칙을 연결하기

센서 가시성을 확인한 뒤 저장된 패킷의 조건을 규칙 헤더·옵션으로 옮긴다.

실습 구성과 전제

  • 와 설정을 사용하는 격리 센서, 스위치, 허가된 PCAP 작업 사본을 준비한다. 2의 .conf·실행 옵션을 그대로 섞지 않는다.
  • 사진의 구성도와 프로브 캡처는 관측 배치와 규칙 조건을 비교하는 자료이며 하나의 경보 발생을 자동으로 증명하지 않는다.
  1. 복제할 방향과 센서 연결 포트를 확인한다

    • source interface f1/2 both는 양방향 프레임을 복제한다는 뜻이며 destination interface f1/1은 복제본을 받는 포트다.
    • 센서의 실제 캡처 NIC와 이 포트가 연결됐는지 확인한다. 설정이 맞아도 패킷이 들어오지 않으면 규칙을 평가할 수 없다.
    7/30 - 발표 · 구성도 3원본 크기로 보기 ↗
    • 도해 오른쪽에 source f1/2 both와 destination f1/1이 표시된다.
    • Snort VM 연결이 f1/1 쪽에 그려져 있다. 이는 복제 수신 구성으로, 인라인 차단 구성과 구분해야 한다.
    확인 기준

    show monitor 출력과 센서 캡처 양쪽을 확인한다.

  2. 패킷 조건을 필요한 필드로 좁힌다

    • 캡처에는 FIN·SYN·PSH·URG가 함께 있는 데이터 없는 프로브가 보인다. 이 조합과 Len=0을 규칙 조건으로 옮길 수 있다.
    • 의 재전송·중복 ACK 문구는 분석 표시이며 flags 옵션의 값이 아니다. flags와 payload 길이는 각각 검사한다.
    text
    alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"LAB unusual TCP flags"; flags:FSUP; dsize:0; sid:1000201; rev:1;)

    교육용 패킷 조건 예시. 규칙 일치는 이상 플래그 조합의 관찰이며 도구나 공격 성공을 확정하지 않는다.

    Nmap·Snort 탐지 실습원본 크기로 보기 ↗
    • 일부 행에 [FIN, SYN, PSH, URG]와 Len=0이 표시된다.
    • 다른 행에는 <None> 플래그와 중복 ACK 표시가 있다. 서로 다른 조건을 하나의 룰로 무작정 합치지 않는다.
    확인 기준

    정상 표본도 함께 넣어 경보 범위를 비교한다.

  3. 문법과 실제 일치를 별도 시험한다

    • 설정 검증은 규칙을 읽을 수 있는지 확인하고, PCAP 재현은 실제 표본이 조건에 맞는지 확인한다. 검증이 성공해도 경보가 반드시 생기는 것은 아니다.
    • alert_json의 rule·action·src_ap·dst_ap·pkt_num을 패킷과 연결한다. 아래 alert 규칙과 오프라인 재생은 탐지 시험이다. would_drop 같은 표시가 나오더라도 실제 인라인 통신 차단 증거와 구분한다.
    shell
    snort -c snort.lua -R local.rules -T
    snort -c snort.lua -R local.rules -r lab.pcap -A alert_json

    의 재현용 예시 명령이다. 사진에 나온 실행 결과를 전재한 것이 아니며, 설치에 맞는 .와 자신의 PCAP를 사용한다.

    확인 기준

    기대 패킷 번호와 경보 를 연결하고 음성 표본의 결과도 남긴다.

실습에서 확인한 동작 원리

  • 센서 배치가 규칙보다 먼저 충족해야 하는 조건이다.
  • 규칙 문법·표본 일치·실제 차단은 각각 다른 증거를 요구한다.

설정·출력 추가로 확인하기 11장

아래 화면을 펼쳐 위 실습의 설정값, 명령과 확인 기준을 비교해 보세요. 각 묶음은 별도 실습 기록입니다.

실습 화면 묶음 01 1장
6/30 - snort, span · 실습·개념 참고 화면 1원본 크기로 보기 ↗
  • 문서 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 02 1장
7/10 - RIP (수동축약, default information) · 실습·개념 참고 화면 5원본 크기로 보기 ↗
  • 에 삽입된 원본 학습 화면이다. pfSense의 Snort 관리 화면에서 Blocked Hosts 메뉴와 차단 목록의 저장·새로고침 설정을 확인하는 화면이다.
실습 화면 묶음 03 7장
7/30 - 발표 · 실습·개념 참고 화면 10원본 크기로 보기 ↗
  • 「시나리오」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
7/30 - 발표 · 실습·개념 참고 화면 11원본 크기로 보기 ↗
  • 「시나리오」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
7/30 - 발표 · 실습·개념 참고 화면 27원본 크기로 보기 ↗
  • 「ruleset 탐지용 패킷」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
7/30 - 발표 · 실습·개념 참고 화면 28원본 크기로 보기 ↗
  • 「ruleset 탐지용 패킷」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
7/30 - 발표 · 실습·개념 참고 화면 29원본 크기로 보기 ↗
  • 「ruleset 탐지용 패킷」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
7/30 - 발표 · 실습·개념 참고 화면 30원본 크기로 보기 ↗
  • 「2. 공격자 페이지를 다른 출처로 서비스」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
7/30 - 발표 · 실습·개념 참고 화면 5원본 크기로 보기 ↗
  • 「로컬 규칙 SID 분류 체계」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 04 2장
실습 · 실습·개념 참고 화면 5원본 크기로 보기 ↗
  • 「java script atack」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 · 실습·개념 참고 화면 6원본 크기로 보기 ↗
  • 「java script atack」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
동작·명령 참고 문서
READ · OBSERVE · CONNECT

함께 보는 학습 자료

아래 공식 자료를 본문의 개념·예제와 함께 읽어 보세요. 자료별로 확인할 위치와 관찰할 내용을 적었습니다.

공식 가이드

Snort 3: content의 절대·상대 검색 범위

공식 ABC·EFG 예제를 기준으로 커서 위치를 직접 세고 와 을 함께 적용하는 범위를 계산한다.

읽으면서 확인할 것
  • 이전 일치 마지막 바이트 다음의 커서
  • 1과 3의 결합
  • 위치 옵션이 없는 는 버퍼 처음부터 검색
공식 가이드

Snort 3: alert_json과 logger 출력 예제

같은 탐지 이벤트의 rule·action·방향·패킷 필드가 어떤 출력 설정으로 기록되는지 비교한다.

읽으면서 확인할 것
  • rule의 gid:: 구조
  • pkt_gen과 dir로 보는 검사 문맥
  • would_drop 같은 action과 실제 차단의 구분
학습 확인

이해했는지 확인하기

  • Snort 버전·설정·규칙 로드 결과가 일치하는지 확인한다.
  • 방향·flow·검사 버퍼가 실제 프로토콜 문맥에 맞는지 확인한다.
  • 정상·이상 PCAP에서 SID별 결과와 드롭 통계를 확인한다.

함께 확인할 공식 자료