Foreshadow: предвестник неприятностей?



Текущий 2018 год интересен тем, что чуть ли не каждый месяц появляется информация о новых аппаратных уязвимостях: Spectre и Meltdown. Совсем недавно — 2 недели назад! — были опубликованы громкие новости об уязвимостях Foreshadow и L1Terminal Fault, которые, как сообщается, могут обойти даже механизм SGX (Sofware Guard Extensions), которые ранее считался практически невзламываемым. Насколько опасны эти уязвимости? Можно ли от них защититься и если можно, то как? Обо всём этом мы поговорим ниже.

Краткая справка
Foreshadow, или L1TF — это целая группа уязвимостей, в которую входят:
  • CVE-2018-3615 — для обхода SGX;
  • CVE-2018-3620 — для атаки на ядро операционной системы, а также на режим SMM (System Management Mode);
  • CVE-2018-3646 — для атаки на виртуальные машины.
Авторы многих публикаций высказывают особую тревогу в связи с возможностью обхода защиты SGX: этого не умели Spectre и Metldown, и это делает беззащитными любые конфиденциальные данные. Чтобы понять, насколько эта тревога обоснована, разберём принципы работы механизма SGX.

Что такое SGX и как его можно обойти
Аббревиатура SGX означает Software Guard Extensions. Так называется набор инструкций процессоров Intel, используемых для выделения приватных областей кода и данных. В 2015 году один из создателей SGX Мэттью Хойкстра (Matthew Hoeskstra) опубликовал статью (см. также русский перевод), в которой выделил следующие цели создания этой технологии:
  • дать разработчикам приложений возможность защитить критически важные данные от несанкционированного доступа или изменения со стороны зловредного ПО, запущенного с более высокими привилегиями;
  • позволить приложениям обеспечивать целостность и конфиденциальность чувствительных данных и кода, не вмешиваясь в работу системы привилегий и не мешая ей планировать и контролировать ресурсы платформы;
  • сделать так, чтобы платформа измеряла доверенный код и производила с помощью приложения подписанный аттестат и прочие сертификаты, удостоверяющие, что код был корректно инициализирован в доверенной среде;
  • дать пользователям возможность держать над приложениями контроль, не ограничивая в то же время свободы устанавливать и удалять приложения и сервисы;
  • позволить разработчикам создавать доверенные приложения с использованием известных им средств и процессов;
  • обеспечить рост производительности доверенных приложений;
  • позволить приложениям определять доверенные области кода и данных даже в случае, когда злоумышленник физически контролирует платформу и может осуществлять прямые атаки на память (см. один пример здесь).

В процитированной статье маркетинга гораздо больше, чем технических подробностей. В ней рассказано в общих чертах о том, ЧТО позволяет делать технология SGX, но нет ни слова о том, КАК это делается. Об этом мы подробно расскажем ниже. В своём изложении мы будем в первую очередь опираться на подробную статью, опубликованную Международной организацией исследований в области криптологии (IACR, International Association for Cryptologic Research).

SGX создаёт в памяти защищённый регион — PRM (Processor Reserved Memory), который также называют анклавом. Процессор защищает анклав от любых попыток доступа, в том числе и со стороны ядра, гипервизора и SMM (System Management Mode), а также от попыток доступа со стороны периферийных устройств.

У PRM есть специальный кэш, так называемый EPC (Enclave Page Cache), который состоит из четырёхкилобайтных страниц, хранящих код анклава и данные. При вызове доверенной функции приложение «видит» только данные анклава; любой внешний доступ, в том числе и со стороны ОС, запрещён.

При любой попытке доступа к анклаву происходит процедура так называемой аттестации. Анклав запрашивает аппаратно подписанный отчёт, содержащий в том числе и сведения о его ценности. Этот отчёт отправляется на сервер аттестации. Анклаву высылается открытая часть ключа приложения; далее генерируется приватный ключ, зависящий от анклава и платформы. Ключ шифруется подписывающим ключом и сохраняется для дальнейшего использования.

Как отмечено в официальных публикациях Intel, SGX может защищать от разного рода атак на данные и код: как со стороны системного и пользовательского ПО, так и со стороны загрузчика. А вот от так называемых side-channel-атак SGX защитить не может. Обойти SGX не могут и пресловутые Spectre и Meltdown.

Однако в последнее время появились атаки (собственно, ещё до Foreshadow — см., например, здесь), которые позволяют обходить защиту SGX. Причём Foreshadow — это всего лишь самая громкая и нашумевшая из них.

В документации к SGX отмечено, что «из анклавов невозможно читать и в них невозможно ничего записывать вне зависимости от наличия привилегий любого уровня». Однако на самом деле всё обстоит далеко не так.

Ещё весной этого года появилась информация об атаке под названием SGX Spectre, с помощью которой можно извлекать данные из анклавов. Как показали исследователи из университета штата Огайо (см., например, здесь), это возможно благодаря «дырам» в SDK, с помощью которых разработчики могут интегрировать поддержку SGX в свои приложения. В числе затронутых SDK оказались Intel SGX SDK, Rust-SGX и Graphene-SGX. С детальным разбором этой атаки можно ознакомиться в этой статье; на Youtube также было опубликовано видео с наглядной демонстрацией примера.

Видео, конечно, неубедительное: сам факт проникновения в анклав не означает, что важные данные могут быть украдены. Тем не менее, нужно констатировать: целостность и конфиденциальность механизма SGX нарушены.

Foreshadow нарушает изоляцию, используя так называемую атаку по стороннему каналу (side-channel attack).

Как и в пресловутых Spectre и Meltdown, уязвимость использует механизм спекулятивного исполнения команд. В её основе лежит следующий момент: при доступе к памяти по виртуальному адресу, приводящему к исключению (terminal page fault) из-за отсутствия флага Present в таблице PTE (Page Table Entries), процессоры Intel® спекулятивно рассчитывают физический адрес и загружают данные, если они имеются в L1-кэше. Спекулятивные расчёты осуществляются до проверки наличия данных в физической памяти и до проверки доступности этих данных для чтения. Если флага Present в PTE нет, то операция отбрасывается; но данные при этом «оседают» в кэше и могут быть из него извлечены. Данные могут быть извлечены абсолютно по любому физическому адресу; это открывает обширные возможности для злоумышленников и позволяет, например, извлечь данные на хосте из гостевой машины. Видео с демонстрациями уже появились:

Впрочем, видео выглядит, прямо скажем, не очень убедительно и напоминает многочисленные демонстрации работы уязвимостей Spectre и Meltdown, что гуляли по Интернету в начале этого года: вроде бы и удалось преодолеть защиту — но что дальше? Конечно, обход SGX — прецедент явно не очень хороший

Чего бояться?
В отличие от нашумевших Spectre и Meltdown, Foreshadow угрожает только процессорам Intel. В описаниях отмечается, что с помощью этой атаки можно извлечь из анклава не просто конфиденциальные данные, но и приватный ключ аттестации, что подрывает доверие ко всей SGX-экосистеме.

Различные вариации Foreshadow угрожают так называемому System Management Mode (SMM), ядру операционной системы гипервизоров. Некоторые эксперты отмечают, что с помощью Foreshadow можно воровать данные из виртуальных машин в стороннем облаке. Есть публикации, где отмечается, что новая атака даже позволяет обойти патчи, вычисленные ранее для защиты от атак Spectre и Meltdown.

Однако — как и в случае со Spectre и Meltdown — ко всем громким заявлениям следует относиться крайне осторожно. Ни одного случая кражи значимых и конфиденциальных данных с помощью нашумевших атак пока что зафиксировано не было. Опубликованные прототипы эксплойтов (как и предупреждают сами их авторы) представляют собой не более чем экспериментальные образцы, оторванные от реальной практики, и будут работать далеко не всегда и не у всех, особенно если речь идёт о виртуальных машинах. Поэтому паниковать пока что рано: чтобы не просто проникнуть в пределы анклава, а извлечь из него действительно важную информацию, нужно очень и очень постараться.

На текущий момент действительно серьёзных атак зафиксировано не было.

Патчи и производительность
Тема патчей, защищающих от аппаратных уязвимостей (а если не защищающих, то нивелирующих их последствия), тоже очень актуальна. Вспомним недавнюю историю со Spectre и Meltdown: многие меры были приняты в пожарном порядке, что привело к не самым лучшим последствиям: внезапные перезагрузки системы, резкое падение производительности и т.п. Компании Microsoft пришлось даже выпустить обновления, отключающие патчи Intel. За первые три месяца текущего года только против Intel было подано 32 судебных иска.

На публикацию информации об уязвимости Foreshadow крупные компании отреагировали оперативно: с соответствующими заявлениями выступили Intel, Red Hat, SUSE, VMware, Oracle. Не менее оперативно были выпущены обновления для продукции Cisco и для ядра Linux.

Не обошлось и без казусов: компания Intel быстро выпустила обновления микрокода, но при этом без странных казусов: неожиданно был провозглашен запрет на публикацию результатов тестирования производительности до и после обновления (потом, правда, запрет был отменён). Что это было — сказать сложно. А тема влияния патчей на производительность несомненно заслуживает отдельного исследования и отдельной статьи. И не исключено, что такую статью мы в ближайшем будущем опубликуем.

Заключение
В этой статье мы привели краткий обзор уязвимостей класса Foreshadow. Естественно, в рамках одной статьи рассказать обо всех аспектах уязвимостей группы Foreshadow невозможно. Поэтому приводим подборку полезных ссылок для желающих узнать больше:

OVH – Spectre Variant 4 and 3a disclosure

Наряду с остальной частью ИТ-индустрии OVH был осведомлен о некоторых конкретных уязвимостях безопасности («Spectre variant 4» и «Spectre Variant 3a») в отношении некоторых процессорных архитектур, влияющих на продукты Intel, но, возможно, других поставщиков процессоров. Две из этих уязвимостей позволяют выполнять атаки побочных каналов на основе того же механизма, что и предыдущая уязвимость, описанная в январе 2018 года под названием «Spectre» (CVE-2017-5753 и CVE-2017-5715).


Эти уязвимости являются вариантами «Spectre» и называются «Spectre Variant 3a» (CVE-2018-3640) и «Spectre Variant 4» (CVE-2018-3639), оба они также известны как «SpectreNG» или «Spectre New Generation» ». Специфический «Spectre Variant 4» также упоминается как «Спекулятивный шлейф магазина».

Хотя они тесно связаны с «Spectre», у них достаточно разницы, чтобы считаться определенными недостатками, которые потребуют дополнительных действий для определенных архитектур процессора.

Spectre Variant 3a касается систем с микропроцессорами, использующих спекулятивное выполнение и выполняющих спекулятивные чтения системных регистров, что может позволить несанкционированное раскрытие системных параметров злоумышленнику с локальным доступом пользователя через анализ побочных каналов.

Spectre Variant 4 относится к системам с микропроцессорами, использующими спекулятивное выполнение и спекулятивное выполнение считывания памяти до того, как будут известны адреса всех предыдущих записей в памяти, что может позволить несанкционированное раскрытие информации злоумышленнику с локальным доступом пользователя через анализ побочных каналов.

Мы также знаем, что Spectre Variant 4 может выполняться в среде исполнения на языке. Наиболее частое использование среды выполнения — это JavaScript, который используется в веб-браузерах, но в настоящее время мы не знаем о успешной эксплуатации веб-браузера.

Узнав об этих уязвимостях, OVH немедленно мобилизовала свои команды, чтобы четко понимать последствия этих недостатков, оценивать риски и разрабатывать план действий по защите своих инфраструктур, а также определять лучший курс действий для своих клиентов.

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

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

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

Для отдельных клиентов мы напоминаем, что с января 2018 года все основные веб-браузеры были исправлены, чтобы смягчить Spectre Variant 1 в их управляемых средах. Эти исправления затрудняют использование атак на боковых каналах через веб-браузер, и мы можем предположить, что эти патчи в некоторой степени могут быть применимы к варианту 4. При наличии текущего уровня информации OVH настоятельно призывает своих отдельных клиентов и общественность для проверки и сохранения их веб-браузера (ов) в актуальном состоянии.

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

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

Update: Spectre-NG vulnerability - Intel announcement



LEASEWEB известно о заявлении, сделанном сегодня Intel в отношении двух вопросов безопасности в продуктах Intel, предназначенных Спектр-NG (сравнимый с уязвимостями Specter обнародованных ранее в этом году). Мы внимательно отслеживать ситуацию, как она развивается, и работать вместе с нашими поставщиками, чтобы оценить нашу инфраструктуру и окружающую среду клиентов, связанные.

ЧТО ЗАТРОНУТЫ?
Эта проблема затрагивает большинство моделей процессоров. Обе уязвимости являются так называемыми «боковым канал» атаками, которые позволяют злоумышленнику получить доступ к памяти без разрешения и может привести к несанкционированному доступу к данным в системе. Эти уязвимости особенно актуальны для нескольких пользователей и виртуализации систем / Cloud.
Это локальные эксплойты, что означает, что удаленные злоумышленники не может воспользоваться этой проблемой, и злоумышленник должен иметь доступ к самой системе. Там нет известных / общественных подвигов этой проблемы пока нет, но Intel смогла повторить вопрос, что означает, что нападение было подтверждено, но никаких подвигов не пока еще доступны в дикой природе.
КАКОВЫ СЛЕДУЮЩИЕ ШАГИ?
Intel работает со своими поставщиками о внесении исправления этой проблемы, которая будет включать в себя решение на уровне операционной системы, а также микрокод патч. Первые пятна, вероятно, будут доступны в последнюю неделю мая.

Исправления Операционной системы уровня будут доступны быстро, в частности, от Microsoft, Canonical, Red Hat и VMware. Мы ожидаем что в Debian, CentOS и другие производители быстро следовать после этого.

LEASEWEB начнет заплаты и обновление системы, как только исправления доступны, и мы будем уведомлять клиент, если есть какое-либо влияние на их обслуживание. Если вы убежденный клиент-сервера, пожалуйста, убедитесь, чтобы сохранить свои операционные системы, обновленные в течение следующих недель, и держать дополнительный глаз на критических или обновлениях безопасности от поставщика ОС.
ГДЕ МОЖНО НАЙТИ ДОПОЛНИТЕЛЬНУЮ ИНФОРМАЦИЮ?
Техническая информация о уязвимости могут быть найдены в следующих ссылок:
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-3639
cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-3640

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

Пожалуйста, следите за нашими обновлениями NOC для получения дополнительной информации: leasewebnoc.com

Spectre-NG vulnerability



LEASEWEB известно о различных новостях, циркулирующих о последних «спекулятивное выполнение» уязвимостей именуемых Спектра-NG. Мы внимательно отслеживать ситуацию, как она развивается, и работать вместе с нашими поставщиками, чтобы оценить нашу инфраструктуру и окружающую среду клиентов связанных.

По сообщениям СМИ, как сейчас ожидаемый выпуск патчей производителя был отложен до 21 мая.

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

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

Пожалуйста, следите за нашими обновлениями NOC для получения дополнительной информации
www.leasewebnoc.com

Защита сервера от Spectre и Meltdown

В чем опасность
3 января подразделение гугла Project Zero опубликовало информацию о проблеме безопасности с процессорами на разных архитектурах. В число подверженных атаке попали процессоры Intel, которые мы используем на выделенных серверах.

Уязвимость позволяет процессу считывать произвольную область памяти. Таким образом, вредоносный код может получить доступ к закрытой информации. Подробно о механике реализации читайте на Хабре. Атака через уязвимость очень трудоемкая, но всё-таки, возможна. Стороннее ПО может получить к таким данным, как логин-пароль, ключ сертификата — это прямая угроза безопасности. Если на сервере размещены проекты нескольких пользователей, то один из них может атаковать другого.

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



Если на вашей системе закрыли все три баги, рекомендуем установить обновления. Обновление выполняйте обычным для вашей ОС способом. Для Windows это Windows Update, для *nix систем — определённая команда в консоли.

Обязательно сделайте бэкап перед обновлением системы!

Обновление с нашей помощью
Наши специалисты обновят операционную систему за отдельное обращение (1000 руб.), либо в рамках администрирования по подписке.

Позаботьтесь о безопасности
Последствия атаки через Spectre/Meltdown устрашающие, но пока нет информации о массовом использовании уязвимости. Помните, что чаще всего к проблемам приводят отсутствие резервной копии и слишком простой пароль, который к тому же не обновляют.

Уведомление о необходимости защиты от уязвимостей Meltdown/Spectre

Уважаемый абонент, уведомляем о том, что в конце декабря была обнародованы новые уязвимости для CPU Intel: meltdownattack.com/
Защита от данных уязвимостей требует обновление ПО системы, необходимо установить свежие обновления безопасности. Большая часть поставщиков популярных ОС — Ubuntu, CentOS, Debian, MS Windows уже выпустило новые обновления, защищающие от данных уязвимостей. Мы рекомендуем обновить ПО ваших серверов, виртуальных серверов и рабочих станций как можно быстрее.

Мы применили обновления для аппаратных серверов услуг разделяемого хостинга и виртуализации.

С уважением, служба поддержки NetPoint.

Spectre and Meltdown

wiki.hetzner.de/index.php/Spectre_and_Meltdown/en

Current Generation
  • EX-Line
  • EX41
  • EX41-SSD
  • EX41S
  • EX41S-SSD
  • EX51
  • EX51-SSD
  • EX51-SSD-GPU
  • PX-Line
  • PX61
  • PX61-SSD
  • PX61-NVMe
  • PX91
  • PX91-SSD
  • PX121
  • PX121-SSD
  • DX-Line

  • DX141 (Dell R530)
  • DX151 (Dell R730)
  • DX291 (Dell R730)
  • SX-Line
  • SX61
  • SX131
  • SX291
  • Managed Servers
  • MX90
  • MX90-SSD
  • MX121
  • MX120-SSD
  • MX151-SSD
  • Previous Generations
  • AX10 (Cortex A15 + A7)
  • AX20 (Cortex A15 + A7)
  • AX30 (Cortex A15 + A7)
  • DX150 (R720)
  • DX290 (R720)
  • EQ4
  • EQ6
  • EQ8
  • EQ9
  • EQ10
  • EX4
  • EX4S
  • EX5
  • EX6
  • EX6S
  • EX8
  • EX8S
  • EX10
  • EX40
  • EX40-SSD
  • EX40-Hybrid
  • EX60
  • PX60
  • PX60-SSD
  • PX70
  • PX70-SSD
  • PX90
  • PX90-SSD
  • PX120
  • PX120-SSD
  • SX60
  • SX130
  • SX290
  • XS13
  • XS29

The following products are still under review and may be added to the affected list if new information regarding the used CPUs of these models are published:
  • DS3000
  • DS5000
  • DS7000
  • DS8000
  • DS9000
  • PX80
  • AX50-SSD
  • AX60-SSD
  • AX160-NVMe
  • AX160-SSD