IDS Rule 작성 방법

2024. 11. 13. 22:45·기반 지식/인프라

1. Snort

- Snort는 유연하고 매우 강력한 단순하고 가벼운 설명 언어 사용

- Snort 규칙을 개발할 떄 기억해야 할 간단한 지침이 상당히 많음

- Snort는 규첵 헤더와 규칙 옵션 섹션이라는 두 개의 논리적 섹션으로 나뉨

섹션 설명
규칙 헤더 규칙의 작업, 프로토콜, 소스 및 대상 IP 주소와 넷마스크, 소스 및 대상 포트 정보 포함
규칙 옵션 규칙 작업을 수행해야 하는지 결정하기 위해 패킷의 어느 부분을 검사해야 하는지에 대한 정보와 경고 메시지가 포함되어 있음

 

(예시) 규칙 헤더 규칙 옵션
alert tcp any any -> 192.168.1.0/24 111 (content: "|00 01 86 a5|"; msg: "mountd access";)

 

 

2. 규칙 헤더

- 가장 첫 번째 항목은 동작에 대한 규칙을 설정함

종류 설명
alert 선택한 경고 방법을 사용하여 경고를 생성 한 다음 패킷을 기록
log 패킷 기록
pass 패킷 무시
drop 패킷 차단 및 기록
reject 패킷을 차단하고 기록한 다음 연결할 수 없음 메시지를 보냄
sdrop 패킷을 차단하지만 기록하지 않음

 

- 프로토콜 : TCP, UDP, ICMP, IP 4가지 항목 중에서 사용

 

- 방향 연산자 : 연산자 기호는 -> 이나 <>를 사용하며, <- 기호는 존재하지 않음

 

- ip 주소 (IP 주소 대신 변수에 저장된 데이터 사용 가능 ex] $HOM_NET)

    * any : 모든 주소를 정의

    * CIDR : 블록 마스크를 적용(예 : 192.168.1.0/24)

    * !를 사용해 반적을 표현하거나 대괄호를 사용해 리스트를 지정하는 것도 가능함

(예시) alert ctp !192.168.1.0/24 any -> 192.168.1.0/24 111 (content: "|00 01 86 a5|"; msg: "mountd access";)

(예시) alert ctp ![192.168.1.0/24,10.1.1.0/24] any -> [192.168.1.0/24,10.0.0.1/24] 111 (content: "|00 01 86 a5|"; msg: "mountd access";)

 

- 포트번호 

    * any : 모든 포트 

    * 8080 : 8080 포트

    * http : 80 정적 포트

    * 1:8080 : 1~8080 포트

    * :500 : 1~500포트

 

3. 규칙 옵션

- Snort의 침입 탐지 엔진의 핵심

- 사용 편의성과 성능 및 유연성 제공

- 모든 Snort 규칙 옵션은 세미콜론(;) 문자를 사용하여 서로 구분(띄어쓰기 민감)

- 규칙 옵션 키워드는 콜론(:) 문자로 인수와 구분

- 규칙 옵션의 네 가지 주요 버무

    * general : 규칙에 대한 정보를 제공하짐나 탐지 중에는 영향을 주지 않음

    * payload : 모두 패킷 페이로드 내부의 데이터를 확인하고 상호 관련된 규칙

    * non-payload : 페이로드 관련 없는 데이터(해시, 길이, 위치 등)를 확인

    * post-detection : 규칙이 탐지되면 실행되는 기능

 

- 일반 규칙 옵션

    * 규칙에 대한 정보를 제공하지만 탐지 중에는 영향을 주지 않음

    * 일반 규칙 옵션의 키워드 구성요소와 설명

키워드 설명
msg 로깅 및 경고 엔진에 패킷 덤프 또는 경고와 함께 출력할 메시지
reference 규칙에 외부 공격 식별 시스템에 대한 유용한 참조를 입력

sid Snort 규칙을 고유하게 식별
rev Snort 규칙의 개정을 고유하게 식별
classtype 규칙을 분류하여 보다 일반적인 유형의 공격 클래스에 속하는 공격을 탐지
priority 규칙에 심각도 수준 표시
metadata 추가 정보를 키-값 형식으로 저장

 

- 페이로드 규칙 옵션

    * 모두 패킷 페이로드 내부의 데이터를 확인하고 상호 관련된 규칙

    * 페이로드 규칙 옵션의 키워드 구성요소와 설명

키워드 설명
content 패킷 페이로드에서 특정 콘텐츠를 검색하고 이벤트를 트리거하는 기능을 수행
rawbytes 전처리기가 수행한 디코딩을 무시하고 원시 패킷 데이터를 검사
depth Snort가  지정된 패턴을 검색해야 하는 거리를 지정
offset 패킷 내에서 패턴 검색을 시작할 위치를 선정
distance 이전 패턴 일치의 끝을 기준으로 지정된 패턴 검색을 시작하기 전에 Snort가 무시해야 하는 패킷의 거리를 지정
within content 키워드를 사용하여 일치한 패턴과 최대 N 바이트 사이에 검사 수행
uricontent 정규화 된 요청 URI 필드를 검색
isdataat 페이로드에 지정된 위치에 데이터가 있는지 확인
pcre perl 호환 정규식을 사용하여 규칙을 작성
byte_test 특정 값(연산자 포함)에 대해 바이트 필드를 테스트
byte_jump 규칙이 데이터 일부의 길이를 익은 다음 패킷에서 해당 길이를 건너뜀
ftpbounce FTP 바운스 공격을 탐지
asn1 패킷 또는 패킷의 일부를 디코딩하고 다양한 악성 인코딩을 찾음
cvs 유효하지 않은 항목 문자열을 감지

 

순번 옵션 매칭 문자열
1 content:"01234";offset:0; 0123456789abcdef
2 content:"01234";offset:1; depth:5; 0123456789abcdef
3 content:"123"; content:"abc"; distance:5; 0123456789abcdef
4 content:"123"; content: "678"; within:5; 0123456789abcdef

 

- 논 페이로드 검색 옵션

- 포스트-디텍션 규칙 옵션

 

'기반 지식 > 인프라' 카테고리의 다른 글

VLAN이란?  (0) 2024.11.15
Web Application Firewall란? (modsecurity)  (1) 2024.11.14
Sguil이란?  (0) 2024.11.12
securityonion이란?  (0) 2024.11.11
Suricata란?  (0) 2024.11.10
'기반 지식/인프라' 카테고리의 다른 글
  • VLAN이란?
  • Web Application Firewall란? (modsecurity)
  • Sguil이란?
  • securityonion이란?
real-again
real-again
realagin 님의 블로그 입니다.
  • real-again
    또또, 다시
    real-again
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 프로젝트
        • AOS 모바일 앱 모의해킹
        • Spring Boot 웹 애플리케이션 구축
        • [ESXi]인프라 구축 및 모니터링
        • 인프라 취약점 진단 고도화
      • CVE 분석
      • 기반 지식
        • AWS
        • 인프라
        • 웹 어플리케이션
        • Android
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    브로트캐스트
    vlan
    insecure authentication/authorization
    spring boot
    EC2
    dvm
    AWS
    android directory
    owasp mobile top10
    tocken
    하드코드
    sd스토리지
    Snort
    aos정리
    통신 과정 취약점 진단
    pfsense
    splunk #esm
    콘텐츠 프로바이더
    app intsructure
    diva
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
real-again
IDS Rule 작성 방법
상단으로

티스토리툴바