В обновлениях к FreeBSD 8 и 9 изменено поведение генератора псевдослучайных чисел и исправлены уязвимости

15.01.2014 19:24

Разработчики FreeBSD выпустили errata-обновление, изменяющее логику работы генератора псевдослучайных чисел в поддерживаемых ветках FreeBSD 8.x и 9.x. Исправление отражает изменения в работе /dev/random, несколько месяцев назад реализованные для ветки FreeBSD 10. В частности, осуществлён уход от практики прямого вывода значений из аппаратных генераторов псевдослучайных чисел, при их наличии.

Разоблачения Сноудена дали повод усомниться в надёжности встроенных в современные процессоры генераторов псевдослучайных чисел, поэтому их значения теперь не используются в качестве единственного источника случайных данных. Для формирования качественных непредсказумых входных данных в генераторе случайных чисел применяется алгоритм Yarrow, предложенный Шнайером и основанный на дополнительном цикличном применении хэшей над малопредсказуемыми данными.

Ранее Yarrow не применялся при наличии аппаратных генераторов случайных чисел "RDRAND" и "Padlock", предоставляемых процессорами Intel и VIA. Представленное изменение отключает использование значений из "RDRAND" и "Padlock" как единственного источника энтропии. Предложенный для веток FreeBSD 8 и 9 патч сводится к отключению применения по умолчанию поддерживаемых аппаратных генераторов псевдослучайных чисел. Изменение можно применить без патча через установку в /boot/loader.conf значений hw.nehemiah_rng_enable=0 и hw.ivy_rng_enable=0.

В новой реализации аппаратные генераторы применяются как один из нескольких доступных источников энтропии, смешиваемых при помощи Yarrow, наряду с данными из разных частей ядра. Таким образом, даже если надёжность одного из источников энтропии окажется дискредитированной и появятся средства для предсказания выводимых через них значений, то это не повлияет на общее качество генерируемых через /dev/random случайных чисел, которые по-прежнему останутся непредсказуемы.

Кроме изменений для /dev/random, представлены четыре обновления с устранением уязвимостей в bsnmpd, openssl, ntpd и bind, а также один Errata, связанный с решением возможных проблем при использовании mmap. Уязвимость в bsnmpd не исключает возможность выполнения кода злоумышленника с правами процесса bsnmpd через отправку специально оформленного запроса. Проблема в bind позволяет осуществить DoS-атаку при наличии на сервере подписанных (NSEC3) зон. Исправления в openssl устраняют проблемы, недавно решённые в OpenSSL 1.0.0l. Изменение в ntpd отключает поддержку команды monlist, которая может применяться для организации DDoS-атак, использующих NTP-серверы для усиления трафика.