Представь междугороднюю трассу. Ты сел в бронированный автомобиль с тонированными стеклами (поднял стойкий криптографический туннель), заблокировал двери и поехал по навигатору в другой город. Вдруг на развилке дорожные рабочие в оранжевых жилетах выкатывают знак: «Основная трасса закрыта на ремонт. Новый объезд через карьер — на 15 минут быстрее».
Навигатор послушно перестраивает маршрут, ты поворачиваешь на грунтовку, и машина заезжает в закрытый ангар. Двери заблокированы, стекла целы, броня держит. Никто не пытается вскрывать салон ломом. Тебя просто загоняют на весы, просвечивают рентгеном, фотографируют номера, переписывают вес груза и замеряют тепловой след двигателя, после чего открывают ворота с другой стороны и выпускают обратно на шоссе.
Ты доехал до точки вовремя. Никаких ошибок соединения, шифрование не взломано. Но вся информация о том, куда, когда и с какой скоростью ты двигался, осела на чужих накопителях.
Примерно так работает BGP Hijacking (перехват маршрутов на уровне автономных систем). Цензорам и спецслужбам больше не нужно взламывать 256-битные ключи. Достаточно шепнуть соседним магистральным маршрутизаторам одну маленькую ложь: «Через меня этот трафик пройдет быстрее».
Стоп. Если вы до сих пор верите, что VPN с иконкой зеленого щита защищает от перехвата на уровне оптических магистралей — закрывайте вкладку. Живите в уверенности, что интернет состоит из прямых проводов.
Но если вы настраивали пиринговые стыки, знаете, как выглядит таблица RIB, и хотите понять, почему RPKI в половине мировых транзитов до сих пор остается декорацией для красивых отчетов — добро пожаловать под капот глобальной маршрутизации.
Архитектурная дыра протокола доверия: как устроен протокол BGP
Глобальный интернет держится на пограничном протоколе шлюзов — Border Gateway Protocol (BGP-4). Это закрытый клуб автономных систем (ASN), построенный в восьмидесятых годах прошлого века на абсолютном, слепом взаимном доверии.
Маршрутизаторы не проверяют физическое существование трассы. Они обмениваются сообщениями BGP UPDATE, где заявляют сетевые префиксы.
Манипуляция маршрутом строится на двух уязвимостях логики выбора пути (BGP Best Path Selection):
- Правило наибольшей специфичности (Longest Prefix Match).
- Если легитимный дата-центр анонсирует крупную сеть
/22(например,198.51.100.0/22), а атакующий транзитный узел анонсирует из глубины своей сети два узких префикса/24(198.51.100.0/24и198.51.101.0/24), глобальная сеть всегда направит трафик по более специфичному маршруту. Магистральные маршрутизаторы даже не посмотрят на репутацию источника — логика протокола приказывает слать пакеты туда, где маска длинее. - Атака AS-Path Prepending и Poisoning.
- В случае перехвата «чужой» префикс инжектируется в таблицу с фальсифицированным списком автономных систем (
AS_PATH). Чтобы заставить пакеты пройти через конкретную инспекционную площадку (например, зеркало с DPI-кластером), узел искусственно укорачивает длину пути или отравляет атрибутыMED(Multi-Exit Discriminator) иLocal Preferenceна стыках с доверчивыми аплинками.
Зачем уводить трафик, если внутри туннеля шифр?
Главное заблуждение сетевых инженеров начального уровня — уверенность в том, что шифрованный туннель (WireGuard, IPsec, OpenVPN) делает перехват маршрута бесполезным.
Когда трафик перенаправлен через подконтрольный узел-перехватчик, атакующей стороне не требуется расшифровывать полезную нагрузку на лету:
- Корреляция таймингов и объемов (Traffic Analysis & Metadata Correlation).
- Сопоставляя входящий поток с клиентского IP и исходящий поток из точки терминации туннеля по миллисекундным всплескам и размерам MTU, система деанонимизирует конечные адреса посещаемых ресурсов со статистической точностью выше 94%.
- Активное исчерпание сессий (Selective RST Injection).
- Находясь на пути прямого следования трафика (on-path), перехватчик может избирательно внедрять фальшивые
TCP RSTили сбрасыватьKeep-Aliveпакеты туннеля, вынуждая клиентское приложение падать в незащищенный резервный канал или перезапрашивать сессии через скомпрометированные DNS. - Man-in-the-Middle на этапе рукопожатия TLS.
- Если туннель использует классический TLS-прокси без жесткого пиннинга сертификатов и эмуляции поведения браузера, транзитный узел выдает поддельный сертификат от доверенного национального удостоверяющего центра, который принудительно зашит в клиентские операционные системы.
Почему RPKI (ROA) не спасает на 100%
Криптографическая подпись маршрутов — RPKI (Resource Public Key Infrastructure) — призвана защитить сеть от фейковых анонсов через создание объектов ROA (Route Origin Authorization). Но на практике архитектура имеет критические слепые зоны:
- Отсутствие валидации пути (BGPsec мертв).
- RPKI проверяет только начальную автономную систему (Origin AS), заявившую префикс. Протокол не валидирует цепочку промежуточных транзитных провайдеров внутри атрибута
AS_PATH. Атакующему достаточно включить легитимный номер целевой AS в конец списка своего фейкового анонса, и валидатор признает маршрут корректным (Valid). - Политика Soft-Fail у аплинков.
- Многие Tier-1 и Tier-2 операторы для сохранения связности настроены в режиме мягкой деградации: при получении маршрута со статусом
NotFound(когда владелец префикса не создал запись ROA) трафик продолжает маршрутизироваться без ограничений.
Инженерный протокол защиты: выстраивание эшелонированной обороны
Защита сетевого периметра от транзитного перехвата требует мер не только на стороне сервера, но и на физическом уровне клиентского маршрутизатора.
- Внедрение строгой валидации RPKI на пограничных BGP-сессиях.
- Если вы держите собственную автономную систему (BGP Anycast / Multihoming), на всех eBGP-пирах активируется жесткий дроп невалидных анонсов:
- Plaintext
# Пример директивы для BIRD2
roa table r4;
protocol rpki {
roa4 { table r4; };
remote "rpki-validator.local" port 8282;
}
# В фильтре импорта:
if roa_check(r4, net, bgp_path.last) = ROA_INVALID then {
reject "Drop: RPKI invalid route detected";
}
- Использование транспортных протоколов с маскировкой размера пакета (Flow Padding).
- Отказ от статических заголовков WireGuard в открытом виде на трансграничных каналах. Переход на связку
VLESS + REALITYс обязательным включением механизмов рандомизации пакетов (Vision). Это исключает идентификацию типа трафика системами анализа потоков (NetFlow/IPFIX) на узлах перехвата. - Мониторинг аномалий префиксов в реальном времени.
- Подключение публичных систем раннего оповещения (BGPmon, RIPE RIS, Cloudflare Radar Alerts). Настройка автоматических триггеров: если префикс вашей сети анонсируется через неожиданную промежуточную AS, скрипты на пограничном маршрутизаторе должны немедленно отзывать проблемный префикс и переключать трафик на резервные туннельные интерфейсы через альтернативные автономные системы.
- TCP MD5 / BGP Keychain Authentication.
- Все прямые пиринговые сессии с аплинками обязаны быть зашифрованы криптографическими ключами аутентификации (TCP Authentication Option, TCP-AO), исключающими инъекцию поддельных пакетов
BGP UPDATEтретьими лицами на физическом сегменте между вами и провайдером.
В глобальной сети не существует безопасных географических зон. Пока архитектура интернета доверяет чужим маршрутным таблицам без тотальной проверки каждого сегмента пути, шифрование на конечных точках решает лишь половину задачи. Реальная безопасность начинается там, где инженер контролирует не только алгоритм шифрования, но и физический вектор движения каждого байта через мировые магистрали.