Открыть сервис

VPC Flow Logs

VPC Flow Logs — это функция облачных вычислительных платформ, позволяющая собирать, записывать и анализировать информацию о сетевом трафике, проходящем через виртуальное частное облако (VPC). Данные, собираемые Flow Logs, содержат сведения о сетевых пакетах, проходящих через сетевые интерфейсы (ENI) виртуальных машин, балансировщиков нагрузки, баз данных и других ресурсов, развернутых в VPC. Функция используется для диагностики сетевых проблем, анализа безопасности, мониторинга соответствия требованиям и аудита сетевой активности.

История

Концепция Flow Logs была впервые реализована в 2015 году компанией Amazon Web Services (AWS) как часть сервиса Amazon VPC. AWS — организация, зарегистрированная в США, не признана нежелательной или экстремистской в РФ. Первоначально функция поддерживала только сбор логов трафика в пределах одного региона AWS. Позднее, в 2016 году, была добавлена поддержка агрегации логов из нескольких регионов и возможность экспорта данных в сервисы аналитики, такие как Amazon Athena и Amazon OpenSearch Service.

Вслед за AWS, аналогичные функции были внедрены другими крупными облачными провайдерами. В 2017 году Google Cloud Platform (GCP) представила VPC Flow Logs для своего сервиса Compute Engine. В 2018 году Microsoft Azure запустила Network Watcher Flow Logs для виртуальных сетей Azure. В 2020 году функция Flow Logs была добавлена в облачную платформу Яндекс.Облако (ныне Yandex Cloud). Российские провайдеры, такие как VK Cloud и Selectel, также внедрили аналогичные решения в 2021–2022 годах.

Принцип работы

VPC Flow Logs работают на уровне сетевых интерфейсов виртуальных машин или подсетей VPC. Когда сетевой пакет проходит через сетевой интерфейс, облачный провайдер перехватывает метаданные пакета и формирует запись лога. Запись содержит информацию о пяти основных параметрах сетевого потока (5-tuple): IP-адрес источника, IP-адрес назначения, порт источника, порт назначения и протокол. Дополнительно могут фиксироваться такие данные, как номер сетевого интерфейса, метка времени, количество переданных байт и пакетов, а также статус действия (принят или отклонён).

Собранные логи могут быть экспортированы в несколько целевых хранилищ:

  • Amazon S3 (AWS) — объектное хранилище для долгосрочного хранения и анализа.
  • CloudWatch Logs (AWS) — сервис мониторинга и логирования.
  • Google Cloud Storage (GCP) — объектное хранилище.
  • Azure Storage Account (Azure) — хранилище блобов.
  • Yandex Object Storage (Yandex Cloud) — объектное хранилище.
  • Logging (Yandex Cloud) — сервис сбора и хранения логов.

Flow Logs не влияют на производительность сети, так как сбор данных происходит на уровне гипервизора или сетевого контроллера, а не на виртуальной машине. Логи собираются асинхронно и не задерживают передачу пакетов.

Виды и классификация

VPC Flow Logs классифицируются по уровню сбора данных и по типу отслеживаемого трафика.

По уровню сбора

  • Логи на уровне сетевого интерфейса (ENI): собирают трафик, проходящий через конкретный сетевой интерфейс виртуальной машины, балансировщика нагрузки или другого ресурса. Позволяют детально анализировать трафик отдельного экземпляра.
  • Логи на уровне подсети: собирают трафик всех сетевых интерфейсов в пределах одной подсети VPC. Удобны для мониторинга целых сегментов сети.
  • Логи на уровне VPC: собирают трафик всех сетевых интерфейсов во всём виртуальном облаке. Обеспечивают полный обзор сетевой активности.

По типу трафика

  • Принятый трафик (ACCEPT): записи о пакетах, которые были успешно пропущены через сетевой интерфейс.
  • Отклонённый трафик (REJECT): записи о пакетах, которые были отклонены правилами групп безопасности или сетевых ACL.
  • Весь трафик (ALL): включает как принятые, так и отклонённые пакеты.

Характеристики и параметры

Каждая запись VPC Flow Logs содержит стандартный набор полей. В таблице приведены основные поля для AWS VPC Flow Logs (версия 2–5):

ПолеОписаниеПример
versionВерсия формата лога2
account-idИдентификатор аккаунта AWS123456789012
interface-idИдентификатор сетевого интерфейсаeni-1234567890abcdef0
srcaddrIP-адрес источника10.0.0.1
dstaddrIP-адрес назначения10.0.0.2
srcportПорт источника443
dstportПорт назначения80
protocolНомер протокола (IANA)6 (TCP)
packetsКоличество переданных пакетов10
bytesКоличество переданных байт1024
startВремя начала потока (Unix timestamp)1620000000
endВремя окончания потока (Unix timestamp)1620000010
actionДействие (ACCEPT или REJECT)ACCEPT
log-statusСтатус записи лога (OK, NODATA, SKIPDATA)OK

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

Применение

VPC Flow Logs используются в нескольких ключевых областях:

Диагностика сетевых проблем

Flow Logs позволяют определить, почему виртуальная машина не может подключиться к другой машине или к внешнему ресурсу. Анализируя записи с действием REJECT, можно выявить заблокированные пакеты и скорректировать правила групп безопасности или сетевых ACL. Например, если веб-сервер не отвечает на запросы, логи могут показать, что пакеты отклоняются на уровне группы безопасности.

Анализ безопасности

Логи трафика используются для обнаружения подозрительной активности, такой как попытки сканирования портов, атаки типа «отказ в обслуживании» (DoS) или несанкционированные попытки доступа. С помощью инструментов анализа, таких как Amazon Athena или Splunk, можно выявлять аномальные паттерны трафика. Например, большое количество пакетов с одного IP-адреса на разные порты может указывать на сканирование.

Мониторинг соответствия требованиям

Многие отраслевые стандарты (например, PCI DSS, HIPAA, ISO 27001) требуют ведения журналов сетевой активности. VPC Flow Logs предоставляют необходимые данные для аудита и демонстрации соответствия. Логи могут храниться в объектных хранилищах в течение заданного периода для последующей проверки.

Оптимизация затрат

Анализ Flow Logs помогает выявить неэффективное использование сетевых ресурсов, например, передачу больших объёмов данных между зонами доступности, что может увеличивать стоимость трафика. Оптимизация маршрутизации или перенос ресурсов в одну зону позволяет снизить расходы.

Интеграция с системами SIEM

Flow Logs могут быть экспортированы в системы управления событиями и информационной безопасностью (SIEM), такие как Splunk, Elastic Stack или IBM QRadar. Это позволяет централизованно анализировать сетевую активность в масштабах всей инфраструктуры.

Ограничения и критика

Несмотря на полезность, VPC Flow Logs имеют ряд ограничений:

  • Задержка доставки: логи могут поступать в целевое хранилище с задержкой от нескольких минут до нескольких часов, что делает их непригодными для мониторинга в реальном времени.
  • Отсутствие данных о содержимом пакетов: Flow Logs фиксируют только метаданные (заголовки), но не содержимое пакетов. Для анализа полезной нагрузки требуется использование других инструментов, таких как packet capture (PCAP).
  • Стоимость хранения и анализа: при большом объёме трафика стоимость хранения логов в облачных сервисах может быть значительной. Для снижения затрат рекомендуется агрегировать и фильтровать логи, а также использовать сжатие.
  • Ограничение на количество логов: некоторые провайдеры устанавливают квоты на количество записей Flow Logs в минуту или на объём данных. Превышение квоты может привести к потере части логов.
  • Отсутствие поддержки IPv6 в некоторых реализациях: не все облачные платформы поддерживают сбор логов для трафика IPv6.

Критики также отмечают, что Flow Logs не всегда могут быть использованы для точного определения источника атаки, если трафик проходит через NAT-шлюзы или прокси-серверы. В таких случаях IP-адрес источника будет заменён на адрес шлюза.

Примеры использования

Пример 1: Диагностика блокировки трафика

Предположим, что виртуальная машина A (IP 10.0.0.1) не может подключиться к базе данных на виртуальной машине B (IP 10.0.0.2) по порту 3306 (MySQL). Анализ Flow Logs показывает записи с действием REJECT для пакетов от 10.0.0.1:3306 к 10.0.0.2:3306. Это указывает на то, что группа безопасности или сетевой ACL блокирует трафик. После добавления разрешающего правила в группу безопасности трафик начинает проходить, и логи показывают действие ACCEPT.

Пример 2: Обнаружение сканирования портов

Flow Logs фиксируют большое количество пакетов от одного внешнего IP-адреса (например, 203.0.113.1) к разным портам на одной виртуальной машине. Записи имеют действие REJECT для большинства портов, кроме порта 22 (SSH), который принимает трафик. Это может указывать на попытку сканирования портов. Администратор может заблокировать IP-адрес в группе безопасности или настроить систему обнаружения вторжений (IDS).

Источники

  1. Amazon Web Services. «VPC Flow Logs». Документация AWS.
  2. Google Cloud. «VPC Flow Logs overview». Документация Google Cloud.
  3. Microsoft Azure. «Network Watcher Flow Logs». Документация Azure.
  4. Yandex Cloud. «VPC Flow Logs». Документация Yandex Cloud.
  5. VK Cloud. «Flow Logs для виртуальных сетей». Документация VK Cloud.
  6. Selectel. «Flow Logs в облачной платформе». Документация Selectel.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →