Новая атака NetSpectre не требует от жертвы загрузки или запуска вредоносного кода

Безопасность / Новая атака NetSpectre не требует от жертвы загрузки или запуска вредоносного кода

NetSpectre бомбардирует порты компьютеров, чтобы получить доступ

4 минуты на чтение

Новая атака ЦП класса Spectre привлекла внимание академических ученых, которые недавно выпустили исследовательский документ под названием «NetSpectre: чтение произвольной памяти по сети», в котором подробно рассказывается о том, как работает этот класс атак ЦП.



Что делает атаку нового процессора Spectre немного пугающей, так это то, что она не требует злоумышленник, чтобы обманом заставить свою жертву загрузить и запустить вредоносные сценарии на своей машине или даже получить доступ к веб-сайту, на котором запущен вредоносный JavaScript в браузере пользователя.

NetSpectre просто бомбардирует сетевые порты машины, пока не найдет способ достичь своих целей.



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



Однако NetSpectre не лишен недостатков. Он имеет невероятно низкую скорость эксфильтрации, около 15 бит в час для атак, проводимых через сетевое соединение, и нацеливания на данные, хранящиеся в кэше ЦП.



В исследовательской работе ученые смогли достичь скорости до 60 бит в час с помощью специальной разновидности NetSpectre, предназначенной для обработки данных с помощью модуля AVX2 ЦП, специфичного для ЦП Intel.

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

Новая атака NetSpectre связана с уязвимостью Spectre V1 (CVE-2017-5753), которую исследователи Google обнаружили ранее в этом году (2018). Это означает, что все ЦП, на которые может воздействовать Spectre V1, также считаются NetSpectre, если он развернут с надлежащей ОС и прошивкой ЦП.



В настоящее время существует два варианта атаки для NetSpectre: извлечение данных из целевой системы и удаленное нарушение ASLR (рандомизация адресного пространства) в целевой системе.

Цепочка событий для первого вида атаки выглядит так:

  1. Не учитывайте предсказателя ветвления.
  2. Сбросить состояние элемента микроархитектуры.
  3. Немного подтекает к элементу микроархитектуры.
  4. Предоставить сети информацию о состоянии элемента микроархитектуры.
  • На шаге 1 злоумышленник обманывает предсказатель ветвления жертвы, чтобы запустить атаку Spectre. Чтобы ошибиться с предсказателем ветвления, злоумышленник использует гаджет утечки с действительными индексами. Допустимые индексы гарантируют, что предсказатель ветвления научится всегда выбирать ветвь, то есть предсказатель ветвления предполагает, что условие истинно. Обратите внимание, что на этом этапе используется только гаджет утечки. Нет обратной связи с атакующим, и поэтому состояние микроархитектуры не нужно сбрасывать или передавать.
  • На шаге 2 злоумышленник должен сбросить состояние микроархитектуры, чтобы разрешить кодирование утекших битов с использованием элемента микроархитектуры. Этот шаг сильно зависит от используемого элемента микроархитектуры, например, при использовании кеша злоумышленник загружает большой файл у жертвы; если используется AVX2, злоумышленник просто ждет более 1 миллисекунды. После этого шага выполняются все требования, чтобы немного просочиться у жертвы.
  • На шаге 3 злоумышленник использует уязвимость Spectre для утечки одного бита от жертвы. Поскольку на шаге 1 предсказатель ветвления ошибается, предоставление гаджету утечки индекса выхода за пределы приведет к запуску пути в границах и изменению микроархитектурного элемента, то есть бит кодируется в микроархитектурном элементе.
  • На шаге 4 злоумышленник должен передать закодированную информацию по сети. Этот шаг соответствует второй фазе исходной атаки Spectre. Злоумышленник отправляет сетевой пакет, который обрабатывается устройством передачи, и измеряет время от отправки пакета до получения ответа.

Метод атаки №2: удаленное прерывание ASLR

  1. Не учитывайте предсказателя ветвления.
  2. Получите доступ к индексу за пределами диапазона, чтобы кэшировать (известную) ячейку памяти.
  3. Измерьте время выполнения функции через сеть, чтобы определить, кэшируется ли часть ее при доступе за границу.

Противодействие Spectre

Intel и AMD рекомендуют использовать инструкцию lfence в качестве барьера для предположений. Эта инструкция должна быть вставлена ​​после проверки критических для безопасности границ, чтобы остановить спекулятивное выполнение. Однако добавление этого к каждой проверке границ приводит к значительным накладным расходам производительности.

Поскольку NetSpectre представляет собой сетевую атаку, ее можно предотвратить не только путем устранения Spectre, но и с помощью контрмер на сетевом уровне. Простая атака NetSpectre может быть легко обнаружена с помощью защиты от DDoS-атак, поскольку из одного источника отправляется несколько тысяч идентичных пакетов.

Однако злоумышленник может выбрать любой компромисс между количеством пакетов в секунду и утечкой битов в секунду. Таким образом, скорость утечки битов можно просто снизить ниже порогового значения, которое может обнаружить мониторинг DDoS. Это верно для любого мониторинга, который пытается обнаружить продолжающиеся атаки, например, систем обнаружения вторжений.

Хотя атака теоретически не предотвращена, в какой-то момент атака становится невозможной, поскольку время, необходимое для утечки, резко увеличивается. Еще один способ уменьшить влияние NetSpectre - добавить искусственный шум к задержке сети. Поскольку количество измерений зависит от дисперсии задержки в сети, дополнительный шум требует от злоумышленника выполнения дополнительных измерений. Таким образом, если разница в задержке сети достаточно высока, атаки NetSpectre становятся невозможными из-за большого количества требуемых измерений.