Snort 규칙에서 일반도메인 이름을 사용할수 없으므로 CIDR의 표현 방식의 이해가 필요함
'!' 부정 연산자로 특정 네트워크 대역을 제외시킬 때 사용
'[]' : 단일 IP와 네트워크 대역 등 연속적이지 않은 IP주소를 지정할수 있음
'any' : 모든 주소를 가리키는 와일드 카드로 유니코드 또는 버퍼 오버플로우와 같은 so,외부에서 모두 행해질수 있는 기술적인 취약점을 찾을 때 유용함
IP 주소의 재사용성을 위해서 변수를 사용함
다양한 IP 주소 지정의 예
alert tcp !192.168.1.0/24 any -> 192.168.1.0/24 111 (tcp 192.168.1.0/24가 아닌 아무 포트에서 192.168.1.0/24 IP에 111 포트로 들어오는 모든 패킷에 대해 alert 을 남겨라)
alert tcp ![192.168.1.0./24, 10.1.1.0/24] any -> [192.168.1.0/24, 10.1.1.0/24] 111 ( tcp 192.168.1.0/24와 10.1.1.0/24 IP가 아닌 아무 포트에서 192.168.1.0/24와 10.1.1.0/24IPdml 111번 포트로 들어오는 패킷에 대해 alert을 남겨라
Port
IP 주소 할당에서 사용된 부정 연산자(!)와 와일드 카드(any)문자를 동일하게 사용
':' : 연속된 port 번호를 지정할 경우 사용
포트 번호는 tcp와 udp 규칙에서만 사용되나, snort 탐지 엔진이 정상적으로 동작하기 위해서는 포트 정보가 필요하므로 타 프로토콜에도 'any'를 사용
port 번호 지정의 예
log udp any any -> 192.168.1.0/24 1:1024 (UDP 모든 주소IP 의 모든 port에서 192.168.1.0/24 IP의 1번부터 1024번포트 로 들어오는 모든 패킷읠 로그를 남긴다)
log tcp any :1024 -> 192.168.1.0/24 500: (tcp 모든 주소의 1024번까지의 port에서 192.168.1.0/24 주소에서 500번port 부터 들어오는 모든 패킷에 대해 로그를 남긴다)
방향 연산자
방향 연잔자는 패킷의 방향을 표시
'->' 연산자는 왼쪽에 있는 내용이 출발지에 대한 정보이며, 오른쪽 내용은 목적지에 대한 정보를 나타냄
'<>' 연산자는 출발지와 목적지 사이에서 오가는 모든 패킷을 나타냄
'<>'연산자는 '->' 연산자에 비해서 IDS에 많은 부하를 가져옴
'<>'연산자는 대량의 트래픽을 발생시키지 않는 네트워크에 적용
방향 연산자의 예
log tcp !192.168.1.0/24 any <> 192.168.1.0/24 23 (tcp 192.168.1.0/24의 주소가 아닌 모든 포트에서 192.168.1.0/24주소의 23 포트로 오고가는 모든 패킷에 대해 로그를 남긴다)
Activate 규칙과 Dynamic 규칙
Activate 규칙은 자신이 활성화 될 경우 다른 Dynamic 규칙을 활성화 시킴
Activate 규칙은 경고를 발생시키고 연관된 Dynamic 규칙을 활성화 시켜 log를 남길수 있음
Activate 규칙에서 'activates'뒤에 오는 값과 Dynamic규칙에서 'activated_by'뒤에 오는 값이 일치하면 Activate 규칙에 의해서 Dynamic 규칙이 활성화 됨
'count'는 dynamic 규칙이 활성화 되는 빈도수 지정
Activate 규칙과 Dynamic 규칙의 예
activate tcp any any -> !$HOME_NET 23(activates :23; msg: "Telnet Access!";)
dynamic tcp any any -> !$HOME_NET 23(activated_by: 23; count: 20;)
[tcp 모든 주소의 모든 포트에서 $HOME_NET이 아닌 23번 포트로 들어오는 패킷이 activates가 23이면 메시지를 띄어라. tcp 모든 주소의 모든 포트에서 $HOME_NET이 아닌 23번 포트로 들어오는 패킷 activates 가 23이면 20번 으로 활성화 되는 빈도수를 지정하라]
dynamic tcp !$HOME_NET any -> $HOME_NET 143 (activated_by:1; count: 50)
[tcp $HOME_NET이 아닌 모든 포트에서 $HOME_NET 의 143포트로 가는 flags 가 PA이고 content가 "|E8C0FFFFFF|/bin"이고 activates가 1이면 msg를 띄어라. tcp $HOME_NET이아닌 모든 포트에서 $HOME_NET의 143번포트로 들어오는 패킷중 activates가 1이면 50번으로 활성화되는 빈도수를 지정]