Трафик данных в Интернете проходит преимущественно через два порта TCP: просмотр Web-страниц, отправка электронной почты, чаты, Web-радио, потоковая передача видео и даже компьютерные игры используют из 65 535 доступных портов TCP и UDP только порт 80 (HTTP) и порт 443 (HTTPS). В этой ситуации фильтрация по портам в целях обеспечения сетевой безопасности оказывается практически бессмысленной. Решение об открытии или блокировании портов 80 и 443 принимается быстро, но такой брандмауэр больше никак не сможет дополнительно ограничить функционирование этих портов.
Надо отметить, что системы сетевой безопасности всегда совершенствовались в соответствии с тенденциями развития Интернета. Если в 90-е годы было достаточно фильтрации IP-адресов, то с 2000 года уже пришлось фильтровать отдельные порты TCP/UDP. Спустя несколько лет стала актуальной технология контекстной проверки пакетов (Stateful Packet Inspection, SPI) на основе статуса соединения TCP. Сегодня наилучшую возможность для идентификации всевозможных программ и сервисов Web, использующих порты TCP 80 и 443, предоставляет технология глубокого анализа пакетов (Deep Packet Inspection, DPI).
ПОЛНАЯ ПРОВЕРКА ПАКЕТОВ
Технология DPI обеспечивает полную проверку пакетов данных. Как правило, модуль DPI включает в себя программную библиотеку (Software-Library), отвечающую за классификацию протоколов. Производители брандмауэров могут интегрировать модули, разработанные специализированными компаниями, и использовать их в качестве основы для создания собственных продуктов, таких как системы обнаружения и предотвращения вторжений (Intrusion Detection/ Prevention Systems), решения для мониторинга или фильтры приложений (см. Рисунок 1). Принципы работы модулей DPI и антивирусного программного обеспечения похожи. Они используют своего рода сканирующие механизмы (Scan Engine), действие которых основано на том, что у всех распознаваемых протоколов имеются свои точные сигнатуры. Сканирующий механизм сравнивает передаваемые пакеты с сохраненными сигнатурами протоколов. При обнаружении соответствия пакет считается классифицированным и поступает в распоряжение других программ, выполняющих, к примеру, фильтрацию приложений.
Рисунок 1. Использование технологии DPI на практике. |
Поэтому для всех систем, использующих технологию DPI, важно, чтобы сигнатуры протоколов были актуальными, поскольку только в этом случае можно добиться высокой эффективности. Наибольшая сложность заключается в частом изменении нестандартных протоколов, в то время как общепризнанные протоколы, такие как HTTP или DNS, очень редко подвергаются изменениям. Если же используются проприетарные протоколы, необходимо сразу же обновлять их сигнатуры, иначе протокол окажется вне контроля. Чем же технология DPI отличается от использования прокси-серверов? DPI позволяет классифицировать сотни протоколов без прерывания соединений, а прокси-серверы обычно способны пропускать через порт TCP только один определенный протокол. Преимущества DPI проявляются во многих областях:
Фильтры приложений. Технология DPI проверяет все уровни модели OSI — со второго по седьмой. Критерии фильтрации могут быть применены к любому из них. Однако главное преимущество фильтра приложений на базе DPI заключается в возможности контролировать информацию на прикладном уровне (уровень 7) и классифицировать сотни протоколов без привязки к конкретному порту TCP или UDP.
Благодаря этому администраторы могут, к примеру, разрешить использование Skype, но запретить обмен файлами посредством P2P. «Упакованный» сетевой трафик тоже поддается идентификации. Соединение Layer 2 Tunneling Protocol (L2TP) не удалось бы контролировать с помощью фильтра портов, а технология DPI позволяет даже в туннелях разрешать или запрещать те или иные протоколы.
Предотвращение утечки данных (Data Leakage Prevention). Такие системы препятствуют утечке конфиденциальных данных предприятия через сетевые интерфейсы. Они генерируют значения хэшфункции, которые затем сравниваются со всеми исходящими данными. Для анализа сетевого трафика они получают классификацию протоколов от системы DPI.
Качество сервиса (Quality of Service, QoS). Качество сервиса устанавливает приоритет для определенных типов сетевого трафика. К примеру, чтобы обеспечить потоку данных VoIP более высокий приоритет, QoS протокола использует классификацию, проведенную системой DPI.
Возможный сценарий применения технологии DPI — фильтр приложений в брандмауэре Linux. Брандмауэр Linux при этом связывает клиентский компьютер с Интернетом. Весь входящий и исходящий интернет-трафик анализируется и при необходимости фильтруется. При этом ядро Linux сначала принимает пакеты, а затем встроенный межсетевой экран (Netfilter) поэтапно анализирует их. В первую очередь система анализирует внешний заголовок неизвестного пакета (Packet Header). К примеру, если речь идет о заголовке Ethernet, то на основании заложенной в нем информации можно узнать MAC-адрес или принадлежность к виртуальной локальной сети (VLAN). Затем проверяется следующий по глубине заголовок. Если он соответствует схеме пакета IP, то и из этого протокола можно извлечь необходимые сведения. Кроме того, решается вопрос о дальнейшей маршрутизации данных, чтобы отделить пакеты для локальных сервисов (к примеру, прокси) от тех, которые нужно отправить дальше. Netfilter перенаправляет пакет напрямую к модулю DPI.
На следующем этапе модуль DPI сравнивает полученный пакет со множеством сигнатур протоколов и классифицирует его, для чего применяются различные технологии. К примеру, модуль DPI может анализировать различные уровни пакета. Сначала из заголовка IP извлекается информация об IP-адресах отправителя (Source) и получателя (Destination). Следующий заголовок (TCP) предоставляет сведения о порте TCP и других характеристиках, в частности о возможной принадлежности к установленному соединению. В заключение рассматривается прикладной уровень, то есть седьмой уровень модели OSI (см. Рисунок 2). Здесь тоже сначала изучается заголовок, что зачастую позволяет сразу определить, какой протокол используется. Но поскольку протоколы седьмого уровня могут «прятаться» и в других протоколах этого уровня, необходимо исследовать всю область полезной нагрузки.
Рисунок 2. Взаимосвязь пакетных уровней и фильтров. |
В рассматриваемом примере анализ регулярных выражений (Regular Expressions) показал совпадение с сигнатурой протокола Jabber (XMPP), используемого в таких приложениях, как Google Talk. Теперь классифицированный пакет передается от фильтра приложений обратно к Netfilter, где принимается решение о допуске или блокировке пакета. Но классификация протокола позволяет контролировать историю чата и в другом сценарии (мониторинг DPI).
ЛОВУШКИ ТЕХНОЛОГИИ DPI
Область задач DPI включает в себя полную проверку пакетов, в том числе информацию об IP-адресах, портах, SPI, а также всю полезную нагрузку пакетов на седьмом уровне. Таким образом, при сетевом трафике объемом 5 Гбайт необходимо проанализировать весь этот объем, а не только заголовки пакетов. При очень быстрых соединениях с такой задачей может справиться только высокопроизводительное аппаратное обеспечение, обладающее большими вычислительными ресурсами. Кроме того, уже упоминавшиеся частые изменения проприетарных протоколов приводят к тому, что сигнатуры DPI этих протоколов быстро устаревают, теряют свою эффективность и их приходится постоянно обновлять. Такая же проблема возникает в случае использования антивирусных сигнатур.
Возможности фильтра приложений тоже не беспредельны. Решение о допущении или блокировке протокола принимается только после его классификации, которая порой возможна лишь после анализа нескольких пакетов. Когда один протокол седьмого уровня скрывается в другом (к примеру, протокол удаленного доступа в протоколе HTTP), отдельные пакеты могут «проскочить» до того, как фильтру удастся распознать скрывающийся в их недрах протокол. А если у фильтра приложений есть так называемый белый список (Whitelist) с перечнем протоколов, пропускаемых без ограничений, то фильтр пропускает еще больше неклассифицированных пакетов. В отличие от прокси, эта система не накапливает пакеты, а сразу отправляет их дальше. Кроме того, для первоначальной классификации необходимо вначале просмотреть достаточное количество пакетов. Эффективность применения функции белых списков зависит от того, скрываются ли за первым протоколом другие. Фильтру приложений приходится исследовать дополнительные пакеты, до полного завершения их классификации. Однако к этому моменту через него успеют проникнуть множество пакетов, и запрещенные протоколы уже выполнят свою задачу.
Консолидация сетевого трафика на портах TCP 80 и 443 не является существенным ограничением для брандмауэров с технологией DPI. Сетевые протоколы по-прежнему поддаются фильтрации, только она осуществляется на более высоком уровне модели OSI. Эффективный брандмауэр просто глубже заглядывает в пакет.
Совершенствование технологий анализа пакетов до сих пор всегда было тесно связано с развитием Интернета. Если в прошлом речь шла преимущественно об анонимных IP-адресах, то теперь все большее значение придается действительному содержанию пакетов (к примеру, использованию протокола HTTP программами для VoIP и чатов). Если распространение этой тенденции продолжится, за фильтром протоколов может появиться и фильтр полезных данных, который, помимо синтаксиса протоколов, автоматически анализировал бы и проверял семантическую значимость прикладных данных. Это позволило бы реализовать детализированную фильтрацию используемых протоколов, а также не привязанное к конкретным протоколам отслеживание действий системы и отдельных пользователей на основе различных признаков аутентификации.
Феликс Бланк — сотрудник компании gateProtect.