Найти тему
Борис Державец

После недавней уязвимости SSH Systemd сокращает зависимости

Just a picture
Just a picture

В свете недавних событий возникли серьезные дебаты об уязвимостях, в которых косвенно задействован systemd, особенно во время инцидента с бэкдором sshd/xz (CVE-2024-3094), подчеркнуты потенциальные риски безопасности, связанные с зависимостями libsystemd, библиотека, необходимая для интеграции сервисов с systemd.
Суть проблемы заключается в том, что libsystemd, будучи связан со всеми службами systemd и любыми сторонними службами, желающими взаимодействовать с systemd, вводит дополнительные зависимости, которые могут служить источниками уязвимостей.
Предлагаемое решение этой проблемы уязвимости — существенное сокращение зависимостей libsystemd и включение только libc, стандартной библиотеки C, тем самым минимизируя поверхность атаки для потенциальных угроз безопасности. Текущие реализации включают несколько других библиотек, которые могут не потребоваться для реализации основных функций libsystemd.
В ответ на эти опасения к systemd был выдвинут запрос на возможность свести к минимуму зависимости libsystemd только от libc. Обоснование этого запроса состоит в том, чтобы ограничить основные функции libsystemd, тем самым снижая риск появления уязвимостей, которые могут поставить под угрозу безопасность системы.
Однако этот подход может включать реорганизацию libsystemd в несколько библиотек, каждая из которых обслуживает определенные API, и обеспечение включения только необходимых зависимостей там, где они действительно необходимы.
Леннарт Поеттеринг, ключевая фигура в разработке systemd, решил эти проблемы, подчеркнув недавние изменения, которые облегчают некоторые из этих проблем с безопасностью. По его словам, libsystemd больше не требует наличия библиотек сжатия в качестве жестких зависимостей в последней основной версии git.
Более того, разрабатываются планы по удалению libgcrypt как жесткой зависимости, что еще больше упростит libsystemd и повысит безопасность системы. Кроме того, было отмечено, что sshd независимо реализовал функцию sd_notify() — шаг, который Поеттеринг рекомендует для проектов такого рода.
Наконец, обсуждение также затронуло возможность предоставления информации о динамической загрузке (dlopen) таким образом, чтобы ее можно было прочитать из метаданных ELF, предлагая более прозрачный способ понимания зависимостей и управления ими.
Это предложение предполагает совместный подход, поощряющий участие и поддержку различных заинтересованных сторон в экосистеме Linux, включая сопровождающих пакетов и сборщиков систем.
Подробности всего обсуждения и предложения доступны для дальнейшего использования в репозитории проекта на GitHub :-

Reduce dependencies of libsystemd · Issue #32028 · systemd/systemd