1. Snort 정의
1998년 "마틴 로시"에 의해 처음 개발됐다.
Snort라는 단어는 "Sniffer and More"에서 유래된 이름이다.
IP 네트워크에서 실시간 트래픽 분석과 패킷 로깅 작업을 수행하여
다양한 공격과 스캔을 탐지하는 방법
2. 주요 기능
- 패킷 스니퍼(sniffer): 네트워크 상의 패킷을 스니핑 하여 보여주는 기능
- 패킷 로거(logger): 패킷을 저장하고 로그에 기록
- 네트워크 IDS/IPS: 네트워크 트래픽 분석하여 공격을 탐지 및 차단
3. Snort Rule 설정 방법
- 룰 헤더(header)와 룰 바디(body)로 구성되어 있다.
- 헤더 부분은 처리방식, 프로토콜 등 처리할 패킷을 판단하는 기준이 명시되어 있고 바디 부분은 패킷을 탐지하는 규칙을 명시한다.
룰헤더 | 룰옵션 | |||
Action | Protocol | 소스 IP 소스 Port -> 목적지 IP 목적지 Port |
msg | Content |
alert | tcp | any any ->(<>) 192.168.1.0/24 111 |
msg:”attack access” | content:”hacker” |
1) 룰 헤더(Header)
Action | 설명 |
alert | 선택한 alert 방식을 이용해서 alert를 발생시키고 패킷 로그를 남긴다. |
log | 패킷을 로그에 남긴다. |
pass | 패킷을 무시한다. |
drop | 패킷을 차단하고 로그에 남긴다. |
2) 룰 바디(Body): 기본 설정
옵션 | 설명 |
msg | msg 옵션에 기록된 내용이 alert 발생 시 이벤트 이름으로 사용한다. |
sid | snort rule id 정보 99 이하는 시스템에 예약된 sid 100-1000000 이하는 snort에서 사용하는 sid |
classtype | rule에 대한 이벤트 유형 정보 |
rev | rule 버전 정보로 수정(revision) 횟수를 표기한다. 1씩 증가 |
예시) alert tcp any any -> 11.11.11.11 80 (\sid:1000004; content:"POST"; msg:"POST detected";)
= 웹 서버의 POST 메서드 탐지하기
2-1) 룰 바디(Body): 페이로드/범위 관련 옵션
Action | 설명 |
content | 페이로드에서 검사할 문자열 지정 text 형식: 문자열 검사 binary 형식: 파이프 기호 사이에 헥사값 표현 |
offset | 페이로드에서 content 패턴을 검사할 시작위치 |
depth | offset부터 몇 바이트까지 검사할 것인지 지정 |
distance | 이전 content 패턴에 매치된 경우, 매치된 이후 바이트부터 몇 바이트 떨어진 위치에서 다음 content를 검사할 것인지 지정 |
within | distance부터 몇 바이트 범위 내에서 다음 content를 검사할 것인지 지정 |
nocase | 대/소문자 구분하지 않음 |
예시) alert tcp any any -> 20.20.75.20 80 (\sid:1000013; msg:"Hello Message";\content:"hello"; nocase;)
= 대/소문자를 무시하고 문자열을 찾는다.
'Security > Network' 카테고리의 다른 글
[Attack] 네트워크 기반 공격 – 분산 서비스 거부 공격(DDoS) (430) | 2021.10.26 |
---|---|
[Attack] 네트워크 기반 공격 - 서비스 거부 공격(DoS) (319) | 2021.10.26 |
[Network] 방화벽(Fireware)에 대해서 (0) | 2020.09.18 |
[Network] 네트워크 FTP Active Mode, Passive Mode 정의 및 차이점 (0) | 2020.09.14 |
[Network] File Signature(파일 시그니처) (0) | 2020.09.14 |