[ 기업 정보 보호 전문가 양성 과정 시스템 정보 보안 기술 실무 ] 책의 일부를 참고 했습니다.
- rule 은 크게 헤더와 옵션으로 구성되어 있다.
- 헤더
- Action ( IPS )
------------------------------------------------------------------------------------
종류 내용
------------------------------------------------------------------------------------
Drop 인라인(In-Line)방식으로 구성되어 있을 경우 IPS 역할이 가능,
규칙에 매칭되는 패킷을 차단하는 기록
Reject Drop과 같은 액션을 취함
- TCP의 RESET 패킷을 출발지로 전송
- ICMP 패킷은 Unreachable로 반송
Sdrop Drop과 동일하게 패킷을 차단하지만 로그 기록하지 않음
------------------------------------------------------------------------------------
- 옵션
일반 옵션(General Options)
---------------------------------------------------------------------------------------------
옵션 내용
---------------------------------------------------------------------------------------------
(필)msg 경고 이벤트를 보여줄 때 나타나는 메세지(EX: msg:"SQL Injection";)
(필)sid 규칙을 구분하는 식별자(EX: sid:3000001;)
모든 규칙은 식별 번호를 가짐
0 ~ 2999999 : 이미 예약된 식별자
3000000 ~ : 사용 가능한 식별자
(필)rev 해당 규칙에 대한 버전(EX: rev:1;)
수정 할 때 마다 숫자를 1씩 증가
priority 우선 순위를 숫자로 지정(EX: priority:1;)
1(높은) ~ 10(낮음)
classtype 스노트 규칙을 분류하는 옵션(EX: classtype:<분류명>;)
정의파일: /etc/snort/classification.config
(분류이름:분류설명:우선순위)
reference 취약점의 참고가 되는 정보(URL 등)를 연결
(EX: reference:url,www.example.com/test.html;)
(EX: reference:cve,2012-1823;)
정의 파일: /etc/snort/reference.config
---------------------------------------------------------------------------------------------
(필) 필수적으로 적어야 한다.
페이로드(Payload)
---------------------------------------------------------------------------------------------
옵션 내용
---------------------------------------------------------------------------------------------
Content 탐지할 패턴을 설정하느 옵션(EX: Content:"abc";) (EX:Content:"|61 62 63|";)
Nocase 패턴 매칭시 대소문자 구별하지 않고 매칭(EX: Content:"abc";nocase;)
Offset 해당 옵션에서 지정한 바이트만큼 떨어진 위치부터 탐색 시작(EX: offset:5;)
Depth 패킷 데이터에서 찾을 내용의 범위를 지정하는 옵션
예를 들어 5로 지정하면 처음부터 5바이트까지 문자열 탐색(EX: depth:5;)
distance 이전 content 설정 값 매칭 탐색할 위치를 지정
예를 들어 abc가 매칭된 위치에서 10바이트 떨어진 위치부터 test 문자열을 탐색
시작하고 싶다.(EX: Content:"abc";nocase;content:"test";distance:32;)
within 이전 content 설정 값 매칭 후 매칭을 끝낼 상대 위치를 지정
예를 들어 abc가 매칭된 위치에서 10바이트 이내에 test 문자열 존재하는지 탐색
(Content:"abc";nocase;content:"test";within:10;)
pcre 스노트 규칙에서 사용가능한 정규 표현식
특정 문자열의 집합을 표현할 때 효과적으로 사용 가능
(EX: pcre:"/select\b.*FROM/Ui";)
---------------------------------------------------------------------------------------------
EX)
content:"USER root";nocase;
> USER root 대 소문자 구별 안 함
content:"GET";depth:3;
> 처음부터 3byte 까지 GET 문자가 있는지 확인한다.
> depth를 안쓰면 전체 다 확인 -> 속도 저하
content:"cgi-bin/phf";offset:4;depth:20;
> 첫 4 byte 이후부터 20 byte 까지 cgi-bin/phf 문자가 있는지 확인한다.
content:"ABC";content:"DEF";distance:1;
> ABC 와 DEF 사이 거리가 1byte 만큼 떨어져 있는지 확인한다.
content:"GET";depth;3;content:"downloads";distance:10;within9;
> 처음에서 3byte가 GET인지 확인하고 10byte 떨어진 곳에 download가 9byte 이내에 있는지 확인한다.
HTTP 관련 옵션(content 부분에 영향을 주는 옵션이다.)
---------------------------------------------------------------------------------------------
옵션 내용
---------------------------------------------------------------------------------------------
http_method 페이로드 앞부분의 HTTP 메소드 부분의 패턴을 매칭
메소드: GET, POST, PUT, HEAD, DELETE, TRACE ...
http_uri 페이로드에서 HTTP URI 값을 패턴 매칭
http_cookie 페이로드에서 HTTP 쿠키 값을 패턴 매칭
http_header HTTP 요청/응답 헤더 값에서 패턴 매칭 시도
http_client_body HTTP 요청/응답 바디 값에서 패턴 매칭 시도
http_stat_code HTTP 응답 메세지의 상태코드에서 매칭 시도.
http_stat_message HTTP 응답 메시지의 상태 메세지 부분에서 매칭 시도
---------------------------------------------------------------------------------------------
스노트 전체 규칙 옵션
[반드시 참고] 옵션이 너무 많기 때문에 찾아보면서 작성/ 해석 한다.
> http://manual-snort-org.s3-website-us-east-1.amazonaws.com/
'Security > Linux Server' 카테고리의 다른 글
IPS 설정하기 (0) | 2017.12.26 |
---|---|
Snort Rule Generator 사용법 (0) | 2017.12.26 |
IDS (Instrusion Detect System)_ snort 새로운 rule 등록 (0) | 2017.12.22 |
IDS (Instrusion Detect System)_실습_ snort 탐지확인 (0) | 2017.12.22 |
IDS (Instrusion Detect System)_환경 구성_snort 설치/설정 (0) | 2017.12.22 |