네트워크 보안 이론 6
IDS (Snort)
개요
- 침입 탐지 시스템(IDS)의 대표 시스템으로 오픈소스 기반의 강력한 네트워크 보안 도구
- 실시간 트래픽 분석을 통해 악의적인 활동을 탐지하고, 관리자에게 경고를 보내 시스템을 안전하게 보호
- Snort는 규칙과 네트워크 트래픽을 비교하여 일치하는 패킷을 탐지하고, 설정된 동작을 수행(허용, 탐지, 차단)
주요 기능
- 패킷 스니핑: 네트워크 상의 패킷을 실시간으로 분석하여 의심스러운 활동을 탐지합니다.
- 패킷 로깅: 분석된 패킷 정보를 기록하여 추후 분석 및 증거 자료로 활용합니다.
- 침입 탐지: 미리 정의된 규칙(Rule)과 패킷을 비교하여 악의적인 패턴을 탐지하고 경고합니다.
- 침입 방지: Snort Inline 모드를 통해 탐지된 공격을 실시간으로 차단하여 피해를 예방합니다.
Snort 구조
Sniffer: 패킷 디코더
- 네트워크 인터페이스를 Promiscuous(무차별) 모드로 동작하여 데이터 도청 및 네트워크 트래픽 분석을 수행합니다.
Preprocessor: 전처리기
- 전달받은 패킷을 측정 플러그인으로 검사하여 특정 행위를 하는 패킷을 탐색 엔진으로 전송합니다.
Detection Engine: 탐지 엔진
- 규칙 기반의 패턴 검색을 수행하며, 패킷과 규칙이 일치할 경우 Alert/Logging으로 전달합니다.
- 규칙은 정기적으로 업데이트되며, 자신의 네트워크 환경에 맞게 커스터마이징이 가능합니다.
Alert/Logging: 경고 및 로깅
- 탐지된 이벤트는 로그 파일 또는 네트워크로 전송됩니다.
규칙 구성
Snort의 규칙은 헤더 부분과 다양한 옵션으로 구성
규칙 헤더
액션(Action): 탐지된 패킷에 대해 수행할 동작 (alert, log, pass, drop 등)
alert
: 경고 발생log
: 로그를 기록pass
: 패킷을 무시drop
: 패킷을 차단하고 기록
프로토콜(Protocol): 탐지할 프로토콜 (tcp, udp, icmp 등)
- TCP, UDP, ICMP, IP 등의 프로토콜을 탐지합니다.
출발지 IP/포트(Source IP/Port): 공격자의 IP 주소 및 포트
any
: 모든 포트포트번호
: 특정 포트포트번호:포트번호
: 포트 범위 지정
방향
->
: 출발지에서 목적지로의 패킷 탐지< >
: 출발지와 목적지 사이의 모든 패킷 탐지
예시
alert tcp any any -> 192.168.1.100 80 (content:"attack"; msg:"Possible attack detected!"; sid:1000001;)
일반 옵션 설정
- msg: alert 발생 시 이벤트 이름
- sid: Snort 룰 ID
- 99 이하: 시스템 예약 ID
- 100 ~ 1,000,000 이하: Snort 자체 지정 SID
- 1,000,001 이상: 사용자 정의 SID
- dsize: 패킷 크기 범위 지정
- 예:
dsize:<바이트
,dsize:바이트<>바이트
- 예:
- content: 문자, 바이너리로 패턴을 탐지
- 예:
content: "문자"
content: | 00 01 0A AA |
content: "| 90 90 90 | /bin/sh"
- 예:
- offset: 검색을 시작할 byte 수 지정
- depth: offset부터 시작하여 검색할 byte 수 지정
- nocase: 대소문자를 구별하지 않음
- flags: TCP 제어 플래그를 지정 (F, S, FA, FSA 등으로 지정 가능)
- pcre: 정규식 사용
예시
content:"attack"; // "attack" 문자열 포함 여부 검사
msg:"Possible attack detected!"; // 경고 메시지 내용
sid:1000001; // 규칙 ID
Threshold 설정
- threshold: 패킷의 발생량을 기반으로 탐지하는 옵션으로, 대량의 패킷이 들어올 경우 로그 용량을 관리할 수 있도록 돕습니다.
- limit: 임계시간 동안 임계치까지만 이벤트 발생
- threshold: 임계시간 동안 임계치 번째마다 이벤트 발생
- both: 임계시간 동안 임계치에 한 번 이벤트 발생
- track: 소스를 기준으로 추적하거나 목적지를 기준으로 추적
- count: 발생해야 할 패킷의 수 (임계치)
- seconds: 임계시간 (초 단위)
활용 방안
- DoS/DDoS 공격: SYN Flood, UDP Flood 등
- 스캔 공격: 포트 스캔, OS 스캔 등
- 악성코드 유포: 악성코드 다운로드, 악성 웹사이트 접속 등
- 웹 공격: SQL Injection, Cross-site Scripting (XSS) 등