Раскрыты (http://seclists.org/fulldisclosure/2016/Jan/28) подробности эксплуатации уязвимости (http://www.halfdog.net/Security/2015/UserNamespaceOverlayfsS.../) (CVE-2015-8660) в ядре Linux, позволяющей непривилегированному локальному пользователю получить права root. Уязвимость вызвана недоработкой в коде установки прав доступа в файловой системе OverlayFS, проявляющейся при использовании пространств имён для идентификаторов пользователей (user namespaces (http://man7.org/linux/man-pages/man7/user_namespaces.7.html)).Суть проблемы в том, что пользователь может при помощи технологии "user namespaces" создать изолированное окружение со своим пользователем root и примонтировать в нём часть внешней ФС через OverlayFS. Из-за ошибки в OverlayFS при изменении прав доступа в изолированном окружении, изменения также остаются в связанной с OverlayFS директории для хранения изменений (например, директория для изменений может быть создана в tmpfs и остаётся доступна извне, также доступа к ФС изолированного окружения можно получить через /proc). Таким образом, в изолированном окружении можно создать исполняемый файл с флагом suid и выполнить его вне изолированного окружения. Для тестирования подготовлен прототип эксплоита (http://www.halfdog.net/Security/2015/UserNamespaceOverlayfsS...).
Вызвавшая уязвимость ошибка была устранена (https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux....) в ядре Linux в начале декабря и вошла в состав релиза ядра 4.4, но детальная информация об уязвимости обнародована только сейчас. Проблема проявляется начиная с ядра 3.18, поэтому не касается штатных ядер дистрибутивов RHEL/CentOS (https://bugzilla.redhat.com/show_bug.cgi?id=1291329) и Debian (https://security-tracker.debian.org/tracker/CVE-2015-8660). Проблема затрагивает (http://people.canonical.com/~ubuntu-security/cve/2015/CVE-20...) выпуски Ubuntu 15.10 (http://www.ubuntu.com/usn/usn-2858-1/) и Fedora 23 (https://bodhi.fedoraproject.org/updates/FEDORA-2016-6ce812a1e0), но уже устранена в выпущенных несколько дней назад обновлениях пакетов с ядром.
Следует отметить, что так как многие старые подсистемы ядра написаны без оглядки на возможности User Namespace, не исключается наличие ещё не выявленных похожих уязвимостей. Например, кроме OverlayFS подобные проблемы уже найдены (https://lkml.org/lkml/2015/12/25/71) в ptrace (https://bugzilla.redhat.com/show_bug.cgi?id=1295287) (CVE-2015-8709). В качестве обходного пути защиты рекомендуется отключить поддержку User Namespace в ядре (CONFIG_USER_NS=n). Проверить включена ли поддержка User Namespace можно командой "ls /proc/self/ns|grep user".URL: http://seclists.org/fulldisclosure/2016/Jan/28
Новость: http://www.opennet.me/opennews/art.shtml?num=43659
Можно не бояться:
$ zgrep -i CONFIG_OVERLAY_FS /proc/config.gz
# CONFIG_OVERLAY_FS is not set
Как же я рад за тебя!
Все так не смогут проверить. /proc/config.gz может быть выключен в ядре.
Вот в штатном дебиановском его нету. Впрочем, что я парюсь, в новости прямым текстом сказано, что Debian вне зоны риска.
В /boot заглянуть не судьба?
> В /boot заглянуть не судьба?Вау. Спасибо. =)
нельзя писать "нету" и при этом "парюсь". в вашем случае только парюся
CONFIG_OVERLAYFS_FS
/proc/config.gz: No such file or directory
uname -r забыл вывалить
> но затрагивает выпуски Ubuntu 15.10$ uname -a
Linux ubuntu1404v 3.19.0-43-generic #49~14.04.1-Ubuntu SMP Thu Dec 31 15:46:00 UTC 2015 i686 i686 i686 GNU/Linux
$ cat /etc/*-release | grep -i "version"
VERSION="14.04.3 LTS, Trusty Tahr"
VERSION_ID="14.04"
Linux home 3.13.0-74-generic #118-Ubuntu SMP Thu Dec 17 22:52:02 UTC 2015 i686 i686 i686 GNU/LinuxVERSION="14.04.3 LTS, Trusty Tahr"
VERSION_ID="14.04";)
14.04.2
3.16.0-36 и обновлять не тороплюсь, ибо работает.
Воткнёшь новую версию - то вайфай/картридер отвалится, то подсветка не регулируется, то скорость проца. За*пло.
Ах да, ещё и модуль nvidia пересобирать и с оптимус-ом долбаться.
> 3.16.0-36Оно же в ubuntu всё - тебя какиры похакают и отымеют
https://wiki.ubuntu.com/Kernel/LTSEnablementStack
> Оно же в ubuntu всё - тебя какиры похакают и отымеютПускай найдут сначала в тайге ))) И сначала должны закончиться виндузятники, потом бздуны, которые обновляются раз в пятилетку потому что "работает же, а админ который ставил - уволился". А потом любители хостить на шлюзе веб-сайты на wordpress или IIS.
Ну хоть когда-то затвердевшее в дебиане оказалось безопаснее.
А Вы собираетесь утверждать, что обычно оно менее безопасно, чем... Чем что, кстати?
Бред сивой кобылы.
> Чем что, кстати?Чем арч, конечно же. Не раз проскакивали новости, что в арче не проявлялись новые серьезные уязвимости на фоне остальных дистрибутивов - всегда забавляло.
Хм. Я не слежу за арчем, но в данном факте ничего удивительного нет. В апстриме иногда (довольно редко) баги правятся быстрее, чем в серьёзных дистрибутивах. И пиар подобных исключительных случаев -- основная забава школьников[-/]арчеводов.
Арчененавистникам превед!ls /proc/self/ns | grep user
# uname -a
Linux www.sex.com 4.3.3-2-ARCH #1 SMP PREEMPT Wed Dec 23 20:09:18 CET 2015 x86_64 GNU/Linux
"В апстриме иногда (довольно редко) баги правятся быстрее, чем в серьёзных дистрибутивах"Ну и чушь. В дистрибах подавляющее большинство багов (non security) вообще не правятся. Даже если это critical usability bug. И делай что хочешь до нового релиза. Арч по понятным причинам этой проблемы лишён, поэтому после 15 лет всяких FreeBSD, Debian, CentOS и прочего все мои десктопы на Арче.
>> "В апстриме иногда (довольно редко) баги правятся быстрее, чем в серьёзных дистрибутивах"
> Ну и чушь. В дистрибах подавляющее большинство багов (non security) вообще не
> правятся.Потому что эти баги в основном до серьёзных дистров не доходят, ибо пихают в них (в дистры) только стабильные версии апстримного софта. Забегая вперёд, если в стабильной версии апстримного пакета внезапно окажутся "критические для использования баги", то это плохое ПО.
При построении релиза в дистрибутиве как правило идёт работа над интеграцией ПО в окружение других пакетов. Отладить программу доволно просто, а вот протестировать её в окружении -- задача весьма трудоёмкая.
> Даже если это critical usability bug. И делай что хочешь до нового релиза.
Только если эта проблема была обнаружена после релиза, кэп. Но вообще никто не мешает установить пару-тройку пакетов из нестабильной ветви, а также есть бэкпорты. Никто вас ручками не заставляет собирать (хотя это в общем-то тоже метод).
> Арч по понятным причинам этой проблемы лишён, поэтому
> после 15 лет всяких FreeBSD, Debian, CentOS и прочего все мои
> десктопы на Арче."Каждый др***т как хочет", и в своём маленьком десктопном мирке -- на здоровье. Главное, чтобы на серверы в продакшн не тащили.
"баги в основном до серьёзных дистров не доходят"бла-бла-бла...
centos6
gthumb-2.10.11-8.el6.x86_64.rpmarch
gthumb 3.4.1-3теперь открой changelog за последние 7 (СЕМЬ, КАРЛ, СЕМЬ) лет. И что, ни одного серьёзного бага не видишь?
"никто не мешает установить пару-тройку пакетов из нестабильной ветви"
ахаха, какой прелестный колхоз. а как же "пихают в дистры только стабильные версии апстримного софта"?
Домашнее задание тебе: обоснуй нестабильность версии 3.4.1. С ссылками.
> Домашнее задание тебе: обоснуй нестабильность версии 3.4.1. Со ссылками.Простите за вмешательство, но разница между GNOME2 и GNOME3 -- это уже классический (sic) пример нестабильности иного порядка.
>> Домашнее задание тебе: обоснуй нестабильность версии 3.4.1. Со ссылками.
> Простите за вмешательство, но разница между GNOME2 и GNOME3 -- это уже
> классический (sic) пример нестабильности иного порядка.Да я бы и сам лучше не написал. Особенно учитывая, что этот анон, похоже, может читать лишь короткие фразы, а длинные дробит с потерей контекста. =/
Не прощаю. В CentOS7 гнум 3-й. Как же так, он же на порядки менее стабильный чем 2?И QEMU bump-нули до 1.5. Соответственно, опять спрашиваю, кто-то может обосновать мегастабильность релизов которые выбирает CentOS, чем 1.6 нестабильнее 1.5?
> "никто не мешает установить пару-тройку пакетов из нестабильной ветви"
> ахаха, какой прелестный колхоз. а как же "пихают в дистры только стабильные
> версии апстримного софта"?Вы не поверите, но в нестабильной ветке Debian находятся стабильные версии апстримного софта.
илиCentos6
qemu-kvm-0.12.1.2Arch
qemu 2.4.1сколько между этими версиями юзабилити багов?
> qemu-kvm-0.12.1.2
> qemu 2.4.1
> сколько между этими версиями юзабилити багов?Добавлено или исправлено??
> поэтому после 15 летТочно поэтому? Думаю, причина в другом.
тонко
Т.е. механизм "user namespaces", созданный для безопасности (контейнеризации) сам приводит к проблемам с безопасностью. Замечательно!
Первые подушки безопасности плохо работали. Замечательно!
> Первые подушки безопасности плохо работали. Замечательно!В бздах когда-то с джейлами на такие (или очень похожие) грабли наступали. Но учесть опыт "бздюков" и учиться на чужих ошибках – лапчатым, видимо, невместно.
> В бздах когда-то с джейлами на такие (или очень похожие) грабли наступали.Вот здесь хорошо бы ссылочку/CAN, похожесть похожести рознь.
PS: хорошо, что мы не стали перепрыгивать на overlayfs слишком быстро, хотя пробный набросок для инфраструктуры сборки образов есть ;-)
https://www.freebsd.org/security/advisories/FreeBSD-SA-04:03... ну вот из прикольного, к примеру. А в https://www.freebsd.org/security/advisories/ наверняка что-то еще про jail есть
> https://www.freebsd.org/security/advisories/FreeBSD-SA-04:03...Спасибо, занятно -- но при чём тут ФС?
Здесь ведь грабелька в том, что изменилась "среда обитания" кода файловых систем и, соответственно, развалилось минимум одно предположение, сделанное при разработке минимум одной из них.
Т.е. "интербаг", что совсем другой класс (технически и организационно) проблем, чем "просто баг" вроде недостаточной проверки _в пределах_ подсистемы.
> В бздах когда-то с джейлами на такие (или очень похожие) грабли наступали.
> Но учесть опыт "бздюков" и учиться на чужих ошибках – лапчатым,
> видимо, невместно.только там жайлы не позиционировались, как механизм безопасности.
> только там жайлы не позиционировались, как механизм безопасности.---
One of the tools which can be used to enhance the security of a FreeBSD system is jails.
--- https://www.freebsd.org/doc/handbook/jails.html
> ---
> One of the tools which can be used to enhance the security
> of a FreeBSD system is jails.
> --- https://www.freebsd.org/doc/handbook/jails.htmlмогут усилить безопасность, ага, но могут и не усилить )
$ grep -i CONFIG_OVERLAY_FS /boot/config-4.3.0-1-amd64
CONFIG_OVERLAY_FS=m
$ uname -a
Linux 4.3.0-1-amd64 #1 SMP Debian 4.3.3-2 (2015-12-17) x86_64 GNU/Linux
прелесть-то какая.
Кажется кто-то забыл про msblast.
У линуксов просто другая модель.
Чёткие Ынтерпрайзные пацаны сидят на 3.14 и их это не касается
Пионеры сидят на чем по свежее, им даже в радость всякие ошибки и прочее - лишний повод поковыряться.
Все довольны.
> Пионеры сидят на чем по свежее, им даже в радость всякие ошибки и прочее - лишний повод поковыряться.Нет же, пионеры не собирают весь ненужный хлам в ядре.
Гайд по усилению безопасности? В Убунте? Это там, где при создании превьюшки для скачанного, но даже не открытого видеофайла, ffmpeg радостно отправит по сети злоумышленнику любой затребованный им файл?http://habrahabr.ru/company/mailru/blog/274855/
Не смешите мои тапочки, какая там безопаность...
Конкретно Ubuntu тут ни при чем.
> http://habrahabr.ru/company/mailru/blog/274855/Круто! Какое же оказывается все вокруг дырявое! Это же еще и на ведроиде наверняка где-нить вылезет. :(
~ # uname -a
Linux control 3.16.0-k1-kerio-686-pae #1 SMP Debian 3.16.7-ckt4-3~kerio1 (2015-03-12) i686 GNU/Linux
~ # ls /proc/self/ns|grep user
user
<< Kerio Control 8.6.1 >>
А отключить поддержку User Namespace в ядре через параметры ядра как-то можно отключить?
а самому почитать https://www.kernel.org/doc/Documentation/kernel-parameters.txt и узнать, вместо того, чтобы униженно ждать, что кто-то великий здесь ответит?
Не знаешь, не отвечай, никто тебя не ждет.
"Создать изолированное окружение со своим пользователем рут" - это простите как?
Это смысл user namspace: создавать псевдо root пользователя в пространстве контейнера, но который будет иметь по факту uid пользователя на хосте.
И что, много кто использует OverlayFS?) Кроме SUSE`ров?
OpenWRT