스노트(Snort)는 무료 오픈소스 네트워크 침입 차단 시스템(NIPS: Network Intrusion Prevention System)이자, 네트워크 침입 탐지 시스템(NIDS: Network Intrusion Detection System)이다.
Snort를 사용하여 패킷의 Payload에서 특정 패턴(content)을 검출해보려 한다.
전송되는 데이터 중 근본 목적이 되는 일부분
(메타데이터와 같은 부가적인 부분 제외)
이때 옵션을 사용할 수 있는데
(옵션은 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