Snort 규칙과 검사 흐름 이해하기
Snort 규칙은 특정 트래픽 조건과 검사할 데이터 영역을 결합한다. 규칙 문법·프로토콜 해석·수집 경로를 함께 확인해야 탐지를 설명할 수 있다.
개념부터 찾아보기
정의·역할·동작 원리를 독립 페이지에서 확인하세요. 본문의 밑줄 용어에도 설명이 있습니다.
이 노트에서 설명할 수 있게 되는 것
- 캡처·디코딩·스트림·검사기·규칙·출력의 역할을 순서대로 설명한다.
- flow와 HTTP 버퍼 조건이 검사 대상을 좁히는 방식을 이해한다.
- 정규화와 재조립을 고려해 규칙의 실패 지점을 찾아낸다.
01개념과 구성 요소
- 입력가 인터페이스 또는 PCAP에서 패킷을 받으며 passive와 경로를 구분한다.
- 해석Decoder·/·service 가 패킷을 규칙이 검사할 상태와 버퍼로 바꾼다.
- 규칙·출력헤더와 옵션이 조건을 정의하고 ·revision이 규칙을 식별하며 /action이 결과를 처리한다.
02Snort 3에서 HTTP 경로 규칙을 평가하는 순서
- 패킷 수신가 패킷을 받고 주소·포트·프로토콜과 관점의 방향을 확인한다.
- 연결 상태 구성· 처리가 연결 방향과 상태, 재조립된 바이트를 만든다.
- HTTP 연결와 설정이 해당 의 서비스 해석을 연결한다. 80번 포트라는 사실만으로 정상 HTTP가 보장되지는 않는다.
- 검사 버퍼 선택http_uri 같은 에서 정규화된 를 검사한다. 버퍼에는 요청 메서드 전체가 들어 있지 않다.
- 규칙 조건 평가··빈도 등 조건이 맞는지 확인하고 와 사건 문맥을 결과에 연결한다.
- 결과 처리선택한 로 경보를 남긴다. 실제 차단은 지원 · 경로·정책이 모두 맞아야 한다.
03DAQ가 패킷을 받고 Inspector가 의미를 만든다
- 입력의 입력은 (Data Acquisition) 모듈이 담당한다. 실시간 인터페이스와 저장된 PCAP은 서로 다른 입력이며 passive 캡처와 처리도 구분된다.
- 해석 파이프라인Decoder가 헤더를 읽고 ··service 가 연결과 응용 계층을 해석한 뒤 규칙 엔진과 /action으로 이어진다.
- 표시·저장·탐지Sniffer·Packet ·는 표시·저장·탐지라는 목적이 다른 동작이다. 패킷을 화면에 표시한 것, PCAP으로 저장한 것, 특정 규칙이 일치하여 경보를 낸 것을 같은 결과로 취급하지 않는다.
- 실행 구성실행 중인 바이너리··설정·룰·가 실제로 연결되어야 의도한 경로가 완성된다.
04SPAN·TAP과 보호 네트워크 변수
- ·TAPPassive 센서는 /TAP 또는 가상 스위치 미러링 등으로 복사본을 받는다. 일반 스위치의 아무 포트에 연결했다고 다른 두 호스트의 unicast를 모두 볼 수 있는 것은 아니다.
- 손실·중복양방향 미러링을 설정했더라도 복사 대상 합계 대역폭이 출력 포트나 센서 처리량을 넘으면 손실이 생긴다. 복수 위치에서 같은 패킷을 복사하면 중복도 생길 수 있다.
- 네트워크 변수은 보호할 범위이고 EXTERNAL_NET은 규칙이 외부로 취급할 범위이다. EXTERNAL_NET을 !으로 정의하면 내부 호스트 사이의 사건은 해당 외부→내부 규칙에 맞지 않을 수 있다.
- 방향· 앞과 뒤에서 주소가 달라지는 것도 헤더 조건에 직접 영향을 준다. ->는 규칙 왼쪽에서 오른쪽으로의 논리 방향이며 장비 인터페이스의 in/out과 자동으로 같지 않다.
SPAN으로 센서에 복사 트래픽 보내기
원본 크기로 보기 ↗이 자료에서 읽어낼 것
- source interface f1/2 both는 해당 포트의 양방향 트래픽을 복사 대상으로 삼는 설정입니다. 센서가 모든 포트의 모든 트래픽을 자동으로 보는 것은 아닙니다.
- destination interface f1/1은 복사본을 보내는 관찰 포트입니다. 이 연결의 센서는 원래 사용자 데이터 경로를 통과시키는 inline 장비로 그려져 있지 않습니다.
- 관찰 포트 과부하나 캡처 누락이 생기면 원본 트래픽과 센서가 분석한 트래픽이 달라질 수 있습니다. 규칙을 조정하기 전에 센서에 필요한 패킷이 도착하는지 확인합니다.
- 이 토폴로지는 복사 기반 관찰 위치를 설명합니다. 다른 구성에서 가능한 IPS 차단 기능과 구분하며, 경보가 생겼다는 이유만으로 이 그림의 원래 세션이 차단되었다고 판단하지 않습니다.
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 버퍼 예아래는 HTTP 요청의 정규화 에서 무해한 교육 경로를 찾는 예이다. to_server는 클라이언트→서버 방향, 는 연결 상태, http_uri는 이후 의 검사 버퍼를 지정한다.
- 의 범위요청 줄의 GET까지 버퍼에 들어 있는 것은 아니므로 버퍼에서 “GET /...” 전체를 찾는 규칙과 혼동하지 않는다.
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·정규화 raw payload는 요청 바이트의 배치에 민감하다. HTTP 버퍼는 응용 파서가 부분을 제공하며 정규화된 버퍼와 원본 버퍼를 구분할 수 있다.
- 표현의 차이퍼센트 인코딩·경로 정리· 분할 같은 조건에서 어느 표현을 검사하는지에 따라 결과가 달라진다. 정규화가 수행된 값과 원본 값을 함께 이해해야 규칙 일치 이유를 설명할 수 있다.
- ·PCRE는 특정 문자열·바이트 패턴, pcre는 조건을 표현한다. / 등 위치 제한은 특정 버퍼 안에서 어떤 영역을 볼지 정하는 의미를 가진다.
- 문법 검사규칙의 쉼표·옵션 철자·필수 ·중복 는 로드 전 문법과 식별자 검증 대상이다.
08Content 검색 커서와 절대·상대 범위
- 절대 시작은 선택된 검사 버퍼 시작을 기준으로 검색 위치를 옮긴다. 는 그 시작점에서 검사할 범위를 제한한다.
- 상대 시작는 이전 일치가 끝난 위치를 기준으로 다음 검색 시작을 이동시킨다. 같은 버퍼에서의 검색 문맥이 필요하다.
- 상대 범위은 다음 가 일치해야 할 상대 검색 범위를 제한한다. 문자열 전체가 허용된 범위 안에 들어오는지 계산해야 한다.
- 버퍼 전환http_uri 같은 를 선택하면 비교 대상과 커서 문맥이 달라진다. raw payload의 오프셋을 정규화 의 오프셋으로 재사용하지 않는다.
- 조건 결합여러 는 모두 일치해야 하지만 작성 순서만으로 바이트의 등장 순서가 제한되지는 않는다. 위치 옵션이 없으면 기본·선택 버퍼의 처음부터 검색한다. 앞선 일치 뒤의 상대 위치·범위는 으로 지정한다.
- 순서 차이 비교무해한 가상 버퍼 XYZABC에서 ABC 뒤에 위치 옵션 없는 XYZ를 쓰면 두 값이 각각 존재한다. 두 번째 조건에 0을 붙이면 ABC 뒤에는 XYZ가 없으므로 실패한다. 같은 버퍼의 두 만 비교한 예다.
09가상 문자열 ABC12XYZ의 커서 추적
- 버퍼 고정8바이트 ASCII 버퍼 ABC12XYZ를 가정한다. 위치는 0부터 시작하며 ABC는 0~2, XYZ는 5~7이다.
- 첫 검색 ABC에 =0·=3을 적용하면 첫 세 바이트에서 일치한다. 검색 커서는 ABC 끝 다음인 위치 3을 기준으로 한다.
- 다음 시작두 번째 XYZ에 =2를 적용하면 위치 3에서 두 바이트를 건너뛰어 위치 5부터 찾는다.
- 범위 판정=3인 검색 범위에 XYZ 세 바이트가 정확히 들어오므로 조건이 맞는다. 이는 문서의 상대 범위 동작을 설명하는 무해한 표본이다.
- 실패 비교ABC123XYZ에서는 XYZ 시작이 위치 6이어서 같은 3바이트 검색 범위에 전부 들어오지 않는다. 문자열 존재 여부만 비교한 결과와 달라진다.
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는 규칙 조건을 만족한 빈도를 기준으로 이벤트 생성을 제한한다.
- 포트 수와 차이이는 고유 목적지 포트 수를 자동으로 계산하는 기능과 다르므로 동일 포트로의 많은 정상 연결도 조건에 들어올 수 있다.
- 집계 기준 뒤의 여러 사용자를 하나의 출발지로 세면 집계가 커지고, 여러 출발지로 분산된 행위는 출발지별 임계값에 안 닿을 수 있다. 임계값은 트래픽 기준선과 목적에 맞는 가설이며 보편적인 공격 경계가 아니다.
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특정 도구가 사용하는 특징적인 는 연관성이 더 강하지만 문자열을 다른 프로그램이 보낼 수도 있다. PROPFIND는 WebDAV의 정상 메서드이다.
- 증거 강도각 경보의 사실은 “이 패턴이 관찰됨”이며 전체 스캔 판단은 시간·출발지·대상 포트와 다른 이벤트를 연결해야 한다.
13Flowbit와 연결을 넘는 상관분석
- Flowbitsflowbits는 동일 안에서 이전 규칙의 상태를 기억해 후속 조건에 이용하는 데 적합하다. 서비스 probe처럼 새 출발지 포트를 사용해 연결을 여러 번 만들면 이전 의 bit를 전체 조사 세션의 상태처럼 쓸 수 없다.
- 연결 간 상관분석각 연결에서 개별 특징을 탐지한 뒤 의 시간창과 주체 기준으로 연결하는 역할 분담이 필요하다.
- 응답 방향서버 응답을 검사하는 to_client 규칙은 요청 규칙과 방향이 반대다. 같은 src_ip 필드가 요청에서는 클라이언트, 응답에서는 서버를 뜻하므로 무조건 같은 필드명으로만 묶으면 잘못된 상관분석을 만들 수 있다.
- 역할 기반 필드initiator/responder와 센서 위치를 보존하는 이유다.
14Alert JSON 필드와 실제 차단
- 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 설정에 따라 달라진다.
- Passive Alertalert는 조건 일치 사실이며 passive 센서가 기록한 action만으로 트래픽 차단을 주장하지 않는다. 실제 차단은 패킷이 통과하는 경로와 지원 , 정책 동작이 모두 맞아야 한다.
- 동작·block 같은 규칙 동작과 최종 전달 결과를 구분하여 해석한다.
15문법 검사·PCAP 재현·Live 관찰
- 문법과 PCAP-T는 설정과 규칙을 읽을 수 있는지 검사하지만 기대한 트래픽에서 올바르게 탐지하는지까지 증명하지 않는다. 같은 PCAP을 입력하면 네트워크 변동을 줄여 규칙 변경 전후를 비교할 수 있다.
- Live 관찰예상 ·횟수와 정상 PCAP의 불필요한 경보를 함께 본다. 다음 live 단계는 실제 캡처 위치와 drop·CPU·로그 지연을 확인한다.
- 검증 범위이 단계가 나뉘어 있으면 미탐 원인이 규칙인지 입력 가시성인지 구분하기 쉽다. 한 PCAP의 탐지 성공은 해당 입력·규칙·버전의 결과이며 전체 트래픽 성능이나 모든 변형 탐지를 보증하지 않는다.
snort -V
snort --daq-list
snort -c <설정.lua> -T
snort -q -c <설정.lua> -r <교육.pcap> -R <교육.rules> -A alert_fast기능 확인과 저장된 교육 PCAP 분석 예입니다. 실제 명령 인수는 설치 환경에 맞게 치환합니다.
설명과 함께 보는 보조 도식
모식도 · Snort의 검사 파이프라인
Snort 3의 논리적인 처리 단계를 단순화했다.
캡처
필요한 트래픽과 헤더가 보이는지 확인한다.
전체 단계를 한 번에 읽기
- 01
캡처
필요한 트래픽과 헤더가 보이는지 확인한다.
- 02
흐름 구성
패킷을 연결 문맥과 재조립 데이터로 만든다.
- 03
의미 영역 선택
설정과 프로토콜에 맞는 검사기를 적용한다.
- 04
규칙 검사
선택한 버퍼에서 조건을 평가한다.
- 구분
- raw URI와 정규화 URI
- 05
결과 기록
매칭 결과를 출력 설정과 연결한다.
SPAN 수신 위치와 TCP 플래그 규칙을 연결하기
센서 가시성을 확인한 뒤 저장된 패킷의 조건을 규칙 헤더·옵션으로 옮긴다.
실습 구성과 전제
- 와 설정을 사용하는 격리 센서, 스위치, 허가된 PCAP 작업 사본을 준비한다. 2의 .conf·실행 옵션을 그대로 섞지 않는다.
- 사진의 구성도와 프로브 캡처는 관측 배치와 규칙 조건을 비교하는 자료이며 하나의 경보 발생을 자동으로 증명하지 않는다.
복제할 방향과 센서 연결 포트를 확인한다
- source interface f1/2 both는 양방향 프레임을 복제한다는 뜻이며 destination interface f1/1은 복제본을 받는 포트다.
- 센서의 실제 캡처 NIC와 이 포트가 연결됐는지 확인한다. 설정이 맞아도 패킷이 들어오지 않으면 규칙을 평가할 수 없다.
원본 크기로 보기 ↗- 도해 오른쪽에 source f1/2 both와 destination f1/1이 표시된다.
- Snort VM 연결이 f1/1 쪽에 그려져 있다. 이는 복제 수신 구성으로, 인라인 차단 구성과 구분해야 한다.
확인 기준show monitor 출력과 센서 캡처 양쪽을 확인한다.
패킷 조건을 필요한 필드로 좁힌다
- 캡처에는 FIN·SYN·PSH·URG가 함께 있는 데이터 없는 프로브가 보인다. 이 조합과 Len=0을 규칙 조건으로 옮길 수 있다.
- 의 재전송·중복 ACK 문구는 분석 표시이며 flags 옵션의 값이 아니다. flags와 payload 길이는 각각 검사한다.
textalert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"LAB unusual TCP flags"; flags:FSUP; dsize:0; sid:1000201; rev:1;)교육용 패킷 조건 예시. 규칙 일치는 이상 플래그 조합의 관찰이며 도구나 공격 성공을 확정하지 않는다.
원본 크기로 보기 ↗- 일부 행에 [FIN, SYN, PSH, URG]와 Len=0이 표시된다.
- 다른 행에는 <None> 플래그와 중복 ACK 표시가 있다. 서로 다른 조건을 하나의 룰로 무작정 합치지 않는다.
확인 기준정상 표본도 함께 넣어 경보 범위를 비교한다.
문법과 실제 일치를 별도 시험한다
- 설정 검증은 규칙을 읽을 수 있는지 확인하고, PCAP 재현은 실제 표본이 조건에 맞는지 확인한다. 검증이 성공해도 경보가 반드시 생기는 것은 아니다.
- alert_json의 rule·action·src_ap·dst_ap·pkt_num을 패킷과 연결한다. 아래 alert 규칙과 오프라인 재생은 탐지 시험이다. would_drop 같은 표시가 나오더라도 실제 인라인 통신 차단 증거와 구분한다.
shellsnort -c snort.lua -R local.rules -T snort -c snort.lua -R local.rules -r lab.pcap -A alert_json의 재현용 예시 명령이다. 사진에 나온 실행 결과를 전재한 것이 아니며, 설치에 맞는 .와 자신의 PCAP를 사용한다.
확인 기준기대 패킷 번호와 경보 를 연결하고 음성 표본의 결과도 남긴다.
실습에서 확인한 동작 원리
- 센서 배치가 규칙보다 먼저 충족해야 하는 조건이다.
- 규칙 문법·표본 일치·실제 차단은 각각 다른 증거를 요구한다.
설정·출력 추가로 확인하기 11장
아래 화면을 펼쳐 위 실습의 설정값, 명령과 확인 기준을 비교해 보세요. 각 묶음은 별도 실습 기록입니다.
실습 화면 묶음 01 1장
원본 크기로 보기 ↗- 문서 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 02 1장
원본 크기로 보기 ↗- 에 삽입된 원본 학습 화면이다. pfSense의 Snort 관리 화면에서 Blocked Hosts 메뉴와 차단 목록의 저장·새로고침 설정을 확인하는 화면이다.
실습 화면 묶음 03 7장
원본 크기로 보기 ↗- 「시나리오」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「시나리오」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「ruleset 탐지용 패킷」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「ruleset 탐지용 패킷」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「ruleset 탐지용 패킷」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「2. 공격자 페이지를 다른 출처로 서비스」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「로컬 규칙 SID 분류 체계」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 04 2장
원본 크기로 보기 ↗- 「java script atack」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「java script atack」 문맥에 삽입된 원본 실습·개념 참고 화면이다. Snort 규칙과 검사 흐름 이해하기 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
함께 보는 학습 자료
아래 공식 자료를 본문의 개념·예제와 함께 읽어 보세요. 자료별로 확인할 위치와 관찰할 내용을 적었습니다.
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별 결과와 드롭 통계를 확인한다.
