Текущая уязвимость процессора Intel Meltdown в настоящее время устранена путем включения изоляции таблицы страниц. Возникает вопрос, как отключить эту функцию: Как отключить изоляцию страницы таблицы, чтобы восстановить потерянную производительность из-за патча для защиты процессора Intel?
Мой вопрос противоположный: есть ли способ проверить работу системы эффективен ли механизм PTI в системе и, следовательно, система защищена? Я специально ищу cat /proc/something или cat /sys/something, не проверяя версию или конфигурационный файл ядра или тому подобное.
grep CONFIG_PAGE_TABLE_ISOLATION=y /boot/config-`uname -r` && \
echo "patched :)" || echo "unpatched :("
Grepping CONFIG_PAGE_TABLE_ISOLATION в конфигурации ядра как предложил Ранис, не помогает на рабочем столе Ubuntu, но может помочь в облачных экземплярах: grep CONFIG_PAGE_TABLE_ISOLATION=y /boot/config-`uname -r` && \
echo "patched :)" || echo "unpatched :("
Grepping CONFIG_PAGE_TABLE_ISOLATION в конфигурации ядра, как предложил Ранис не помогает на рабочем столе Ubuntu, но может помочь в облачных экземплярах:
dmesg | grep -q "Kernel/User page tables isolation: enabled" \
&& echo "patched :)" || echo "unpatched :("
Grepping CONFIG_PAGE_TABLE_ISOLATION в конфигурации ядра, поскольку предложенный Ранисом помощь на рабочем столе Ubuntu, но может помочь в облачных экземплярах:
dmesg | grep -q "Kernel/User page tables isolation: enabled" \
&& echo "patched :)" || echo "unpatched :("
Или из dmesg (спасибо Джейсону Крейтону):
...
so far so good (i.e. meltdown safe) ...
System not affected (take it with a grain of salt though as false negative
may be reported for specific environments; Please consider running it once again).
Проверьте с помощью инструмента https://github.com/speed47/spectre-meltdown-checker: cd /tmp
wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
sudo sh /tmp/spectre-meltdown-checker.sh
на исправленной системе он должен завершиться выходом
Spectre and Meltdown mitigation detection tool v0.27
Checking for vulnerabilities against live running kernel Linux 4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:39 UTC 2018 x86_64
...
CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI): YES
* PTI enabled and active: YES
> STATUS: NOT VULNERABLE (PTI mitigates the vulnerability)
В исправленной системе он должен показать следующее:
Как уже писал Роби Басак, в Ubuntu есть страница о статусе уязвимостей Spectre и Meltdown.
Проверьте с помощью инструмента https://github.com/speed47/spectre-meltdown-checker:cd /tmp
wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
sudo sh /tmp/spectre-meltdown-checker.sh
Бюллетень Ubuntu Security для CVE-2017-5753 Бюллетень Ubuntu Security для CVE-2017-5754 grep CONFIG_PAGE_TABLE_ISOLATION=y /boot/config-`uname -r` && \
echo "patched :)" || echo "unpatched :("
Grepping CONFIG_PAGE_TABLE_ISOLATION в конфигурации ядра как предложил Ранис, не помогает на рабочем столе Ubuntu, но может помочь в облачных экземплярах: grep CONFIG_PAGE_TABLE_ISOLATION=y /boot/config-`uname -r` && \
echo "patched :)" || echo "unpatched :("
Grepping CONFIG_PAGE_TABLE_ISOLATION в конфигурации ядра, как предложил Ранис не помогает на рабочем столе Ubuntu, но может помочь в облачных экземплярах:
dmesg | grep -q "Kernel/User page tables isolation: enabled" \
&& echo "patched :)" || echo "unpatched :("
Grepping CONFIG_PAGE_TABLE_ISOLATION в конфигурации ядра, поскольку предложенный Ранисом помощь на рабочем столе Ubuntu, но может помочь в облачных экземплярах:
dmesg | grep -q "Kernel/User page tables isolation: enabled" \
&& echo "patched :)" || echo "unpatched :("
Или из dmesg (спасибо Джейсону Крейтону):
...
so far so good (i.e. meltdown safe) ...
System not affected (take it with a grain of salt though as false negative
may be reported for specific environments; Please consider running it once again).
Проверьте с помощью инструмента https://github.com/speed47/spectre-meltdown-checker: cd /tmp
wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
sudo sh /tmp/spectre-meltdown-checker.sh
на исправленной системе он должен завершиться выходом
Spectre and Meltdown mitigation detection tool v0.27
Checking for vulnerabilities against live running kernel Linux 4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:39 UTC 2018 x86_64
...
CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI): YES
* PTI enabled and active: YES
> STATUS: NOT VULNERABLE (PTI mitigates the vulnerability)
В исправленной системе он должен показать следующее:
Как уже писал Роби Басак, в Ubuntu есть страница о статусе уязвимостей Spectre и Meltdown.
Проверьте с помощью инструмента https://github.com/speed47/spectre-meltdown-checker:cd /tmp
wget https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh
sudo sh /tmp/spectre-meltdown-checker.sh
Бюллетень Ubuntu Security для CVE-2017-5753 Бюллетень Ubuntu Security для CVE-2017-5754 Выполните следующую команду:
dmesg | grep 'page tables isolation'
Если она отображена, то включена PTI. Если ничего не отображается или вы видите «отключено» в терминале, то PTI отключен. Ubuntu еще не опубликовал патч, поэтому он не отображает никаких сообщений.
Я нашел этот большой скрипт для проверки уязвимостей Meltdown / specter в вашей системе:
https://github.com/speed47/spectre-meltdown-checker
Сценарий проверьте свою систему на известные исправления Meltdown и Spectre в вашей системе, чтобы сообщить вам, устранены ли эти уязвимости вашей ОС
Вы можете проверить с помощью cat /proc/cpuinfo, если он сообщает cpu_insecure в разделе «ошибки», тогда включен PTI.
Если он пуст (или просто не отображается cpu_insecure), тогда большинство вероятно, у вас запущено ядро, которое еще не было исправлено (у Ubuntu нет), или у вас есть процессор AMD (для которого это будет невозможно отключить, поскольку они не уязвимы).
В настоящее время все процессоры считаются уязвимыми в последнем ядре 4.15.
Вы можете проверить /proc/config.gz для CONFIG_PAGE_TABLE_ISOLATION=y, что означает, что ядро было скомпилировано с помощью KPTI.
Это на моей исправленной системе Arch Linux, работающей на 4.14.11-1:
$ zgrep CONFIG_PAGE_TABLE_ISOLATION /proc/config.gz
CONFIG_PAGE_TABLE_ISOLATION=y
В моем экземпляре AWS Ubuntu 14.04.5 LTS EC2 я запустил
grep CONFIG_PAGE_TABLE_ISOLATION /boot/config-$(uname -r)
Он должен сказать:
CONFIG_PAGE_TABLE_ISOLATION=y
Для обновления я сделал:
sudo apt-get update && sudo apt-get install linux-image-generic
Я думаю, что это тоже нормально:
sudo apt-get update
sudo apt-get dist-upgrade
Проверить версию ядра:
uname -r
Нужно быть 3.13.0-139-родовым или новым.
Выполните следующую команду:
dmesg | grep 'page tables isolation'
Если она отображена, то включена PTI. Если ничего не отображается или вы видите «отключено» в терминале, то PTI отключен. Ubuntu еще не опубликовал патч, поэтому он не отображает никаких сообщений.
Я нашел этот большой скрипт для проверки уязвимостей Meltdown / specter в вашей системе:
https://github.com/speed47/spectre-meltdown-checker
Сценарий проверьте свою систему на известные исправления Meltdown и Spectre в вашей системе, чтобы сообщить вам, устранены ли эти уязвимости вашей ОС
Вы можете проверить с помощью cat /proc/cpuinfo, если он сообщает cpu_insecure в разделе «ошибки», тогда включен PTI.
Если он пуст (или просто не отображается cpu_insecure), тогда большинство вероятно, у вас запущено ядро, которое еще не было исправлено (у Ubuntu нет), или у вас есть процессор AMD (для которого это будет невозможно отключить, поскольку они не уязвимы).
В настоящее время все процессоры считаются уязвимыми в последнем ядре 4.15.
Вы можете проверить /proc/config.gz для CONFIG_PAGE_TABLE_ISOLATION=y, что означает, что ядро было скомпилировано с помощью KPTI.
Это на моей исправленной системе Arch Linux, работающей на 4.14.11-1:
$ zgrep CONFIG_PAGE_TABLE_ISOLATION /proc/config.gz
CONFIG_PAGE_TABLE_ISOLATION=y
В моем экземпляре AWS Ubuntu 14.04.5 LTS EC2 я запустил
grep CONFIG_PAGE_TABLE_ISOLATION /boot/config-$(uname -r)
Он должен сказать:
CONFIG_PAGE_TABLE_ISOLATION=y
Для обновления я сделал:
sudo apt-get update && sudo apt-get install linux-image-generic
Я думаю, что это тоже нормально:
sudo apt-get update
sudo apt-get dist-upgrade
Проверить версию ядра:
uname -r
Нужно быть 3.13.0-139-родовым или новым.