USB has become so commonplace that we rarely worry about its security implications. USB sticks undergo the occasional virus scan, but we consider USB to be otherwise perfectly safe - until now.<!--break-->
This talk introduces a new form of malware that operates from controller chips inside USB devices. USB sticks, as an example, can be reprogrammed to spoof various other device types in order to take control of a computer, exfiltrate data, or spy on the user.
We demonstrate a full system compromise from USB and a self-replicating USB virus not detectable with current defenses.
We then dive into the USB stack and assess where protection from USB malware can and should be anchored.
BADUSB - ON ACCESSORIES THAT TURN EVIL
Насколько я понял,
Для частного случая (конкретной модели флэшек) – вполне реально, для общего случая вирусописателю будет трудно поддерживать всю номенклатуру устройств в условиях отсутствия унификации. Вспомните WinCIH который не на всех чипсетах мог стереть BIOS.
Re: Бирусы атакуют!
Больше похоже на страшилку, не правда ли? С определенной долей оговорок, касающихся задействованной "потусторонней" памяти в процессе хенд-шейка. В связи с этим и реанимирован термин "бирус".
Re: Бирусы атакуют!
значительно серъезнее: получится bus-master устройство, вышедшее из подчинения
центрального процессора и способное выполнять чтение и запись памяти по любым
адресам. Уместно вспомнить, что для некоторых дискретных контроллеров USB
(например Renesas), загружаемое при каждом старте Firmware может храниться
в составе BIOS. Сказанное отностится ко многим дискретным контроллерам, не
только к контроллерам USB. А вот ресурсы в составе южного моста чипсета менее
открыты для таких действий.
Что это даст вирусу? Два примера:
Защиту памяти, используемую в технологии виртуализации VT-x так обойти можно:
при VT-x супервизор мониторит настройку bus-master устройств гостевыми задачами
в расчете на то, что устройство будет обращаться только по запрограммированным
адресам (то есть полностью подчиняется хосту).
Защиту памяти, используемую в технологии виртуализации VT-d так обойти нельзя:
там каждое bus-master устройство снабжается своим модулем DMA remapping,
который контролирует финальный результат - адреса, формируемые устройством,
а не последовательность его инициализации. Ситуация "некорректный bus-master
адрес при корректной настройке устройства" здесь будет перехвачена.
Цитата:там каждое bus-master
О! Меня тут живо интересует вопрос - откуда берется "свой модуль DMA remapping" для некоего bus-master устройства, воткнутого в слот?
Насколько я въехал на данный момент - таблицы ремаппинга живут в АCPI. И существуют там для заведомо известных устройств (т.е. набортных).
А вот как с произвольными внешними девайсами - что-то я не вкурил пока...
Re: Бирусы атакуют!
порт PCI Express, к которому подключено устройство. Порты PCI Express в современных
платформах реализованы средствами процессора и чипсета (Platform Controller Hub),
соответственно в CPU и PCH, если они поддерживают VT-d есть такие модули.
В ACPI есть таблица с сигнатурой "DMAR" которая декларирует наличие и
конфигурацию модулей DMA remapping. А также минимальные сведения, необходимые
для работы bus-master устройств до старта ОС. А вот таблицы трансляции адресов,
которые интерпретирует модуль DMA remapping при трансляции виртуальных адресов в
физические для всех устройств создает операционная система, поддерживающая
виртуализацию. Эти таблицы похожи на Paging Tables для процессора, знакомые
нам со времен Intel 386.
См. "Intel Virtualization Technology for directed I/O. Architecture Specification."
Ясно - RTFM.) Сказать в
Re: Бирусы атакуют!
входящий в состав чипсета или процессора, в зависимости от того, куда подключен рассматриваемый
слот: к порту обслуживаемому чипсетом или процессором.
При написании собственного
1) Локализовать ACPI-таблицу DMAR (DMA Remapping Table).
2) Проверить поддерживается ли DMA remapping для PCIe порта, используемого устройством (по адресу устройства - Bus/Device/Function).
3) Извлечь из таблицы DMAR базовый адрес блока регистров управления блока Remapping Unit.
4) Подготовить в оперативной памяти таблицы трансляции, постранично описывающие виртуальное адресное пространство, создаваемое для bus-master устройства.
5) Настроить блок Remapping Unit, используя memory-mapped i/o регистры, локализованные на шаге 3. А именно - установить указатель на корневую таблицу трансляции, созданную на шаге 4 и включить трансляцию, установить бит TE(Translation Enable)=1.
Начиная с этого момента, выдача bus-master устройством адреса X будет приводить к появлению на шине памяти адреса F(X), где функция F(X) определяется содержимым страниц, созданных на шаге 4.
Сказанное справедливо как для On-Board устройства, так и устройства в слоте PCIe.
Re: Бирусы атакуют!
Re: Бирусы атакуют!
Тема беседы -- вирус на внешнем USB-носителе. Вырисовывается пошаговая схема: этот вирус сначала искажает работу USB хост-контроллера. Очевидно же, что это может происходить только со стороны системного хоста.
Re: Бирусы атакуют!
хост-контроллера, дав команду Download Microcode на обычном исправном контроллере.
Да, признаю, отклонился от темы (или развил ее), перейдя на хост-контроллеры,
так как искажение прошивки хост-контроллера значительно опаснее по причинам,
детально рассмотренным в обсуждении.
Но в любом случае, какую бы цепочку событий мы не рассматривали, все начинается с хоста,
то есть кода, выполняемого на CPU.
На "страшилку" может быть и похоже, но слишком много "страшилок" и в жизни и в технике
в последнее время стали реальностью.
Идея выполнения автономным
Re: Бирусы атакуют!
Да, я понял в чем ошибка: пока мы тут с умным видом рассуждаем про
VT-d и ACPI DMAR, инфицированная USB-клавиатура просто наберет
" FORMAT C: " в нужный момент...
Там в комментариях именно в
Лично мне понравился этот комментарий: Also, is this computer herpes?
UPD. «Палочка Нолла» :)
Re: Бирусы атакуют!
достаточно вспомнить где делается 99% клав, мышей и флэшек
Re: Бирусы атакуют!
Re: Бирусы атакуют!
Re: Бирусы атакуют!
Re: Бирусы атакуют!
Re: Бирусы атакуют!
Re: Бирусы атакуют!
https://blog.gdatasoftware.com/blog/article/g-data-tool-prevents-attacks-via-keyboard.html
Re: Бирусы атакуют!
Если при втыкании девайса появилась клавиатура - спросим. А если твоя новая клавиатура и есть BadUSB? :)
Re: Бирусы атакуют!
а что помешает BadUSB прикинуться "йа-йа-натюрлих-клава" и активизироваться плохишом впоследствии - неизвестно :lol: наверное, следующим этапом будет параноидальная проверка "верю-не верю" при каждом запуске системы?
Ну, по уму - тот же TPM
(при поддержке ОС и UEFI) проблем не вижу. Но это вопрос совместимости. Как SecureBoot тот же.
Хотя... Потом сопрут ключи, как обычно (в смысле - история с подписью драйверов) :)))
Re: Бирусы атакуют!
Если кому интересно вот ссылка - https://www.youtube.com/watch?v=ovfZXeGvjN8
PS: Прошивку и утилиты для создания и патчинга прошивок брал здесь - https://github.com/adamcaudill/Psychson
Re: Бирусы атакуют!
Остальное, в принципе, дело техники. Для "хорошего" дела можно и контроллеров накупить отдельно.
Останется только творческая работа по созданию сценариев применения клавиатурных комбинаций, да социальной инженерии (как внедрить на нужный компьютер), но это всё решаемо.
Жаль только, что виртуальная клава не может интерактивно взаимодействовать с ОС (она только отправляет команды драйверу), и не знает, что открыто в данный момент, и не знает быстродействия компа (а ведь есть такие, что на каждое нажатие клавиш ещё долго думают, и половину нажатий просто проигнорируют), и не учитывает состояние загрузки ОС. Можно ведь флешку воткнуть ещё ДО включения компа - тогда при включении вирт клава вполне сможет зайти, например, в биос, и поставить пароль на загрузку, на изменение настроек, и даже на жесткий диск! а если биос позволяет, то и ещё круче что-то...
Re: Бирусы атакуют!
securitylab.ru/news/463546.ph
Понеслась...
Re: Бирусы атакуют!
Re: Бирусы атакуют!
http://samy.pl/usbdriveby/
http://youtu.be/FfRhKzbgmeU
https://github.com/samratashok/Kautilya
https://github.com/Cryoganix/Teensyterpreter