Stateful Packet Inspection

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Технология SPI (Stateful Packet Inspection) позволяет дополнительно защититься от атак, выполняя проверку проходящего трафика на корректность (работают на сетевом, сеансовом и прикладном уровнях модели OSI).

Большинство маршрутизаторов сегодня имеет SPI-брандмауэры. При создании любой сессии TCP/IP NAT открывает для неё порт. После завершения сессии порт ещё несколько минут остается открытым. Теоретически, если в этот момент производится атака на роутер путем сканирования открытых портов, то появляется возможность проникновения во внутреннюю сеть. Или же атакующий может пытаться посылать пакеты на этот открытый порт в течение сессии. При включении функции SPI происходит запоминание информации о текущем состоянии сессии и производится анализ всех входящих пакетов для проверки их корректности. В случае некорректности входящего пакета (например, адрес отправителя не равен адресу, к которому посылался запрос или номер пакета не соответствует ожидаемому), пакет блокируется и в логе появляется запись о таком событии.

История[править | править вики-текст]

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

Классический пример работы сети без файервола — это FTP (File Transfer Protocol). По замыслу такие протоколы должны быть в состоянии открыть соединения с произвольным портом высокого уровня для функционирования должным образом. Так как файервол не может узнать, что пакет, предназначенный для защищенной Сети является частью созданной FTP сессии, то не будет пропускать пакет. Файерволы решают эту проблему путем создания таблицы открытых соединений.

Первые попытки производства файервола работали на уровне приложений, который является самым верхним из семи-уровневой модели OSI. Этот метод требует очень большого количества вычислительной мощности и редко используется в современных технологиях.

Описание[править | править вики-текст]

Файервол отслеживает состояние сетевых соединений (например, TCP или UDP) и в состоянии держать атрибуты каждого соединения в памяти. Эти атрибуты все вместе известны как состояние соединения, и могут включать в себя такие детали, как IP-адреса портов, участвующих в соединениях и порядковые номера пакетов, проходящих через соединение. Проверка с учетом состояния контролирует входящие и исходящие пакеты с течением времени, а также состояние соединения и сохраняет данные в динамических таблицах.

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

Файервол зависит от трехстороннего обмена (иногда описывается как «SYN, SYN-ACK, ACK»), когда используется протокол TCP; когда используется протокол UDP, файервол не зависит ни от чего. Когда клиент создает новое соединение, он посылает пакет с установленным битом SYN в заголовке пакета. Все пакеты с установленным битом SYN считаются для файервола как новые соединения. Если служба которую клиент запросил, доступна на сервере, тогда сервер ответит пакетом, в котором будут установлены оба бита SYN и ACK. Затем клиент отвечает пакетом в котором установлен только бит ACK, и связь будет считаться установленной. В таком случае файервол пропустит все исходящие пакеты от клиента, если они являются частью созданного соединения, гарантируя, что хакеры не смогут создать нежелательную связь с защищенного компьютера.

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

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

Фильтр уровня приложений[править | править вики-текст]

Фильтрация пакетов сама по себе не рассматривается как обеспечение достаточной защиты. Для эффективного блокирования угрозы необходима фильтрация приложений, которая может рассматриваться как расширение контроля содержимого пакетов. Stateful Packet Inspection может определить, какой тип протокола направляется по каждому порту. Например, на уровне приложений фильтр в состоянии распознать разницу между HTTP трафиком, используемого для доступа к веб-странице, и HTTP трафиком, используемого для совместного использования файлов, в то время как файервол, который только выполняет фильтрацию пакетов, будет рассматривать весь трафик HTTP в равной степени.

Ловушки[править | править вики-текст]

Уязвимости[править | править вики-текст]

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

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

См. также[править | править вики-текст]

VPN
NPF
Netfilter
Компьютерная безопасность

Литература[править | править вики-текст]

  • Dameon D. Welch-Abernathy. Essential Check Point Firewall-1 NG(TM): An Installation, Configuration, and Troubleshooting Guide. — Addison-Wesley Professional, 2004. — P. 5. — ISBN 9780321180612

Ссылки[править | править вики-текст]