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. ^ Фредди Уизерден (07 сентября 2010 г.). «Криминалистика памяти через интерфейс IEEE 1394» (PDF) . Проверено 2 апреля 2011 г. {{cite journal}}: Требуется цитировать журнал |journal=( помощь )
  2. ^ Пигдон, Дэвид Расмус (21 февраля 2006 г.). Взлом физически адресуемой памяти — доказательство концепции (PDF) . Семинар по передовым методам эксплуатации, WS 2006/2007.
  3. ^ «Блокировка драйвера SBP-2 для уменьшения угроз 1394 DMA для BitLocker» . Майкрософт . 04.03.2011 . Проверено 15 марта 2011 г.
  4. ^ Том Грин. «Отладка ядра 1394: советы и рекомендации». Майкрософт . Архивировано из оригинала 9 апреля 2011 г. Проверено 2 апреля 2011 г.
  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. ^ Дансимп. «Защита DMA ядра (Windows 10) — безопасность Microsoft 365». docs.microsoft.com . Проверено 16 февраля 2021 г.
  9. Герман, Уве (14 августа 2008 г.). «Атаки на физическую память через FireWire/DMA. Часть 1: Обзор и меры по снижению рисков». Архивировано из оригинала 4 марта 2016 года.
  10. ^ «Контрмеры: защита устройств, зашифрованных BitLocker, от атак». Майкрософт . Январь 2014 г. Архивировано из оригинала 24 марта 2014 г.
  11. ^ «Удар грома: исследование уязвимостей в защите IOMMU операционной системы через DMA от ненадежных периферийных устройств - симпозиум NDSS» . Проверено 21 января 2020 г.
  12. ^ Бласс, Эрик-Оливер (2012). «Трезор-Хант». Материалы 28-й ежегодной конференции по приложениям компьютерной безопасности . стр. 71–78. дои : 10.1145/2420950.2420961. ISBN 9781450313124. S2CID  739758.
  13. ^ «KB2516445: Блокировка драйвера SBP-2 для уменьшения угроз 1394 DMA для Bitlocker» . Майкрософт . 04.03.2011 . Проверено 15 марта 2011 г.

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