-
[Snort] Rule 명령어Coding/개발 2020. 6. 5. 05:29
오늘은 snort rule에 관한 명령어를 정리해 볼려고 한다!
나중에 rule을 만들때 참고하면 좋을꺼 같다^^
< Rule 구조 >
# Action
명령어 의미 alert 로그 기록 & 경고 알림 log 로그 기록 pass 패킷 무시 drop 패킷 차단 & 로그 기록 (IPS기능) reject 패킷 차단 & 로그 기록 sdrop 패킷 차단 (로그 기록 X) # Protocol
명령어 의미 tcp TCP만 탐지 udp UDP만 탐지 ip IP 전체 탐지 icmp ICMP 메시지 탐지 any 전체 탐지 # SrcIP/DstIP
명령어 의미 $HOME_NET 내부 IP 주소 $EXITERNAL_NET 외부 IP 주소 $XXX_SERVERS 특정 서버 IP 주소 # SrcPort/DstPort
명령어 의미 80 80번 포트 !80 80번 포트를 제외한 나머지 포트 1:500 1~500번 포트 any 모든 포트 # -> 방향
방향 의미 -> 요청패킷 탐지 <- 응답패킷 탐지 <> 요청/응답 둘다 탐지 # Option
명령어 의미 사용 예시 msg 경고 이벤트 메세지 mag:"access"; content 문자/숫자 탐지 content:"Host: "; sid rule을 식별
(구별하기 위한 방법으로 사용
100미만은 예약이 되어있음)sid:10001; rev rule 버전
(원본 규칙이 수정됐을 경우 +1)rev:1; flow 흐름 옵션 flow:established,to_server; # flow: +
명령어 의미 to_server (=from_client) 클라이언트 -> 서버 패킷일때 활성화 to_client (=from_server) 서버 -> 클라이언트 패킷일때 활성화 established 세션에 연결된 패킷 매칭 ↓ 내가 필요한 것만 정리를 해보았고 다양한 명령어를 알고 싶다면 (정리 짱짱)
https://net123.tistory.com/579
< 실습 >
http인 패킷 로그 확인 rule
alert tcp any any -> any 80 (msg:"tistory.com access"; content:"GET /"; content:"Host: "; content:"tistory.com"; sid:10001; rev:1;)
rule header 명령어 의미
: tcp의 모든 ip에서 80번 포트를 사용하는 패킷 (80=http)
option 명령어 의미
: "GET", "Host: ", "tistory.com" 문자열을 탐지하면 "tistory.com access" 메시지 출력 / sid=10001, rule 버전 1(1번 수정)
https인 패킷 로그 확인 rule
alert tcp any any -> any 443 (msg:"naver.com access"; flow:to_server, established; content:"naver.com"; sid:10002; rev:1;)
rule header 명령어 의미
: tcp의 모든 ip에서 443포트를 사용하는 패킷 (443=https)
Option 명령어 의미
: 패킷 흐름이 서버로 가는 패킷이고(Clinet Hello[tls패킷]), 그 세션에 연결된 패킷이며 "naver.com" 문자열을 탐지하면 "naver.com access" 메시지 출력 / sid=10002, rule 버전 1(1번 수정)
< 실행 모습 >
suricata 실행 : suricata -s test.rules -i eth0
log파일 실행 : tail -f fast파일 경로/fats.log
[http] tistory.com 로그 확인
[https] naver.com 로그 확인
rule을 만들어봤는데 http로 분명 로그가 잡혔는데 다시 하면 https로 해야 잡힌다.
정말 알다가도 모르겠어..
왜그러는거야ㅠㅠ
'Coding > 개발' 카테고리의 다른 글
[C언어] ARP 패킷 스니핑 프로그램 (0) 2020.03.09