Текущий Крах уязвимость процессора Intel в настоящее время исправляется путем включения изоляции таблицы страниц. Существует вопрос, как выключить это: Как отключить Изоляцию Таблицы страниц для восстановления производительности, потерянной из-за патча дыры в системе безопасности Intel CPU?
Мой вопрос противоположен: существует ли способ проверить рабочую систему, является ли механизм PTI эффективным в системе, и таким образом система защищена? Я конкретно ищу cat /proc/something
или cat /sys/something
, не проверка версию ядра или параметр конфигурации и т.п.
Вы можете выполнить команду ниже, чтобы увидеть все доступные меры (не только для PTI, но и для других уязвимостей):
$ cat /sys/devices/system/cpu/vulnerabilities/*
Mitigation: PTE Inversion
Mitigation: Clear CPU buffers; SMT vulnerable
Mitigation: PTI
Mitigation: Speculative Store Bypass disabled via prctl and seccomp
Mitigation: usercopy/swapgs barriers and __user pointer sanitization
Mitigation: Full generic retpoline, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB filling
Отображение CONFIG_PAGE_TABLE_ISOLATION в конфигурации ядра как , предложенное Ранизом, не помогает на настольном Ubuntu, но может помочь в облачных экземплярах:
grep CONFIG_PAGE_TABLE_ISOLATION = y / boot / config-`uname -r` && \
эхо "исправлено :)" || echo "исправлено :("
Вы можете проверить с помощью / proc / cpuinfo
, как JonasCz предложил :
grep -q "cpu_insecure \ | cpu_meltdown \ | kaiser" / proc / cpuinfo && echo "исправлено :) "\
|| echo "исправлено :("
Или из dmesg
(спасибо Джейсону Крейтону ):
dmesg | grep -q "Изоляция таблиц страниц ядра / пользователей: включена" \
&& echo "исправлено :)" || echo "исправлено :("
Вы можете скомпилировать тестовую программу из Рафаэля Карвалью для обнаружения Meltdown:
sudo apt-get install git build-essential
cd / tmp
git clone https://github.com/raphaelsc/Am-I-affected-by-Meltdown.git
cd "Я пострадал от кризиса"
сделать
sudo sh -c "эхо 0> / proc / sys / kernel / kptr_restrict"
./meltdown-checker
в исправленной системе он должен заканчиваться выводом
...
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)
Как Роби Басак уже писал , есть страница о состоянии уязвимостей Spectre и Meltdown в Ubuntu .
Также есть:
Выполните следующую команду:
dmesg | grep 'page tables isolation'
Если отображается "Включено", значит PTI включен. Если ничего не отображается или вы видите в терминале «отключено», то PTI отключен. Ubuntu еще не опубликовал патч, поэтому он не отображает никаких сообщений.
Вы можете проверить с помощью cat / proc / cpuinfo
, если он сообщает cpu_insecure
в разделе «Ошибки», то PTI включен.
Если он пуст (или просто не содержит cpu_insecure
), то, скорее всего, вы используете ядро, которое еще не было исправлено (в Ubuntu нет), или у вас есть процессор AMD (для которого это, вероятно, не должны быть включены, поскольку они не уязвимы).
В настоящее время все процессоры рассматриваются как уязвимые в последней версии ядра 4.15.
Я нашел этот отличный сценарий sh для тестирования уязвимостей Meltdown / Spectre в вашей системе:
https://github.com/speed47/spectre-meltdown-checker
Проверка сценария вашей системе известные патчи Meltdown и Spectre, чтобы сообщить вам, устранены ли эти уязвимости вашей ОС
Вы можете проверить / 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-generic или новее.