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 3.0
Короткая ссылка: https://opennet.ru/50215-thunderbolt
Ключевые слова: thunderbolt
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (54) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | 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:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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