База знаний: Безопасность
Обновление ядра ОС GNU/Linux и ОС для применения механизма KPTI
Автор: Marya Pogartseva

В данной инструкции приведен пример обновления ОС ОС GNU/Linux для применения механизма KPTI на примере RHEL/Centos,который позволит избежать потенциальные риски в связи с наличием уязвимостей “Meltdown” и  “Spectre”.

Уязвимость Meltdown (CVE-2017-5754) позволяет приложению прочитать содержимое любой области памяти компьютера, включая память ядра и других пользователей.
Уязвимость Spectre (CVE-2017-5753, CVE-2017-5715) создает брешь в механизме изоляции памяти приложений и позволяет атакующему обманным способом получить данные чужого приложения (только приложения, но не памяти ядра).

На данный момент разработчики дистрибутивов GNU/Linux выпустили патчи (применение механизма KPTI), позволяющие избежать уязвимость Meltdown.

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

Проверка наличия патча:

[root@centos7 ~]# uname -a
Linux centos7 3.10.0-693.5.2.el7.x86_64 #1 SMP Fri Oct 20 20:32:50 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@centos7 ~]# dmesg | grep  'x86/pti'
[root@centos7 ~]# cat /sys/kernel/debug/x86/pti_enabled
cat: /sys/kernel/debug/x86/pti_enabled: No such file or directory
 

Видим, что механизм KPTI не применен. 

 

В данном случае необходимо выполнить обновление ядра операционной системы.

 

Обновление выполняется следующей командой:

[root@centos7 ~]# yum update kernel  

В процессе обновления ядра у Вас запросят подтверждение, пожалуйста, подтвердите его, нажав “y” на клавиатуре.

….
 
Is this ok [y/d/N]: y
….

Для того, чтобы все обновления пакетов вступили в силу - завершите работу Ваших приложений и выполните перезагрузку системы командой reboot:

[root@centos7 ~]# reboot
Connection to 192.168.122.70 closed by remote host.
Connection to 192.168.122.70 closed.
 
В меню загрузки GRUB (см. рисунок) появится ядро 3.10.0-693.11.6.el7.x86_64 (либо с более высокой версией), в котором уже будет применен необходимый патч:

По прошествии пяти секунд необходимое ядро ОС будет загружено и можно будет выполнить проверку наличия защитного механизма KPTI (Kernel page-table isolation).

Наличие механизма KPTI можно проверить следующими командами:

[root@centos7 ~]# uname -a
Linux centos7 3.10.0-693.11.6.el7.x86_64 #1 SMP Thu Jan 4 01:06:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux


[root@centos7 ~]# cat /sys/kernel/debug/x86/pti_enabled
1


[root@centos7 ~]# dmesg | grep  'x86/pti'
[    0.000000] x86/pti: Unmapping kernel while in userspace

 

Видим, что в данном случае механизм KPTI применен.

Ссылки на внешние источники:

https://ru.wikipedia.org/wiki/Meltdown_(%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C)

https://ru.wikipedia.org/wiki/Spectre_(%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C)

https://spectreattack.com/ https://access.redhat.com/security/vulnerabilities/speculativeexecution https://access.redhat.com/errata/RHSA-2018:0008  



Если решение вопроса найти не удалось, Вы можете отправить нам заявку:



(2 голос(а))
Эта статья помогла
Эта статья не помогла