Группа исследователей из Кембриджского университета представила (https://www.lightbluetouchpaper.org/2019/02/26/struck-by-a-t... новый вид атак Thunderclap (https://thunderclap.io/) (PDF (https://thunderclap.io/thunderclap-paper-ndss2019.pdf)), позволяющий получить доступ к содержимому всей памяти компьютера при подключении специально модифицированных периферийных устройств с интерфейсом Thunderbolt (https://ru.wikipedia.org/wiki/Thunderbolt). Проблема проявляется в Windows, мacOS, Linux и FreeBSD. Для демонстрации атаки на основе FPGA Arria 10 (https://github.com/thunderclap-io/thunderclap-fpga-arria10) исследователями подготовлен прототип вредоносного устройства, а также эмулятор (https://github.com/thunderclap-io/thunderclap-qemu) вредоносной сетевой карты на базе QEMU и необходимая для атаки программная начинка (https://github.com/thunderclap-io/arria10-ubuntu-sdcard).В отличие от атак BadUSB (https://www.opennet.dev/opennews/art.shtml?num=40744), в которых вредоносное USB-устройство эксплуатирует уязвимости в USB-стеке или притворяется USB-клавиатурой или сетевой картой для подстановки данных или перенаправления трафика, атака Thunderclap основана на методе обхода ограничений IOMMU (https://ru.wikipedia.org/wiki/IOMMU) и использовании DMA для выполнении операций в режиме прямого доступа устройства к памяти. При помощи DMA периферийное устройство может выполнить чтение и запись в любую область системной памяти. Для ограничения доступа через DMA в операционных системах и хост-контроллерах обычно применяется IOMMU (Input-Ouptut Memory Management Unit), который должен блокировать возможность совершения подобных атак и ограничивать доступ только к явно определённым областям совместно используемой памяти.
На деле ограничения IOMMU оказалось легко обойти во всех протестированных операционных системах путём симулирования подключения сетевого адаптера, для работы c которым операционной системой применяются иные методы взаимодействия в обход IOMMU. Особенности обработки пакетов с сетевой карты не позволяют в полной мере применять IOMMU, так как возникают существенные накладные расходы, заметно снижающие производительность. Более того, операционные обычно размещают различные внутренние структуры в тех же областях памяти, что используются для взаимодействия с периферийными устройствами, что позволяет осуществить атаку даже при применении IOMMU.
Воспользовавшись предложенной техникой злоумышленник, имеющий физический доступ к компьютеру жертвы, во время отсутствия пользователя может подключить через порт Thunderbolt (в том числе Thunderbolt 3 поверх USB Type-C, Mini DisplayPort и PCI Express) специально подготовленное устройство и получить полный контроль за системой, в том числе извлечь из памяти конфиденциальные данные, такие как ключи доступа и платёжные идентификаторы, или организовать выполнение кода с максимальными привилегиями. Атака также может быть проведена для интеграции скрытой вредоносной функциональности в различное периферийное оборудование, такое как зарядные устройства и проекторы.
В Linux исправления, блокирующие проблему, будут предложены в ядре 5.0, выпуск которого запланирован на следующую неделю. Защита реализована через обязательное применение IOMMU для Thunderbolt и блокирование обходных путей работы в обход IOMMU, основанных на использовании ATS (Address Translation Services) в PCI Express. Разработчики 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-контроллеров может быть интегрирована функциональность для скрытого получения полного доступа к памяти основной системы.
URL: https://www.lightbluetouchpaper.org/2019/02/26/struck-by-a-t.../
Новость: https://www.opennet.dev/opennews/art.shtml?num=50215
А где посмотреть актуальный статус уязвимости разных ОС к BadUSB?
От BadUSB тебя ни одна ОС не спасёт.
Ну на тот же линух есть USBGuard хотябы как попытка отплеваться от залётных. А что есть например под десяточку и макось?
Не знаю про мак ОС, но на семерочке замечательно настраивается групповая политика, которая не разрешает устанавливать устройства в систему никому кроме админа.
Притом админ должен явно это сделать в Device Manager.
В линухе USB Guard вроде активно развивается.
Так что вроде не так всё печально.
> Ну на тот же линух есть USBGuard хотябы как попыткаделать на каждую уязвимость по отдельной программе? (или по отдельной настройке?)
нет.
всё должно быть защищено *поумолчанию*.
а иначе это ппц какой-то -- "озвучте перечень пожалуйста всех уязвимостей, против которых я должен установить дополнительные программы! (выполнить дополнительно изменение настроек)"
На autorun.inf тоже пожалуйтесь =)
Вообще-то спасёт. Только нужен iommu.
Если в твоей OS мышка и клавиатура подхватываются после того как ты их воткнул в USB разъем, без участия пользователя по старым девайсам, то OS уязвима. :)
Покупайте Talos II, там аппаратный IOMMU развернет куда подальше такое устройство.
Да, неплохо. Что там насчёт атак расчитаных на спекулятивное выполнение в этом POWER9, типа Meldown и Spectre?
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.
Так и тут разворачивает, но хитрое ядро открывает калитку. :)
+ все телефоны с usb-c.
Уязвимость касается только thunderbolt разъемов с форм-фактором type-c. Обычному USB type-c ничего не грозит.
> + все телефоны с usb-c.и с дырявым GSM-стеком.
(а если телефон на Андроиде -- то вероятнее всего ещё и с дырявой версией linux-ядра)
Как будто бывают недырявые.
> не пользоваться чужими зарядными устройствами с разъёмом USB-CUSB-C очередное мертворожденное дитя современности. Его ни для usb ни для tb ни даже для питания использовать нельзя, оказывается. (про usb- и tb- качества его см. https://habr.com/en/post/399413/ )
Уязвимость касается только thunderbolt разъемов с форм-фактором type-c. Обычному USB type-c ничего не грозит.
как их отличить на корпусе?
Никак, только смотреть на коробку устройства/сайт производителя/bios, там должны написать type-c это или thunderbolt. Ну ещё иногда бывает рядом с портом thunderbolt молния нарисована.
рядом с разъемом указатель тандерболд в виде электрической молнии
Написал криво, меня могут не так понять. Поправка: уязвимость касается всех thunderbolt в т.ч. с форм-фактором type-c. Обычному USB type-c ничего не грозит. К слову, в BIOS'е Thinkpad'ов можно включить режим display port and usb only, тогда у thunderbolt устройств не будет прямого доступа к памяти, но и поддерживаемое количество устройств снизится до usb/display port.
>Обычному USB type-cгрозят обычные USB атаки.
Ага, только в комментарии выше говорилось конкретно про Thunderclap. А вообще, от BadUSB и подобных должен спасать вышеупомянутый USBGuard.
Не очень понятно, на что расчитывали, ведь, по сути TB - это PCIe, торчащий наружу. С точки зрения безопасности всегда было странно на это смотреть. Приснопамятный Firewire туда же.Тут другое вызывает раздражение - то, что физически разъем TB часто совпадает с USB и даже с зарядкой.
> Не очень понятно, на что расчитывали, ведь, по сути TB - это
> PCIe, торчащий наружу. С точки зрения безопасности всегда было странно на
> это смотреть. Приснопамятный Firewire туда же.
> Тут другое вызывает раздражение - то, что физически разъем TB часто совпадает
> с USB и даже с зарядкой.там как бы предполагается что безопасность от зловредного устройства обеспечивается через IOMMU, но как оказалось - в реальности это не так
>там как бы предполагается что безопасность от зловредного устройства обеспечивается через IOMMUЕсли построить забор то через него пройти тяжело, а если оставить открытую калитку (нам же надо 100500 мильёнов пакетов в секунду разруливать) то забор строили зря. :)
Еще хрен знает когда я читал, что подключение к PCI-e напрямую через мультиплексор является потенциально небезопасным.
Ну вот, теперь петух клюнул куда положено.
> Еще хрен знает когда я читал, что подключение к PCI-e напрямую через
> мультиплексор является потенциально небезопасным.там как бы предполагается что безопасность от зловредного устройства обеспечивается через IOMMU, но как оказалось - в реальности это не так
>> Разработчики FreeBSD посчитали проблему не заслуживающей исправления, так как в данной ОС не поддерживается горячее подключение Thunderbolt-устройствмухаха
>>> Разработчики FreeBSD посчитали проблему не заслуживающей исправления, так как в данной ОС не поддерживается горячее подключение Thunderbolt-устройств
> мухаха
>>> В macOS 10.12.4 добавлена блокировка конкретной атаки на базе сетевой карты, но сама уязвимость остаётся неисправленнойНо вы продолжайте нахваливать проприетарное, обложенное патентами и роялти ненужно от интеля и ябла )
FreeBSD 11 уже давно EOL, нужно было тестить на 12.0, тогда бы с ними стали разговаривать как с серьёзными людьми.
Странно, почему iommu не задеёствуется для сетевых карт. Они точно intel_iommu=on написали в параметрах?
>Странно, почему iommu не задеёствуется для сетевых карт.Так Линус же всегда был за то, чтоб безопасность не мешала скорости.
Вот она эта магическая фигня которую в кино пихают во все щели для подборки паролей!! Я ЗНАЛ!
Hollywood = Illuminati
> Защита реализована через обязательное применение IOMMUДо свиданья внешние сетевые карты?
Оно: Здравствуйте, я сетевая карта, и я хочу поговорить о памяти.
Ядро: Обожди нах, сейчас отключу иомму.
Ядро: Стапэ, а ты точно сетевая карта?
Оно: Я же представилась, и даже пару пакетов отправила.
Ядро: А, ну да. Заходи, спрашивай, рассказывай.
Звуки мата, грохот мебели и возьни.
Оно: Такое большое, а в сказки верит.
Ну не "до свидания", но чтобы прососать через оные гигабит, нужно будет пару ядер в полку загнать теперь.
>Производители были уведомлены о проблеме ещё в 2016 годуЭта бага (полный доступ внешнего девайса к оперативе) тянется еще с firewire и о ней производители "уведомлены" уже более 10 лет
Так они и сделали решения. Во-первых на уровне фирмвари можно выбрать Security Level. Например, на ближайшем ноуте с TB3 вижу там варианты "No Security", "User Authorization", "Secure Connect", "Display Port and USB", "USB Docking Only". По умолчанию предпоследний, т.е. строго говоря, из коробки что-либо кроме DP и USB вообще не будет работать. Никакой баги, все защищено.Во-вторых если выбран вариант с подтверждением, то дальше можно в ОС определять, кому подключаться.
Так-то проблема была на ранних TB1/2, но в 2016 году уже вовсю ставили TB3, где эту проблему решили.
что такое TB3 ? гений абривиатур
> что такое TB3 ? гений абривиатурThunderbolt 3
И как это защитит от внешней сетевой карты, у которой производитель запихнул недокументированный функционал?
Никак, нечего пихать что попало. Ну так знаете ли, от волшебного USB с сюрпризом, куда-то лезущим тоже не защитит. Или от клавиатуры с чипом кейлоггера. Включать можно только то, чему доверяем - тут же речь не про защиту от вредоносного устройства, которое втыкаешь сам и разрешаешь доступ, а про втыкание злоумышленником в твой ноут, когда ты на него не смотрел. Вот от последнего защита есть...
>Во-первых на уровне фирмвариКоторая рулит ровно до того момента, пока не запустятся драйвера OS?
>> Разработчики FreeBSD посчитали проблему не заслуживающей исправления, так как в данной ОС не поддерживается горячее подключение Thunderbolt-устройств.devctl rescan pcixx
>>Input-Ouptut Memory Management Unit
>>Ouptutага...
Эта проблема только TB-3?
А при горячем подключении M.2-устройств так-то же будет?
Там будет все хуже, т.к. вообще никто не заморачивался с запросом доступа при подключении нового устройства, IOMMU и прочим.Но M.2 это совсем на материнке и физически в плане разъема не умеет горячее подключение. Его надо превратить в U.2 либо же какой-нибудь SFF8644, чтобы был доступен hot swap..
А подскажите, эта атака работает в случае если подключаемое устройство представилось условно сетевухой, но в ядре драйвера для данной сетевухи нет?Ну т.е. например в FreeBSD ядро пересобрано лишь с драйверами имеющихся физически устройств, а тут эту бяку воткнули.
А кто помешает этой бяке представиться PCnet-FAST III?
Т.е. никакой проблемы нет через usb или tb представиться pci устройством? там же для определённой сетевухи и общение в драйвере через интерфейс для которого эта сетевуха создана?
Решeто by design о чем спор?