Сетевые системы IDS

9.3. Сетевые системы IDS

Работа сетевых систем обнаружения вторжения отличается от локальных. Философия дизайна сетевых IDS состоит в сканировании сетевых пакетов на маршрутизаторе или выделенном узле, проводящем аудит пакетов и регистрирующем в специальном журнале все подозрительные пакеты с дополнительными сведениями. Обрабатывая эти подозрительные пакеты, сетевая система IDS может сканировать собственную базу данных известных сигнатур сетевых атак и назначать уровень важности каждому пакету. Если уровень достаточно высок, членам команды безопасности отправляется предупреждающее SMS или почтовое сообщение, чтобы они могли исследовать природу аномалии.

Сетевые IDS стали популярнее по мере роста размера и трафика Интернета. Профессионалами по безопасности очень ценятся системы IDS, способные сканировать огромный трафик сетевой активности и успешно выявлять подозрительные действия. Незащищённость, присущая протоколам TCP/IP делает крайне важной разработку сканеров, программ, прослушивающих сеть, и других средств сетевого аудита для выявления нарушений в системе безопасности, возникших в результате злонамеренной сетевой активности:

  • Подделывание IP

  • Атаки типа «отказ в обслуживании»

  • Отравление кэша arp

  • Искажение имён DNS

  • Атаки типа «человек посередине» (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)

С помощью tcpdump (включённого в Red Hat Enterprise Linux) или подобного инструмента, мы увидим большие потоки информации, движущиеся по сети:

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.

9.3.1. Snort

Хотя 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/.