Атака с использованием вредоносных устройств с интерфейсом Thunderbolt
27 февраля 2019 года
Группа исследователей из Кембриджского университета представила новый вид атак 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-контроллеров может быть интегрирована функциональность для скрытого получения полного доступа к памяти основной системы.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.