
스노트(Snort)는 네트워크 침입 탐지 시스템(NIDS)으로사, 네트워크 상에서 일어나는 트래픽을 분석하고 악의적인 동작을 탐지하는 데 사용된다.
Snort 규칙은 이러한 악성 행위를 탐지하기 위해 사용되며, 이러한 규칙을 작성하고 관리하는 것이 Snort를 효과적으로 활용하는 데 중요하다.
간단한 Snort 규칙을 작성하는 방법을 설명한다면, 먼저 Snort규칙은 다음과 같은 형식을 가진다.
action protocol sourceIP/sourcePort -> destinationIP/destinationPort (options)
규칙이 발생했을 때 어떤 동작을 취할지를 정의한다. 대표적으로 alert(경고), log(로그), pass(통과) 등이 있다.
사용할 프로토콜을 지정한다. 예를 들어, TCP, UDP, ICMP 등이 있다.
출발지 IP주소와 포트를 지정한다.
목적지 IP주소와 포트를 지정한다.
다양한 옵션을 생성할 수 있다. 예를들어, 패킷의 내용을 검사하는 내용 옵션(contents)이나 특정한 패킷의 길이를 확인하는 길이 옵션 등이 있다.
HTTP트래픽에서 "GET /etc/passwd" 문자열을 감지하는 규칙을 작성해 본다면, 이 규칙은 HTTP GET 요청 중에 "/etc/passwd" 문자열이 포함된 경우를 탐지할 것이다.
alert tcp any any -> any any (msg:"Detect /etc.passwd access" ; content:"GET /etc/passwd"; sid:1000001;)
위의 예제를 Snort 규칙 파일에 추가하면 된다. 보통은 /etc/snort/rules/ 디렉토리에 규칙 파일을 추가하거나 수정한다.