Главная » 2009»Октябрь»6 » FreeBSD: представлена шифрованная ФС и исправлено три серьезные уязвимости
FreeBSD: представлена шифрованная ФС и исправлено три серьезные уязвимости
07:28
Обнаруженная Пшемыславов Фрасунеком (Przemyslaw Frasunek) в конце августа уязвимость, позволяющая локальному непривилегированному пользователю FreeBSD получить root-привилегий, получила свое подтверждение. Более того, пока разработчики FreeBSD готовили исправления, Пржемыслав нашел еще одну подобную уязвимость в другой подсистеме. В итоге, сегодня опубликованы три уведомления:
В ветке FreeBSD 6.x найдена уязвимость, позволяющая получить root-привилегии при наличии локального непривилегированного доступа к системе. Уязвимость вызвана проблемой (эффект гонки, "race condition") в коде закрытия pipe и связанна с возможностью обращения к уже освобожденной памяти на многопроцессорных системах в системном вызове kevent.
Во всех поддерживаемых версиях FreeBSD 6.x и 7.x найдена уязвимость, которая может привести к разыменованию NULL-указателя из-за "race condition" (изменение указателя, после его проверки на NULL, но до передачи управления) в момент взаимодействия между подсистемами devfs и VFS. В итоге непривилегированный локальный пользователь может добиться выполнения кода с повышенными привилегиями;
Третье уведомление о проблеме безопасности описывает возможность отражения кода злоумышленника на нулевой адрес (мапинг нулевого адреса на пространство пользователя), что позволяет успешно эксплуатировать предыдущие две уязвимости, позволяющие передать управление по NULL-указателю. Для управления мапингом в нулевой адрес добавлена sysctl переменная "security.bsd.map_at_zero".
Кроме того, можно отметить анонс, разработанной Глебом Курцовым (Gleb Kurtsou) в рамках программы Google Summer of Code шифрованной файловой системы pefs, обладающей следующими возможностями:
Работа на уровне ядра, без использования FUSE;
Случайный для каждого файла вектор инициализации шифрования (tweak-значение);
Запись метаданных только в зашифрованном имени файла, не меняя содержимого файла;
Сохранение прежнего размера файла после шифрования;
Возможность использования произвольного числа ключей;
Поддержка смешивания зашифрованных разными ключами файлов в одной директории;
Прозрачный режим выполнения операций (без шифрования, только для чтения, упрощенный доступ к снапшотам ФС);
Возможность смены ключа для зашифрованного файла;
Поддержка алгоритмов шифрования: AES и Camellia в CTR-режиме, Salsa20.
В настоящее время система pefs используется на рабочей машине для шифрования почтовых ящиков и протестирована при работе поверх файловых систем ZFS, UFS и tmpfs. Инструкцию по установке pefs можно найти здесь. Также доступны результаты измерения производительности, при использовании алгоритмов шифрования salsa20 и aes128 по сравнению с производительностью доступа к незашифрованным данным на ZFS разделе. Разница примерно в два раза, но это в порядке вещей - в Linux система eCryptfs демонстрирует аналогичное замедление.