SNORT로 content 검출하기

Wu·2022년 12월 14일
0

Snort

스노트(Snort)는 무료 오픈소스 네트워크 침입 차단 시스템(NIPS: Network Intrusion Prevention System)이자, 네트워크 침입 탐지 시스템(NIDS: Network Intrusion Detection System)이다.



Snort를 사용하여 패킷의 Payload에서 특정 패턴(content)을 검출해보려 한다.


Payload란 ?

전송되는 데이터 중 근본 목적이 되는 일부분
(메타데이터와 같은 부가적인 부분 제외)


Wireshark를 통해 확인한 패킷의 정보

content: Payload에서 검출할 패턴

이때 옵션을 사용할 수 있는데

(옵션은 content 명령어 뒤에 들어가야한다.)
  • offset : 패턴 매칭을 시작할 위치 (0부터 시작)
  • depth : 패턴 매칭을 끝낼 위치 (offset 0 -> depth 1 ~ N)
  • distance : 이전 content 검색이 된 지점에서부터 다음 content 검색을 시작할 위치 지정
  • within : 다음 content 검색을 할 마지막 위치를 지정

만약 패킷에서 HTTP라는 패턴을 검출하고 싶고, 검출 범위를 HTTP 문자열로만 지정하고 싶다면

content:"HTTP"; offset:6; depth:4;

(HTTP 문자열이 Payload 시작점으로부터 7byte부터 시작되기 때문에 offset:6)
(HTTP 문자열이 4byte이기에 depth:4)


snort를 통해 rule을 설정해본다면

alert tcp any any -> 192.168.0.110 80 (msg:"HTTP_Detect_Test"; content:"HTTP"; offset:6; depth:4; sid:10000001;)

이후, 테스트용으로 웹서버를 만들어 client로서 접속한 후 패킷을 보았을때

검출된 내용

Event Message가 잘 띄워진 것을 볼 수 있다.



payload 설명 참조: https://fliedcat.tistory.com/55

0개의 댓글