본문 바로가기

정보보안

Snort

Snort 공부 목적

- Snort가 가지고 있는 Rule Signature 기능을 통해서 탐지 패턴을 만드는 방법을 익히는것이 중요하다

- 분석하고 있는 악성코드는 분석에서만 마무리가 되기 보다는 탐지하는 패턴을 직접 만들어 보고 탐지패턴을 Snort에 넣었을때 악성코드가 탐지가 되는지 확인하는 과정을 연습해야 한다


 

Snort

: 시그니처 기반 탐지 시스템으로서 패턴과 매칭이 될 경우 탐지되는 시스템

-> 현재까지도 침입 탐지 시스템(IDS) 중 가장 널리 사용되고 있는 시스템

 

Snort 의 3가지 기능

- Sniffer : 네트워크 트래픽 캡쳐

- Packet Logger : 나중에 분석할 수 있도록 네트워크 트래픽을 파일에 기록

- IDS / IPS : 네트워크 트래픽을 분석 후 침입 탐지 및 차단

 

Snort 동작 구조 1->4

1. Sniffer

: Snort IDS를 통과한 패킷을 수집

2. Preprocessor

: 효율적인 공격 탐지를 위해 Plug-in 을 먼저 거쳐 매칭을 확인

3. Detection Engine

: Snort Rule과 매칭이 되는지 확인

4. Alert / Log

: Snort Rule 매칭 결과에 따라 경고나 로그 등 출력

 


 

Snort Rule Signature

 

Snort Rule은 크게 Rule headerRule Option으로 구분

 

Rule Header : IP / Port 번호

-> 관제 업무를 하면서 제일 먼저 확인할 수 있는 부분

Rule Option

-> IP /Port 말고도 규칙이나 패턴들을 상세하게 파악할 수 있다

-> Rule Option을 사용하여 탐지 패턴을 얼마나 잘 만드냐에 따라서 정탐률이 높아진다


 

<Rule Header>

 

Action : 만들어놓은 탐지 패턴을 알람을 발생시킬 건지, 기록만 할 건지, 무시할 건지 등등 여러가지 조절 가능

명령어 기능
alert 로그를 남기고 경고를 발생
log 해당 패킷 기록
pass 해당 패킷 무시
active alert 를 발생 시킨 후 대응하는 Dynamic 유효화
reject 패킷 차단하고 기록 후 TCP Protocol 의 경우 TCP Reset
UDP Protocol 의 경우 
drop 상대방에게 응답하지 않고 패킷을 차단하고 기록
sdrop 기록을 남기지 않고 패킷을 차단

 

 

Protocol : 탐지 할 프로토콜 종류를 정의

명령어 기능
TCP TCP 프로토콜을 탐지
UDP UDP 프로토콜을 탐지
ICMP ICMP 프로토콜 탐지
IP IP 프로토콜 탐지
Any 모든 프로토콜 탐지

 

 

Direction : 탐지할 방향을 정의

명령어 기능
-> 출발지 -> 목적지로 가는 패킷 탐지
<> 출발지 ~ 목적지 사이 모든 패킷 탐지

 

 

Source IP & Destination IP & Port : 출발지, 목적지 IP, Port 정의

명령어 기능
!(부정연산자) 부정연산자(!) 를 IP 또는 Port 앞에 기입할 경우 해당 IP 또는 Port 번호를 제외한 주소만 매칭
Any 모든 IP 또는 Port 를 의미
포트번호 지정된 포트번호를 의미
포트번호 : 포트번호 포트번호~포트번호를 의미
:포트번호 지정된 포트번호 이하 모든 포트를 의미
포트번호: 지정된 포트번호 이상 모든 포트를 의미

 

 

<Rule Option>

 

일반 옵션 : 규칙에 대한 정보를 제공하는 옵션으로 매칭하는 동안 어떠한 영향도 미치지 않는 옵션

msg 만든 탐지패턴의 이름을 지정 msg : "메시지 내용";
sid Snort 규칙을 구별하는 식별자
1,000,001 이상부터 사용
->만든 탐지패턴의 번호를 지정
sid : 1000001;
rev Snort 규칙의 수정 버전을 정의
수정할 경우 1씩 증가
rev:1;
classtype Snort 규칙을 분류하는 옵션 classtype:분류이름;
priority 우선 순위를 지정하는 옵션
1~10까지 수를 사용
값이 작을수록 우선순위 높다
priority:10;
reference 해당 규칙에 참고가 되는 URL을 지정하는 옵션 Reference:래퍼런스명 http://...;

 

 

Payload : Snort Rule에서 실질적으로 악성 패킷을 탐지하는 옵션

content 패킷 데이터에서 매칭할 문자열을 지정하는 옵션 content:"abc";
-> abc 문자열을 탐지
nocase Content 옵션 뒤에 작성하여 content 문자열을
대소문자 구분없이 탐지
content:"abc";nocase
-> Abc,ABC,aBc,abC 모두 탐지
offset 패킷의 페이로드에서 매칭을 시작할 문자열의
위치를 지정하는 옵션
offset:3;

-> 4byte부터 탐색 시작
distance content 옵션 값 매칭 후를 기준으로 지정된 패턴 탐색을 시작하기 전에 무시해야 하는 패킷의 거리를 지정하는 옵션 content:"abc";control:"test";distance:5;
-> abc 문자열 매칭 후 지점을 기준으로 5byte 이후
text 문자열 탐색
within content 옵션 매칭 후 다음 지정된 탐색을 진행할 범위를 지정하는 옵션 content:"abc";content:"test";within:5;
-> abc 문자열 매칭 후 지점을 기준으로 5Byte 이내에 test 문자열 탐색

 

'정보보안' 카테고리의 다른 글

악성코드 분석 보고서 작성 연습  (0) 2023.12.10
악성코드 샘플 분석2  (0) 2023.12.03
악성코드 샘플 분석  (0) 2023.11.26
정적, 동적 Tool 실습  (0) 2023.11.14
샘플 분석 환경 구성과 Search  (0) 2023.11.06