The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Атака с использованием вредоносных устройств с интерфейсом Thunderbolt

27.02.2019 10:54

Группа исследователей из Кембриджского университета представила новый вид атак Thunderclap (PDF), позволяющий получить доступ к содержимому всей памяти компьютера при подключении специально модифицированных периферийных устройств с интерфейсом Thunderbolt. Проблема проявляется в Windows, мacOS, Linux и FreeBSD. Для демонстрации атаки на основе FPGA Arria 10 исследователями подготовлен прототип вредоносного устройства, а также эмулятор вредоносной сетевой карты на базе QEMU и необходимая для атаки программная начинка.

В отличие от атак BadUSB, в которых вредоносное USB-устройство эксплуатирует уязвимости в USB-стеке или притворяется USB-клавиатурой или сетевой картой для подстановки данных или перенаправления трафика, атака Thunderclap основана на методе обхода ограничений IOMMU и использовании DMA для выполнении операций в режиме прямого доступа устройства к памяти. При помощи DMA периферийное устройство может выполнить чтение и запись в любую область системной памяти. Для ограничения доступа через DMA в операционных системах и хост-контроллерах обычно применяется IOMMU (Input-Ouptut Memory Management Unit), который должен блокировать возможность совершения подобных атак и ограничивать доступ только к явно определённым областям совместно используемой памяти.

На деле ограничения IOMMU оказалось легко обойти во всех протестированных операционных системах путём симулирования подключения сетевого адаптера, для работы c которым операционной системой применяются иные методы взаимодействия без использования IOMMU. Особенности обработки пакетов с сетевой карты не позволяют в полной мере применять IOMMU, так как возникают существенные накладные расходы, заметно снижающие производительность. Например, в Linux можно полностью обойти защиту IOMMU через установку определённых флагов в сообщениях, отправляемых сетевой картой.

Более того, некоторые операционные системы обычно размещают различные внутренние структуры в областях памяти которые также используются для взаимодействия с периферийными устройствами, что позволяет осуществить атаку даже при применении IOMMU. Например, область памяти, используемая для отправки и получения пакетов, позволяет вредоносному устройству получить доступ к данным Unix-сокетов или незашифрованным данным, предназначенным для отправки через VPN. Кроме того, в случае использование общей памяти для всех устройств, одно устройство может получить доступ к данным других устройств, например, вредоносный сетевой адаптер может прочитать содержимое информации на экране или перехватить клавиатурный ввод.

Воспользовавшись предложенной техникой злоумышленник, имеющий физический доступ к компьютеру жертвы, во время отсутствия пользователя может подключить через порт Thunderbolt (в том числе Thunderbolt 3 поверх USB Type-C, Mini DisplayPort и PCI Express) специально подготовленное устройство и получить полный контроль за системой, в том числе извлечь из памяти конфиденциальные данные, такие как ключи доступа и платёжные идентификаторы, или организовать выполнение кода с максимальными привилегиями. Атака также может быть проведена для интеграции скрытой вредоносной функциональности в различное периферийное оборудование, такое как зарядные устройства и проекторы.

В Linux исправления, блокирующие проблему, будут предложены в ядре 5.0, выпуск которого запланирован на следующую неделю. Защита реализована через обязательное применение IOMMU для Thunderbolt и блокирование обходных путей работы в обход IOMMU, основанных на использовании ATS (Address Translation Services) в PCI Express. Также сообщается, что во многих дистрибутивах Linux, включая Ubuntu, Fedora и RHEL, для оптимизации производительности IOMMU для Thunderbolt не включен по умолчанию.

Разработчики FreeBSD посчитали проблему не заслуживающей исправления, так как в данной ОС не поддерживается горячее подключение Thunderbolt-устройств. В macOS 10.12.4 добавлена блокировка конкретной атаки на базе сетевой карты, но сама уязвимость остаётся неисправленной. В Windows поддержка IOMMU для Thunderbolt добавлена в обновлении Windows 10-1803, до этого IOMMU не применялся.

В качестве обходного пути защиты рекомендуется отключить Thunderbolt в настройках BIOS/UEFI или дополнительно использовать USB-хаб без поддержки Thunderbolt, не позволяющий перевести порт USB-C в режим Thunderbolt. Также рекомендуется не оставлять свой ноутбук во включенном состоянии без присмотра и не пользоваться чужими зарядными устройствами с разъёмом USB-C. Производители были уведомлены о проблеме ещё в 2016 году и для выработки должного решения по блокированию уязвимости потребовалось почти три года.

Отмечается также дополнительный вектор проведения атаки через компрометацию прошивок изначально подключенных устройств с интерфейсом PCI Express. Например, после успешного взлома, эксплуатации уязвимостей в прошивках или на этапе доставки/производства оборудования в прошивки сетевых карт или BMC-контроллеров может быть интегрирована функциональность для скрытого получения полного доступа к памяти основной системы.

  1. Главная ссылка к новости (https://www.lightbluetouchpape...)
  2. OpenNews: Представлена техника атаки на микроконтроллеры, встроенные в MicroSD-карты
  3. OpenNews: Открыт код инструментария для проведения атак через модификацию прошивок USB-накопителей
  4. OpenNews: Атака на заблокированный ПК через USB
  5. OpenNews: Представлена техника атаки, позволяющая шпионить за соседними USB-устройствами
  6. OpenNews: Новый вид атак с использованием перепрограммированных USB-устройств
Лицензия: CC-BY
Тип: Интересно / Проблемы безопасности
Ключевые слова: thunderbolt
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (54) Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.5, Аномномномнимус (?), 11:34, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]
  • –1 +/
    А где посмотреть актуальный статус уязвимости разных ОС к BadUSB?
     
     
  • 2.7, Аноним (7), 11:55, 27/02/2019 [^] [ответить]    [к модератору]
  • –1 +/
    От BadUSB тебя ни одна ОС не спасёт.
     
     
  • 3.24, Аномномномнимус (?), 13:41, 27/02/2019 [^] [ответить]    [к модератору]
  • +1 +/
    Ну на тот же линух есть USBGuard хотябы как попытка отплеваться от залётных. А что есть например под десяточку и макось?
     
     
  • 4.28, хотел спросить (?), 14:18, 27/02/2019 [^] [ответить]    [к модератору]
  • –1 +/
    Не знаю про мак ОС, но на семерочке замечательно настраивается групповая политика, которая не разрешает устанавливать устройства в систему никому кроме админа.
    Притом админ должен явно это сделать в Device Manager.
    В линухе USB Guard вроде активно развивается.
    Так что вроде не так всё печально.
     
  • 4.37, Xasd (ok), 17:35, 27/02/2019 [^] [ответить]    [к модератору]
  • +1 +/
    > Ну на тот же линух есть USBGuard хотябы как попытка

    делать на каждую уязвимость по отдельной программе? (или по отдельной настройке?)

    нет.

    всё должно быть защищено *поумолчанию*.

    а иначе это ппц какой-то -- "озвучте перечень пожалуйста всех уязвимостей, против которых я должен установить дополнительные программы! (выполнить дополнительно изменение настроек)"

     
     
  • 5.44, Аномномномнимус (?), 19:14, 27/02/2019 [^] [ответить]    [к модератору]  
  • +/
    На autorun.inf тоже пожалуйтесь =)
     
  • 3.46, Аноним (46), 20:23, 27/02/2019 [^] [ответить]    [к модератору]  
  • +/
    Вообще-то спасёт. Только нужен iommu.
     
  • 2.57, КО (?), 11:27, 28/02/2019 [^] [ответить]    [к модератору]  
  • +/
    Если в твоей OS мышка и клавиатура подхватываются после того как ты их воткнул в USB разъем, без участия пользователя по старым девайсам, то OS уязвима. :)
     
  • 1.6, Аноним (-), 11:36, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • +3 +/
    Покупайте Talos II, там аппаратный IOMMU развернет куда подальше такое устройство.
     
     
  • 2.8, Анон Михайлович (?), 12:00, 27/02/2019 [^] [ответить]    [к модератору]  
  • –2 +/
    Да, неплохо. Что там насчёт атак расчитаных на спекулятивное выполнение в этом POWER9, типа Meldown и Spectre?
     
     
  • 3.11, Аноним (-), 12:05, 27/02/2019 [^] [ответить]    [к модератору]  
  • +5 +/
    Meltdown: Shipped without vulnerability to Meltdown.

    Spectre: Shipped with full, highly conservative Spectre mitigation by default, including both inter-process and intra-process mitigations. This carries a substantial performance cost compared to "mitigated" x86, which does not mitigate against intra-process Spectre.

    The intra-process Spectre mitigation may be disabled if desired, in order to obtain performance and protection comparable to "mitigated" x86. In this case, it is the responsibility of application programmers who require intra-process Spectre protection to apply mitigations such as retpoline.

     
  • 2.58, КО (?), 11:28, 28/02/2019 [^] [ответить]    [к модератору]  
  • +/
    Так и тут разворачивает, но хитрое ядро открывает калитку. :)
     
  • 1.9, ананим.orig (?), 12:02, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • –3 +/
    + все телефоны с usb-c.
     
     
  • 2.16, Аноним (-), 12:10, 27/02/2019 [^] [ответить]    [к модератору]  
  • +4 +/
    Уязвимость касается только thunderbolt разъемов с форм-фактором type-c. Обычному USB type-c ничего не грозит.
     
  • 2.38, Xasd (ok), 17:38, 27/02/2019 [^] [ответить]    [к модератору]  
  • +/
    > + все телефоны с usb-c.

    и с дырявым GSM-стеком.

    (а если телефон на Андроиде -- то вероятнее всего ещё и с дырявой версией linux-ядра)

     
     
  • 3.42, Аноним (42), 18:43, 27/02/2019 [^] [ответить]    [к модератору]  
  • +2 +/
    Как будто бывают недырявые.
     
  • 1.10, Аноним (10), 12:04, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • –8 +/
    > не пользоваться чужими зарядными устройствами с разъёмом USB-C

    USB-C очередное мертворожденное дитя современности. Его ни для usb ни для tb ни  даже для питания использовать нельзя, оказывается. (про usb- и tb- качества его см. https://habr.com/en/post/399413/ )

     
     
  • 2.12, Аноним (-), 12:07, 27/02/2019 [^] [ответить]    [к модератору]  
  • +/
    Уязвимость касается только thunderbolt разъемов с форм-фактором type-c. Обычному USB type-c ничего не грозит.
     
     
  • 3.14, Аноним (10), 12:08, 27/02/2019 [^] [ответить]    [к модератору]  
  • +1 +/
    как их отличить на корпусе?
     
     
  • 4.15, Аноним (-), 12:10, 27/02/2019 [^] [ответить]    [к модератору]  
  • +2 +/
    Никак, только смотреть на коробку устройства/сайт производителя/bios, там должны написать type-c это или thunderbolt. Ну ещё иногда бывает рядом с портом thunderbolt молния нарисована.
     
  • 4.36, анон (?), 17:00, 27/02/2019 [^] [ответить]    [к модератору]  
  • –1 +/
    рядом с разъемом указатель тандерболд в виде электрической молнии
     
  • 3.17, Аноним (-), 12:14, 27/02/2019 [^] [ответить]    [к модератору]  
  • +2 +/
    Написал криво, меня могут не так понять. Поправка: уязвимость касается всех thunderbolt в т.ч. с форм-фактором type-c. Обычному USB type-c ничего не грозит. К слову, в BIOS'е Thinkpad'ов можно включить режим display port and usb only, тогда у thunderbolt устройств не будет прямого доступа к памяти, но и поддерживаемое количество устройств снизится до usb/display port.
     
  • 3.51, КО (?), 09:54, 28/02/2019 [^] [ответить]    [к модератору]  
  • +/
    >Обычному USB type-c

    грозят обычные USB атаки.

     
     
  • 4.54, Аноним (54), 11:17, 28/02/2019 [^] [ответить]    [к модератору]  
  • +/
    Ага, только в комментарии выше говорилось конкретно про Thunderclap. А вообще, от BadUSB и подобных должен спасать вышеупомянутый USBGuard.
     
  • 1.13, Аноним (10), 12:08, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • +2 +/
    Не очень понятно, на что расчитывали, ведь, по сути TB - это PCIe, торчащий наружу. С точки зрения безопасности всегда было странно на это смотреть. Приснопамятный Firewire туда же.

    Тут другое вызывает раздражение - то, что физически разъем TB часто совпадает с USB и даже с зарядкой.

     
     
  • 2.29, J.L. (?), 14:26, 27/02/2019 [^] [ответить]    [к модератору]  
  • +/
    > Не очень понятно, на что расчитывали, ведь, по сути TB - это
    > PCIe, торчащий наружу. С точки зрения безопасности всегда было странно на
    > это смотреть. Приснопамятный Firewire туда же.
    > Тут другое вызывает раздражение - то, что физически разъем TB часто совпадает
    > с USB и даже с зарядкой.

    там как бы предполагается что безопасность от зловредного устройства обеспечивается через IOMMU, но как оказалось - в реальности это не так

     
     
  • 3.52, КО (?), 09:56, 28/02/2019 [^] [ответить]    [к модератору]  
  • +/
    >там как бы предполагается что безопасность от зловредного устройства обеспечивается через IOMMU

    Если построить забор то через него пройти тяжело, а если оставить открытую калитку (нам же надо 100500 мильёнов пакетов в секунду разруливать) то забор строили зря. :)

     
  • 1.18, corvuscor (ok), 12:17, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • +2 +/
    Еще хрен знает когда я читал, что подключение к PCI-e напрямую через мультиплексор является потенциально небезопасным.
    Ну вот, теперь петух клюнул куда положено.
     
     
  • 2.30, J.L. (?), 14:28, 27/02/2019 [^] [ответить]    [к модератору]  
  • +/
    > Еще хрен знает когда я читал, что подключение к PCI-e напрямую через
    > мультиплексор является потенциально небезопасным.

    там как бы предполагается что безопасность от зловредного устройства обеспечивается через IOMMU, но как оказалось - в реальности это не так

     
  • 1.20, noize (ok), 12:44, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • –1 +/
    >> Разработчики FreeBSD посчитали проблему не заслуживающей исправления, так как в данной ОС не поддерживается горячее подключение Thunderbolt-устройств

    мухаха

     
     
  • 2.23, анонн (?), 13:30, 27/02/2019 [^] [ответить]    [к модератору]  
  • +8 +/
    >>> Разработчики FreeBSD посчитали проблему не заслуживающей исправления, так как в данной ОС не поддерживается горячее подключение Thunderbolt-устройств
    > мухаха
    >>> В macOS 10.12.4 добавлена блокировка конкретной атаки на базе сетевой карты, но сама уязвимость остаётся неисправленной

    Но вы продолжайте нахваливать проприетарное, обложенное патентами и роялти ненужно от интеля и ябла )

     
  • 2.27, Ivan_83 (ok), 13:50, 27/02/2019 [^] [ответить]    [к модератору]  
  • –3 +/
    FreeBSD 11 уже давно EOL, нужно было тестить на 12.0, тогда бы с ними стали разговаривать как с серьёзными людьми.
     
  • 1.21, Аноним (21), 13:19, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Странно, почему iommu не задеёствуется для сетевых карт. Они точно intel_iommu=on написали в параметрах?

     
     
  • 2.53, КО (?), 10:00, 28/02/2019 [^] [ответить]    [к модератору]  
  • +/
    >Странно, почему iommu не задеёствуется для сетевых карт.

    Так Линус же всегда был за то, чтоб безопасность не мешала скорости.

     
  • 1.22, docpcod (?), 13:24, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • +5 +/
    Вот она эта магическая фигня которую в кино пихают во все щели для подборки паролей!! Я ЗНАЛ!
     
     
  • 2.41, Аноним (41), 18:23, 27/02/2019 [^] [ответить]    [к модератору]  
  • +1 +/
    Hollywood = Illuminati
     
  • 1.25, Аноним (25), 13:49, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • +1 +/
    > Защита реализована через обязательное применение IOMMU

    До свиданья внешние сетевые карты?

     
     
  • 2.43, Аноним (43), 18:46, 27/02/2019 [^] [ответить]    [к модератору]  
  • +6 +/
    Оно: Здравствуйте, я сетевая карта, и я хочу поговорить о памяти.
    Ядро: Обожди нах, сейчас отключу иомму.
    Ядро: Стапэ, а ты точно сетевая карта?
    Оно: Я же представилась, и даже пару пакетов отправила.
    Ядро: А, ну да. Заходи, спрашивай, рассказывай.
    Звуки мата, грохот мебели и возьни.
    Оно: Такое большое, а в сказки верит.
     
  • 2.50, Онаним (?), 09:13, 28/02/2019 [^] [ответить]    [к модератору]  
  • +/
    Ну не "до свидания", но чтобы прососать через оные гигабит, нужно будет пару ядер в полку загнать теперь.
     
  • 1.26, Анонимусис (?), 13:49, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • +5 +/
    >Производители были уведомлены о проблеме ещё в 2016 году

    Эта бага (полный доступ внешнего девайса к оперативе) тянется еще с firewire и о ней производители "уведомлены" уже более 10 лет

     
     
  • 2.31, Stax (ok), 14:48, 27/02/2019 [^] [ответить]    [к модератору]  
  • +1 +/
    Так они и сделали решения. Во-первых на уровне фирмвари можно выбрать Security Level. Например, на ближайшем ноуте с TB3 вижу там варианты "No Security", "User Authorization", "Secure Connect", "Display Port and USB", "USB Docking Only". По умолчанию предпоследний, т.е. строго говоря, из коробки что-либо кроме DP и USB вообще не будет работать. Никакой баги, все защищено.

    Во-вторых если выбран вариант с подтверждением, то дальше можно в ОС определять, кому подключаться.

    Так-то проблема была на ранних TB1/2, но в 2016 году уже вовсю ставили TB3, где эту проблему решили.

     
     
  • 3.39, Xasd (ok), 17:42, 27/02/2019 [^] [ответить]    [к модератору]  
  • –1 +/
    что такое TB3 ? гений абривиатур
     
     
  • 4.40, Stax (ok), 17:50, 27/02/2019 [^] [ответить]    [к модератору]  
  • +/
    > что такое TB3 ? гений абривиатур

    Thunderbolt 3

     
  • 3.45, COBA (?), 19:51, 27/02/2019 [^] [ответить]    [к модератору]  
  • +1 +/
    И как это защитит от внешней сетевой карты, у которой производитель запихнул недокументированный функционал?
     
     
  • 4.60, Stax (ok), 13:55, 28/02/2019 [^] [ответить]    [к модератору]  
  • +/
    Никак, нечего пихать что попало. Ну так знаете ли, от волшебного USB с сюрпризом, куда-то лезущим тоже не защитит. Или от клавиатуры с чипом кейлоггера. Включать можно только то, чему доверяем - тут же речь не про защиту от вредоносного устройства, которое втыкаешь сам и разрешаешь доступ, а про втыкание злоумышленником в твой ноут, когда ты на него не смотрел. Вот от последнего защита есть...
     
  • 3.55, КО (?), 11:22, 28/02/2019 [^] [ответить]    [к модератору]  
  • +/
    >Во-первых на уровне фирмвари

    Которая рулит ровно до того момента, пока не запустятся драйвера OS?

     
  • 1.32, abi (?), 15:28, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • –1 +/
    >> Разработчики FreeBSD посчитали проблему не заслуживающей исправления, так как в данной ОС не поддерживается горячее подключение Thunderbolt-устройств.

    devctl rescan pcixx

     
  • 1.33, ryoken (ok), 16:38, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    >>Input-Ouptut Memory Management Unit
    >>Ouptut

    ага...

     
  • 1.35, Аноним (35), 16:43, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • –1 +/
    Эта проблема только TB-3?
    А при горячем подключении M.2-устройств так-то же будет?
     
     
  • 2.48, Stax (ok), 00:02, 28/02/2019 [^] [ответить]    [к модератору]  
  • +/
    Там будет все хуже, т.к. вообще никто не заморачивался с запросом доступа при подключении нового устройства, IOMMU и прочим.

    Но M.2 это совсем на материнке и физически в плане разъема не умеет горячее подключение. Его надо превратить в U.2 либо же какой-нибудь SFF8644, чтобы был доступен hot swap..

     
  • 1.47, DHCPep (?), 20:51, 27/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • –1 +/
    А подскажите, эта атака работает в случае если подключаемое устройство представилось условно сетевухой, но в ядре драйвера для данной сетевухи нет?

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

     
     
  • 2.56, КО (?), 11:25, 28/02/2019 [^] [ответить]    [к модератору]  
  • +/
    А кто помешает этой бяке представиться PCnet-FAST III?
     
     
  • 3.59, DHCPep (?), 12:08, 28/02/2019 [^] [ответить]    [к модератору]  
  • +/
    Т.е. никакой проблемы нет через usb или tb представиться pci устройством? там же для определённой сетевухи и общение в драйвере через интерфейс для которого эта сетевуха создана?
     
  • 1.62, Аноним (62), 19:59, 28/02/2019 [ответить] [показать ветку] [····]    [к модератору]  
  • +/
    Решeто by design о чем спор?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:


    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру
    Hosting by Ihor