Snort / 메모

Snort

  • Snort는 오픈 소스 침입 차단 시스템(IPS, Intrusion Prevention System)이다.
  • 홈페이지 : https://www.snort.org/
  • 주요 기능 : packet sniffer, packet logger, network intrusion prevention system

Snort can be deployed inline to stop these packets, as well. Snort has three primary uses: As a packet sniffer like tcpdump, as a packet logger — which is useful for network traffic debugging, or it can be used as a full-blown network intrusion prevention system. Snort can be downloaded and configured for personal and business use alike.

Snort Rule

구조

Action / Protocol / Source IP / Source Port / Direction / Destination IP / Destination Port / Option

Action

  • alert : 경고 생성 / 로그 기록
  • log : 로그 기록
  • pass : 무시
  • drop : 차단 / 로그 기록
  • reject : 차단 / 로그 기록 / TCP라면 TCP 리셋 전송, UDP ICMP port unreachable message 전송

Protocol

  • tcp
  • udp
  • icmp
  • ip

IP

  • 192.168.0.10/32
  • 192.168.0.0/24
  • [192.168.0.10/32, 192.168.0.11/32]
  • !192.168.0.10/32
  • any

Port

  • 80
  • !80
  • 1:200
  • !1:200
  • any

Direction

  • -> : 요청 패킷 탐지
  • <> : 요청, 응답 패킷 둘 다 탐지

Option

  • General
  • Payload Detection
  • Non-Payload Detection
  • Post-Detection

Option

General

  • msg
    The msg keyword tells the logging and alerting engine the message to print with the packet dump or alert.
  • reference
    The reference keyword allows rules to include references to external attack identification systems.
  • gid
    The gid keyword (generator id) is used to identify what part of Snort generates the event when a particular rule fires.
  • sid
    규칙 식별자
  • rev
    규칙 리비전
  • classtype
    규칙 분류
  • priority
    우선 순위
  • metadata
    The metadata keyword allows a rule writer to embed additional information about the rule, typically in a key-value format.

Payload Detection

  • content
    검색할 문자열
    alert tcp any any -> any 139 (content:"|5c 00|P|00|I|00|P|00|E|00 5c|";)

  • protected_content

  • hash

  • length

  • nocase
    대소문자를 무시한다.
    alert tcp any any -> any 21 (msg:"FTP ROOT"; content:"USER root"; nocase;)

  • rawbytes
    가공 전의 패킷 데이터에서 규칙을 매칭할 때 사용
    alert tcp any any -> any 21 (msg:"Telnet NOP"; content:"|FF F1|"; rawbytes;)

  • depth
    지정 바이트까지 탐지

  • offset
    지정 바이트 건너뛰고 탐지
    alert tcp any any -> any 80 (content:"cgi-bin/phf"; offset:4; depth:20;)

  • distance
    이전 content 패턴에 매치된 경우, 매치된 이후 바이트부터 몇 바이트 떨어진 위치에서 다음 content를 검사할 것인지 지정
    alert tcp any any -> any any (content:"ABC"; content:"DEF"; distance:1;)

  • within
    이전 content 패턴에 매치된 경우, distance부터 몇 바이트 범위 내에서 다음 content를 검사할 것인지를 지정
    alert tcp any any -> any any (content:"ABC"; content:"EFG"; within:10;)

  • http_client_body

  • http_cookie

  • http_raw_cookie

  • http_header

  • http_raw_header

  • http_method

  • http_uri

  • http_raw_uri

  • http_stat_code

  • http_stat_msg

  • http_encode

  • fast_pattern

  • uricontent

  • urilen

  • isdataat
    alert tcp any any -> any 111 (content:"PASS"; isdataat:50,relative; content:!"|0a|"; within:50;)

  • pcre

  • pkt_data

  • file_data

  • base64_decode

  • base64_data

  • byte_test

  • byte_jump

  • byte_extract

  • byte_math

  • ftpbounce

  • asn1

  • cvs

  • dce_iface

  • dce_opnum

  • dce_stub_data

  • sip_method

  • sip_stat_code

  • sip_header

  • sip_body

  • gtp_type

  • gtp_info

  • gtp_version

  • ssl_version

  • ssl_state

Non-Payload Detection

  • fragoffset
  • ttl
  • tos
  • id
  • ipopts
  • fragbits
  • dsize
  • flags
  • flow
  • flowbits
  • seq
  • ack
  • window
  • itype
  • icode
  • icmp_id
  • icmp_seq
  • rpc
  • ip_proto
  • sameip
  • stream_reassemble
  • stream_size

Post-Detection

  • logto
  • session
  • resp
    alert tcp any any -> any 80 (content:"a"; resp:<resp_t>; sid:1;)
    resp_t : rst_snd, rst_rcv, rst_all, reset_source, reset_dest, reset_both, icmp_net, icmp_host, icmp_port, icmp_all
  • react
  • tag
  • replace
  • detection_filter

예제

content 검출

  • content:"456"
    1234567890abcdef
  • content:456";depth:7
    1234567890abcdef
  • content:"456";offset:2;depth:4
    1234567890abcdef
  • content:"123";content:"789";distance:3
    1234567890abcdef
  • content:"123";content:"789";distance:3;within:5
    1234567890abcdef
  • content:"34";offset:2;depth:5;content:"0ab";distance:3;within:5
    1234567890abcdef

기타

Snort Rule Creator

 

같은 카테고리의 다른 글
MariaDB / 데이터베이스 이름에 하이픈(-) 또는 점(.) 포함하는 방법

MariaDB / 데이터베이스 이름에 하이픈(-) 또는 점(.) 포함하는 방법

MariaDB에 하이픈(-)이나 점(.)을 포함한 이름으로 데이터베이스를 만들면 에러가 납니다. 예를 들어 create database test-test; 라고 하면 다음과 같은 에러 메시지를 출력하면서 데이터베이스를 생성하지 못합니다. ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-test' at ...

서식 / 생활계획표 / 시계 모양

서식 / 생활계획표 / 시계 모양

원을 그리고 24등분 하여 하루를 나타낸 생활계획표이다. LaTeX으로 만들었고, 파일 형식은 PDF이다.. 정확히 24등분 해서 점을 찍었다는 것 외에는 특별할 것 없는 단순한 모양이다. 다운로드 : 생활계획표

상법 / 회사(기업)의 종류와 특징

상법 / 회사(기업)의 종류와 특징

회사 제169조(회사의 의의) "회사"란 상행위나 그 밖의 영리를 목적으로 하여 설립한 법인을 말한다. 제170조(회사의 종류) 회사는 합명회사, 합자회사, 유한책임회사, 주식회사와 유한회사의 5종으로 한다. 합명회사 설립 2명 이상의 무한책임사원으로 구성된다. 무한책임사원은 재산(현금, 현물), 신용, 노무로 출자할 수 있다. 내부관계 정관 또는 상법에 다른 규정이 없으면 조합에 관한 민법의 규정을 준용한다. 지분을 타인에게 양도하기 위해서는 다른 사원의 동의가 필요하다. 정관에 다른 규정이 ...

DNS / DMARC 레코드의 용도와 설정하는 방법

DNS / DMARC 레코드의 용도와 설정하는 방법

DMARC란? DMARC는 Domain-based Message Authentication Reporting and Conformance의 약자이다. DNS 레코드를 이용하여 메일이 해당 도메인에서 정상적으로 발송되었음을 증명하는 방법에는 SPF, DKIM이 있다. SPF와 DKIM 테스트를 통과하지 못한 메일에 대해서 어떻게 처리했으면 하는지를 DMARC 레코드로 수신 메일 서버에 알려준다. DMARC 레코드에 대한 자세한 내용은 RFC 7489 문서에 있다. DMARC 레코드 설정하는 방법 DMARC 레코드는 TXT 레코드로, 호스트는 ...

Apache / 디렉토리 안에 있는 디렉토리 또는 파일 목록 출력하는 방법

Apache / 디렉토리 안에 있는 디렉토리 또는 파일 목록 출력하는 방법

URL이 정확히 입력되지 않은 경우 보통 다음처럼 Forbidden 에러가 납니다. 이 에러 대신 해당 디렉토리에 있는 파일과 하위 디렉토리 목록이 나오게 하고 싶다면, 설정에 다음 코드를 추가합니다. Options +Indexes

첨삭과 재활용 가능한 클릭링(클릭 바인더 링)

첨삭과 재활용 가능한 클릭링(클릭 바인더 링)

제본링은 크게 네가지가 있습니다. 플라스틱 링 크리스탈 링 와이어 링 클릭링 플라스틱 링은 가격이 저렴하고 제본이 간편하고 재사용이 가능하다는 장점이 있습니다. 그런데, 270도 밖에 접히지 않고, 잘 빠집니다. 크리스탈 링은 360도 접히기기는 하지만 손으로 돌려 끼는 것이라 기술이 필요하고 시간이 많이 걸립니다. 와이어 링은 제본이 깔끔하고 튼튼하고 360도 접힌다는 장점이 있지만, 가격이 비싸고 재활용을 할 수 없습니다. 클릭링은 ...

블로커스(Blokus) / 공간지각력 키워주는 보드 게임

블로커스(Blokus) / 공간지각력 키워주는 보드 게임

아이를 키우다보면 보드게임을 많이 하게 되죠. 나가서 노는 것도 한계가 있고, 그렇다고 컴퓨터 게임을 시킬 수도 없고... 상호작용하면서 두뇌 개발도 할 수 있는 여러 보드 게임을 하게 됩니다. 그렇다고 모든 보드 게임이 재미있는 것은 아니기에 간혹 몇번만 하고 구석에 처박하두기도 하는데, 이번에 구입한 블로커스 투 고 (Blokus To Go)는 상당히 만족스럽습니다. 블로커스 투 ...

미디어 인코더 / 동영상을 움직이는 GIF로 만드는 방법

미디어 인코더 / 동영상을 움직이는 GIF로 만드는 방법

동영상을 움직이는 GIF로 만드는 방법은 여러 가지가 있습니다. 그 중 하나는 Adobe Media Encoder를 사용하는 것입니다. Adobe Premiere를 설치하면 같이 설치되는 프로그램이고, Premiere 없이 단독으로 설치할 수도 있습니다. Adobe Media Encoder를 실행하고, 대기열의 + 아이콘을 클릭하여 변환할 동영상을 추가합니다. 출력물을 애니메이션 GIF로 설정하고 변환하면 잠시 후 GIF가 생성됩니다.

Creative Cloud / 파일 동기화 / 중지하는 방법

Creative Cloud / 파일 동기화 / 중지하는 방법

Adobe CC를 설치하면 파일 탐색기에 Creative Cloud Files라는 폴더가 생깁니다. 그리고 클라우드에 있는 파일을 동기화하면서 파일들을 다운로드합니다. 그런데 동기화하는 동안은 PC의 자원을 많이 사용해서 다른 작업을 하는 게 힘듭니다. 그런 경우 동기화를 중지하세요. 그리고 한가한 시간에 다시 동기화를 시작하세요. 동기화를 중지하려면 Creative Cloud Desktop을 엽니다. 그리고 을 클릭합니다. 을 클릭한 후... 을 ...

자전거 체인 오일의 종류 및 장단점

자전거 체인 오일의 종류 및 장단점

요즘 들어 자전거를 많이 탑니다. 좀 외진 곳으로 이사를 왔더니 차 타고 가기에도 애매하고, 걸어가기에도 애매한 곳이 많이 때문이죠. 제가 타는 자전거는 10년 전 쯤에 구입한 알톤 뉴 알로빅스 2.5입니다. 유사 MTB 자전거로 당시 인기가 많은 자전거였습니다. 지금은 판매하는 곳이 없는, 검색도 잘 되지 않는 구형 자전거지만, 타고 다니는 데 문제는 없습니다. 9년 가량은 거의 ...