[Воркшоп] 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. _________________________________________________________________________________________________________________________________________________________________________

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



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


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

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

    Neuron Hackspace
    Место для гиков и техноэнтузиастов в центре Москвы
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 8

      +1
      Надеюсь, эта лекция несколько отрезвит тех, кто беспечно относится к Intel ME и AMD PSP
        +1

        Неее, это другой вектор атаки, гораздо более древний и универсальный, а эти закладочки в свою очередь, могут быть ещё более занятными, ведь после FireWire про DMA не знают только пользователи, и меры принимают соответствующие.

          +2
          Firewire был сильно позже. Через DMA ломали ещё системы на базе 80286, у которого ограничение доступа в память для процессов уже было, а к портам ввода-вывода ещё не было. Соответственно, юзерский код мог попросить например контроллер дисков скопировать нужный кусок памяти, поправить там например таблицу GDT и положить обратно, сделав себе комфортный полный доступ.
          В 80386 это немного подлатали, но вы знаете этих производителей железа и дров к нему, там куда ни плюнь одни дыры.
            +1
            Да, ведь ещё имеется BMC. И RDMA у сетевых адаптеров

            И вот такие векторы атаки — www.securitylab.ru/news/504552.php

            Когда я участвовал в разработке компьютера на военном аналоге процессора К1801, то для отладки программ использовался «блок отладочный». Это был девайс, который подключплся к шине Qbus отлаживаемого компьютера и по двунаправленному паралллельному интерфейсу к ДВК, на котором работал отладчик. Отладчик мог загружать программы в любую область памяти отлаживаемого компьютера, запускать их и останавливать программы на любой инструкции

            Правда размеров он был весьма больших. А тут небольшая плата в разъёмами PCIe x16 и USB. Как далеко шагнула техника
          +1
          Bitlocker имеет защиту от DMA-устройств, подключённых, пока сеанс заблокирован. К сожалению, по умолчанию она выключена. Популярная VeraCrypt тоже имеет защиту, но реализовано несколько иначе — при подключении нового устройства ключи стираются из памяти, и она тоже отключена по умолчанию.
            +7
            А есть какая-то возможность ознакомиться с материалами мастер-класса за денюшку? Во-первых, насколько я понял, мест уже нет, во-вторых, кто-то может просто не успевать там побывать.
              +1
              + видео, если будет :)
              0
              А что с Windows Device Guard (IOMMU)? Или они что-то старинное будут взламывать?

              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

              Самое читаемое