Snort

2023. 11. 18. 21:01보안관제

목차

  • 개요
  • 주요기능
  • Snort Rule(개요)
  • Snort Rule(Header)
  • Snort Rule(Option)

 

Snort 대표 사진

개요

  • 네트워크 침입 탐지 시스템(NIDS: Network Intrusion Detection System)
  • 네트워크 침입 차단 시스템(NIPS: Network Intrusion Prevention System
  • 마틴 로시가 1998년에 개발

 

 * IDS 종류

   - NIDS: 해당 네트워크 망 내에서 트래픽을 분석하여 공격을 탐지하는 기능을 제공.

   - HIDS: 호스트를 기반으로 한 IDS

   - DIDS: 여러 원격지 센서가 중앙 관리 스테이션에게 정보를 보내는 형태

 

 

 

주요기능

  • 패킷 스니퍼(Packet Sniffer) : 네트워크 상의 패킷 스니핑
  • 패킷 로거(Packet Logger) : 모니터링한 패킷을 저장하고 로그에 남기는 기능
  • 네트워크 침입탐지(IDS) : 네트워크 트래픽 분석 후 침입탐지
  • 네트워크 침입탐지(IPS) : 네트워크 트래픽 분석 후 침입차단

 

 

Snort Rule(개요)

Snort Rule Structure

 

 1) 정의

  • 공격자의 공격을 탐지하기 위한 등록된 규칙(패턴)
  • 수신된 패킷을 Rule과 비교 후, 탐지 여부 결정
  • Rule은 Rule Header와 Rule Option으로 구성
    • Rule Header: Action, Protocol , IP주소 , 포트, 방향 
    • Rule Option: 탐지할 조건


  2) 구조

  • Sniffer 
  • Preprocessor
  • Detection Engine
  • Alert/Logging

 

 2)-1. Sniffer
    -  Promiscuous Mode(무차별 모드)를 통해 목적지 MAC이 본인 MAC 주소가 아니어도 다 받음.

 

 2)-2. Preprocessing
    - 입력되는 패킷에 대해서 특정 행위가 탐지될 경우 탐색 엔진으로 전송
    - 프로토콜의 종류별로 검사 여부를 결정


  2)-3. Detection Engine
    - 등록된 Rule과 동일한지 여부를 확인


  2)-4. Alert & Logging
    - 탐지된 정보에 대한 로그 파일을 SNMP 프로토콜 등을 통해 전송(Alert)
    - 로그파일 기록 및 등록된 데이터베이스에 적재(Logging)

 

 

Snort Rule(Header)

 

1.1. Action: 탐지 후 행동들

  • alert : 경고 발생 및 로그 기록
  • log : 로그 기록
  • pass : 패킷 무시
  • active : alert 발생 및 대응하는 dynamic 유효화
  • dynamic : active에 의해 유효화된 경우 한쪽의 패킷 기록
  • drop : 패킷 차단 및 로그 기록(IPS 기능으로 사용되며 인라인 구조일때 가능)
  • reject : 패킷 차단 및 로그 기록(TCP - RST 응답, UDP - ICMP Unreachable 응답
  • sdrop : 패킷 차단 및 로그 기록 x

 

1.2. Protocol: 탐지 할 프로토콜 종류

  • TCP : TCP 탐지
  • UDP : UDP 탐지
  • ICMP : ICMP 탐지, ping test 시
  • IP: IP 탐지

 

1.3. IP

  • any : 모든 ip(악성코드가 IP를 수시로 변경하기에 any를 주로 사용)
  • xxx.xxx.xxx.xxx: xxx.xxx.xxx.xxx 이라는 ip 가리킴
  • !192.168.0.1 : 192.168.0.1를 제외한 모든 ip
  • [192.168.0.1, 192.168.0.2] : ip 리스트, 대괄호로 표시

 

1.4. PORT

  • any : 모든 포트(악성코드가 PORT를 수시로 변경하기에 any를 주로 사용)
  • 포트번호 : 특정 포트
  • 포트번호:포트번호 : 포트번호 ~ 포트번호
  • :포트번호 : 포트번호 이하 모든 포트
  • 포트번호: : 포트번호 이상 모든 포트
  • !포트번호: 포트번호 제외한 모든 포트

 

1.5. Direction

  • 출발지 -> 목적지
  • <> : 출발지 목적지 사이 모든 패킷 탐지(2배이상 탐지 > 장비 부하

 

Snort Rule(Option)

 

  • 정의 및 구분
    • 패킷 탐지 사용자 설정
    • 세미콜론(;)을 이용하여 옵션과 옵션을 구분

 

  • 일반옵션 설정
    • msg : alert 발생 시 이벤트 명
    • sid : 스노트 룰 ID
      • 99이하 : 시스템 예약 ID
      • 100 ~ 1000000 이하 : snort 자체지정 sid
      • 1000001 이상 : 사용자 정의 sid
    • reference: 룰과 관련된 외부 취약점 정보
    • classtype: 공격유형과 기본 우선순위 정의
    • priority: 우선 순위 (값이 작을수록 먼저 매칭) 범위 : 1~10)
    • rev : 룰 수정횟수 수정 시 숫자가 증가

 

  • 예시
    1. 스노트 룰에 매치되는 테스트 문자열: 0 1 2 3 4 5 6 7 8 9 A B C D E F
    2. alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg: "[TEST26] within"; content:"234"; offset:2; depth:3; content:"BCD"; distance:6; within:3; nocase; sid:1000026;)

 

--> 이전 content 패턴(234)이 매치된 이후 바이트부터 6바이트 떨어진 위치에서 3바이트 범위 내에 BCD 문자열 패턴이 있는지 검사

 

 

    • Snort Rule Option 설정 : Event Threshold(이벤트 제한) 관련 옵션
      • 정의: 특정 시간동안 발생되는 이벤트 수를 제한하기 위한 옵션
      • 형식 : threshold type <limit|threshold|both>, track <by_src|by_dst>, count <c>, seconds <s>
      • 종류
        • limit: 매 s초동안 c번째 이벤트"까지" 액션 수행
          • threshold type limit, track by_src, count 2, seconds 10
          • 출발지 IP 기준으로 매 10초 동안 2번째 이벤트까지 액션 수행
        • threshold: 매 s초동안 c번째 이벤트"마다" action 수행
          • threshold type threshold, track by_src, count 2, seconds 10
          • 출발지 IP 기준으로 매 10초 동안 2번째 이벤트마다 액션 수행
        • both: s초동안 c번째 이벤트 "발생 시 1번" action 수행
          • threshold type both, track by_src, count 10, seconds 1
          • 출발지 IP 기준으로 매 1초 동안 10번째 이벤트 시 한번 액션 수행(즉 1초동안 10번 이상 이벤트 발생하면 액션을 한번 수행)

 

'보안관제' 카테고리의 다른 글

악성코드 샘플 분석 3  (0) 2024.01.21
Snort 환경 구축  (2) 2024.01.14
악성 코드 샘플 분석 2  (0) 2023.11.04
악성코드 샘플 분석 1  (0) 2023.10.15
정적, 동적 Tool 실습  (0) 2023.09.18