Проект TuxTape для развёртывания инфраструктуры Live-патчей к ядру Linux

Страховая компания GEICO опубликовала предварительный выпуск инструментария TuxTape, позволяющего развернуть собственную инфраструктуру для создания, сборки и доставки live-патчей для ядра Linux. Live-патчи позволяет применять исправления к ядру Linux на лету, без перезагрузки и остановки системы. Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.

Live-патчи с устранением уязвимостей предоставляют для своих дистрибутивов такие компании, как Red Hat, Oracle, Canonical и SUSE, но открытым у них является лишь низкоуровневый инструментарий для работы с патчами, а сами патчи формируются за закрытыми дверями. Дистрибутивы Gentoo и Debian пытались развивать открытые проекты elivepatch и linux-livepatching, но первый уже 6 лет находится в заброшенном состоянии, а второй затормозил на стадии создания тестового прототипа.

TuxTape нацелен на организацию работы собственной системы для создания и доставки live-патчей, не зависящей от сторонних поставщиков и адаптируемой для любых ядер Linux, а не только для пакетов с ядром конкретных дистрибутивов. TuxTape может формировать live-патчи, совместимые с инструментарием kpatch, разработанным компанией Red Hat (помимо kpatch существуют похожие инструменты: kGraft от SUSE, Ksplice от Oracle и универсальный livepatch). Патчи формируются в виде загружаемых модулей ядра, которые заменяют функции в ядре, используя подсистему ftrace для перенаправления на новые функции, включённые в модуль.


TuxTape может отслеживать информацию об исправлении уязвимостей в ядре Linux, публикуемую в списке рассылки linux-cve-announce и в Git-репозитории, ранжировать уязвимости по степени опасности, определять применимость к обслуживаемым ядрам Linux и генерировать live-патчи на основе обычных патчей к LTS-веткам ядра. Применимость исходных патчей оценивается через профилирование сборок ядра. Патчи с не затрагивающими целевое ядро уязвимостями игнорируются.

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


Разработка находится на стадии экспериментального прототипа. Для начального тестирована предложены: tuxtape-cve-parser для разбора информации об уязвимостях и построения БД с патчами; tuxtape-server c реализацией интерфейса gRPC для сервисов генерирующих патчи; tuxtape-kernel-builder для сборки ядра в заданной конфигурации и формирования профиля сборки; tuxtape-dashboard – консольный интерфейс для рецензирования и создания live-патчей на основе исходных патчей, полученных из tuxtape-server.


Release. Ссылка here.