본문 바로가기

IT(개발, 보안)/보안 개념

스노트(Snort)에 대해 알아보자

개념

스노트는 오픈소스 침입탐지시스템(IDS)이자 침입차단시스템(IPS)로 무료이자 매우 유명해서 정보보안기사 시험에 단골로 출제된다.

 

스노트는 크게 4가지 기능을 제공하는데,

  • 패킷 스니퍼 모드
  • 패킷 로거 모드
  • 침입 탐지 시스템 모드
  • 침입 차단 시스템 모드

네트워크 상 감지되는 패킷을 읽고 출력하거나 로그에 남기는 기능을 제공하고, 별도의 룰을 지정해 룰에 걸리는 패킷을 기록하거나 차단하는 기능도 제공한다.

 

스노트 룰

원하는 패킷을 탐지하고 차단하기 위해 작성하는 규칙이다. 수신한 패킷을 룰과 비교하여 매칭된다면 포워딩, 드랍, 경고 등 미리 정해둔 액션을 수행한다.

 

스노트 룰은 룰 헤더와 룰 옵션으로 구성된다.

룰 헤더: 처리 방법, 프로토콜, 소스 IP와 포트, 목적지 IP와 포트로 구성되어 탐지할 패킷을 지정한다.

룰 옵션: 탐지 또는 처리의 세부적인 조건을 정의한다.

alert tcp any any -> 192.168.21.130 80 (msg: "SYN Flooding Detection!";)

괄호 이전이 룰 헤더, 괄호 내부가 룰 옵션

 

위 스노트 룰은 "tcp 프로토콜에서 모든 IP 모든 포트에서 192.168.21.130 IP주소의 80포트를 사용하는 패킷을 탐지하면 메세지와 함께 alert를 발생시키고 로그에 기록하라" 라는 뜻이 된다. 

 

alert 외에 여러 action들이 존재한다. action의 종류는 아래와 같다.

종류 내용
alert alert 발생시키고 탐지 정보를 로그파일에 기록
log 패킷에 대해서 로그를 기록
pass 패킷을 무시
activate alert 발생시키고, dynamic 룰을 동작시킴
dynamic activate 시그니처에 의해서 유효하게  경우는 한쪽의 패킷을 기록
drop 패킷을 차단하고, 로그에 기록함
reject drop 동일하나 추가적으로 Reset(TCP) or ICMP port unreachable(UDP) 메시지를 전송
sdrop 패킷을 차단하지만 로그에 기록하지 않음(Silent Drop)

 

action 이후에 프로토콜과 IP, 포트를 정의해주고 ' -> ' 를 사용해 source와 dst 를 지정해주는데 송수신자를 구분하지 않고 탐지하기 위해서는 ' <> '를 사용하면 된다.

 

그 외 룰 옵션 같은 경우엔 종류가 방대해 따로 찾아보길 바란다.

반응형