logo
ИнфСборник по ЗИ и ИБ

Фильтрация пакетов.

Фильтрация пакетов IPобычно производится маршрутизатором, допускающим фильтрацию пакетов по мере их передачи между интерфейсами маршрутизатора. Маршрутизатор с фильтрацией пакетов обычно может фильтровать пакеты IP,в которых присутствуют следующие поля:

адрес источника IP,

адрес приемника IP,

порт источника TCP/UDP,

порт приемника TCP/UDP.

В настоящее время не все фильтрующие маршрутизаторы фильтруют порт источника TCP/UDP, однако большинство предлагаемых для продажи образцов включают эту возможность. Некоторые маршрутизаторы определяют из какого входного порта был получен пакет, и используют его номер в качестве дополнительного критерия фильтрации. Некоторые хосты UNIXпредоставляют возможность фильтрации пакетов, хотя большинство хостов такой возможностью не обладают.

Существует множество способов использования фильтрующих маршрутизаторов для блокирования соединении с определенными хостами или сетями, или с определенными портами. Например, можно блокировать соединения, идущие от конкретных адресов, например, от хостов или сетей, которые считаются враждебными или ненадежными. Может возникнуть потребность блокировать соединения со всеми внешними по отношению к сети адресами (за некоторыми исключениями, как в случае протокола SMTPпри получении электронной почты).

Добавлением фильтрации портов TCPи UDPк фильтрации адресов IPдостигается большая гибкость. Как уже отмечалось, такие серверы как демон TELNETобычно находятся в определенных портах, как, например, в порте 23 протокола TELNET.Если Firewallможет блокировать соединения TCPили UDPс определенными портами или от них, то можно реализовать политику, требующую, чтобы некоторые типы соединений устанавливались только с определенными хостами. Например, сеть может блокировать все входные соединения со всеми хостами за исключением нескольких систем. В этих системах можно, например, разрешить только определенные службы типаSMTPдля одной системы и соединения TELNETи FTPс другой. Эта политика может быть реализована непосредственно фильтрующим маршрутизатором или хостом, обладающим возможностью фильтрации пакетов.

В качестве примера фильтрации пакетов рассмотрим политику, допускающую только определенные соединения с хостами, адресом которых подходят под шаблон 123.4.*.*. Соединения TELNETбудут разрешаться только с одним хостом — 123.4.5.6,который может быть прикладным шлюзом TELNET,а соединения SMTPбудут разрешены с двумя хостами — 123.4.5.7и 123.4.5.8,которые могут быть шлюзами электронной почты. Обмен по NNTP (Network News Transfer Protocol)разрешается только с системой загрузки объекта NNTP, 129.6.48.254,и только с сервером NNTP, 123.4.5.9, a NTP (Network Time Protocol)разрешается со всеми хостами. Все остальные службы и пакеты должны блокироваться. Приведем соответствующий набор правил:

Тип

Адрес источника

Адрес приемника

Порт источника

Порт приемника

Действие

TCP

*

123.4.5.6

>1023

23

Разрешить

TCP

*

123.4.5.7

>1023

25

Разрешить

TCP

*

123.4.5.8

>1023

25

Разрешить

TCP

129.6.48.254

123.4.5.9

>1023

119

Разрешить

UDP

*

123.4.*.*

>1023

123

Разрешить

*

*

*

*

*

Запретить

Первое правило разрешает передачу пакетов TCPиз любого источника с номером порта большим чем 1023к приемнику с адресом 123.4.5.6в порт 23.Порт 23связан с сервером TELNET,а все клиенты TELNETдолжны иметь непривилегированные порты с номерами не ниже 1024. Второе и третье правила работают аналогичным образом и разрешают передачу пакетов к приемникам с адресами123.4.5.7и 123.4.5.8в порт 25,используемый SMTP. Четвертое правило пропускает пакеты к серверу NNTPсети, но только от источника с адресом 129.6.48.254к приемнику с адресом 123.4.5.9и в порт 119 (129.6.48.254 —это единственный сервер NNTP,от которого объект должен получать информацию, таким образом, доступ к объекту для выполнения NNTPвозможен только для этой системы). Согласно пятому правилу, допускается трафик NTP, использующий UDPвместо TCP,от любого источника к любому приемнику объекта. И, наконец, шестое правило запрещает передачу всех остальных пакетов —если бы этого правила не было, маршрутизатор мог бы запретить передачу всех последующих пакетов. Этот пример отражает только суть фильтрации пакетов. Правила, используемые в действительности, допускают более сложные правила фильтрации и обладают большей гибкостью.

Решение о том, фильтровать ли определенные протоколы и адреса, зависит от принятой политики доступа. Следующие службы являются заведомо уязвимыми и, как правило, Firewallблокирует доступ к ним:

tftp,порт 69,тривиальный FTP,как правило используется для загрузки бездисковых рабочих станций, терминальных серверов и маршрутизаторов, а также, при некорректной конфигурации, для чтения любого файла системы.

Х Windows, Open Windows,порты 6000и выше, порт2000,могут привести к утечке информации с дисплеев системы X,в том числе и всех командных строк.

RPC,порт 111,службы процедуры удаленного вызова, включающие NISи NFS,которые можно использовать для хищения такой системной информации как пароли, а также для чтения и записи в файлы.

rlogin, rshи rexec,порты 513, 514и 512,эти службы при некорректном конфигурировании могут позволить несанкционированный доступ к системе.

Другие службы, независимо от того, являются они заведомо опасными или нет, обычно фильтруются и по возможности разрешаются только тем системам, которым они необходимы. Среди них:

TELNET,порт 23,часто разрешается только для отдельных систем,

FTP,порты 20и 21,как и TELNET,часто разрешаются только для конкретных систем,

SMTP,порт 25,обычно разрешается только для выделенного сервера электронной почты,

RIP,порт 520,протокол маршрутизации, его можно обмануть, чтобы изменить маршрут пакета,

DNS,порт 53,протокол службы Domain Names Service, передает имена хостов и информацию о них, которой могут воспользоваться нарушители,

UUCP,порт 540, UNIX to UNIX Copy,при неправильном конфигурировании может быть использован для несанкционированного доступа,

NNTP,порт 119, Network News Transfer Protocol, ответственный за получение сетевой информации,

http,порты 70и 80,информационные серверы и программы клиентов для WWW,должны разрешаться только прикладному шлюзу, содержащему соответствующие службы.

Хотя некоторые из этих служб, такие как TELNETи FTP, являются заведомо уязвимыми, полное блокирование доступа к этим службам может оказаться слишком жесткой мерой. Однако, как правило, не все системы требуют доступ ко всем службам. Например, разрешение доступа с помощью TELNETи FTPтолько тем системам, которым этот доступ необходим, может повысить безопасность без ущерба для удобства пользователей. Может показаться, что такие службы как NNTPпредставляют собой незначительную угрозу, однако предоставление этих служб только тем системам, для которых они необходимы, помогает создать более чистую сетевую среду и уменьшить вероятность использования еще не обнаруженных "дыр" и угроз.

Как отмечено,фильтрующие маршрутизаторы обладают целым рядом недостатков. Правила фильтрации пакетов трудно точно определить и, как правило, не существует контрольного оборудования для тестирования их корректности (единственный метод —исчерпывающее ручное тестирование). Некоторые маршрутизаторы не позволяют проводить какою-либо регистрацию, так что если правила маршрутизации все же допускают потенциально опасные взаимодействия, может случиться так, что атака не будет обнаружена до тех пор, пока не произойдут нарушения в работе системы.

Зачастую из правил необходимо делать исключения для того, чтобы разрешить некоторые типы доступа, которые обычно блокируются. Иногда исключения из правил фильтрации пакетов могут сделать их настолько сложными, что их невозможно будет реализовать. Например, сравнительно просто определить правило, согласно которому блокируются все входные соединения с портом 23 (сервер TELNET).Если сделаны исключения, т.е., если некоторым системам сети необходимо непосредственно установить соединения TELNET,то соответствующее правило необходимо добавить в каждую такую систему. Добавление некоторых правил может сильно усложнить общую схему фильтрации. Некоторые фильтрующие маршрутизаторы не выполняют фильтрации по порту источника TCP/UDP,которая может усложнить правила фильтрации и образовать лазейки в системе. Так, в том случае, когда система инициирует соединение SMTPс сервером, порт источника выбирается случайно, с номером не ниже 1024,а порт приемника должен быть 25,т.е. портом сервера SMTP.Сервер должен возвращать пакеты с портом источника 25и портом приемника, равным случайно выбранному номеру порта клиента. Если сеть разрешает как входные, так и выходные соединения SMTP,маршрутизатор должен допускать номера портов приемника и источника больших 1023в обоих направлениях. Если маршрутизатор может осуществлять фильтрацию по порту источника, он может блокировать все пакеты, приходящие в сеть, имеющие номера портов приемника больше 1023и номер порта источника отличный от 25.Если возможности фильтровать по порту источника нет, маршрутизатор должен допускать соединения, используя номера портов источника и приемника большие 1023.Предполагается, что пользователи могут запустить серверы на портах с номерами больше 1023и, таким образом, обойти процесс фильтрования (т. е. сервер системы объекта, осуществляющий протокол TELNETи обычно ожидающий сигнал на порте 23,можно заставить, вместо этого, ждать сигнал на порте 9876;пользователи могут реализовать протоколTELNETс этим сервером, даже если маршрутизатор блокирует порт приемника 23).

Еще одна проблема заключается в том, что эффективную фильтрацию ряда служб RPCочень трудно осуществить, поскольку соответствующие серверы ожидают сигнала на портах, случайно назначенных при загрузке системы. Служба portmapperприписывает исходным вызовам служб RPCслужебные номера, но для фильтрующего маршрутизатора аналогичной возможности не существует. Поскольку маршрутизатору нельзя сообщить, в каких портах находятся службы, эти службы невозможно полностью блокировать, пока не будут заблокированы все пакеты UDP(службы RPC,как правило, используют UDP).Блокирование всех служб UDPзаблокирует такие, необходимые службы, как DNS.

Фильтрующие маршрутизаторы, имеющие много входов и выходов, не всегда имеют возможность фильтровать пакеты в соответствии с тем, с какого входа доставлен пакет, и к какому выходу он направляется. Эта возможность упрощает правила фильтрации, и позволяет маршрутизатору легче определить, является ли IPадрес настоящим, или подложным. Маршрутизаторы, не обладающие такой способностью, не в состоянии реализовать сложные стратегии фильтрации. Маршрутизатор, который не выполняет фильтрации по порту источника и на основе входного и выходного интерфейса, не позволяет реализовать политику доступа, согласно которой запрещено все, что не разрешено.