Устраняем Dirty COW уязвимость в Unix/Linux
19 октября 2016 — была раскрыта уязвимость эскалации привилегий в Linux ядре. Эксплойт, который получил название грязный корова (dirty cow) потому что основной проблемой стало условие гонки обрабатывания копирования при записи (copy-on-write или COW). Dirty cow существует уже давно — по крайней мере с 2007 года с выходом с ядра версии 2.6.22 — поэтому подавляющее большинство серверов находятся под угрозой.
Это означает, что обычный непривилегированный пользователь на сервере может получить доступ на запись к любому файлу, он может читать и следовательно, может повысить свои привилегии в ОС. Более подробную информацию можно найти в интеренете по «CVE-2016-5195» от Canonical, Red Hat и Debian.
К счастью, большинство основных дистрибутивов уже выпустили hotfix-ы.
Проверка на наличие Dirty COW уязвимости в Unix/Linux
Для Ubuntu/Debian ОС.
Чтобы узнать версию ядра, выполняем:
# uname -rv
Вы можете получить вывод как у меня:
4.4.0-42-generic #62-Ubuntu SMP Fri Oct 7 23:11:45 UTC 2016
Если ваша версия ниже чем в списке что ниже, то вы пострадали:
- 4.8.0-26.28 для Ubuntu 16.10
- 4.4.0-45.66 для Ubuntu 16.04 LTS
- 3.13.0-100.147 для Ubuntu 14.04 LTS
- 3.2.0-113.155 для Ubuntu 12.04 LTS
- 3.16.36-1+deb8u2 для Debian 8
- 3.2.82-1 для Debian 7
- 4.7.8-1 для Debian unstable
Для CentOS ОС
Некоторые версии CentOS могут использовать этот скрипт предоставленный Red Hat для RHEL, чтобы проверить уязвимость вашего сервера. Чтобы попробовать, сначала необходимо загрузить скрипт:
# cd /usr/local/src && wget https://access.redhat.com/sites/default/files/rh-cve-2016-5195_1.sh
И после чего запускаем его:
# bash rh-cve-2016-5195_1.sh
Если ваш сервер заражен, то получите что-то типа следующего:
Your kernel is 3.10.0-327.36.1.el7.x86_64 which IS vulnerable.
Red Hat рекомендует обновить ядро.
Устраняем Dirty COW уязвимость в Unix/Linux
К счастью, исправление простое: нужно обновить систему и перезагрузить сервер.
В Ubuntu и Debian, обновить пакеты с помощью APT-GET:
$ sudo apt-get update -y && sudo apt-get dist-upgrade -y
Вы можете обновить все пакеты на CentOS 6/7, выполнив следующую команду:
$ sudo yum update kernel
Прямо сейчас, мы все еще ждем исправление для CentOS 5.
Наконец, во всех дистрибутивах, вам необходимо перезагрузить сервер, чтобы применить изменения:
$ sudo reboot
Вот и все, статья «Устраняем Dirty COW уязвимость в Unix/Linux» завершена.