Что такое Linux kernel live patching?

Что такое Linux kernel live patching?

Linux kernel live patching — это способ применения критических и важных исправлений безопасности к работающему ядру Linux без необходимости перезагрузки или прерывания времени выполнения.

Существует разница между исправлением и обновлением. Обновление — это новая, более незначительная версия пакета, которая может содержать исправления ошибок, улучшения производительности, новые возможности, правки в командной строке и другие улучшения. Патч — это фрагмент кода (обычно отличающийся вывод двух версий пакета или файла), который устраняет уязвимость в существующей версии. Эти исправления устраняют уязвимости без задержки, так что существующая реализация может работать более безопасно, а системные администраторы могут повременить с перезагрузкой до следующего окна регулярного обслуживания.

Теоретически, live patching можно использовать для любого патча для работающего ядра, включая регулярные исправления ошибок и усовершенствования. На практике приоритетной функцией для live patching были основные уязвимости безопасности, поскольку это исправления, которые нельзя откладывать. В Red Hat Enterprise Linux мы сосредоточились на исправлениях безопасности, и живое исправление ядра считается функцией безопасности (с преимуществами управления для администраторов).

Без лайф патчинга применение исправления требует перезагрузки исправляемой службы или приложения, чтобы загрузить новые изменения исправленной версии. Это справедливо даже для исправлений, применяемых к самому ядру Linux, что создает головоломку для системных администраторов Linux: Им необходимо применять императивные обновления безопасности, но это означает незапланированные перезагрузки linux-сервера, включая задержки и простои.

Происхождение

Под лайф патчингом ядра Linux понимается возможность применения исправлений к работающему ядру Linux без перезагрузки системы. Концепция живого исправления уходит корнями в ранние времена компьютерной техники, когда исправление работающих систем было обычной практикой для устранения ошибок или уязвимостей в системе безопасности.

Первая реализация патча для Linux была разработана компанией Red Hat в 2009 году. Компания представила технологию под названием kpatch, которая позволяла системным администраторам применять исправления ядра без перезагрузки системы. Это было большим прорывом, поскольку устраняло время простоя, связанное с обновлением ядра, и обеспечивало работоспособность критически важных систем.

Kpatch был интегрирован в ядро Linux в 2014 году в рамках проекта под названием «Live Patching Infrastructure» (LPI). Этот проект направлен на обеспечение структуры для патча, которая может использоваться различными поставщиками и дистрибутивами. Другие производители, такие как SUSE и Ubuntu, также разработали свои собственные решения для живого исправления на основе структуры LPI.

В целом, истоки патча ядра Linux можно проследить на примере технологии kpatch компании Red Hat, которая была впервые представлена в 2009 году. С тех пор лайф патч стал необходимой функцией для критически важных систем, требующих высокой доступности и времени безотказной работы.

Два пространства системных операций Linux

Системные операции Linux делятся на две части: пространство пользователя (где работают все службы и приложения) и пространство ядра (где находятся основные системные операции). Ядро является посредником для всех приложений в доступе к аппаратным ресурсам, таким как процессор и хранилище. Наряду с самим ядром администраторы могут создавать пользовательские модули ядра для расширения или изменения функциональности, причем эти модули ядра могут загружаться и выполняться динамически, даже после загрузки.

Инструменты лайф патча ядра создают модуль ядра из исправленного кода, а затем с помощью инструмента ftrace (трассировка функций) прокладывают маршрут от устаревшей функции к новой заменяющей функции, модулю исправления или исправленной функции.

лайпатч линукс кернел

Ksplice был первым проектом для лайф патча ядра Linux; однако, ksplice был продан Oracle и в конечном итоге превратился в инструмент с закрытым исходным кодом. Другие команды разработчиков начали пытаться предложить проекты с открытым исходным кодом, которые могли бы заменить ksplice, и в 2014 году были запущены два немного отличающихся проекта: kpatch от Red Hat и kgraft от SuSE. В конечном итоге, для блага сообщества разработчиков ядра Linux, разработчики Red Hat и SuSE совместно создали livepatch, который является общим слоем в ядре Linux, позволяющим людям разрабатывать совместимые инструменты для живого исправления ядра.

Почему live patching ядра важен?

  • Улучшенное время работы и доступность системы: Живое обновление ядра устраняет необходимость перезагрузки системы для применения критических обновлений безопасности или исправлений ошибок, что повышает время работы и доступность системы. Это особенно важно для систем, требующих круглосуточной доступности, таких как серверы, на которых работают критически важные приложения.
  • Сокращение времени простоя и расходов на обслуживание: С помощью «живого» исправления ядра системные администраторы могут применять обновления и исправления, не прерывая нормальной работы системы, что снижает необходимость в запланированных простоях и окнах обслуживания. Это позволяет организациям экономить время и деньги за счет снижения затрат, связанных с простоями и обслуживанием.
  • Повышенная безопасность: Живое исправление ядра позволяет применять исправления безопасности в режиме реального времени, сокращая время между обнаружением уязвимости и установкой исправления. Это очень важно для систем, обрабатывающих конфиденциальные данные или подчиняющихся нормативным требованиям.
  • Упрощенное администрирование: Живое обновление ядра может упростить администрирование крупномасштабных развертываний за счет снижения необходимости ручного обновления и уменьшения риска ошибок конфигурации, которые могут возникнуть в процессе перезагрузки.

В целом, live patching ядра имеет значение, поскольку оно повышает работоспособность и доступность системы, сокращает время простоя и затраты на обслуживание, повышает безопасность и упрощает администрирование, что делает его важной функцией для критически важных систем, требующих высокой доступности и времени работы.

CVE связанные с ядром

CVE, связанные с ядром, являются одной из главных проблем: четыре из 10 самых просматриваемых CVE в 2021 году связаны с ядром.

Возможность выполнять исправления безопасности ядра Linux в реальном времени — это гораздо больше, чем просто удобство. Это важный инструмент для команд безопасности, позволяющий проактивно устранять уязвимости безопасности, поддерживать работоспособность функций ядра и безопасность своих систем.

Отличие Red Hat Enterprise Linux

Live patching ядра — это один из специфических инструментов для управления безопасностью, но далеко не единственный, доступный в Red Hat Enterprise Linux. Red Hat Enterprise Linux включает различные инструменты для управления безопасностью, такие как SELinux для контроля разрешений и доступа и системные роли для автоматизации конфигурации и задач.

Не существует единого решения для создания «безопасной среды». Угрозы постоянно меняются и развиваются, появляются различные векторы атак и намечаются различные цели. Безопасность начинается на уровне операционной системы — даже самого исходного кода — и работает вверх по технологическому стеку и на протяжении всего жизненного цикла, поэтому наличие разнообразных инструментов крайне важно.

Управление живыми исправлениями ядра из веб-консоли Red Hat Enterprise Linux значительно снижает сложность выполнения критически важного обслуживания. Эта новая возможность веб-консоли предоставляет упрощенный интерфейс для высококвалифицированных и неопытных администраторов для применения обновлений ядра без необходимости использования инструментов командной строки.

Red Hat Insights доступен при любой подписке на Red Hat Enterprise Linux, предоставляя набор услуг, облегчающих управление безопасностью. К ним относятся:

  • Визуальные информационные панели, охватывающие всю вашу инфраструктуру, показывающие уязвимые системы и статус патчей.
  • Соответствующие CVE и другие обновления.
  • Плейбуки для автоматического исправления проблем безопасности Linux.
  • Определенные профили безопасности и пользовательские профили для управления конфигурацией системы.
  • Использование базовых конфигураций и пометка систем, отличающихся от базовых.

Почему стоит выбрать Red Hat?

Живое исправление ядра Linux появилось, когда была выявлена потребность и создан открытый проект для совместной работы с организациями и членами сообщества, создавая решение, которое принесет пользу сообществу. Такой открытый способ работы лежит в основе принципов подписки Red Hat: сотрудничество, прозрачность и фокус на улучшении технологии и пользовательского опыта.