Canonical Livepatch теперь поддерживает Arm64: как получать обновления ядра без перезагрузки
Живая патчинг ядра (live kernel patching) давно стал важным инструментом для поддержания безопасности серверов без необходимости планировать простои. Технология позволяет применять критические исправления к работающему ядру, минуя традиционный цикл обновления, требующий перезагрузки. До недавнего времени такая возможность была доступна преимущественно для архитектуры x86_64, а пользователи Arm64 оставались без этого преимущества.
Почему живая патчинг ядра важен
Для облачных инфраструктур, edge‑устройств и VPS‑платформ простои означают потерю дохода и ухудшение качества сервиса. Когда система не может быть перезагружена ежедневно или еженедельно, своевременное устранение уязвимостей становится сложной задачей. Livepatch решает её, доставляя патчи непосредственно в работающее ядро, что снижает окно уязвимости до минут.
Canonical Livepatch уже несколько лет предоставляет такую возможность для Ubuntu на AMD64, автоматически доставляя кумулятивные модули ядра, подписанные и проверенные на совместимость. Расширение поддержки на Arm64 делает технологию универсальной для всё более популярных серверов на базе ARM‑процессоров, используемых в гиперскейлерах и IoT‑решений.
Технические преграды на пути к Arm64
Первоначальный анализ, проведённый в конце 2023 года, показал, что живой патчинг для Arm64 невозможен из‑за отсутствия ключевых компонентов в upstream‑ядре и инструментарии. Основные препятствия включали:
- Отсутствие стабильной реализации надёжных трассировок стека (CONFIG_HAVE_RELIABLE_STACKTRACE), без которых ядро не может гарантировать безопасную замену кода во время выполнения задачи.
- Недостаточную поддержку Arm64 в инструментах, необходимых для создания и сравнения патченных и непатченных ядер: GCC, objdump, Kpatch и связанные с ними утилиты находились в стадии обсуждения и не были полностью приняты в основной ветке.
- Отсутствие проверенных наборов регрессионных тестов, специфичных для Arm64, что затрудняло уверенность в стабильности получаемых патчей.
Эти факты подтверждались открытыми pull‑requests, датированными 2021 годом, которые всё ещё находились на рассмотрении.
Как Canonical преодолел сложности
После выявления пробелов началась масштабная совместная работа инженеров Canonical, поставщиков кремния, гиперскейлеров и открытого сообщества. Ключевые шаги включали:
- Внесение и принятие upstream‑изменений, обеспечивающих надёжную трассировку стека для Arm64.
- Адаптацию инструментальной цепочки: обновление GCC, binutils и Kpatch под архитектуру Arm64, что позволило надёжно компилировать и сравнивать ядра.
- Создание собственных ферм сборки с выделенными Arm64‑инстансами, чтобы избежать эмуляции и обеспечить нативную компиляцию сотен ядер для тестирования кумулятивных патчей.
- Разработку архитектурно‑специфичных наборов регрессионных тестов, проверяющих функциональность и стабильность каждого livepatch‑модуля.
- Модернизацию сети доставки Livepatch и клиентского ПО, обеспечив бесперебойную мультиархитектурную дистрибуцию патчей.
К концу февраля 2025 года клиент Livepatch для Ubuntu 26.04 LTS и Ubuntu Core 26 начал успешно применять патчи в тестовой среде, подтвердив готовность решения к production‑использованию.
Что получает пользователь Ubuntu на Arm64 сегодня
Начиная с Ubuntu Core 26 и Ubuntu 26.04 LTS, владельцы Arm64‑устройств могут:
- Получать критические обновления ядра без необходимости перезагрузки системы.
- Сокращать окно уязвимости с дней до минут, что особенно важно для устройств, которые редко обслуживаются.
- Соответствовать требованиям таких нормативов, как Cyber Resilience Act (CRA), благодаря автоматизированному и проверенному процессу патчинга.
- Использовать ту же инфраструктуру доставки и управления, что и пользователи x86_64, обеспечивая единый подход к безопасности флота.
Это делает Livepatch универсальным инструментом для поддержания надёжности и доступности как крупных облачных кластеров, так и распределённых edge‑узлов.
Как включить и проверить Livepatch на своей системе
Ниже представлен типичный набор команд для активации Livepatch на Ubuntu 26.04 LTS (или Ubuntu Core 26). Замените YOUR_TOKEN на личный токен, полученный на странице Canonical Livepatch.
# Установить клиент, если он ещё не установлен
sudo apt update
sudo apt install canonical-livepatch
# Активировать сервис
sudo canonical-livepatch enable YOUR_TOKEN
# Проверить статус
sudo canonical-livepatch status
# Просмотреть историю применённых патчей
sudo canonical-livepatch list
# Отключить (при необходимости)
sudo canonical-livepatch disable
После активации клиент будет автоматически проверять наличие новых патчей каждые несколько часов и применять их без вмешательства пользователя. Все действия логируются в журнал системы, что упрощает аудит и отладку.
Таким образом, расширение Livepatch на архитектуру Arm64 закрывает важный пробел в стратегии «zero‑downtime security» и предоставляет администраторам VPS, облачных серверов и edge‑устройств простой и проверенный способ поддерживать ядро в актуальном состоянии без прерывания работы сервисов.