Если вы используете OpenVZ и в репозиториях пока нет ядра с исправленной уязвимостью Dirty Cow, можете использовать Partial Mitigation Resolution. В остальных случаях просто обновите ядро и не забудьте загрузиться именно в него.
Оригинальная инструкция (а под ней комментарии):
https://bugzilla.redhat.com/show_bug.cgi?id=1384344#c13
Во втором шаге также необходимо установить kernel-debuginfo для вашей версии ядра.
Оригинальная инструкция (а под ней комментарии):
https://bugzilla.redhat.com/show_bug.cgi?id=1384344#c13
Petr Matousek 2016-10-19 12:16:23 EDT
Please note that this mitigation disables ptrace functionality which debuggers and programs that inspect other processes (virus scanners) use and thus these programs won't be operational. Also this mitigation works against the In The Wild (ITW) exploit we are aware of but most likely does not mitigate the issue as a whole. To mitigate the issue: 1) On the host, save the following in a file with the ".stp" extension: probe kernel.function("mem_write").call ? { $count = 0 } probe syscall.ptrace { // includes compat ptrace as well $request = 0xfff } probe begin { printk(0, "CVE-2016-5195 mitigation loaded") } probe end { printk(0, "CVE-2016-5195 mitigation unloaded") } 2) Install the "systemtap" package and any required dependencies. Refer to the "2. Using SystemTap" chapter in the Red Hat Enterprise Linux "SystemTap Beginners Guide" document, available from docs.redhat.com, for information on installing the required -debuginfo and matching kernel-devel packages 3) Run the "stap -g [filename-from-step-1].stp" command as root. If the host is rebooted, the changes will be lost and the script must be run again. Alternatively, build the systemtap script on a development system with "stap -g -p 4 [filename-from-step-1].stp", distribute the resulting kernel module to all affected systems, and run "staprun -L <module>" on those. When using this approach only systemtap-runtime package is required on the affected systems. Please notice that the kernel version must be the same across all systems.
Во втором шаге также необходимо установить kernel-debuginfo для вашей версии ядра.
В целом необходимо поставить:
kernel-devel-$(uname -r)
systemtap
kernel-debuginfo-$(uname -r)
В случае с vz ядром пакет назывался нестандартно, помог поиск:
yum search all | grep kernel-debuginfo
Далее запускаем:
nohup stap -g [filename-from-step-1].stp &
Можно добавить куда-нибудь в автозапуск, т.к. после ребута этот митигейшн никто, кроме вас, не запустит.
После запуска эксплойт, которым я проверял уязвимость (запись в файл, на который у нас нет прав), перестал работать корректно.
Вот полезная информация про уязвимость и сборник эксплойтов: https://dirtycow.ninja/
Вот полезная информация про уязвимость и сборник эксплойтов: https://dirtycow.ninja/
Комментарии
Отправить комментарий