Раскрыта информация о семи уязвимостях в оборудовании с интерфейсом Thunderbolt, объединённых под кодовым именем Thunderspy и позволяющих обойти все основные компоненты обеспечения безопасности Thunderbolt. На основе выявленных проблем предложено девять сценариев совершения атак, реализуемых при наличии у атакующего локального доступа к системе через подключение вредоносного устройства или манипуляции с прошивкой.
Сценарии атак включают возможности по созданию идентификаторов произвольных Thunderbolt-устройств, клонирования авторизированных устройств, произвольного доступа к системной памяти через DMA и переопределения настроек уровней безопасности (Security Level), в том числе для полного отключения всех механизмов защиты, блокирования установки обновлений прошивки и перевода интерфейса в режим Thunderbolt на системах, ограниченных пробросом через USB или DisplayPort.
Thunderbolt представляет собой универсальный интерфейс для подключения периферийных устройств, комбинирующий в одном кабеле интерфейсы PCIe (PCI Express) и DisplayPort. Thunderbolt разработан компаниями Intel и Apple, и применяется во многих современных ноутбуках и ПК. Устройствам Thunderbolt на базе PCIe предоставлены средства для ввода/вывода с прямым доступом к памяти, что создаёт угрозу совершения DMA-атак для чтения и записи всей системной памяти или захвата данных с зашифрованных устройств. Для предотвращения подобных атак в Thunderbolt была предложена концепция уровней безопасности (Security Level), которая допускает применение только авторизированных пользователем устройств и применяет для защиты от подделки идентификаторов криптографическую аутентификацию соединений.
Выявленные уязвимости дают возможность обойти подобную привязку и подключить вредоносное устройство под видом авторизированного. Кроме того, имеется возможность модификации прошивки и перевода SPI Flash в режим только для чтения, что может применяться для полного отключения уровней безопасности и запрета обновления прошивки (для подобных манипуляций подготовлены утилиты tcfp и spiblock). Всего раскрыты сведения о семи проблемах:
- Применение неадекватных схем верификации прошивки;
- Использование слабой схемы аутентификации устройства;
- Загрузка метаданных из неаутентифицированного устройства;
- Наличие механизмов обеспечения обратной совместимости, допускающих применение атак по откату на уязвимые технологии;
- Использование параметров конфигурации неаутентифицированного контроллера;
- Недоработки в интерфейсе для SPI Flash;
- Отсутствие средств защиты на уровне Boot Camp.
Уязвимость проявляется на всех устройствах, оснащённых Thunderbolt 1 и 2 (на базе Mini DisplayPort) и Thunderbolt 3 (на базе USB-C). Пока не ясно проявляются ли проблемы в устройствах с USB 4 и Thunderbolt 4, так как данные технологии только анонсированы и пока нет возможности проверить их реализацию. Уязвимости не могут быть устранены программно и требуют переработки аппаратных компонентов. При этом для некоторых новых устройств имеется возможность блокирования части проблем, связанных с DMA, при помощи механизма Kernel DMA Protection, поддержка которого стала внедряться начиная с 2019 года (поддерживается в ядре Linux, начиная с выпуска 5.0, проверить включение можно через “/sys/bus/thunderbolt/devices/domainX/iommu_dma_protection”).
Для проверки своих устройств предложен Python-скрипт Spycheck, который требует запуска с правами root для доступа к DMI, DMAR-таблице ACPI и WMI. В качестве мер для защиты уязвимых систем рекомендуется не оставлять систему без присмотра включённой или в ждущем режиме, не подключать чужие устройства Thunderbolt, не оставлять и не передавать свои устройства посторонним и обеспечить физическую защиту своих устройств. Если в Thunderbolt нет необходимости, то рекомендуется отключить Thunderbolt-контроллер в UEFI или BIOS (может привести к неработоспособности портов USB и DisplayPort, если они реализованы через контроллер Thunderbolt).