꼬물이

snort 사용법 본문

정보보안/네트워크 보안

snort 사용법

빨간고양이 2018. 10. 31. 16:15

* 형식 

  룰헤더 + 룰바디


* 룰헤더

action

protocol

ip

port

direction

ip

port

① action : alert, log, pass, activate, dynamic, drop, reject, sdrop

② protocol : tcp, udp, ip, icmp

③, ip : 단일IP, IP 대역(cidr 표기), IP 리스트([x.x.x.x, y.y.y.y], !연산지원, any(전체)

④,port : 단일포트, 포트범위(x:y 또는 :y 또는 x:), 포트리스트[x,y] 

⑤ direction : ->, <-, <>


* 룰바디

  (1)일반옵션 

      msg, reference, sid, classtype, priority, rev

  (2) 페이로드/범위관련 옵션

      content, uricontent, offset, depth, distance, within, nocase

  (3) 페이로드/정규표현식관련 옵션

      \, ^, $, ., [ ], [^], |, *, +, ?, {x}, {x,}, {x,y}

  (4) 페이로드/HTTP관련 옵션

      http_method, http_uri, http_header, http_cookie, http_client_body, http_stat_code, http_stat_msg

  (5) 페이로드/Event Threshold 관련 옵션

      threshold: type <limit|threshold|both>, track <by_src|by_dst>, count <c>, seconds <s>;


* 예시

 케이스

 설정 예

root 로그인 시도/성공 탐지

# FTP root 로그인 시도 탐지

alert tcp any any -> 10.10.10.0/24 21 (msg: "FTP root user access"; content: "USER root"; nocase; sid: 100100;) 

# Telnet root 로그인 성공 탐지

alert tcp 10.10.10.0/24 23 -> any any (msg: "Telnet root login sucess"; content "login"; pcre: "/root@.*#/"; nocase; sid: 100110;) 

온라인 패스워드 크래킹 공격 탐지

# Telnet

alert tcp 10.10.10.0/24 23 -> any any (msg: "Telnet login brute force attack"; content "Login incorrect"; nocase; threshold:type limit, track by_dst, count 1, seconds 5; sid: 100120;)

# FTP 

alert tcp 10.10.10.0/24 21 -> any any (msg: "FTP login brute force attack"; content "Login incorrect"; nocase; threshold:type threshold, track by_dst, count 5, seconds 30; sid: 100130;)

# SSH

alert tcp any any -> 10.10.10.0/24 22 (msg: "SSH login brute force attack_Binary"; content "|53 53 48 2d 32 2e 30|"; nocase; threshold:type both, track by_src, count 5, seconds 30; sid: 100140;)

또는

alert tcp any any -> 10.10.10.0/24 22 (msg: "SSH login brute force attack_Text"; content "SSH-2.0"; nocase; threshold:type both, track by_src, count 5, seconds 30; sid: 100150;)

플러딩 계열 공격 탐지

HTTP GET 플러딩 공격 탐지

alert tcp any any -> 10.10.10.0/24 80 (msg: "HTTP Get Flooding attack"; content: "GET / HTTP/1."; depth: 13; nocase; threshold:type threshold, track by_src, count 100, seconds 1; sid:100160;)

TCP SYN 플러딩 공격 탐지

alert tcp any any -> 10.10.10.0/24 80 (msg: "TCP SYN Flooding attack"; flags: S; threshold:type threshold, track by_src, count 5, seconds 1; sid:100170;)

UDP/ ICMP 플러딩 공격 탐지

alert udp any any -> $HOME_NET any (msg: "UDP Flooding attack"; threshold:type threshold, track by_src, count 5, seconds 1; sid:100180;)

alert icmp any any -> $HOME_NET any (msg: "ICMP Flooding attack"; threshold:type threshold, track by_src, count 5, seconds 1; sid:100190;)

비정상 IP 패킷 탐지

인터넷 구간의 사설 IP

alert udp 10.0.0.0/8 any -> $HOME_NET any (msg: "Private IP(10.) Detect"; sid:100200;)

alert udp 172.16.0.0/12 any -> $HOME_NET any (msg: "Private IP(172.) Detect"; sid:100210;)

alert udp 192.168.0.0/16 any -> $HOME_NET any (msg: "Private IP(192.) Detect"; sid:100220;)

출발지와 목적지가 동일한 IP

alert ip any any -> $HOME_NET any (msg: "Land Attack Detect"; sameip; sid:100230;)

비정상 TCP 패킷

SYN FIN

alert tcp any any -> 10.10.10.0/24 any (msg: "SYN_FIN Scan Detect"; flags:SF; sid:100240;)

SYN FIN

변형

alert tcp any any -> 10.10.10.0/24 any (msg: "SYN_FIN+ Scan Detect"; flags:SF+; sid:100250;)

FIN스캔

alert tcp any any -> 10.10.10.0/24 any (msg: "FIN Scan Detect"; flags:F; sid:100260;)

NULL스캔

alert tcp any any -> 10.10.10.0/24 any (msg: "NULL Scan Detect"; flags:!UAPRSF; sid:100260;)


'정보보안 > 네트워크 보안' 카테고리의 다른 글

snort 사용법  (0) 2018.10.31
iptables 명령어 사용법  (0) 2018.10.31
라우터를 통한 네트워크 보안(ACL)  (0) 2018.10.31
SIEM(Security Information & Event Management)  (0) 2018.06.28
Tag
, ,
0 Comments
댓글쓰기 폼