Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
netfence — Как Envoy xDS, но для eBPF-фильтров | Kitploit
Инструменты/GitHubGitHub/danthegoodman1/netfence
Безопасность облачной инфраструктурыБезопасность контейнеровОбход IDS/IPSСетевая безопасностьБезопасность облачных средDevSecOpsНеправильная КонфигурацияАнализ DNS
GitHubdanthegoodman1/netfence

netfence

Как Envoy xDS, но для eBPF-фильтров

Репозиторий
1014241 месяц назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Netfence

Как Envoy xDS, но для eBPF-фильтров.

Netfence работает как демон на ваших хостах с ВМ/контейнерами и автоматически внедряет eBPF-фильтры в cgroups и сетевые интерфейсы, со встроенным DNS-сервером, который разрешает разрешённые домены и заполняет IP-список разрешений.

Демоны Netfence могут управляться через локальный Unix-socket API или подключаться к центральной панели управления, которую вы реализуете через gRPC для синхронизации списков разрешений/запретов с вашим бэкендом.

Ваша панель управления отправляет сетевые правила, такие как ALLOW *.pypi.org или ALLOW 10.0.0.0/16, к прикреплённым интерфейсам/cgroups. Когда ВМ/контейнер запрашивает DNS, Netfence разрешает его, добавляет IP-адреса в eBPF-фильтр и отбрасывает трафик к неизвестным IP-адресам до того, как он покинет хост, с накладными расходами на прогретом пути, которые в текущих бенчмарках практически неотличимы от обычного сокетного соединения.

Особенности

  • Прикрепление eBPF-фильтров к сетевым интерфейсам (TC) или cgroups
  • Режимы политик: отключено, список разрешений, список запретов, блокировать всё
  • Поддержка IPv4 и IPv6 CIDR с опциональными TTL
  • Per-attachment DNS-сервер UDP/TCP со списком разрешённых/запрещённых доменов и упорядоченными переопределениями вышестоящих серверов
  • Поддержка поддоменов в доменных правилах с сопоставлением на основе специфичности (более специфичные правила побеждают)
  • Разрешённые домены автоматически заполняют IP-фильтр
  • Метаданные о демонах и прикреплениях для привязки к ID ВМ, арендатору и т.д.
  • Поддержка проксирования DNS-запросов на панель управления для принятия DNS-решений для каждого прикрепления

Замечание по безопасности: исключения по умолчанию

В режиме списка разрешений IPv4 link-local (169.254.0.0/16) больше не разрешён по умолчанию — поэтому облачная служба метаданных (169.254.169.254) блокируется, если явно не добавлена в список разрешений. Это сделано намеренно: служба метаданных является целью для кражи учётных данных, и изолированные рабочие нагрузки не должны иметь к ней неявного доступа. Localhost (127.0.0.0/8, ::1) и обнаружение соседей IPv6 (fe80::/10, ff02::/16) остаются разрешёнными по умолчанию, чтобы базовая связность и NDP продолжали работать. Чтобы разрешить службу метаданных для рабочей нагрузки, добавьте в список разрешений 169.254.169.254/32 (переопределение исключения для конкретного прикрепления через панель управления запланировано в будущем).

IPv4 broadcast (255.255.255.255) и multicast (224.0.0.0/4) не имеют исключений и подчиняются политике, поэтому в режиме TC со списком разрешений широковещательный трафик, такой как продление DHCP, блокируется, если не разрешён явно. Проверки исключений выполняются до списка запретов, поэтому исключённый диапазон можно заблокировать, только отключив его исключение — а поскольку IPv4 link-local теперь отключён по умолчанию, режим списка запретов также может блокировать службу метаданных.

Отличия от других решений

Несколько ключевых преимуществ этого решения, которые обычно не поддерживаются другими:

  • Немедленное прекращение существующих соединений при изменении правил для запрета IP (только для прикрепления к интерфейсу)
  • Поддержка всех сетевых протоколов и прямых IP-соединений. Например, отличный httpjail не позволяет подключаться напрямую к IP или использовать прямые TCP/UDP-соединения, такие как подключение к базам данных.
  • Динамическое разрешение DNS и предварительная фильтрация (чтобы не было утечки secretdata.someattacker.com)

Насколько мне известно, ни одно другое решение не предлагает все эти функции вместе.

Известное ограничение: прикрепления к cgroups фильтруют на уровне сокетов (хуки connect/sendmsg), поэтому процесс с CAP_NET_RAW может создавать сырые пакеты, обходящие их. Для рабочих нагрузок, которые могут иметь CAP_NET_RAW, используйте прикрепление к TC (интерфейсу), которое фильтрует на уровне устройства.

Однако это имеет немного больше накладных расходов, чем что-то вроде httpjail.

Производительность (сводка)

Эти числа были измерены на привилегированном Docker Linux gate на linux/arm64 с использованием make bench-docker. Значения — медианы пяти выборок.

Прогретый путь сокета

Бенчмарк прогретого сокета использует подключённые UDP-сокеты, чтобы изолировать стоимость хука eBPF cgroup/connect4 от задержки TCP-рукопожатия. На этом пути DNS уже разрешил домен, IP ещё в пределах TTL, и IP/CIDR уже присутствует в карте eBPF.

ПутьМедианная задержка
Обычное подключение сокета, без eBPF~2,647 мкс
Прогретый список разрешений, попадание в защищённый LPM~2,691 мкс
Прогретый список разрешений, точное совпадение DNS-хоста~2,741 мкс
Промах списка разрешений, локальная блокировка~1,652 мкс

Измеренный разброс между путями обычного подключения, защищённого LPM и точного совпадения DNS-хоста находится в пределах шума выборки.

На сегодняшний день нет пути «промах ядра, запрос к родительскому процессу». Промах списка разрешений в cgroup решается локально eBPF и немедленно блокируется.

Путь DNS-запроса

Эти числа измеряют путь DNS-сервера, а не прогретый путь подключения сокета.

ПутьМедианная задержка
Холодный прокси-запрос, внутрипроцессная функция политики~31,336 мкс
Прогретый прокси-запрос~27,964 мкс
Холодный запрос списка разрешений с локальным вышестоящим сервером~53,510 мкс
Прогретый запрос списка разрешений с локальным вышестоящим сервером~53,432 мкс

Холодные строки синхронизируются через барьер мутации реального прикрепления, очищают граф владения бенчмарка и фиктивный снимок точного совпадения между запросами. Таймер работает непрерывно для сохранения локальности планировщика UDP, в то время как ns/op вычитает отдельно сообщаемое fixture-reset-ns/op стенное время (включая любой хвост предыдущего обработчика после того, как клиент получил свой пакет) и таким образом измеряет текущий клиентский Exchange. raw-total-ns/op сообщает оба вместе. Сброс сохраняет настроенные политики доменов и резервное хранилище, а бенчмарк утверждает одно физическое добавление точного совпадения на запрос. Прогретые строки устанавливают владение один раз и утверждают одно физическое добавление за весь запуск.

Внутренние микробенчмарки владения ниже являются диагностиками масштабируемости, а не критериями приёма для полного пути DNS-запроса. Кешированный помощник сохраняется только для тестов и бенчмарков; он оборачивает одну запись за раз и повторяет проверку домена. Как он, так и обычный трафик резолвера проходят через барьер мутации прикрепления, в то время как обычный трафик резолвера принимает каждый полный ответ как одну транзакцию.

Внутренняя диагностика масштабируемостиТекущая медианаПамять / выделения
Холодное добавление нового ключа, пустой граф владения~370,3 нс232 Б, 5 выделений/оп
Холодное добавление нового ключа, 4 095 посторонних записей~451,2 нс232 Б, 5 выделений/оп
Давление физической ёмкости и замена LRU~3,820 мс~4,23 МБ (4 226 243 Б), 4 336 выделений/оп
Предварительная проверка исчерпанного физического бюджета~611,9 нс344 Б, 9 выделений/оп
Давление максимального количества рёбер, ответ с 64 адресами~6,849 мс~7,66 МБ (7 658 774 Б), 2 233 выделений/оп
Ограничитель максимальной работы графа, разрешённый полный план~2,763 мс~4,26 МБ (4 264 386 Б), 3 074 выделений/оп
Ограничитель максимальной работы графа, отклонение из-за исчерпания до проекции~10,935 мкс8,76 КБ (8 760 Б), 14 выделений/оп
Операция с бюджетом изменений вблизи числового предела~18,98 нс0 Б, 0 выделений/оп
Согласованный снимок статистики владения~2,094 нс0 Б, 0 выделений/оп
Сканирование без истечения срока по 4 095 записям~74,849 мкс/скан0 Б, 0 выделений/оп

Дизайн

Скачать инструмент