- PVSM.RU - https://www.pvsm.ru -
Статья поделена на три части части. В первой содержится общая информация о том что такое BGP hijacking и его традиционный вариант. Для тех кто знаком с этим явлением, рекомендуется перейти сразу ко второй части. Во второй части будет описан метод анонсирования чужих префиксов с помощью добавления чужой AS в свой AS-SET. В третьей части, будет сделана оценка сложности использования метода, описанного во второй части, для захвата IP-адреса ресурса torproject.org и выписки сертификата для него. Предполагается, что читатель знаком с принципами работы BGPv4.
Если в двух словах, то BGP hijacking это захват чужих IP-адресов (случайный или преднамеренный).
Обычно, BGP hijacking выглядит таким образом: AS, которой не принадлежит какой-то префикс начинает его (чужой префикс) анонсировать, аплинки/пиры его принимают, и он начинает распространяться по Интернет. Принимают они его по той причине, что нет фильтрации префиксов на стыке (либо это ошибка конфигурации, либо так задумано (т.к. построить префикс-фильтр на стыке с очень крупными операторами очень сложно ввиду различных причин, для этой статьи это не важно)). Один из самых громких примеров недавнего времени, когда Ростелеком (AS12389) начал анонсировать [1] префиксы Mastercard (AS26380), Visa и некоторых других финансовых организаций (по официальной версии [2], в результате сбоя ПО). Как выглядели эти анонсы, можно посмотреть в истории bgplay (просмотр через web [3], json [4] (архив [5])), вот один из них на одном из коллекторов RIPE (префикс 216.119.216.0/24 принадлежит Mastercard (AS26380)):
"source_id": "05-193.203.0.185",
"path": [
6939,
12389
],
"community": [],
"target_prefix": 216.119.216.0/24
А вот как выглядел настоящий анонс:
"source_id": "05-193.203.0.63",
"path": [
6720,
8447,
32787,
26380,
26380,
26380
],
"community": [
"1120:1"
],
"target_prefix": 216.119.216.0/24
Т.е. в данном случае Ростелеком анонсировал префикс непосредственно от своей AS (последняя AS в AS-PATH — 12389). Проблемы можно было бы избежать, если бы аплинки и пиры Ростелекома фильтровали префиксы от Ростелеком путём построения префикс-листов [6] по AS-SET и/или валидировали префиксы по ROA RPKI [7]. Построение префикс-листов между крупными операторами зачастую не делается, а RPKI тоже внедрили далеко не все (но прогресс [8] есть). Такой hijacking, теоретически, может совершить кто угодно, но только если анонсируемый префикс «просочится» через хотя бы один аплинк/пир. Обычно, крупные операторы России настраивают префикс-фильтры в сторону своих клиентов и поэтому, небольшие AS (маленькие/средние операторы, некоторые хостинги и некоторые предприятия), почти всегда, такую атаку совершить не могут (но опять же, это всё зависит от региона/страны/конкретного оператора).
Однако, злоумышленники всё-таки находят места (аплинков), где фильтрация не настроена (В 2017 году лидером по hijacking [9]была Бразилия) и осуществляют атаку захват IP-адресов (зачастую, такие события попадают в новостные ленты), для большей эффективности атаки, могут анонсировать более специфичные префиксы (с более длинной маской), чем настоящий оригинатор. Теперь перейдём к варианту атаки, где не спасают ни валидация по ROA RPKI, ни префикс-листы, построенные по AS-SET.
Рассмотрим следующий сценарий:
В теории, это довольно сильная атака, но к счастью, на практике возникнут следующие ограничения:
Возможные меры защиты:
По факту, для большинства читателей единственный применимый для них совет это №2 (относительно использования account в CAA-записи) и частично №1 в контексте выбора хостера с хорошей связностью. При этом нужно помнить про возможные атаки на DNS-сервис, в котором вы хостите свои записи (но это отдельный вопрос и по нему имеется много материалов)
Злоумышленнику нужно решить две задачи:
Вводные:
$ dig torproject.org CAA +short
128 issuewild ";"
0 iodef "mailto:torproject-admin@torproject.org"
128 issue "globalsign.com"
128 issue "letsencrypt.org"
$ dig torproject.org +short
95.216.163.36
138.201.14.197
Как видно, CAA-запись есть, можно получить сертификат у letsencrypt, к аккаунту привязки нет в CAA-записи, значит задача теоретически решаема злоумышленником. IP-адреса домена torproject.org принадлежат довольном известному Hezner.
Допустим, ЦА злоумышленника это клиенты какого-нибудь российского оператора. Hezner не является клиентом российских операторов (но имеет пиринг с крупными — напрямую или через IX-ы). Чтобы злоумышленнику перенаправить трафик ЦА к себе, проще всего, стать клиентом этого оператора и просто выиграть за счёт более высокого local-pref. Здесь особо всё относительно просто и понятно.
Чтобы получить сертификат в letsencrypt, нужно чтобы провайдер, в котором
Если подвести итог, то путём добавления чужой AS в свой AS-SET можно вызвать значительную деградацию веб-сайта torproject.org (для большого количества клиентов, но не для всех в общем случае), но получить SSL-сертификат torproject.org в letsencrypt, скорее всего, не получится из-за хорошей связности между настоящим оригинатором (Hezner) и CDN, который используется letsencrypt (Akamai). Однако в других случаях, когда между
Автор: in_heb
Источник [16]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/311126
Ссылки в тексте:
[1] начал анонсировать: https://www.opennet.ru/opennews/art.shtml?num=46469
[2] официальной версии: https://www.kommersant.ru/doc/3283681
[3] просмотр через web: https://stat.ripe.net/widget/bgplay#w.resource=216.119.216.0/24&w.ignoreReannouncements=false&w.starttime=1493246204&w.endtime=1493332800&w.rrcs=5&w.instant=null&w.type=bgp
[4] json: https://stat.ripe.net/data/bgplay/data.json?endtime=1493332800&resource=216.119.216.0%2F24&rrcs=5&starttime=1493246204&unix_timestamps=TRUE
[5] архив: https://www.pvsm.ruhttp://web.archive.org/web/20190306091857/https://stat.ripe.net/data/bgplay/data.json?endtime=1493332800&resource=216.119.216.0%2F24&rrcs=5&starttime=1493246204&unix_timestamps=TRUE
[6] построения префикс-листов: https://peering.readthedocs.io/en/latest/PrefixLists.html
[7] валидировали префиксы по ROA RPKI: https://habr.com/ru/post/211146/
[8] прогресс: https://rpki-monitor.antd.nist.gov
[9] лидером по hijacking : https://blog.apnic.net/2018/01/24/14000-incidents-routing-security-2017/
[10] RFC6844: https://tools.ietf.org/html/rfc6844
[11] драфт: https://tools.ietf.org/html/draft-azimov-sidrops-aspa-verification-01
[12] хостингу: https://www.reg.ru/?rlink=reflink-717
[13] API: https://learn.akamai.com/en-us/products/core_features/diagnostic_tools.html
[14] peering db: https://www.peeringdb.com/net/2
[15] hezner: https://www.peeringdb.com/net/1766
[16] Источник: https://habr.com/ru/post/442784/?utm_source=habrahabr&utm_medium=rss&utm_campaign=442784
Нажмите здесь для печати.