Введение

BGP-хиджакинг (иногда называемый также захватом префиксов, захватом маршрутов или IP-хиджакингом) — это несанкционированное перенаправление трафика, предназначенного для групп IP-адресов, осуществляемое путем манипулирования таблицами маршрутизации в Интернете, которые поддерживаются с помощью протокола пограничного маршрутизации BGP (Border Gateway Protocol).

Предыстория

Интернет — это глобальная сеть, которая позволяет любому подключенному хосту, идентифицируемому по уникальному IP-адресу, взаимодействовать с любым другим хостом в любой точке мира. Это достигается путем передачи данных от одного маршрутизатора к другому, последовательно приближая каждый пакет к месту назначения, пока он не будет доставлен. Для этого каждый маршрутизатор должен регулярно получать актуальные таблицы маршрутизации. На глобальном уровне отдельные IP-адреса группируются в префиксы. Эти префиксы исходят от или принадлежат автономной системе (АС), а таблицы маршрутизации между АС поддерживаются с использованием протокола Border Gateway Protocol (BGP). Группа сетей, работающих в соответствии с единой внешней политикой маршрутизации, называется автономной системой. Например, Sprint, Verizon и AT&T являются АС. Каждая АС имеет свой уникальный идентификатор АС. BGP — это стандартный протокол маршрутизации, используемый для обмена информацией о IP-маршрутизации между автономными системами. Каждая АС использует BGP для объявления префиксов, к которым она может доставлять трафик. Например, если префикс сети находится внутри АС 64496, то эта АС будет рекламировать своему провайдеру и/или пирингу, что она может доставлять любой трафик, предназначенный для. Хотя для BGP доступны расширения безопасности и существуют сторонние базы данных маршрутов для проверки маршрутов, по умолчанию протокол BGP разработан для доверия всем объявлениям маршрутов, отправленным пирингами. Лишь немногие интернет-провайдеры строго контролируют BGP-сессии.

Угон BGP и проблемы транзитных систем

Как и атака сбросом TCP-соединения, перехват сеанса предполагает вторжение в текущий сеанс BGP, то есть злоумышленник успешно выдает себя за одного из пиров в сеансе BGP и требует той же информации, которая необходима для осуществления атаки сброса. Отличие заключается в том, что атака перехвата сеанса может быть разработана для достижения большего, чем просто разрыв сеанса между пирами BGP. Например, целью может быть изменение маршрутов, используемых пиром, для облегчения перехвата трафика, создания "черной дыры" или анализа трафика. По умолчанию, пиры eBGP будут пытаться добавить все маршруты, полученные от другого пира, в таблицу маршрутизации устройства, а затем попытаются анонсировать почти все эти маршруты другим пирам eBGP. Это может стать проблемой, поскольку организации с множественной связностью могут непреднамеренно анонсировать префиксы, полученные от одной AS к другой, в результате чего конечный клиент станет новым, лучшим путем к этим префиксам. Например, клиент с маршрутизатором Cisco, взаимодействующий, скажем, с AT&T и Verizon и не использующий фильтрацию, автоматически попытается связать двух крупных операторов, что может привести к тому, что провайдеры предпочтут отправлять часть или весь трафик через клиента (возможно, по линии T1), вместо использования высокоскоростных выделенных каналов. Эта проблема может затронуть и других пиров этих двух провайдеров, а также заставить эти AS предпочесть неправильно настроенный канал. В реальности эта проблема почти никогда не возникает у крупных интернет-провайдеров, поскольку они, как правило, ограничивают то, что конечный клиент может анонсировать. Однако любой интернет-провайдер, не фильтрующий анонсы клиентов, может допустить распространение некорректной информации в глобальной таблице маршрутизации, что может повлиять даже на крупных провайдеров Tier 1. Концепция BGP-хиджекнинга (перехвата) заключается в поиске интернет-провайдера, который не фильтрует анонсы (намеренно или нет), или в поиске интернет-провайдера, чей внутренний или межпровайдерский сеанс BGP подвержен атаке "человек посередине". Обнаружив это, злоумышленник потенциально может анонсировать любой желаемый префикс, в результате чего часть или весь трафик будет перенаправлен от реального источника к злоумышленнику. Это может быть сделано либо для перегрузки интернет-провайдера, в который проник злоумышленник, либо для осуществления DoS-атаки или атаки, выдающей себя за другую сущность, чей префикс анонсируется. Нередко злоумышленник может вызвать серьезные сбои, вплоть до полной потери связи. В начале 2008 года трафик по крайней мере восьми университетов США был перенаправлен в Индонезию примерно на 90 минут утром в результате атаки, о которой вовлеченные стороны в основном умалчивали. Кроме того, в феврале 2008 года большая часть адресного пространства YouTube была перенаправлена в Пакистан, когда PTA решила заблокировать доступ к сайту изнутри страны, но случайно создала "черную дыру" для маршрута в глобальной таблице BGP. Хотя фильтрация и защита MD5/TTL уже доступны для большинства реализаций BGP (что предотвращает источник большинства атак), проблема заключается в том, что интернет-провайдеры редко фильтруют анонсы от других интернет-провайдеров, поскольку нет общепринятого или эффективного способа определить список допустимых префиксов, которые может анонсировать каждая AS. Последствия распространения некорректной информации могут варьироваться от простой фильтрации другими/более крупными интернет-провайдерами до полного разрыва сеанса BGP соседним интернет-провайдером (что приведет к прекращению пиринга между двумя провайдерами), а повторные проблемы часто приводят к окончательному прекращению всех соглашений о пиринге. Также стоит отметить, что даже если крупный провайдер заблокирует или отключит более мелкого, проблемного провайдера, глобальная таблица BGP часто будет перенастраиваться и перенаправлять трафик по другим доступным маршрутам, пока все пиры не примут меры или пока проблемный провайдер не устранит проблему в источнике. Одним из полезных применений этой концепции является BGP anycasting, который часто используется корневыми DNS-серверами, чтобы позволить нескольким серверам использовать один и тот же IP-адрес, обеспечивая избыточность и защиту от DoS-атак без публикации сотен IP-адресов серверов. Отличие в этой ситуации заключается в том, что каждая точка, анонсирующая префикс, фактически имеет доступ к реальным данным (DNS в данном случае) и правильно отвечает на запросы конечных пользователей.