stringtranslate.com

атака DMA

Атака DMA — это тип атаки по побочным каналам в компьютерной безопасности , при которой злоумышленник может проникнуть в компьютер или другое устройство, используя наличие высокоскоростных портов расширения, которые разрешают прямой доступ к памяти (DMA).

DMA включен в ряд соединений, поскольку он позволяет подключенному устройству (например, видеокамере , сетевой карте , устройству хранения данных или другому полезному аксессуару или внутренней карте ПК ) передавать данные между собой и компьютером на максимально возможной скорости, используя прямой аппаратный доступ для чтения или записи непосредственно в основную память без какого-либо контроля или взаимодействия со стороны операционной системы . Законное использование таких устройств привело к широкому внедрению аксессуаров и соединений DMA, но злоумышленник может в равной степени использовать ту же возможность для создания аксессуара, который будет подключаться с использованием того же порта, а затем потенциально может получить прямой доступ к части или всему адресному пространству физической памяти компьютера, обходя все механизмы безопасности ОС и любой экран блокировки , чтобы прочитать все, что делает компьютер, украсть данные или криптографические ключи , установить или запустить шпионское ПО и другие эксплойты или изменить систему, чтобы разрешить бэкдоры или другие вредоносные программы.

Предотвращение физических подключений к таким портам предотвратит атаки DMA. На многих компьютерах подключения, реализующие DMA, также могут быть отключены в BIOS или UEFI , если они не используются, что в зависимости от устройства может свести на нет или уменьшить потенциал для этого типа эксплойта.

Примерами подключений, которые могут допускать использование DMA в той или иной форме, являются FireWire , CardBus , ExpressCard , Thunderbolt , USB 4.0 , PCI , PCI-X и PCI Express .

Описание

В современных операционных системах несистемным (т. е. пользовательским ) приложениям запрещен доступ к любым ячейкам памяти, явно не разрешенным контроллером виртуальной памяти (называемым блоком управления памятью (MMU)). Помимо сдерживания ущерба, который может быть вызван недостатками программного обеспечения, и обеспечения более эффективного использования физической памяти, эта архитектура является неотъемлемой частью безопасности операционной системы. Однако драйверы режима ядра, многие аппаратные устройства и уязвимости пользовательского режима обеспечивают прямой, беспрепятственный доступ к адресному пространству физической памяти. Физическое адресное пространство включает в себя всю основную системную память, а также шины, отображенные в память, и аппаратные устройства (которые управляются операционной системой посредством чтения и записи, как если бы они были обычной оперативной памятью).

Спецификация OHCI 1394 позволяет устройствам, в целях повышения производительности, обходить операционную систему и получать доступ к физической памяти напрямую без каких-либо ограничений безопасности. [1] [2] Однако устройства SBP2 можно легко подделать , что позволяет обмануть операционную систему, позволив злоумышленнику как считывать, так и записывать физическую память, и тем самым получить несанкционированный доступ к конфиденциальным криптографическим материалам в памяти. [3]

Системы по-прежнему могут быть уязвимы для атаки DMA внешним устройством, если у них есть FireWire , ExpressCard , Thunderbolt или другой порт расширения, который, как и PCI и PCI Express в целом, подключает подключенные устройства напрямую к физическому, а не виртуальному адресному пространству памяти. Поэтому системы, не имеющие порта FireWire, могут по-прежнему быть уязвимы, если у них есть порт PCMCIA / CardBus / PC Card или ExpressCard, который позволяет установить карту расширения с FireWire.

Использует

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

Помимо вышеупомянутых неблаговидных применений, существуют и некоторые полезные применения, например, функции DMA могут использоваться для отладки ядра . [4]

Для этой атаки существует инструмент под названием Inception [5] , требующий только машины с портом расширения, восприимчивым к этой атаке. Другое приложение, известное тем, что использует эту уязвимость для получения несанкционированного доступа к работающим компьютерам Windows, Mac OS и Linux, — это шпионская программа FinFireWire .

Смягчение последствий

Атаки DMA можно предотвратить с помощью физической защиты от потенциально вредоносных устройств.

Драйверы режима ядра имеют много возможностей для нарушения безопасности системы, и необходимо проявлять осторожность при загрузке надежных драйверов без ошибок. Например, последние 64-битные версии Microsoft Windows требуют, чтобы драйверы были протестированы и имели цифровую подпись Microsoft, и предотвращают установку любых неподписанных драйверов.

IOMMU — это технология , которая применяет концепцию виртуальной памяти к таким системным шинам и может использоваться для закрытия этой уязвимости безопасности (а также для повышения стабильности системы). Intel маркирует свой IOMMU как VT-d. AMD маркирует свой IOMMU как AMD-Vi. Linux и Windows 10 поддерживают эти IOMMU [6] [7] [8] и могут использовать их для блокировки неразрешенных транзакций ввода-вывода.

Новые операционные системы могут принимать меры для предотвращения атак DMA. Последние ядра Linux включают возможность отключения DMA через устройства FireWire, при этом разрешая другие функции. [9] Windows 8.1 может запретить доступ к портам DMA необслуживаемой машины, если консоль заблокирована. [10] Но по состоянию на 2019 год основные поставщики ОС не принимали во внимание множество способов, которыми вредоносное устройство может воспользоваться сложным взаимодействием между несколькими эмулированными периферийными устройствами, выявляя тонкие ошибки и уязвимости. [11]

Никогда не позволяйте конфиденциальным данным храниться в ОЗУ в незашифрованном виде — это еще один способ смягчения последствий атак DMA. Однако защиты от чтения содержимого ОЗУ недостаточно, поскольку запись в ОЗУ через DMA может поставить под угрозу, казалось бы, безопасное хранилище за пределами ОЗУ путем внедрения кода . Примером последнего типа атаки является TRESOR-HUNT, которая раскрывает криптографические ключи, которые никогда не хранятся в ОЗУ (а только в определенных регистрах ЦП); TRESOR-HUNT достигает этого путем перезаписи частей операционной системы. [12]

Microsoft рекомендует внести изменения в конфигурацию Windows по умолчанию, чтобы предотвратить это, если это вызывает беспокойство. [13]

Смотрите также

Ссылки

  1. ^ Фредди Уизерден (2010-09-07). "Экспертиза памяти через интерфейс IEEE 1394" (PDF) . Получено 2024-05-22 .
  2. ^ Пигдон, Дэвид Расмус (21.02.2006). Взлом физически адресуемой памяти — доказательство концепции (PDF) . Семинар по передовым методам эксплуатации, WS 2006/2007.
  3. ^ "Блокировка драйвера SBP-2 для снижения угроз DMA 1394 для BitLocker". Microsoft . 2011-03-04 . Получено 2011-03-15 .
  4. ^ Том Грин. "1394 Kernel Debugging: Tips And Tricks". Microsoft . Архивировано из оригинала 2011-04-09 . Получено 2011-04-02 .
  5. ^ "Inception — это инструмент для манипулирования физической памятью и взлома, использующий DMA на базе PCI. Инструмент может атаковать через FireWire, Thunderbolt, ExpressCard, PC Card и любые другие интерфейсы PCI/PCIe.: carm". 28 июня 2019 г. — через GitHub.
  6. ^ "/linux/Documentation/Intel-IOMMU.txt". 14 июля 2014 г. Архивировано из оригинала 14 июля 2014 г.
  7. ^ «База данных драйверов ядра Linux: CONFIG_AMD_IOMMU: поддержка AMD IOMMU» . cateee.net .
  8. ^ Dansimp. "Защита DMA ядра (Windows 10) - Безопасность Microsoft 365". docs.microsoft.com . Получено 16.02.2021 .
  9. ^ Герман, Уве (14 августа 2008 г.). "Атаки на физическую память через FireWire/DMA - Часть 1: Обзор и смягчение последствий". Архивировано из оригинала 4 марта 2016 г.
  10. ^ «Контрмеры: Защита устройств, зашифрованных BitLocker, от атак». Microsoft . Январь 2014 г. Архивировано из оригинала 24.03.2014.
  11. ^ "Thunderclap: исследование уязвимостей в защите операционной системы IOMMU через DMA от ненадежных периферийных устройств – симпозиум NDSS" . Получено 21.01.2020 .
  12. ^ Blass, Erik-Oliver (2012). "Tresor-Hunt". Труды 28-й ежегодной конференции по приложениям компьютерной безопасности . стр. 71–78. doi :10.1145/2420950.2420961. ISBN 9781450313124. S2CID  739758.
  13. ^ "KB2516445: Блокировка драйвера SBP-2 для снижения угроз DMA 1394 для Bitlocker". Microsoft . 2011-03-04 . Получено 2011-03-15 .

Внешние ссылки