정보보안기사
Snort 침입 탐지 시스템 요약
귤장수
2024. 12. 12. 22:54
반응형
Snort 침입 탐지 시스템 요약
Snort는 네트워크 패킷을 분석하여 침입을 탐지하는 오픈 소스 침입 탐지 시스템(IDS)입니다. 1998년에 개발된 이 시스템은 규칙 기반으로 패킷을 검사하고, 패턴 매칭을 통해 공격을 탐지합니다. Snort는 플러그인 형태로 기능을 확장할 수 있으며, 다양한 전처리 및 데이터베이스 플러그인이 추가되었습니다.
Snort 탐지 과정
1. 스니퍼(Sniffer)
- 네트워크 인터페이스에서 패킷을 수신
- 정상 모드에서는 특정 MAC 주소로 수신하지만, Promiscuous Mode에서는 모든 패킷을 수신
2. 전처리기(Preprocessing)
- 패킷을 분석하여 특정 행위를 탐지하고 탐지 엔진으로 전달합니다.
- 필요한 플러그인을 활성화하여 특정 프로토콜을 검사할 수 있습니다.
3. 탐색엔진(Detection Engine)
- 등록된 규칙을 바탕으로 패턴을 검사하고 일치하는 경우 경고(Alert)나 로그를 생성합니다.
4. 경고(Alert) 및 로깅(Logging)
- 탐지된 공격에 대한 정보를 로그 파일, 네트워크 또는 SNMP 프로토콜을 통해 전송합니다.
Snort 시그니처 구성
Rule Header
규칙 헤더는 처리 방법, 프로토콜, IP 주소, 포트 번호 등을 정의
1. 처리 방법(Action)
- alert: 경고를 발생시키고 로그를 기록
- log: 패킷 로그 기록
- pass: 패킷을 차단하지 않고 통과
- dynamic: 활성화된 시그니처에 의한 패킷 기록
- activate: 특정 상태를 활성화
2. 프로토콜(Protocol)
- TCP, UDP, IP, ICMP와 같은 프로토콜을 탐지
3. IP주소 및 포트 번호
- 송수신자의 IP 주소와 포트 번호를 설정하여 패킷을 탐지합니다. 송신자와 수신자 구별 없이 모든 패킷을 탐지하려면 <>로 설정
Rule Option
규칙 옵션은 패턴 검색 시 세부적인 조건을 정의
1. content
- 패킷의 페이로드를 검색하여 지정한 문자열을 찾음
- 단순 문자열 또는 16진수로 표현 가능
2. depth
- 패킷 내에서 패턴을 검색할 최대 길이를 지정
3. flow
- 트래픽 방향을 지정합니다. 예: flow: to_server, established는 서버로 가는 연결을 탐지
4. flags
- TCP 프로토콜의 플래그(SYN, FIN 등)를 설정하여 특정 제어 메시지를 탐지합
5. thresholding (임계값 설정)
- 경고를 생성하는 빈도 및 조건을 설정
- limit: 특정 시간 동안 최대 발생 횟수만 경고
- threshold: 지정된 시간 동안 일정 횟수마다 경고
- both: limit과 threshold 결합
6. SID (Signature ID)
- 각 규칙에 고유한 식별자(SID)를 할당
Snort 규칙 예시
alert tcp any any -> 192.168.0.1 80 (msg:"HTTP Request"; content:"GET"; sid:1000001;)
이 예시에서는 TCP 프로토콜을 사용하여, 어떤 출발지든지 192.168.0.1의 80번 포트로 전송되는 HTTP GET 요청을 탐지합니다. 이 규칙의 SID는 1000001입니다.
결론
Snort는 네트워크 보안을 강화하는 중요한 도구로, 실시간 패킷 분석을 통해 침입을 탐지하고 경고를 발생. 다양한 규칙을 설정하고 옵션을 조정하여 효율적으로 네트워크를 모니터링 가능.
반응형