Эксплоиты и тесты производительности, связанные с уязвимостями Meltdown и Spectre

Исслeдoвaтeли бeзoпaснoсти, выявившиe уязвимoсти в систeмe спeкулятивнoгo выпoлнeния кoмaнд сoврeмeнныx прoцeссoрoв, oткрыли дoступ к рaбoчим прoтипaм эксплoитoв, сoздaнным на дeмoнстрaции вoзмoжнoсти сoвeршeния aтaк Meltdown и Spectre. В тoм числe oткрыт кoд библиoтeки libkdump, кoтoрaя испoльзoвaлaсь в дeмoнстрaцияx вoзмoжнoсти пeрexвaтa ввoдa пaрoлeй, oбxoдa KASLR, дoступa к пaмяти xoст-систeмы изо гoстeвoй систeмы KVM и oпрeдeлeния содержимого произвольных областей физической памяти (physical_reader и memdump). Наилучшие результаты работы эксплоитов отмечаются нате процессорах с поддержкой Intel TSX (Intel Core i7-5xxx, i7-6xxx то есть (т. е.) i7-7xxx). Ранее доступ к репозиторию на GitHub был ограничен. Сверх того того, накопилась большая подбора заметок с оценкой изменения производительности систем, за применения к ядру Linux патчей KPTI и retpoline]] в (видах блокирования атак Meltdown и Spectre. Всеобщий вывод указывает на то, аюшки? накладные расходы вполне терпимы сверху системах, поддерживающих PCID (Processor-Context ID). Сверху системах без поддержки PCID сдерживание работы существенно и необходимо отдельно делать переучет, что важнее провал производительности, тот или иной может составлять до 30%, иль риск эксплуатации уязвимости Meltdown (во, атака маловероятна на однопользовательских системах и рабочих станциях с обновлёнными версиями браузеров). PCID поддерживается в большинстве моделей процессоров, выпускаемых с 2010 лета (проверить можно по наличию флага "pcid" в /proc/cpuinfo). В гостевых системах KVM и VMWare, а вдобавок в половине окружений AWS, PCID не доступен. Окр того, поддержка PCID появилась в какие-нибудь полгода в ядре Linux 4.14, поэтому снижение накладных расходов кончай заметно только на системах с ядром 4.14+ аль в дистрибутивах, перенёсших поддержку PCID в сильнее старых ядрах. Некоторые другие перипетии, связанные с уязвимостями Meltdown и Spectre: Колода Intel вчера выпустила обновление микрокода для того большого числа актуальных и устаревших моделей процессоров. Восстановление доступно в виде пакетов для Red Hat Enterprise Linux, SUSE Linux Enterprise Server, CentOS, Fedora, Ubuntu, Debian и Chrome OS, позволяющих модифицировать микрокод без обновления BIOS. Возрождение микрокода не отменяет необходимости применения патчей к ядру Linux; Колода Intel также опубликовала результаты собственной оценки влияния исправлений получи производительность. В тестах SYSmark 2014 SE получи системах с 8 поколением CPU Intel Core наблюдается сбавка производительности на 2-14% (в среднем 6%); В области информации от компании Red Hat использование патчей к устранения уязвимостей в Red Hat Enterprise Linux 7 приводит к замедлению выполнения задач сверху 1-20%: Наибольшее проседание производительности (8-20%) наблюдается в работе OLTP БД, случайном доступе к прокэшированной памяти, возле активном буферизированном вводе/выводе, около большой интенсивности переключения контекста промеж (себя) ядром и пользовательским уровнем (выполнение системных вызовов). Старшие потери наблюдаются в тестах tpc, sysbench, pgbench, netperf (по 256 байт) и fio (случайный доступ к памяти NvME). Убавление производительности на 3-7% отмечается около выполнении аналитических запросов в СУБД, в системах поддержки принятия решений (DSS) и в Java VM, в моменты интенсивного обмена информацией за сети или при обращениях к диску. Упадок производительности на 2-5% наблюдается в решениях HPC (High Performance Computing) быть большой вычислительной нагрузке на CPU, коль скоро большинство работ выполняется в пространстве пользователя с применением привязки к ядрам CPU иль использованием numa-control (например, тесты Linpack NxN и SPECcpu2006); Минимальное воздействие на производительность (менее 2%) проявляется в системах, в которых применяются методы прямого доступа к ресурсам в отвод функций ядра и различные техники offload-ускорения. Как-то, тесты DPDK (VsPERF 64 байт) и OpenOnload (STAC-N). Понятно обновление ядра c устранением уязвиомости Meltdown про Ubuntu 12.04 (ядро 3.2), 14.04 (стержень 3.13), 16.04 (4.4) и 17.10 (4.13). Для 32-разрядных систем, а равно как для веток stretch-backports, testing/buster и experimental обновления временно недоступны. Патчи для блокирования Spectre находятся в процессе рассмотрения, с приложений Spectre пока устранён в Firefox в Debian unstable, подновление Chromium пока не добавлено; Угоду кому) SUSE/openSUSE выпущено обновление ядра с патчами на противостояния Meltdown и Spectre; Разработчики OpenBSD и FreeBSD готовят патчи исполнение) своих систем. Theo de Raadt, ктитор OpenBSD, высказал возмущение практикой упреждающего информирования о проблемах как самых крупных компаний, что ставит оставшиеся в ранг проектов второго сорта. Исполнение) DragonFly BSD опубликован начальный вариант патча, что приводит к снижению производительности на 5-12% держи процессорах серии Skylake и 12-53% получи CPU Haswell; IBM выпустил обновление микрокода к устранения уязвимости Meltdown в процессорах POWER7+ и POWER8. И опубликованы специфичные для CPU POWER патчи угоду кому) устранения проблемы в дистрибутивах Linux (RHEL, SUSE, Ubuntu). На POWER9 обновление запланировано на 15 января. Обработка для AIX и IBM i ожидается 12 февраля; Удобоваримо обновление проприетарных драйверов NVIDIA (390.12, 384.111) с блокированием применения атаки Spectre к драйверам; Пользу кого распределённой ФС Lustre отмечена доход производительности при применении KPTI патчей через 10% до 45% в зависимости через конфигурации и нагрузки. Наибольшие потери наблюдаются рядом связке "zfs+compression+lustre" и выполнения rsync ради большого числа мелких файлов; Инженеры с компании Branch Metrics отметили усиление нагрузки на CPU примерно на 20% немного погодя применения патчей против Meltdown к окружению бери базе AWS EC2. Другие пользователи отмечают депрессия производительности AWS EC2 на 5-30%; Отмечено убыль производительности Python на 37% подле применении обновления c защитой от Meltdown получи платформе Windows 7; Источник: http://www.opennet.ru/opennews/art.shtml?num=47880