Snort
2023. 11. 18. 21:01ㆍ보안관제
목차
- 개요
- 주요기능
- Snort Rule(개요)
- Snort Rule(Header)
- Snort Rule(Option)
개요
- 네트워크 침입 탐지 시스템(NIDS: Network Intrusion Detection System)
- 네트워크 침입 차단 시스템(NIPS: Network Intrusion Prevention System
- 마틴 로시가 1998년에 개발
* IDS 종류
- NIDS: 해당 네트워크 망 내에서 트래픽을 분석하여 공격을 탐지하는 기능을 제공.
- HIDS: 호스트를 기반으로 한 IDS
- DIDS: 여러 원격지 센서가 중앙 관리 스테이션에게 정보를 보내는 형태
주요기능
- 패킷 스니퍼(Packet Sniffer) : 네트워크 상의 패킷 스니핑
- 패킷 로거(Packet Logger) : 모니터링한 패킷을 저장하고 로그에 남기는 기능
- 네트워크 침입탐지(IDS) : 네트워크 트래픽 분석 후 침입탐지
- 네트워크 침입탐지(IPS) : 네트워크 트래픽 분석 후 침입차단
Snort Rule(개요)
1) 정의
- 공격자의 공격을 탐지하기 위한 등록된 규칙(패턴)
- 수신된 패킷을 Rule과 비교 후, 탐지 여부 결정
- Rule은 Rule Header와 Rule Option으로 구성
- Rule Header: Action, Protocol , IP주소 , 포트, 방향
- Rule Option: 탐지할 조건
2) 구조
- Sniffer
- Preprocessor
- Detection Engine
- Alert/Logging
2)-1. Sniffer
- Promiscuous Mode(무차별 모드)를 통해 목적지 MAC이 본인 MAC 주소가 아니어도 다 받음.
2)-2. Preprocessing
- 입력되는 패킷에 대해서 특정 행위가 탐지될 경우 탐색 엔진으로 전송
- 프로토콜의 종류별로 검사 여부를 결정
2)-3. Detection Engine
- 등록된 Rule과 동일한지 여부를 확인
2)-4. Alert & Logging
- 탐지된 정보에 대한 로그 파일을 SNMP 프로토콜 등을 통해 전송(Alert)
- 로그파일 기록 및 등록된 데이터베이스에 적재(Logging)
Snort Rule(Header)
1.1. Action: 탐지 후 행동들
- alert : 경고 발생 및 로그 기록
- log : 로그 기록
- pass : 패킷 무시
- active : alert 발생 및 대응하는 dynamic 유효화
- dynamic : active에 의해 유효화된 경우 한쪽의 패킷 기록
- drop : 패킷 차단 및 로그 기록(IPS 기능으로 사용되며 인라인 구조일때 가능)
- reject : 패킷 차단 및 로그 기록(TCP - RST 응답, UDP - ICMP Unreachable 응답
- sdrop : 패킷 차단 및 로그 기록 x
1.2. Protocol: 탐지 할 프로토콜 종류
- TCP : TCP 탐지
- UDP : UDP 탐지
- ICMP : ICMP 탐지, ping test 시
- IP: IP 탐지
1.3. IP
- any : 모든 ip(악성코드가 IP를 수시로 변경하기에 any를 주로 사용)
- xxx.xxx.xxx.xxx: xxx.xxx.xxx.xxx 이라는 ip 가리킴
- !192.168.0.1 : 192.168.0.1를 제외한 모든 ip
- [192.168.0.1, 192.168.0.2] : ip 리스트, 대괄호로 표시함
1.4. PORT
- any : 모든 포트(악성코드가 PORT를 수시로 변경하기에 any를 주로 사용)
- 포트번호 : 특정 포트
- 포트번호:포트번호 : 포트번호 ~ 포트번호
- :포트번호 : 포트번호 이하 모든 포트
- 포트번호: : 포트번호 이상 모든 포트
- !포트번호: 포트번호 제외한 모든 포트
1.5. Direction
- 출발지 -> 목적지
- <> : 출발지 목적지 사이 모든 패킷 탐지(2배이상 탐지 > 장비 부하
Snort Rule(Option)
- 정의 및 구분
- 패킷 탐지 사용자 설정
- 세미콜론(;)을 이용하여 옵션과 옵션을 구분
- 일반옵션 설정
- msg : alert 발생 시 이벤트 명
- sid : 스노트 룰 ID
- 99이하 : 시스템 예약 ID
- 100 ~ 1000000 이하 : snort 자체지정 sid
- 1000001 이상 : 사용자 정의 sid
- reference: 룰과 관련된 외부 취약점 정보
- classtype: 공격유형과 기본 우선순위 정의
- priority: 우선 순위 (값이 작을수록 먼저 매칭) 범위 : 1~10)
- rev : 룰 수정횟수 수정 시 숫자가 증가
- 예시
- 스노트 룰에 매치되는 테스트 문자열: 0 1 2 3 4 5 6 7 8 9 A B C D E F
- alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg: "[TEST26] within"; content:"234"; offset:2; depth:3; content:"BCD"; distance:6; within:3; nocase; sid:1000026;)
--> 이전 content 패턴(234)이 매치된 이후 바이트부터 6바이트 떨어진 위치에서 3바이트 범위 내에 BCD 문자열 패턴이 있는지 검사
- Snort Rule Option 설정 : Event Threshold(이벤트 제한) 관련 옵션
- 정의: 특정 시간동안 발생되는 이벤트 수를 제한하기 위한 옵션
- 형식 : threshold type <limit|threshold|both>, track <by_src|by_dst>, count <c>, seconds <s>
- 종류
- limit: 매 s초동안 c번째 이벤트"까지" 액션 수행
- threshold type limit, track by_src, count 2, seconds 10
- 출발지 IP 기준으로 매 10초 동안 2번째 이벤트까지 액션 수행
- threshold: 매 s초동안 c번째 이벤트"마다" action 수행
- threshold type threshold, track by_src, count 2, seconds 10
- 출발지 IP 기준으로 매 10초 동안 2번째 이벤트마다 액션 수행
- both: s초동안 c번째 이벤트 "발생 시 1번" action 수행
- threshold type both, track by_src, count 10, seconds 1
- 출발지 IP 기준으로 매 1초 동안 10번째 이벤트 시 한번 액션 수행(즉 1초동안 10번 이상 이벤트 발생하면 액션을 한번 수행)
- limit: 매 s초동안 c번째 이벤트"까지" 액션 수행
'보안관제' 카테고리의 다른 글
악성코드 샘플 분석 3 (0) | 2024.01.21 |
---|---|
Snort 환경 구축 (2) | 2024.01.14 |
악성 코드 샘플 분석 2 (0) | 2023.11.04 |
악성코드 샘플 분석 1 (0) | 2023.10.15 |
정적, 동적 Tool 실습 (0) | 2023.09.18 |