네트워크 기반 침입 탐지 시스템은 호스트 기반 IDS와는 다르게 작동합니다. 네트워크 기반 IDS은 네트워크 패킷을 라우터나 호스트 수준에서 살펴보고 패킷 정보를 검사한 후 만일 의심되는 패킷이 있다면 특수 로그 파일에 보다 자세한 정보와 함께 기록하도록 설계되었습니다. 이렇게 발견된 수상한 패킷에 기반하여 네트워크 기반 IDS는 알려진 네트워크 공격 유형을 담은 자체 데이터베이스를 살펴본 후 각 패킷에 심각성 수준을 할당합니다. 만일 심각성 수준이 높다면 보안팀 구성원에게 경고 이메일이나 휴대용 호출기에 연락하여 예외적인 상황을 보다 깊게 조사하도록 합니다.
네트워크 기반 IDS는 인터넷 범위가 커지고 트래픽이 증가하면서 보다 많이 사용되고 있습니다. 대형 네트워크 작업을 스캔하여 수상한 전송을 성공적으로 찾아내는 IDS는 보안 산업에서 높이 평가되고 있습니다. TCP/IP 프로토콜 본래의 비보안성 때문에 다음과 같은 악의성 네트워크 활동과 같은 보안 침해 사고를 방지하기 위하여 스캐너, 스니퍼 및 기타 네트워크 감사 및 탐지 도구가 개발되어야만 했습니다:
IP 스푸핑(Spoofing)
서비스 거부 공격 (Denial-of-service attacks)
arp cache poisoning
DNS 이름 변조(name corruption)
Man-in-the-middle 공격
대부분의 네트워크 기반 IDS를 사용하기 위해서는 호스트 시스템 네트워크 장치가 네트워크를 통과하는 모든 패킷을 포착하도록 무차별 (promiscuous) 모드로 설정되어야 합니다. 무차별 모드는 다음과 같이 ifconfig 명령을 사용하여 설정 가능합니다:
ifconfig eth0 promisc |
아무런 옵션 없이 ifconfig 명령을 실행하시면 eth0이 이제 무차별 (PROMISC) 모드라는 것을 보여줍니다.
eth0 Link encap:Ethernet HWaddr 00:00:D0:0D:00:01
inet addr:192.168.1.50 Bcast:192.168.1.255 Mask:255.255.252.0
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:6222015 errors:0 dropped:0 overruns:138 frame:0
TX packets:5370458 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:2505498554 (2389.4 Mb) TX bytes:1521375170 (1450.8 Mb)
Interrupt:9 Base address:0xec80
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:21621 errors:0 dropped:0 overruns:0 frame:0
TX packets:21621 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1070918 (1.0 Mb) TX bytes:1070918 (1.0 Mb) |
Red Hat Enterprise Linux에 포함된 tcpdump와 같은 도구를 사용하여 네트워크를 통과하는 대량의 트래픽을 볼 수 있습니다:
tcpdump: listening on eth0 02:05:53.702142 pinky.example.com.ha-cluster > \ heavenly.example.com.860: udp 92 (DF) 02:05:53.702294 heavenly.example.com.860 > \ pinky.example.com.ha-cluster: udp 32 (DF) 02:05:53.702360 pinky.example.com.55828 > dns1.example.com.domain: \ PTR? 192.35.168.192.in-addr.arpa. (45) (DF) 02:05:53.702706 ns1.example.com.domain > pinky.example.com.55828: \ 6077 NXDomain* 0/1/0 (103) (DF) 02:05:53.886395 shadowman.example.com.netbios-ns > \ 172.16.59.255.netbios-ns: NBT UDP PACKET(137): QUERY; BROADCAST 02:05:54.103355 802.1d config c000.00:05:74:8c:a1:2b.8043 root \ 0001.00:d0:01:23:a5:2b pathcost 3004 age 1 max 20 hello 2 fdelay 15 02:05:54.636436 konsole.example.com.netbios-ns > 172.16.59.255.netbios-ns:\ NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST 02:05:56.323715 pinky.example.com.1013 > heavenly.example.com.860:\ udp 56 (DF) 02:05:56.323882 heavenly.example.com.860 > pinky.example.com.1013:\ udp 28 (DF) |
우리의 컴퓨터인 pinky.example.com으로 향하지 않는 패킷들은 tcpdump에 의해 스캔되어 기록되는 것을 보실 수 있습니다.
tcpdump은 유용한 감시 도구이지만 진정한 IDS로 간주되지는 않습니다. 그 이유는 패킷을 분석하여 예외적인 증상이 있는 패킷을 찾아내지 못하기 때문입니다. tcpdump은 대신 모든 패킷 정보를 분석하지 않고 화면이나 로그 파일에 인쇄합니다. 적절한 IDS는 패킷을 분석하고 수상한 패킷 전송을 찾아내어 형식화된 로그 파일에 저장해야 합니다.
Snort는 성공적으로 수상한 네트워크 활동을 기록하고 잠재적 보안 문제가 발생하였을때 관리에게 알려주도록 개발된 광범위하고 정확한 IDS 입니다. Snort는 표준 libcap 라이브러리와 tcpdump를 패킷 기록 백엔드로 사용합니다.
Snort의 이러한 기능 외에도 가장 특별한 기능은 유연한 침임탐지 패턴 하부시스템입니다. Snort는 침입 공격 패턴 데이터베이스에 새로운 공격 패턴을 추가하거나 인터넷을 통하여 계속적으로 업데이트합니다. 사용자는 새로운 네트워크 공격에 대한 공격 패턴을 생성하여 Snort 침입탐지 패턴 메일링 리스트 (http://www.snort.org/lists.html)로 제출하여 모든 Snort 사용자들이 혜택을 함께 누릴 수 있습니다. 이러한 커뮤니티 공유 정신에 힘입어 Snort는 가장 업데이트되고 강력한 네트워크 기반 IDS 중 하나로 자리잡게 되었습니다.
![]() | 알림 |
|---|---|
Snort는 Red Hat Enterprise Linux에 포함되어 있지 않으며 지원되지 않습니다. 이 문서에서는 이 응용 프로그램을 사용하고자 하시는 사용자를 위한 참고 자료로서 언급되었습니다. |
Snort에 대한 보다 자세한 정보는 공식 웹사이트 http://www.snort.org/를 참조하시기 바랍니다.