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

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

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

stt36a42onq46vh0etgnqtsfs8g.png

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

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

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


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


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


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

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

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

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

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

afbahp6eynp5y_lufdbx594bcfq.png

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

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

txckrlnkdfivovxvptonsvxs46u.jpeg

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

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

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


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


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

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

Об авторах


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

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

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

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

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

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

stt36a42onq46vh0etgnqtsfs8g.png

© Habrahabr.ru