1. Snort 소개
Snort는 1998년Sourcefire 社의 최고기술경영자(CTO) MartinRoesch(마틴 로시)에 의해 발표 된 Open Source 네트워크 침입 탐지 시스템(NIDS)으로, Network에서실시간 Traffic 분석과 Packet logging을수행하는 네트워크 침입 탐지 시스템(NIDS)이다. Snort는 프로토콜 분석, 컨텐츠 검색, Worms, 취약점 악용 시도, Port Scan, 버퍼 오버플로우, OS fingerprinting 등의수 천개의 다양한 공격을 탐지한다.
Snort라는 용어는 Snifferand More라는 말에서 유래되었다. Snort의 가장 큰 특징은 Snort를 사용하고 있는 40만 유저들의 커뮤니티를 통해 지속적으로 탐지 Rule이 제공되며, 관리자가 직접 탐지 Rule을 설정이 가능하다는 점이다. 또한 지속적인 기능 보완과 향상을통해 현재(2012.03) SecTools.Org: Top 125 Network Security Tools(http://sectools.org/)에서 5위로 탁월한 성능을 자랑한다.
Snort는 Windows 뿐만아니라, Ubuntu, MAC OS, Debian, RHEL, CentOS 등 다양한 OS를 지원하고 있어, 사용자의 선택의 폭을 넓다. Snort는 2012년 03월현재 2012년 1월 18일에릴리즈된 Snort 2.9.1이 최신버전이며, http://www.snort.org에서 Download 가능하다.
[그림.1 Snort 메인페이지 일부]
2. Snort 기능 (모드)
- 패킷 스니퍼 모드(SnifferMode)
tcpdump 와같은 네트워크의 TCP/IP 패킷을 읽어 보여주는 기능
- 패킷 로거 모드(PacketLogger Mode)
모니터링 한 패킷을 저장, 로그기록하는 기능. 이 모드는 트래픽 디버깅에 매우 유용하게 사용된다.
- 네트워크 침입 탐지 시스템 모드(Network Intrusion Detection System Mode:NIDS)
네트워크 트래픽(패킷) 분석 및 공격 탐지 기능
- Snort Inline
Snort의 발전된 형태 침입방지시스템(Intrusion Preventionsystem) 패킷 분석, 공격 차단 기능
[그림.2 Snort 패킷 처리 과정]
- Sniffer
Snort를 통과하는 모든 패킷 수집 하여, 사람이 보기 쉬운 형태로 Decode한다.
- Preprocessor
효율적인 공격 탐지를 위해 패킷에 대한 사전 검수를 한다. 즉 비정상 헤더 구조 패킷이나, 비정상 트래픽을
구분한다. 비정상적인패킷을 구분하기 위해서는 Snort 디코더를 통해 분해 과정을 거쳐 Preprocessor에서
패킷 구조, 플래그 정보, 프로토콜 정보를 이용하여 패킷이정상적인 형식이나 프로토콜 별 패킷 구조를 해석
한다. Fragment된 패킷은 조합하여 정상적인 패킷인지 검사한다.Proprocessor의 종류는 뒷 부분에서 자세
히 설명하겠다.
- DetectionEngine
Preprocessor에서 검사가 완료된 패킷은 Detection Engine에서 사전에 정의된 Rule을 이용하여,Payload에
포함된 Data를 분석 공격 여부를 판단한다.
- Alert / Logging
정책에 따라 로그를 기록한다.Alert은 Log File, SMB, SNMP trap등으로 전달, Log는 Text Flie or
database에저장한다.
Snort의 구조를 살펴 보면, 침입탐지시스템 구조를 이해할 수 있다. 공개용 침입탐지 시스템인 SNORT의 탐지
매커니즘을 통해 상용엔진의 작동 방식을 이해할 수 있으며, 실제로 많은 수의 상업용 침입탐지/차단 시스템이
Snort엔진을 사용하고 있다고 한다.
[출처] 공개용 침입탐지시스템 SNORT|작성자 091379
참고
- Snort를 이용한 IDS 구축 (KISA)
- Snort User Manual v2.9.2 (www.snort.org)
'Infomation' 카테고리의 다른 글
[안드로이드 패킷 캡처] tPacketCapture (0) | 2013.01.31 |
---|---|
Snort 설치 (0) | 2013.01.30 |
NAT (Network Address Translation) - 주소 변환 (0) | 2013.01.30 |
방화벽 (Firewall) (0) | 2013.01.30 |
SSL Handshake (0) | 2013.01.29 |