Обновление ядра Linux: 3.5-RC1, 3.4.1, 3.3.8, 3.2.19, 3.0.33. Обзор новшеств 3.5-RC1
Представлены очередные корректирующие релизы ядра Linux: 3.4.1 (89 исправлений), 3.3.8 (97 исправлений), 3.2.19 ( 119 исправлений) и 3.0.33 (58 исправлений). Как обычно, в анонсе выхода новых версий подчеркивается обязательность проведения обновления. Версия 3.3.8 является последним корректирующим выпуском в ветке 3.3.x, пользователям рекомендуется перейти на использованием веток с длительным сроком поддержки 3.2.x и 3.0.x или обновить ядро до ветки 3.4.x. Из подсистем в которые внесены исправления можно отметить: USB (в том числе добавлены идентификаторы новых устройств), nouveau, drm/i915, Xen, gma500 (устранён крах при засыпании на некоторых системах Poulsbo), SCSI, VFS.Дополнительно можно отметить выход первого кандидата в релизы ядра Linux 3.5, который ознаменовал закрытие окна по проёму новшеств в ветку 3.5. Отмечается, что около 60% от всех принятых изменений связаны с драйверами устройств, 20% с поддержкой аппаратных архитектур и 20% с такими частями ядра, как файловые системы, документация и вспомогательные утилиты.
Кратко о некоторых новшествах:
- В ядро принят код с реализацией механизма seccomp filter, принцип работу которого сводится к ограничению доступа к системным вызовам. Важной особенностью seccomp filter является то, что логика выставляемых ограничений задаётся на уровне защищаемого приложения, а не через задание внешних ограничений, как в случае AppArmor или SELinux. В код программы добавляется структура с перечнем допустимых системных вызовов (например, ALLOW_SYSCALL) и реакции в случае несовпадения (например, KILL_PROCESS). Доступ к системным вызовам определяется в виде правил, оформленных в BPF-представлении (Berkeley Packet Filter), которое получило распространение в системах фильтрации сетевых пакетов.
Система seccomp filter позволяет реализовывать достаточно сложные правила доступа, учитывающие передаваемые и возвращаемые аргументы. Программа сама определяет какие системные вызовы ей необходимы и какие параметры допустимы, все остальные системные вызовы блокируются, что позволяет ограничить возможности атакующего в случае эксплуатации уязвимости в защищённом при помощи seccomp приложении. Возможность задания фильтров аргументов позволяет также защититься от большинства атак, эксплуатирующих уязвимости в системных вызовах. Например, выявленные за последние годы критические уязвимости в glibc и ядре Linux, такие как AF_CAN, sock_sendpage и sys_tee, успешно блокируются при надлежащем использовании seccomp.
- Поддержка интерфейса для восстановления TCP-соединений, позволяющего зафиксировать контрольную точку с которой можно возобновить остановленное соединение (например, после перезагрузки системы).
- Поддержка RFC 5827 (ранняя повторная отправка пакетов) в сетевом стеке, позволяющая увеличить скорость восстановления потока после потери пакетов;
- Интеграция алгоритма управления очередями ожидающих отправки пакетов CoDel, разработанного в рамках инициативы по борьбе с негативным влиянием промежуточной буферизации пакетов (Bufferbloat);
- Добавление в модуль Yama двух дополнительных режимов для контрля доступа к функциональности PTRACE_ATTACH;
- Переработан код планировщика задач для архитектуры NUMA;
- Интеграция кода uprobes (userspace probes), позволяющего организовать анализ поведения выполняемых в пространстве пользователя приложений;
- В Ext4 добавлена поддержка контрольных сумм для проверка целостности метаданных;
- Удаление устаревшего кода, в том числе удалены: драйвер ixp2000 Ethernet, драйверы для карт MCA, sun4c SPARC CPU, netfilter-модуль ip_queue (его заменил nfnetlink_queue), все компоненты поддержки сетей Token ring, поддержка протокола Econet, поддержка процессоров ARMv3 и IXP2xxx (XScale), поддержка плат ST-Ericsson U5500, драйвер постедовательных портов Motorola 68360;
- Обеспечена поддержка плат Blackfin BF609, Renesas Armadillo-800 EVA и KZM-A9-GT;
- Поддержка сетевых устройств: WIZnet W5100, W5300, Marvell Avastar 88W8797, Emulex One Connect InfiniBand-over-Ethernet, GCT Semiconductor GDM72xx WiMAX;
- Поддержка USB host-контроллеров: Marvell PXA USB OTG, Broadcom BCMA и SSB, USB-трансивера NXP ISP1301, контроллера периферии NXP LPC32XX;
- Интегрированы драйверы для звуковых карт Creative Sound Core3D и Xonar DGX;
- Поддержка работы SCSI target поверх протоколов FireWire или UASP (USB Attached SCSI Protocol);
- Добавлены базовые KMS-драйверы для графических чипов ASpeed Technologies 2000 и Matrox G200, а также для карт Cirrus, эмулируемых в Qemu;
- В системе DMA-BUF, предназначенной для организации совместного использования буферов драйверами и различными подсистемами ядра, расширена поддержка интерфейса PRIME, который позволит реализовать возможность бесшовного переключения вывода между разными видеокартами;
- В DRM-драйвере Radeon раширена поддержка новых Evergreen GPU и обеспечен вывод звука через HDMI. Обновлен DRM-драйвер для карт Intel.
© OpenNet