Третье поколение: Межсетевые экраны прикладного уровня
Проблему «слепоты» межсетевых экранов смогли решить в третьем поколении в начале 2000-х, в так называемых межсетевых экранах прикладного уровня (Application-Level Firewalls) или сокращенно ALF.
Как следует из названия, такой межсетевой экран работал на самом высоком прикладном уровне (L7). На этом уровне происходит взаимодействие между приложениями и сетевыми сервисами путем предоставления интерфейсов и протоколов для передачи данных между различными программами. Именно благодаря этому ALF не просто проверяет заголовки пакетов, но и «понимает» семантику и синтаксис передаваемых данных.
Межсетевой экран третьего поколения является уже не просто третьей стороной, проверяющей достоверность отправителя и адресата, а становится полноценным участником соединения, выступая в роли прокси.
Теперь клиент из внутренней сети подключается не напрямую с внешним сервером, а устанавливает соединение с прокси-сервером, который, отвечая от имени клиента, устанавливает новое, отдельное соединение с внешним сервером.
ALF не просто сверяет заголовки, а собирает все TCP пакеты, упорядочивает их в соответствии с порядковыми номерами, устраняет дубликаты и группирует в единый поток данных прикладного уровня. ALF «знает» как должны выглядеть протоколы взаимодействия с приложениями и анализирует их:
Метод: GET, POST, PUT, HEAD.
URL: Полный путь к ресурсу (/index.php?id=1).
Заголовки (Headers): User-Agent, Host, Cookie, Referer.
Тело запроса (Body): Данные формы, загружаемые файлы, JSON-объекты.
Заголовки письма: From, To, Subject.
Тело письма: Текст сообщения.
Вложения (Attachments): Отдельные файлы, прикрепленные к письму.
Сам анализ проходит несколько уровней:
- Соответствие стандарту — проверяет, соответствует ли запрос техническим стандартам протокола.
- Сигнатурный анализ — ищет известные шаблоны (сигнатуры) вредоносного кода или атак. База сигнатур постоянно обновляется.
- Эвристический и поведенческий анализ — ищет подозрительное поведение, отклоняющееся от нормы, даже если точной сигнатуры нет.
- Анализ на уязвимости — проверяет, может ли конкретный запрос использовать известную уязвимость в целевой системе.
- Контроль данных — анализирует передаваемые данные по политикам компании.
- Анализ файлов — извлекает и проверяет вложения и загружаемые файлы.
По результатам анализа уже принимаются решения:
Разрешить: трафик корректен и безопасен. Прокси пересылает его дальше.
Блокировать: обнаружена угроза или нарушение политики. Трафик отбрасывается, а в логах фиксируется инцидент.
Модифицировать: к примеру, удалить подозрительный JavaScript-код из тела
веб-страницы или обезвредить вредоносную часть запроса, оставив его
работоспособным.
Если содержимое признано безопасным и соответствующим политикам, прокси-сервер заново формирует запрос от своего имени и отправляет его целевому серверу. Ответ от сервера проходит тот же тщательный анализ перед тем, как быть переданным исходному клиенту.
Такие межсетевые экраны обеспечивают высокий уровень безопасности, так как способны блокировать сложные атаки, маскирующиеся под легитимный трафик. Также обеспечивается логирование всей активности пользователя, а внутренняя структура сети полностью скрыта от внешнего мира, благодаря инициации соединения самим прокси.