Компания Canonical представила новый сервис Canonical Livepatch Service, в рамках которого для пользователей Ubuntu началось распространение обновлений с устранением опасных уязвимостей в ядре Linux, которые применяются к работающей системе налету, позволяя избежать простоя в работе из-за перезагрузки. В настоящее время формирование live-патчей началось для 64-разрядных сборок Ubuntu 16.04. Для внесения исправлений в ядро без перезагрузки задействована технология livepatch, предоставляющая аналогичные возможности, что и kpatch от компании Red Hat и kGraft от компании SUSE. В livepatch также используется метод замены функций в ядре и перенаправления на новую функцию при помощи штатной подсистемы ftrace. Патч оформляется в форме модуля ядра, осуществляющего необходимую подстановку кода функций. Модули-патчи для Ubuntu распространяются через специально подготовленный репозиторий. Новая возможность позиционируется как коммерческий сервис для предприятий, требующий аутентификации (патчи доставляются по
Спустя три с половиной года с момента прошлого выпуска представлен релиз набора GNU Diffutils 3.4, включающего утилиты для оценки различий в файлах, такие как diff, diff3, sdiff и cmp. В новой версии представлено два значительных улучшения: Добавлена опция "--color", при помощи которой можно сформировать наглядное выделение различий цветом. Опционально поддерживается передача параметра, определяющего в каких ситуациях применять подсветку строк: "--color=always", "--color=auto" и "--color=never". Для настройки цветов предоставлена опция "--palette". Впервые с 1993 года внесены изменения в предлагаемый по умолчанию алгоритм выявления различий. Изменения позволили увеличить качество вывода результатов сравнения, ценой небольшого повышения нагрузки на CPU.
Компания Oracle реализовала для Oracle Linux 6 возможность использования недавно появившихся в Ksplice и уже добавленных в Oracle Linux 7 средств для обновления компонентов пространства пользователя, не требующих перезапуска процессов. Если классический Ksplice позволяет применять исправления с устранением уязвимостей к ядру Linux, то новые возможности Ksplice дают возможность вносить изменения в разделяемые библиотеки (например, в glibc и OpenSSL) без необходимости перезапуска связанных с ними работающих процессов. Применение исправлений производится в памяти и позволяет избавиться от необходимости планового перезапуска длительно работающих приложений.
В утилите BSD patch, поставляемой в составе FreeBSD 10, выявлена критическая уязвимость, позволяющая организовать выполнение произвольных shell-команд, при обработке определённым образом сформированного patch-файла. Проблема проявляется только в ветке FreeBSD 10.x, в которой начал поставляться вариант утилиты patch под лицензией BSD. Причиной уязвимости является ошибка в разборе интегрируемых в patch-файлы команд систем управления версиями SCCS и RCS, к которым осуществляется обращение до применения патча, в случае если оригинальный файл отсутствует. Кроме того, во всех поддерживаемых версиях FreeBSD устранена уязвимость в TCP-стеке, которую можно использовать для инициирования DoS-атаки через исчерпание доступных ресурсов. Уязвимость вызвана некорректным распределением лимитов при выделении структур mbuf для виртуальных экземпляров сетевого стека (VNET) и проявляется на системах с большим числом VNET (более 16).
Компания SUSE объявила о начале распространения для SUSE Enterprise Linux 12 исправлений для ядра Linux, созданных с использованием технологии kGraft и позволяющих на лету применить обновление к ядру, без перезагрузки и остановки работы. Обновление ядра Linux на лету является востребованной возможностью для промышленных дистрибутивов и систем, критичных ко времени простоя, давая возможность применять обновления в любое время, не дожидаясь планового окна на техническое обслуживание. Близкие по возможностям аналогичные технологии развиваются компаниями Red Hat (kpatch), Cloudlinux (kernelcare) и Oracle (Ksplice) для своих дистрибутивов Linux, унификации в данном вопросе пока добиться не удалось.
Компания Red Hat открыла под лицензией GPLv2 наработки проекта kpatch, в рамках которого подготовлена система динамического применения патчей к работающему ядру Linux. По своему назначению kpatch напоминает развиваемую компанией Oracle систему KSplice и анонсированный компанией SUSE проект kGraft, и также позволяет администраторам на лету устранять уязвимости и некоторые типы ошибок в ядре, без перезагрузки и остановки работы системы. Принцип организации обновления ядра в kpatch напоминает kGraft и основывается на замене функций в ядре целиком, используя штатные средства подсистемы ftrace для перенаправления на новую функцию. Методы формирования и загрузки патча более близки к ksplice и также основаны на сравнении бинарных сборок. Отмечается, что реализация kpatch ещё до конца не стабилизирована, поэтому систему динамического обновления ядра пока не стоит использовать для промышленного применения. Инструкция по сборке и экспериментах с kpatch подготовлена для Fedora 20 (см. видеодемонстрацию). Горячие
Спустя несколько дней после анонса разработчиками SUSE системы kGraft, позволяющей вносить исправления в работающее ядро Linux без перезагрузки и остановки работы системы, о работе над похожим проектом на конференции devconf.cz сообщил один из сотрудников компании Red Hat. Судя по имеющимся сведениям, развиваемый Red Hat проект Kpatch использует похожие на kGraft методы и рассчитан на выполнение тех же задач. Код kpatch пока не доступен публично и развивается как внутренний проект компании. Официально представить проект планируется в конце марта на конференции Linux Foundation Collaboration Summit.
Компания SUSE представила систему kGraft, в рамках которой развивается аналог поставляемой компанией Oracle технологии Ksplice, позволяющей выполнить обновление ядра Linux без остановки работы системы. Как и Ksplice возможности kGraft ограничены внесением на лету исправлений, не затрагивающих динамически изменяемые структуры данных ядра. Тем не менее, этого достаточно для устранения уязвимостей в ядре и исправления многих видов логических ошибок. Обновление ядра Linux на лету является востребованной возможностью для промышленных дистрибутивов и систем, критичных ко времени простоя, но несмотря на доступность на рынке решений, предоставляющих подобную функциональность, свободная и общедоступная реализация до сих пор не предоставляется штатным ядром Linux. В отличие от Ksplice, который является проприетарной разработкой (один из ранних вариантов Ksplice был открыт, но очень давно не обновлялся), kGraft изначально позиционируется как свободный проект. В настоящее время kGraft находится на стадии
Мэтью Гаррет (Matthew Garrett), один из разработчиков ядра Linux, последнее время занимающийся обеспечением загрузки Linux на системах с UEFI, опубликовал результаты экспериментов с ноутбуками Samsung, на которых проявляется проблема с UEFI-прошивкой, приводящая к дальнейшей неработоспособности устройства. Проблема наблюдается на моделях ноутбуков Samsung 300E5C, NP700Z5C, NP700Z7C и 530U3C при попытке загрузки Linux с использованием UEFI или при выполнении некоторых специфичных операций с UEFI в других ОС, в том числе в Windows 8. Было выяснено, что проблема проявляется только в случаях, когда память для переменных UEFI заполнена более чем наполовину. В частности, причины проблем кроются в ошибке сборщика мусора UEFI. При удалении UEFI-переменной, она не очищается сразу, а лишь помечается удалённой. Чистка же производится в момент инициализации во время загрузки, через запуск реализованного в прошивке сборщика мусора. Если свободного места недостаточно, сборщик мусора зависает, что приводит к
Как известно, начиная с ветки RHEL 6, компания Red Hat прекратила формирование детализированного набора патчей для используемого в дистрибутиве варианта ядра Linux, перейдя к практике выпуска одного большого смешанного патча. Несмотря на формальную открытость кода сводного патча под лицензией GPL, из него очень трудно выделить суть вносимых изменений. Компания Oracle решила упростить жизнь разработчикам ядра и создателям дистрибутивов, запустив проект RedPatch. В рамках проекта RedPatch создан публичный Git-репозиторий, в котором публикуются результаты анализа изменений ядра Linux, поставляемого в составе дистрибутива RHEL 6. Репозиторий примечателен тем, что все патчи в нём разделены и структурированы, что позволяет рассмотреть каждое исправление по отдельности, ясно оценить, что делает каждый патч и при необходимости использовать их в своих нуждах. По возможности, для патчей выявляются и указываются связанные с ними коммиты в основную ветку ядра Linux. Работа по анализу патчей в ядре RHEL ведётся