안녕하세요 !
클라우드기반 시스템 운영/구축 실무 네 번째 정리를 시작하겠습니다.
* SNORT 룰
1. 룰
- 헤더 : 트래픽 발생 주체 및 방향 정의
- 옵션 : 트래픽 세부 특징 정의
2. 패킷 헤데 검사 룰 옵션
- 패킷 헤더의 물리적 특성을 이용한 검사 옵션 및 설명
- flow : 트래픽 방향 선택 (SYN 플래그 기준)
- flowbit : 세션 추적
- flags : TCP flag bit 검사
- dsize : 페이로드 사이즈 검사
3. 권고사항
- Payload 검사 옵션보다 선행할 때 성능 향상에 유리하다.
- alert tcp any any -> any any (패킷 헤더 검사, payload 검사)
4. 패킷 헤더 검사 룰 옵션 및 설명
flow ( 트래픽 방향 구분 )
방향 구분 기준 : TCP SYN 플래그
to_server -> to_SYN 플래그 수신자 from_client 와 동일하다.
to_client -> to_SYN 플래그 송신자 from_server 와 동일하다.
established -> 세션 수립 후
not_established -> 세션 수립 전
flow : to_server; content: " aaa " ;
- TCP SYN 플래그를 수신한 서버로 향하는 트래픽만 검사한다.
- flow 의 단점 : Client <-> Server 구분이 명확한 네트워크에서만 사용 가능하다.
예시
alert tcp any any -> any any (flow: to_server;)
- flowbit ( 세션 추적 )
▪ alert tcp any any -> any any (msg: "flowbits-set"; content : " securecrt.html"; flowbits:set,test; flowbits:noalert; sid:1000001; rev:1;)
▪ alert tcp any any -> any any (msg:”flowbits-test”; flowbits:isset,test; content:”VanDyke”; sid:1000002; rev:1;)
* 롤 옵션
▪ threshold(패킷 발생량 측정) ▪ alert icmp any any -> any any (msg:“threshold-test"; itype:8; threshold:type threshold, track by_dst, count 2, seconds 3; sid:1000005; rev:1;)
▪ ‘track by_dst, count 2, seconds 3;’조건에서 10초간 패킷 10개 발생 시
* Payload 검사 룰 옵션
nocase -> 대소문자 구분 해제
-----절대 위치 -----
offset -> 검사 시작 위치
depth -> 검사 범위
------- 상대 위치 ------
distance -> 검사 시작 위치
within -> 검사 범위
------------
fast_pattern -> Aho-Corasick 패턴 매칭 우선 순위 조정한다.
대소문자를 구분하는 상태로 수정자 insenstive 를 클릭합니다.
앵커문자 (^,$) 줄 구분 해제 수정자 (m) 사용한다.
s ( 싱글라인 ) 수정자를 이용하지 않고 새 줄 (\n) 로 검사를 이어가는 방법이다.
- 메타 문자
최대 수량 검사가 기본이지만, 검사 범위를 최소로 제한할 수 있습니다.
*? 최소 0개
+? 최소 1개
?? 최소 0개
{n,} ? 최소 n개
{m,n}? 최소 m개
최대 수량 검사가 기본이지만, 검사 범위를 최소로 제한할 수 있습니다.
최대 수량 검사는 전체 검사 후 하나씩 후퇴한다.
최대 수량 검사나 최소 수량 검사는 하나씩 검사한다.
메소드 영역만 검사하려면 그냥 대소문자 할 거 없이 get 을 입력한다.
메소드를 포함한 URI 영역만 검사하려면 ^get.+ 을 입력한다.
Referer 영역만 검사하려면? URL만 검사하려면? \s.+ 을 입력한다.
‘http://’로 시작, ‘com’으로 끝나는 URL을 검사하려면 \/\/.+com 을 입력합니다.
User-Agent 영역만 검사하려면 \s.+ 입력합니다.
IP 주소를 검사하려면? [0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-5][0-5] 을 입력합니다.
IP 주소를 검사하려면? ((1[0-9][0-9]|2[0-5][0-5]|[1-9][0-9]|[0-9])\.){3}(1[0-9][0-9]|2[0-5][0-5]|[1-9][0-9]|[0-9]) 을 입력합니다.
추가로 \b 를 입력하면 마지막 호스트 주소에는 포함이 되지 않는 것을 볼 수 있습니다.
끝
'클라우드 기반 시스템 운영 및 구축 실무' 카테고리의 다른 글
클라우드 기반 시스템 운영 / 구축 실무 [ 두 번째 정리 ] (1) | 2024.05.31 |
---|---|
클라우드 기반 시스템 운영/구축 실무 [첫 번째 정리] (0) | 2024.05.31 |