В последние месяцы наблюдается заметный рост случаев захвата учетных записей, при которых злоумышленники применяют протокол IPv6 нестандартным образом. Они используют огромное адресное пространство для того, чтобы каждая попытка входа выглядела так, будто исходит из нового, ранее не встречавшегося источника. В результате защитные механизмы, построенные на блокировке отдельных IP-адресов или на накоплении репутации конкретного адреса, фактически перестают работать.
Описание
Обычно для таких атак характерно то, что каждый запрос на авторизацию отправляется с нового случайного адреса внутри выделенного злоумышленнику диапазона. Такой диапазон может принадлежать интернет-провайдеру, хостинг-компании или даже облачному сервису. Размер диапазона настолько велик, что позволяет использовать новый адрес для каждой попытки без какого-либо риска исчерпать пул. С точки зрения системы все выглядит как обращения с тысяч разных устройств, хотя на самом деле это один и тот же сервер, который просто меняет свой сетевой адрес.
По данным проведённого анализа, количество адресов в одном выделенном блоке может достигать десятков октиллионов. Для сравнения, весь адресный ресурс протокола IPv4 в десятки квинтиллионов раз меньше. Это означает, что у злоумышленника нет необходимости экономить адреса: каждый следующий запрос может исходить с совершенно нового уникального адреса, который ни разу не использовался ранее. Подобные схемы перестали быть единичными и встречаются у самых разных поставщиков услуг.
В одном из замеченных инцидентов использовался большой диапазон, принадлежавший организации LSHIY LLC. Все атаки исходили из одного блока, который включает примерно 79 октиллионов адресов, причем фактически это была одна машина. Похожую активность зафиксировали в адресных пространствах компании Hurricane Electric, предоставляющей услуги туннелирования IPv6 через IPv4, а также крупных хостинг-провайдеров OVH, Clouvider, Hostinger, Linode, Vultr и Hetzner. Многие из них выдают каждому виртуальному серверу по умолчанию целый блок адресов, что для IPv6 является стандартной практикой.
Однако защитные системы многих организаций до сих пор ориентируются на устаревшую модель "заблокировать один адрес". Это делает их бесполезными перед атаками, где каждый следующий шаг исходит из новой точки. Даже инфраструктура Cloudflare, используемая через клиент или сервисы развертывания страниц, в ряде случаев применялась для подобных действий, хотя задействованные диапазоны официально не документированы. Особенно остро проблема стоит перед корпоративными системами идентификации.
Анализ журналов аутентификации показал, что встроенная репутационная система Microsoft Entra ID (ранее Azure Active Directory) пропускает подавляющее большинство атакующих IPv6-адресов. Несмотря на то что Microsoft блокирует вход с адресов, отмеченных как вредоносные, в реальных данных под эту фильтрацию попадает лишь незначительная часть случаев. Причина в том, что репутация ведется для отдельных адресов, а не для их диапазонов. Злоумышленники же каждый раз используют новый адрес, поэтому их активность остается незамеченной.
Исследователи подчеркивают: при расследовании инцидентов с подозрительной IPv6-активностью не стоит рассматривать отдельный адрес в отрыве от того блока, частью которого он является. Хостинг-провайдеры редко выделяют клиенту один-единственный адрес, обычно это диапазон с префиксом не менее /64. Поэтому для оценки угрозы необходимо изучать репутацию всего диапазона и его принадлежность конкретному интернет-регистратору. Обращение в базы данных угроз за поиском одного конкретного IPv6-адреса обычно не дает результата, поскольку такой адрес мог быть использован всего один раз и больше не встречаться.
В то же время формат самого адреса способен дать полезные подсказки. Если в его конце стоит простое значение, например единица, это часто указывает на ручную настройку, типичную для виртуального сервера. Более сложные и непредсказуемые окончания, как правило, генерируются автоматически при стандартной настройке сети. Простая структура может говорить о том, что злоумышленник использует лишь один адрес из доступного ему блока, но это не снимает необходимости в оценке репутации всего диапазона.
Следует проявлять осторожность в обе стороны: не нужно автоматически блокировать весь большой диапазон из-за одного подозрительного адреса, потому что так можно затронуть множество легитимных пользователей. Но и не стоит считать адрес безопасным лишь потому, что он не упоминается в открытых источниках угроз. По мнению аналитиков, создание эффективной системы репутации для IPv6 на уровне диапазонов - сложная задача, особенно для крупных провайдеров, поскольку границы выделенных клиентам блоков не всегда публикуются. Тем не менее игнорировать эту проблему больше нельзя.
Тенденция к использованию IPv6 для обхода защитных мер будет усиливаться, поскольку злоумышленники хорошо понимают уязвимость классических подходов. Организациям, которые полагаются на встроенную репутацию при блокировке попыток входа, стоит пересмотреть свою стратегию, уделяя внимание анализу целых диапазонов адресов и корреляции активности между ними. Это особенно важно для компаний, использующих облачные сервисы идентификации и рассчитывающих на автоматические механизмы защиты.
Индикаторы компрометации
IPv6
- 2607:5300:203:9e47:3197:77e0:4666:8831
- 2607:5300:203:9e47:4b0c:a303:b756:5ad8
- 2607:5300:203:9e61:125b:fda7:266f:9291
- 2607:5300:203:9e61:4f8e:e93a:d38b:3da5
- 2607:5300:203:9e70:50af:dfff:5215:cd6e
- 2a0a:d683:fb:ec75:65bd:9052:aacd:2d47
- 2a0a:d683:fb:f1f1:1b0a:a20c:9067:3212
- 2a0a:d683:fb:f93b:d170:1c46:a45a:7bbf
- 2a0a:d683:fb:fc56:ccf9:aeef:c366:d89f
- 2a0a:d683:fc:a408:7f56:b8af:c745:de0c
- 2a0a:d683:fc:d1f3:648:db7:6344:ff77
- 2a0a:d683:fd:1736:31eb:5c27:7ea0:4121
- 2a0a:d683:fd:38da:bd0c:bb3e:54fd:a134
- 2a0a:d683:fd:4c60:fbf4:dc31:c357:4c36
- 2a0a:d683:fd:8a56:e756:542e:2bf9:7b83
- 2a0a:d683:fd:97e5:cbd0:631d:c73d:9ef1
- 2a0a:d683:fd:bbab:b8a5:577b:a689:bd7f
- 2a0a:d683:fd:f35b:d20b:cd65:3d1:8a0a
- 2a0a:d683:fe:1565:e2f4:832e:d369:7b69
- 2a0a:d683:fe:19b2:6872:e872:98ec:e88b
- 2a0a:d683:fe:d626:6c40:85c8:4203:c5d6
- 2a0a:d683:ff:1473:3829:1f98:70c1:72f0
- 2a0a:d683:ff:47b:b367:f8e4:770e:872