Архив метки: meltdown

Nutanix AHV и что мы будем делать с Meltdown/Spectre

«А теперь, Машенька, о главном…» (с)

Год начинается весело. Если вы пропустили все на свете, то, в двух словах: обнаружена крупная и довольно пакостная уязвимость в большинстве ныне используемых процессоров Intel (и некоторых других архитектур — тоже). Условно вся эта группа уязвимостей названа Meltdown/Spectre, и за подробным описанием я отсылаю на специализированные сайты. Связана эта уязвимость с технологией выполнения программного кода, широко применяемой в CPU сегодня, и, потенциально, может быть использована для доступа к пользовательским данным. Любым данным. Ключам, паролям, произвольным блокам данных, лишь бы в памяти. Процесс злоумышленника может потенциально извлекать из недоступной ему, в обычном состоянии, памяти соседних процессов (и других VM, например), ее содержимое. Самое плохое, что починить ее так, как это обычно делается, правкой микрокода CPU — невозможно.
Пока, в пожарном порядке, производители OS выкатывают патчи, изолирующие память ядра от памяти пользовательских процессов, разными способами. К сожалению, у всех этих патчей есть неприятное побочное свойство: они существенно ухудшают эффективность работы процессоров, и, потенциально (обратите внимание на то, что я часто использую выражение «потенциально», да?) могут заметно ухудшить общую производительность систем. Степень падения производительности разная. В наихудшем случае, при наихудшем стечении обстоятельств, говорят о 20% снижения. Впрочем, существуют задачи, сочетания оборудования и характера операций на CPU, на которых падение незначительно, или вовсе отсутствует.

Если вы используете в качестве гипервизора на Nutanix VMware ESXi или MS Hyper-V — устанавливайте патчи, разработанные VMware и Microsoft (для vSphere смотрите сюда: https://kb.vmware.com/s/article/52085). В этом случае платформа Nutanix для вас ничем не отличается от любой x86 платформы под этим гипервизором. ОЧЕНЬ внимательно читайте текущее состояние дел с порядком установок патчей, там сейчас творится форменный цирк с конями. Обязательно проверяйте ситуацию со стабильностью ваших задач перед выкаткой патчей в продакшн.

Если вы используете Nutanix AHV, то тогда смотрите ниже.

Уязвимость типа Meltdown (Rogue Data Cache Load (CVE-2017-5754 — CVSSv3 7.9)). Более простая в использовании, и поэтому, в принципе, более опасная, но, так как Meltdown не может напрямую использоваться из гостевой VM для атаки на гипервизор, он не опасен для AHV и поэтому фиксить Meltdown в Nutanix AHV нет необходимости.

Уязвимость типа Spectre. Ее использование более сложно реализуется, но она может быть использована для атаки на гипервизор, и ее необходимо пофиксить на уровне гипервизора.

Существует два вида уязвимости Spectre: Вариант 1 и Вариант 2.

Spectre Var1 (Bounds Check Bypass (CVE-2017-5753 — CVSSv3 8.2)) требует минимального изменения в коде, так как уязвимый код НЕ ПРИСУТСТВУЕТ в подсистеме KVM ядра.

Spectre Var2 (Branch Target Injection (CVE-2017-5715 — CVSSv3 8.2)) требует четыре отдельных фикса.

Кроме этих четырех фиксов будет добавлена конфигурируемая пользователем опция CPU IBRS mode (Indirect Branch Restricted Speculation). CPU IRBS может быть включен (on) или выключен (off).

Значение CPU IRBS по умолчанию — off. В этом состоянии замедление работы CPU отсутствует, но есть потенциальная, крайне малая, впрочем, из-за примененных выше фиксов в коде, закрывающих большинство «лазеек», возможность использовать уязвимость Spectre.

В значении CPU IRBS on использование Spectre, даже потенциальное, полностью исключается, однако может наблюдаться некоторое снижение производительности, из-за ухудшения эффективности выполнения кода процессором.

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

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

Фиксы для AOS версий 5.0.x и 5.1.x применяются на AHV version 20160925.103, и доступны с Nutanix support portal, а также будут включены по умолчанию в AOS версий 5.0.5 и 5.1.4, выходящих вскоре.
Фиксы для AOS версий 5.5.x применяются на AHV version 20170830.85, и доступны с Nutanix support portal, а также будут включены по умолчанию с AOS версии 5.5.1.

Подробнее информацию по этой теме смотрите на странице Security Advisores. Официальный док — тут: SecurityAdvisory07-v6. Документ обновляется, текущая версия, на момент публикации этой записи — шестая, самую свежую версию смотрите на сайте Nutanix.

UPD: Версия Security Adisory по этой проблеме обновилась до v7.

UPD2: This updated microcode from Intel has been deemed problematic in certain scenarios, and in some cases, can cause further side effects that are undesirable in virtual environments.
Removed recently released AHV versions 20170830.85 and 20160925.103 from the portal. Instead we will be delivering these AHV versions by way of direct AOS version upgrades. AOS versions 5.5.0.4, 5.1.4 and 5.0.5 will soon be available and packaged with AHV versions 20170830.85 and 20160925.103 respectively. By packaging these updates directly with an AOS update we can default disable VM use of IBRS, the affected and problematic portion of the microcode update.
Remediation:
1) If you have already updated AHV to 20170830.85 or 20160925.103 then it is recommended you upgrade to AOS version 5.5.0.4, 5.1.4 or 5.0.5 once they are available, and reference KB#5104, or contact Nutanix Support, for further information.
2) If you have not yet upgraded AHV to the aforementioned versions then it is recommended to wait and upgrade to AOS version 5.5.0.4, 5.1.4 or 5.0.5 once they are available, and then upgrade your hosts to the packaged AHV version. In this scenario, it is unnecessary to contact Nutanix Support for additional information. Reference KB#5104 for additional information.

Nutanix принял решение в нашем продукте для борьбы с Meltdown/Spectre использовать технологию Retpoline, разработанную командой Google, вместо плохо себя зарекомендовавшего пути с «тремя патчами» Intel.