Diante do recente incidente segurança de uma falha SSH, o Systemd reduzirá suas dependências para evitar vulnerabilidades.
À luz dos acontecimentos recentes, surgiu um debate significativo sobre as vulnerabilidades nas quais o systemd está indiretamente envolvido, especialmente durante o incidente backdoor sshd/xz (CVE-2024-3094), destacou os potenciais riscos de segurança associados às dependências do libsystemd, um biblioteca crucial para integração de serviços com o systemd.
O cerne da questão reside na observação de que o libsystemd, ao estar vinculado a todos os serviços do systemd e a quaisquer serviços de terceiros que desejam se comunicar com o systemd, introduz dependências extras que podem servir como fontes de vulnerabilidades.
A solução proposta para esta preocupação de vulnerabilidade é uma redução substancial das dependências do libsystemd para incluir apenas a libc, a biblioteca C padrão, minimizando assim a superfície de ataque para potenciais ameaças à segurança.
As implementações atuais incluem várias outras bibliotecas, que podem não ser necessárias para implementar as funcionalidades principais do libsystemd.
Systemd reduzirá suas dependências para evitar vulnerabilidades
Sim. O Systemd reduzirá suas dependências para evitar vulnerabilidades. Em resposta a essas preocupações, uma solicitação de recurso foi levantada para o systemd minimizar as dependências do libsystemd para apenas libc.
A justificativa por trás desta solicitação é reduzir o libsystemd às suas funcionalidades principais, reduzindo assim o risco de vulnerabilidades que poderiam comprometer a segurança do sistema.
No entanto, esta abordagem pode envolver a reorganização do libsystemd em múltiplas bibliotecas, cada uma atendendo a APIs específicas, e garantindo que apenas as dependências necessárias sejam incluídas onde forem genuinamente necessárias.
Lennart Poettering, uma figura-chave por trás do systemd, abordou as preocupações destacando mudanças recentes que aliviam algumas dessas preocupações de segurança.
Segundo ele, o libsystemd não exige mais bibliotecas de compactação como dependências rígidas na versão principal mais recente do git.
Para completar, estão em andamento planos para remover o libgcrypt como uma dependência rígida, simplificando ainda mais o libsystemd e melhorando a segurança do sistema.
Além disso, notou-se que o sshd implementou a função sd_notify() de forma independente, um movimento que Poettering recomenda para projetos dessa natureza.
Por fim, a discussão também abordou a possibilidade de expor informações de carregamento dinâmico (dlopen) de uma forma que pudesse ser lida a partir de metadados ELF, oferecendo uma forma mais transparente de compreender e gerenciar dependências.
Esta proposta sugere uma abordagem colaborativa, incentivando a contribuição e o apoio de várias partes interessadas no ecossistema Linux, incluindo mantenedores de pacotes e construtores de sistemas.
Os detalhes de toda a discussão e proposta estão disponíveis para acompanhamento no repositório GitHub do projeto.