[Воркшоп] DMA-атаки на практике. Эксплоит через прямой доступ к памяти

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

В эту субботу 1 февраля 2020 г. в нашем Хакспейсе Нейрон в Москве пройдет мастер-класс по практическому использованию DMA-атак. Вместе мы будем взламывать реальный компьютер с зашифрованной файловой системой, имитирующий банкомат или платежный терминал.

Ведущий воркшопа ValdikSS и Максим Горячий. За баром Павел Жовнер.



Direct Memory Access (DMA) — низкоуровневый режим работы компьютерных устройств, предполагающий прямой доступ к оперативной памяти компьютера. Он требуется для работы PCIe, Thunderbolt и некоторых других устройств. В нормальных условиях DMA используется для более быстрого доступа к памяти, чтобы не занимать процессор.

С помощью специального «злого» устройства атакующий может захватить контроль над шиной PCIe и получить полный доступ на чтение и запись в память работающего компьютера, даже если программно система защищена от проникновений.

DMA-атаки позволяют


  • Незаметно для операционной системы и антивирусов читать и модифицировать данные в памяти компьютера;
  • Делать инъекции своего кода в ОС и работающие программы
  • Извлекать любые данные запущенных программ: ключи, пароли
  • Обходить аутентификацию и авторизацию операционной системы
  • Получить доступ к файловой системе
  • Отключать антивирусы и другие программные защиты.

Что будет на занятии


Часть 1 — Теория

Вначале мы «на пальцах» разберемся, как работает шина PCIe и доступ к памяти, почему такие атаки возможны и какие существуют современные средства защиты от подобных атак. Рассмотрим, какие существуют инструменты для проведения DMA-атак и как лучше проектировать защищенные системы.

ValdikSS расскажет о своем опыте применения DMA-атаки для взлома защиты японского игрового автомата.

Часть 2 — практическое занятие

Для проведения атаки мы будем использовать два компьютера: атакующего и жертву. В PCIe-порт жертвы вставляется специальное «злое» устройство, реализующую физический уровень PCIe и пересылающее команды от атакующего. Атакующий компьютер подключается к «злой» плате по USB, и через нее посылает команды на шину PCIe жертвы.



В качестве жертвы будет выступать обычный X86-компьютер, а плата USB3380 — в качестве «злого» устройства. На стороне атакующего будет использоваться фреймворк pcileech.

Разберем, какие устройства поддерживает pcileech в качестве атакующих, и что лучше выбрать. Настроим с нуля стенд атакующего на основе платы USB3380.



Изначально компьютер-жертва будет иметь зашифрованный с помощью bitlocker жесткий диск и заблокированную для входа в операционную систему.

Мы выполним такие атаки:

  • Обход аутентификации windows— Вход в учетную запись без сброса паролей
  • Доступ к файлам жертвы. Несмотря на шифрование файловой системы, доступ к файлам все равно возможен изнутри ОС
  • Вытаскиваем из памяти ценные данные — ключи от Bitcoin-кошелька, пароли и набранный текст
  • Устанавливаем имитацию трояна сразу в память без промежуточных файлов на диске

Для кого это занятие


Занятие будет полезно разработчикам встраиваемых систем, тем, кто проектирует терминалы, банкоматы, станки, игровые и гемблинговые автоматы. Вам потребуются базовые знания работы аппаратных частей компьютера.

Фреймворк pcileech достаточно простой и имеет несколько удобных плагинов для типовых атак, поэтому научиться им пользоваться вполне сможет любой продвинутый пользователь компуктера.

Об авторах


ValdikSS — исследователь безопасности и энтузиаст открытого ПО. Автор программы для обхода систем DPI GoodByeDPI, и сервисов ПростоVPN и Антизапрет. Работал в Digital Security. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Максим Горячий — разработчик встроенных систем и исследователь по безопасности в Positive Technologies. Интересуется криптографией, технологиями виртуализации, обратной разработкой и всем, что связано с аппаратным обеспечением. Выступал на 33C3, 34C3, Black Hat. Вместе с Марком Ермоловым нашел уязвимости в Intel ME, Apple MacOS Firmware. _________________________________________________________________________________________________________________________________________________________________________

Место встречи — Хакспейс Нейрон



Хакспейс Нейрон — сообщество гиков и техноэнтузиастов в центре Москвы. Рабочие места с профессиональным оборудованием и творческая атмосфера.


Все собранные деньги пойдут на оплату аренды и развитие Хакспейса. Если вы хотите поддержать нас дополнительно, вы можете задонатить и предложить свою помощь.

Внимание: вся информация представленная на мастер-классе носит исключительно исследовательский характер. Тестовый стенд для анализа уязвимостей  не является реально эксплуатируемой системой и создан специально для тренировочных целей. Автор не призывает использовать полученные знания для совершения противоправных действий.

Источник: https://habr.com/ru/company/neuronspace/blog/486314/


Интересные статьи

Интересные статьи

Современные цифровые технологии позволяют легко "захватывать" информацию из любых источников. Мы пропускаем через себя много информации, но мало из этого, что приносит на...
«Бегущий по лезвию», «Воздушная тюрьма», «Heavy Rain» — что общего между этими представителями массовой культуры? Во всех в той или иной степени присутствует древнее японское иску...
Впервые уязвимость была обнаружена еще 26.06.2020, о чем автор тут же сообщил техподдержке Дом.ru. Автор долго и упорно пытался решить проблему непублично, но встретил полное её непон...
Недавно столкнулся с неочевидным способом мошенничества, которым промышляют уже по меньшей мере 2 года. Сам в подобных вопросах совсем неопытный, но в итоге со своими кровно з...
На дворе 21-й век, непроизводительная реализация обработки C++ исключений на основе setjmp/longjmp уже в прошлом. Современные компиляторы, такие как gcc и clang, используют продви...