Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Гибкие группы масштабирования ✔️ Унифицированные группы масштабирования
В этой статье дается руководство по новому классу уязвимостей сторонних каналов, связанных с микроархитектурой и спекулятивным выполнением, которые затрагивают многие современные процессоры и операционные системы на основе кремния. Это включает Intel, AMD и ARM. См. сведения об этих уязвимостях устройств на основе кремния в следующих рекомендациях по безопасности и CVE:
- ADV180002 — рекомендации по устранению уязвимостей побочных каналов, связанных со спекулятивным исполнением
- ADV180012 — руководство Майкрософт по уязвимости Speculative Store Bypass
- ADV180013 — руководство Microsoft по несанкционированному чтению системных регистров
- ADV180016 — руководство Майкрософт по методу Lazy FP State Restore
- ADV180018 — руководство Майкрософт по устранению вариантов L1TF
- ADV190013 — руководство Майкрософт по устранению уязвимостей Microarchitectural Data Sampling
- ADV220002 — руководство Microsoft по уязвимостям устаревших данных MMIO процессоров Intel
- CVE-2022-23816 — путаница типов ЦП AMD
- CVE-2022-21123 — путаница типов ЦП AMD
Раскрытие информации об этих уязвимостях ЦП вызвало вопросы у клиентов, которые хотели получить больше ясности.
Корпорация Майкрософт развернула по всем облачным службам средства устранения уязвимостей. Инфраструктура, которая управляет Azure и обеспечивает изоляцию клиентских рабочих нагрузок друг от друга, защищена. Это означает, что потенциальный злоумышленник, использующий ту же инфраструктуру, не может атаковать приложение с помощью этих уязвимостей.
Чтобы свести к минимуму последствия для пользователей и устранить необходимость перезагрузки, Azure всякий раз при возможности использует обслуживание с сохранением памяти. Azure продолжит использовать эти методы при обновлении систем на хосте и защите наших клиентов.
Дополнительные сведения о том, как вопросы безопасности учитываются в каждом аспекте создания Azure, доступны на веб-сайте Документация по системе безопасности Azure.
Примечание.
С тех пор как этот документ был впервые опубликован, было обнаружено несколько вариантов этого класса уязвимостей. Корпорация Майкрософт продолжает активно вкладывать средства в защиту своих клиентов и предоставлять поддержку. Эта страница будет обновлена по мере продолжения выпуска дополнительных исправлений.
Клиенты, которые работают с ненадежным кодом на своих виртуальных машинах, должны предпринять меры по защите от этих уязвимостей, прочитав приведенные ниже сведения обо всех уязвимостях.
Другим клиентам следует оценить эти уязвимости с точки зрения глубокой защиты и рассмотреть выбранную ими конфигурацию с точки зрения безопасности и производительности.
Поддержка актуальности операционных систем
Хотя обновление ОС не требуется для изоляции приложений, работающих в Azure от других клиентов Azure, всегда рекомендуется поддерживать актуальность программного обеспечения. Последние обновления системы безопасности для Windows содержат методы устранения этих уязвимостей. Аналогичным образом дистрибутивы Linux выпустили несколько обновлений для устранения этих уязвимостей. Ниже приведены рекомендуемые действия для обновления операционной системы.
Предложение | Рекомендуемое действие |
---|---|
Облачные службы Azure | Включите автоматическое обновление или убедитесь, что используется последняя версия гостевой ОС. |
Виртуальные машины Linux в Azure | Устанавливайте обновления, предоставляемые поставщиками операционной системы. Дополнительные сведения см. в пункте Linux далее в этом документе. |
Виртуальные машины Windows в Azure | Установите последний накопительный пакет обновлений безопасности. |
Прочие службы Azure PaaS | Для клиентов, использующих эти службы, не требуется никаких действий. Azure автоматически выполняет обновление версий операционной системы. |
Дополнительные рекомендации при выполнении ненадежного кода
Клиентам, которые позволяют ненадежным пользователям выполнять произвольный код, может потребоваться использование дополнительных компонентов безопасности на своих виртуальных машинах Azure или в облачных службах. Эти функции защищают от внутрипроцессных векторов раскрытия, описываемых несколькими уязвимостями спекулятивного исполнения.
Примеры сценариев, где рекомендуется использовать дополнительные компоненты безопасности:
- Вы разрешаете коду, который не доверяете запуску на виртуальной машине.
- Например, вы разрешаете одному из клиентов загрузить двоичный файл или сценарий, который затем будет выполнен в приложении.
- Вы разрешаете пользователям, которым вы не доверяете войти в виртуальную машину с помощью учетных записей с низким уровнем привилегий.
- Например, вы разрешаете низкопривилегированному пользователю войти в одну из виртуальных машин с помощью удаленного рабочего стола или SSH.
- Вы разрешаете ненадежным пользователям доступ к виртуальным машинам с помощью встроенной виртуализации.
- Например, вы управляете узлом Hyper-V, но выделяете виртуальные машины для ненадежных пользователей.
Клиентам, которые не реализуют сценарий с ненадежным кодом, не нужно включать эти дополнительные функции безопасности.
Включение дополнительной защиты
Если вы используете ненадежный код, можно включить дополнительные возможности безопасности на виртуальной машине или в облачной службе. Одновременно с этим убедитесь, что операционная система обновлена, чтобы включить функции безопасности в виртуальной машине или в облачной службе.
Виндоус
Ваша целевая операционная система должна быть обновлена, чтобы включить эти дополнительные функции безопасности. Хотя многие средства защиты включены по умолчанию, описанные здесь дополнительные функции необходимо включать вручную, что может привести к снижению производительности.
Вариант 1
Шаг 1. Следуйте инструкциям, приведенным в KB4072698 , чтобы убедиться, что защита включена с помощью модуля SpeculationControl PowerShell.
Примечание.
Если вы ранее скачали этот модуль, вам потребуется установить последнюю версию.
Сведения о проверке включенной защиты от этих уязвимостей см. в статье Основные сведения о выходных данных скрипта PowerShell Get-SpeculationControlSettings.
Если защита не включена, обратитесь в службу поддержки Azure, чтобы включить дополнительные элементы управления на виртуальной машине Azure.
Шаг 2. Чтобы включить тенение виртуальных адресов ядра (KVAS) и поддержку целевой внедрения Ветвей (BTI), следуйте инструкциям в KB4072698 , чтобы включить защиту с помощью Session Manager
разделов реестра. Потребуется перезагрузка.
Шаг 3. Для развертываний, использующих вложенную виртуализацию (только D3 и E3): эти инструкции применяются внутри виртуальной машины, используемой в качестве узла Hyper-V.
- Следуйте инструкциям в KB4072698 для включения защиты с помощью ключей реестра
MinVmVersionForCpuBasedMitigations
. - Установите тип планировщика гипервизора как
Core
, следуя инструкциям здесь.
Вариант 2
Отключите технологию Hyper-Threading на виртуальной машине. Клиенты, выполняющие недоверенный код на виртуальной машине с технологией Hyper-Threading, могут отключить эту технологию или перейти на размер виртуальной машины без Hyper-Threading. В этом документе приведен список размеров виртуальных машин с технологией Hyper-Threading (где количество виртуальных ЦП относится к количеству ядер как 2:1). Чтобы проверить, включена ли технология Hyper-Threading на виртуальной машине, используйте следующий скрипт в командной строке Windows на виртуальной машине.
Введите wmic
, чтобы войти в интерактивный интерфейс. Затем введите следующую команду, чтобы просмотреть количество физических и логических процессоров на виртуальной машине.
CPU Get NumberOfCores,NumberOfLogicalProcessors /Format:List
Если число логических процессоров превышает количество физических процессоров (ядер), то технология Hyper-Threading включена. Если вы используете виртуальную машину с технологией Hyper-Threading, обратитесь в Службу поддержки Azure, чтобы отключить эту технологию. После отключения гиперпоточности поддержка будет требовать полной перезагрузки виртуальной машины. Сведения о том, почему уменьшилось количество ядер виртуальной машины, см. в разделе Число ядер.
Опция 3
Для CVE-2022-23816 и CVE-2022-21123 (ошибка определения типа ЦП AMD) следуйте как варианту 1, так и варианту 2 выше.
Линукс
Включение набора дополнительных функций безопасности внутри требует, чтобы целевая операционная система была полностью обновлена. Некоторые методы устранения рисков будут включены по умолчанию. В приведенном ниже разделе описаны компоненты, которые по умолчанию отключены и/или зависят от аппаратной поддержки (микрокод). Включение этих компонентов может отрицательно сказаться на производительности. Дополнительные инструкции см. в документации поставщика операционной системы.
Шаг 1. Отключение гиперпотоков на виртуальной машине . Клиентам, выполняющим ненадежный код на гиперпотоковой виртуальной машине, потребуется отключить гиперпоток или перейти к виртуальной машине, отличной от гиперпотоков. В этом документе приведен список размеров виртуальных машин с технологией Hyper-Threading (где количество виртуальных ЦП относится к количеству ядер как 2:1). Чтобы проверить, работает ли ваша виртуальная машина с использованием гиперпоточности, выполните команду lscpu
на виртуальной машине Linux.
Если Thread(s) per core = 2
, то Hyper-Threading включен.
Если значение Thread(s) per core = 1
, то технология Hyper-Threading была отключена.
Пример выходных данных для виртуальной машины с включенной технологией Hyper-Threading:
CPU Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Если вы используете виртуальную машину с технологией Hyper-Threading, обратитесь в Службу поддержки Azure, чтобы отключить эту технологию. После отключения технологии Hyper-Threading служба поддержки попросит полностью перезагрузить виртуальную машину. Сведения о том, почему уменьшилось количество ядер виртуальной машины, см. в разделе Число ядер.
Шаг 2. Чтобы устранить любые из следующих уязвимостей памяти на основе ЦП, обратитесь к документации поставщика операционной системы:
Число ядер
При создании виртуальной машины с поддержкой технологии Hyper-Threading Azure выделяет 2 потока на ядро — они называются виртуальными ЦП. Если технология Hyper-Threading отключена, Azure удаляет поток и отображает однопоточные ядра (физические ядра). Отношение виртуальных ЦП к ЦП равно 2:1, поэтому после отключения технологии Hyper-Threading количество ЦП на виртуальной машине уменьшится в два раза. Например, виртуальная машина D8_v3 поддерживает технологию Hyper-Threading и работает на 8 виртуальных ЦП (2 потока на ядро умножить на 4 ядра). Если отключить Hyper-Threading, количество процессоров упадет до 4 физических ядер с 1 потоком на ядро.
Дальнейшие действия
Дополнительные сведения о том, как вопросы безопасности учитываются в каждом аспекте работы Azure, см. в документации по системе безопасности Azure.