awesome-everything EN
↑ Обратно к восхождению

Сети и протоколы

Безопасность IP и операции

Суть IP spoofing, BGP-хайджеки, DDoS-усиление и RPKI — атаки на сетевом уровне, как они работают и что операторы делают для защиты.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 16 min

Сайт недоступен для одного ISP. С вашей машины вы его достигаете. Клиент сообщает что браузер полностью таймаутится. Запрос в BGP looking-glass показывает что кто-то другой анонсирует ваш префикс. У вас 15 минут чтобы понять что произошло и исправить это. Это IP-безопасность — не TLS-уровень выше, а маршрутизационный субстрат под ним.

IP spoofing и почему это важно

В IP ничто не мешает отправителю написать произвольный source-адрес. Хост может притвориться что он 1.2.3.4 и сеть форвардит пакет. Это обеспечивает:

  • Reflection/amplification DDoS: атакующий шлёт маленькие UDP-пакеты на открытый DNS или NTP-сервер с подделанным source IP (IP жертвы). Сервер шлёт большой ответ жертве. DNS amplification factor: ~60×. NTP monlist: до ~5000×. Memcached: до 51 000×. Атакующий тратит 1 Гбит/с, жертва поглощает 51 Тбит/с.
  • Обход IP-based rate limiting: флуд со случайных source IP.
  • Обход правил firewall которые доверяют определённым source IP.
Ландшафт IP-безопасности
Принятие BCP 38 (egress filtering)
~60% AS
Принятие RPKI ROV (Tier-1 ISP)
~85%+ в 2026
DNS amplification factor
до 60×
NTP monlist amplification
до 4 670×
Рекорд DDoS Cloudflare (2024)
~5,6 Тбит/с
BGP-хайджек инциденты (2024)
несколько резонансных случаев

BCP 38 и uRPF: победа над spoofing у источника

BCP 38 (RFC 2827) рекомендует ISP применять egress filtering: проверять что пакеты покидающие их сеть имеют source IP из адресного пространства которое они авторизованы анонсировать. Пакет из 192.0.2.1 не должен покидать сеть которая владеет только 203.0.113.0/24.

Глобальное принятие BCP 38 — ~60%. Оставшиеся 40% AS пропускают spoofed-трафик, обеспечивая amplification-атаки в масштабе.

uRPF (Unicast Reverse Path Forwarding) — data-plane механизм. Когда пакет приходит на интерфейс, роутер проверяет: «маршрутизировал бы я пакет обратно к source IP через этот же интерфейс?» Если нет — source подделан, дропнуть. uRPF в strict mode требует чтобы обратный путь использовал тот же интерфейс; loose mode просто требует чтобы source был маршрутизируем. Развёртывается на клиентских портах роутера, не в core.

BGP-хайджеки и RPKI

BGP-хайджек: мошенническая AS анонсирует префикс которым не владеет. Пример: AS12345 анонсирует 203.0.113.0/24 хотя он принадлежит AS64512. Соседние AS могут принять анонс (в BGP нет встроенной аутентификации). Трафик к этому префиксу перенаправляется в AS12345. Сервисы легитимного владельца становятся недоступны или трафик перехватывается.

RPKI (Resource Public Key Infrastructure): криптографическая система связывающая IP-префиксы с номерами AS.

  1. Владелец префикса создаёт Route Origin Authorisation (ROA): «Только AS64512 может анонсировать 203.0.113.0/24.» ROA подписывается и публикуется у RIR владельца (RIPE, ARIN и т.д.).
  2. Роутеры настроенные для Route Origin Validation (ROV) получают подписанные ROA-данные из доверенных репозиториев и помечают BGP-маршруты как valid, invalid или not-found.
  3. ROV-enabled роутеры отбрасывают анонсы origin-AS которые не совпадают с ROA — invalid маршруты фильтруются.

Развёртывание: Tier-1 ISP в основном развернули ROV к 2026; мелкие ISP отстают. Трекер Cloudflare «Is BGP safe yet?» измеряет охват. Пока нет почти универсального развёртывания — хайджеки случаются ежемесячно.

Подводный камень RPKI: у ROA есть сроки действия, как у TLS-сертификатов. Если допустить истечение ROA, ваш префикс становится not-found, и консервативные ROV-enabled ISP могут дропать ваши маршруты. Мониторьте истечение ROA как любой сертификат.

Проследи
1/5

Старшего NetOps-инженера вызывают: клиент сообщает что его сайт example.com недоступен у одного ISP. Проследите диагностику.

1
Step 1 of 5
Шаг 1: с вашей машины вы можете достичь example.com?
2
Locked
Шаг 2: traceroute с узла внутри затронутого ISP показывает что пакеты останавливаются на 5-м хопе.
3
Locked
Шаг 3: проверьте BGP. Префикс недоступен из этой AS.
4
Locked
Шаг 4: оказывается RPKI invalid — срок действия ROA вашего префикса истёк.
5
Locked
Шаг 5: постмортем-исправление?

DDoS на IP-уровне

Volumetric-атаки флудят цель пакетами превышая пропускную способность линка или лимиты kernel-state. Защита:

  • Tier-1 скрубберы (Cloudflare Magic Transit, Akamai Prolexic, AWS Shield Advanced): стоят выше по потоку, анонсируют BGP-маршруты притягивая трафик через скрубберы, дропают атакующий трафик, реинжектируют легитимный.
  • Anycast-поглощение: распределение префикса по сотням POP’ов означает что каждый поглощает часть объёма атаки.
  • Валидация источника (BCP 38) у source ISP устраняет spoofed amplification-пакеты у источника — единственное крупнейшее одностороннее исправление, но принятие неравномерно.

IP-фрагментация как риск безопасности. Некоторые firewall’ы инспектируют только первый фрагмент, позволяя атакующим прятать вредоносный payload в последующих фрагментах. Современные firewall’ы переcобирают перед инспекцией, но это потребляет память (поверхность атаки). Запрет IPv6 на фрагментацию роутерами устраняет эту поверхность атаки.

Инструменты операционной наблюдаемости

ИнструментЧто показывает
traceroute / mtrПуть + потери/задержка per-hop
tcpdumpЗахват сырых пакетов
ip route showТаблица маршрутизации Linux
ip -s linkСтатистика интерфейса: дропы, ошибки
BGP looking-glassТаблица маршрутов изнутри ISP
RIPE AtlasКраудсорсные глобальные измерения (13k+ зондов)
sFlow/NetFlow/IPFIXАналитика трафика с сэмплированием

Looking-glass серверы (например lg.he.net для Hurricane Electric) открывают BGP и traceroute изнутри ISP-сетей — необходимо для диагностики того правильно ли ваш префикс анонсируется с точки зрения удалённой AS.

Революция data plane

Современные роутеры не используют kernel IP forwarding для line-rate работы. Программируемые ASIC (Tofino, Broadcom Trident) реализуют форвардинг в hardware на терабитах в секунду. Software data planes (DPDK, eBPF/XDP в Linux) переносят обработку пакетов в userspace или just-above-kernel для гибкости при высокой пропускной способности.

Nitro-карты AWS полностью разгружают сетевую виртуализацию с VM-хостов. Когда вы управляете load balancer’ом или firewall’ом в значимом масштабе, производительность зависит от архитектуры data plane не меньше чем от протокола маршрутизации — и баги в data plane проявляются как тихая потеря пакетов, а не очевидные крэши.

Найди ошибку

Вывод mtr с потерями пакетов — диагностируйте

log
$ mtr -rwc 50 dest.example.com
HOST: my-host                  Loss%  Snt   Last   Avg  Best  Wrst StDev
1.|-- 192.168.1.1             0.0%   50    1.2   1.3   1.0   2.5   0.3
2.|-- isp-edge.example.net    0.0%   50    8.1   8.5   7.9   9.8   0.4
3.|-- core-rtr-1.tier1.net    0.0%   50   12.4  12.7  12.1  13.5   0.3
4.|-- core-rtr-2.tier1.net    0.0%   50   25.8  26.2  25.5  27.0   0.3
5.|-- peering.transit.net    14.0%   50   55.2  56.8  54.0  92.5  10.2
6.|-- ???                   100.0%   50    0.0   0.0   0.0   0.0   0.0
7.|-- dest.example.com        0.0%   50   71.3  72.0  70.5  75.1   0.8

Хоп 5 показывает 14% потерь + высокое jitter, хоп 6 показывает 100% потерь, но хоп 7 показывает 0%. Что происходит?

Викторина

Что рекомендует BCP 38 (RFC 2827)?

Какой RFC?

Какой RFC определяет базовый формат IPv6-пакета включая фиксированный 40-байтный заголовок?

Почему это работает

Почему развёртывание RPKI медленное несмотря на хайджеки. RPKI требует: (1) чтобы каждый владелец префикса зарегистрировал ROA у своего RIR; (2) чтобы каждый оператор роутеров получал RPKI-данные, валидировал и дропал invalid — операционные накладные расходы + риск ложных срабатываний; (3) чтобы сама RPKI-инфраструктура была доступна (сбой Cloudflare RPKI в 2022 вызвал флапинг маршрутов). Проблема курицы и яйца: частичное развёртывание помогает, но полная выгода требует почти универсального принятия. Tier-1 ISP в основном развертывают ROV; мелкие ISP отстают. Траектория ясна — RPKI в конечном счёте будет дефолтом — но «в конечном счёте» продолжается уже пять лет.

Вспомните перед уходом
  1. 01
    Объясните почему существует RPKI и почему развёртывание было медленным.
  2. 02
    Как работает DNS amplification и почему BCP 38 предотвращает его?
  3. 03
    MTR-трасса показывает 0% потерь на хопе 7 (назначение) но 100% потерь на хопе 6. Что почти наверняка верно о хопе 6?
Итог

IP не имеет встроенной аутентификации source — любой хост может подделать любой source IP — и нет аутентификации маршрутов — любая AS может анонсировать любой префикс. Egress filtering BCP 38 блокирует spoofed пакеты у ~60% ISP, предотвращая amplification-атаки где поддельные UDP-пакеты атакующего отражают большие ответы на жертв. RPKI связывает префиксы с номерами AS через подписанные ROA; ROV-enabled роутеры дропают BGP-анонсы из неавторизованных AS. Развёртывание неполное, поэтому BGP-хайджеки случаются регулярно. DDoS-митигация объединяет anycast (распределяет атаку по POP’ам), upstream скрубберы (Cloudflare Magic Transit, AWS Shield) и BCP 38. Современные data plane роутеров используют ASIC или eBPF/XDP для line-rate форвардинга; баги проявляются как тихая потеря пакетов. Операционные инструменты: mtr для пути + потерь, tcpdump для захвата сырого трафика, BGP looking-glass для удалённых просмотров маршрутов, RIPE Atlas для глобальных измерений.

Связанные уроки
Продолжить восхождение ↑IP-пакеты: тест с выбором ответа
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources4
expand
  1. 01
  2. 02
  3. 03
  4. 04

Trademarks belong to their respective owners. Editorial reference only.