반응형
SMALL

도구로 탐지를 하다보면 사용자가 발견한 규칙들중에서 탐지가 안될경우가 종종 있다. 그럴때는 스노트 규칙을 사용해서 수동으로 탐지해 줄 수 밖에 없다. 그래서 사용되는 것이 스노트 규칙이다.



1. 스노트규칙 경로



- 스노트 규칙 경로는 cd /etc/nsm/rules이다. local.rules에 가서 스노트규칙을 추가하거나 수정이 가능하다.

- 스노트 규칙은 원하는 규칙이 탐지가 안될 때 많이 쓰이는 규칙이기 때문에 스노트 규칙 기호, 옵션 등을 잘 알아놔야 한다.



2. 스노트 규칙 구조



<사진출저: 보안프로젝트>



- $EXTERNAL_NET any -> $HOME_NET any는 외부주소에서 내부주소의 모든 ip를 가지고 오겠다는 의미이다. 이 때 any는 모든 것이라는 의미를 가지게 된다.


- msg, content, classtype, sid, rev순으로 구조순서를 갖게 된다. 

- 보통 content, rev 등은 규칙을 정할 때 항상 쓰이는 것이기 때문에 어떤 기능을 하는지 잘 알아놔야 규칙을 정할 때 편하다.



3. 가장 많이 쓰이는 스노트 규칙 헤더


- Alert: 패킷의 정보를 로그에 기록하고 사용자가 확인이 가능하게 경고를 출력해준다. 규칙을 정할 때 필수적으로 들어가는 규칙헤더 중 하나이다.

- Log: 패킷의 정보를 로그파일에 기록할 때 쓰이는 규칙헤더이다. 아주 많이 쓰이지는 않지만 알아두면 좋은 규칙헤더이다.

- $EXTERNAL_NAT: 외부 ip 주소 변수. 

- $HOME_NAT: 내부 ip 주소 변수.

- $HTTP_SERVERS: 웹 서버의 주소 변수. 네트워크 취약점 탐지시 많이 사용되는 규칙이다.

- any: 모든 포트를 의미한다. any도 거의 필수 규칙 헤더 중 하나이다.

- ->: 송신지에서 수신지로 간다는 의미이다. 



4. 가장 많이 쓰이는 스노트 규칙 옵션


- msg: 경고 이벤트를 나타낼 때 쓰는 메시지

- sid: 스노트 규칙을 구별할 때 쓰인다. 모든 규칙은 식별 번호를 갖게 된다. ex) sid:2000001;

- rev: 해당 규칙에 대한 버전, 버전이 하나 증가할 때마다 1이 더해진다.

- content: 탐지할 패턴을 정하는 옵션. 스노트 규칙 작성할 때 가장 중요한 부분 중 하나이다.

- nocase: 대소문자 구분없이 탐지하겠다는 옵션.

- http_uri: 페이로드에서 URI 값을 매칭시켜주는 옵션.

- http_header: HTTP 요청/헤더 값에서 패턴매칭을 시도하는 옵션.



5. 스노트 규칙 적용법





스노트 규칙을 만들고 나서 그 규칙을 적용시켜 줘야 하는데 sudo rules-update라고 명령어를 입력해주면 사진과 같은 화면이 나오게 된다. 하지만 스노트 규칙을 정하다가 에러가 발생하게 되면 수정을 해주어야 하는데 수정하고 나서는 sudo rules-update 명령어를 입력하는게 아니라 sudo --sensor --restart --only-snort-alert라는 명령어를 써줘야 수정된 값이 적용되므로 이것만 참고해서 스노트 규칙을 적용시켜주면 된다.





반응형
LIST
블로그 이미지

만년필석사

,