De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 18 de outubro de 2026
A segurança de um sistema Linux tradicionalmente depende de mecanismos como usuários, grupos, permissões de arquivos, capacidades, SELinux e AppArmor. Esses recursos definem o que cada usuário ou processo pode fazer. O Landlock acrescenta uma nova possibilidade a esse conjunto: permite que um processo limite voluntariamente os próprios privilégios e os privilégios dos processos que ele criar.
Disponível no kernel Linux desde a versão 5.13, o Landlock faz parte da infraestrutura Linux Security Modules, também conhecida pela sigla LSM. Seu objetivo é possibilitar a criação de ambientes isolados, ou sandboxes, que reduzam o alcance de uma aplicação caso ela apresente uma falha, seja comprometida ou se comporte de maneira inesperada.
Um aspecto importante do Landlock é a possibilidade de ser utilizado por processos comuns, sem privilégios de administrador. Isso permite que o próprio desenvolvedor incorpore uma política de segurança à aplicação. Depois de carregar os arquivos necessários e realizar sua inicialização, o programa pode restringir seu acesso ao restante do sistema.
Imagine um programa que converte documentos. Para realizar sua tarefa, ele precisa ler os arquivos armazenados em um diretório chamado /home/usuario/entrada e gravar os resultados em /home/usuario/saida.
Sem uma sandbox, esse programa poderá acessar outros arquivos que estejam disponíveis para o usuário que o executou. Se o conversor possuir uma vulnerabilidade e receber um documento malicioso, o invasor poderá tentar explorar essa permissão para ler documentos pessoais, modificar arquivos ou procurar informações confidenciais.
Com o Landlock, o programa pode estabelecer uma política que permita apenas:
Depois que essa política entra em vigor, tentativas de acessar outras partes do sistema são bloqueadas pelo kernel. Mesmo que o programa seja comprometido, o código malicioso ficará sujeito às mesmas restrições.
Esse modelo segue o princípio do menor privilégio: cada aplicação deve possuir somente as permissões necessárias para executar sua tarefa.
O funcionamento do Landlock pode ser compreendido como uma sequência de quatro etapas.
A aplicação começa determinando quais tipos de operação deseja controlar. No sistema de arquivos, isso pode incluir ações como:
Versões mais recentes do Landlock também permitem controlar determinadas operações de rede, como conectar-se ou associar-se a portas TCP e UDP, além de algumas formas de comunicação entre processos.
A aplicação precisa verificar qual versão da ABI Landlock é suportada pelo kernel em execução. Esse cuidado permite utilizar os recursos disponíveis em kernels novos e adaptar a política quando o programa for executado em versões mais antigas.
A aplicação cria um ruleset, ou conjunto de regras. Nessa etapa, ela informa ao kernel quais operações serão controladas pela política.
Ao incluir, por exemplo, a leitura de arquivos entre as operações controladas, o programa estabelece que esse tipo de acesso será negado por padrão depois que a política for aplicada. Os caminhos permitidos serão acrescentados posteriormente como exceções autorizadas.
O modelo pode ser resumido da seguinte maneira:
Operação controlada + nenhuma regra de permissão = acesso negado Operação controlada + regra de permissão correspondente = acesso permitido
Portanto, a aplicação deve declarar cuidadosamente os acessos de que realmente necessita.
Depois de criar o conjunto, o programa adiciona regras para os recursos que poderão continuar sendo utilizados.
O diretório de entrada do nosso conversor poderia receber permissão de leitura. O diretório de saída receberia permissões de leitura, escrita e criação de arquivos. Outras partes do sistema permaneceriam inacessíveis para as operações controladas.
As regras do sistema de arquivos são associadas a hierarquias. Quando uma permissão é concedida a um diretório, ela pode abranger os arquivos e subdiretórios existentes abaixo daquele ponto, conforme os direitos especificados.
As regras de rede seguem um conceito semelhante. Uma aplicação pode ser autorizada a conectar-se somente a determinadas portas. Um serviço também pode ser limitado às portas nas quais realmente precisa escutar.
Quando o conjunto de regras está pronto, a aplicação pede ao kernel que passe a aplicá-lo ao processo atual.
A política também será herdada pelos processos filhos. Se o programa iniciar outro executável, esse novo processo continuará dentro do domínio Landlock estabelecido.
As limitações são cumulativas. Um processo pode acrescentar novas camadas de restrição, porém não pode simplesmente remover uma política já aplicada para recuperar o acesso anterior. Cada nova camada pode manter ou reduzir as possibilidades do processo.
Esse comportamento é essencial para a segurança. Caso um invasor assuma o controle da aplicação depois da ativação da sandbox, ele não poderá desativá-la por meio de uma chamada comum.
O Landlock trabalha em conjunto com os demais mecanismos de segurança do Linux. Para que uma operação seja permitida, ela precisa ser aceita pelas permissões convencionais, pelas políticas de outros módulos de segurança e pelas regras Landlock aplicadas ao processo.
Se o usuário não possuir permissão para ler determinado arquivo, o Landlock não poderá conceder esse acesso. Ele serve para reduzir os direitos já disponíveis, nunca para ampliá-los.
Isso torna o Landlock adequado a uma estratégia de defesa em profundidade. Permissões de arquivos, capacidades, SELinux, AppArmor, seccomp, namespaces e Landlock podem atuar em camadas, cada qual controlando uma parte diferente do ambiente.
O seccomp, por exemplo, filtra chamadas de sistema. O Landlock trabalha com objetos e ações compreendidos pelo kernel, como a leitura de uma hierarquia de arquivos ou a conexão com uma porta. Os dois mecanismos podem ser utilizados pela mesma aplicação.
SELinux e AppArmor normalmente são administrados por meio de políticas definidas para o sistema. O Landlock foi projetado para que a própria aplicação possa limitar seu ambiente, inclusive quando executada por um usuário sem privilégios.
Os namespaces utilizados pelos contêineres isolam aspectos como processos, rede, pontos de montagem e nomes de host. O Landlock atua como um controle adicional de acesso.
Uma aplicação executada dentro de um contêiner ainda pode empregar Landlock para limitar os próprios processos. Da mesma forma, um gerenciador de contêineres pode combinar namespaces, seccomp, capacidades e módulos de segurança para criar várias camadas de proteção.
Por isso, o Landlock deve ser visto como mais uma ferramenta disponível para construir sandboxes. Ele pode ser utilizado dentro ou fora de contêineres.
O Landlock evolui por meio de versões de sua ABI. O conjunto de operações que pode ser controlado depende do kernel instalado e de como ele foi configurado.
Os primeiros lançamentos concentravam-se principalmente no sistema de arquivos. Versões posteriores acrescentaram controles sobre operações como truncamento de arquivos, uso de dispositivos, conexões TCP, portas UDP, sockets Unix, sinais e sincronização das regras entre as threads de um processo.
Ainda existem ações que não podem ser controladas diretamente pelo Landlock. Também é necessário prestar atenção aos arquivos abertos antes da ativação da sandbox, pois descritores já existentes podem continuar oferecendo acesso a determinados recursos.
Uma política mal planejada pode impedir o funcionamento correto do programa. Por isso, a aplicação deve ser testada com diferentes versões do kernel e seguir uma estratégia de compatibilidade que utilize apenas os recursos suportados pelo ambiente.
Para verificar se o Landlock foi inicializado pelo kernel, o administrador pode consultar as mensagens de inicialização:
$ dmesg | grep landlock
ou:
$ journalctl -kb -g landlock
Quando o recurso está ativo, normalmente será exibida uma mensagem semelhante a:
landlock: Up and running.
Essa verificação informa que o módulo está disponível. Cada aplicação ainda precisa criar e aplicar sua própria política.
O Landlock pode aumentar a proteção de programas que processam dados externos ou precisam acessar apenas uma pequena parte do sistema. Alguns exemplos incluem:
Uma ferramenta de linha de comando também pode utilizar Landlock para iniciar outro programa dentro de uma sandbox. Nesse caso, a ferramenta configura as regras e, em seguida, executa o comando solicitado sob as restrições definidas.
O Landlock introduz uma ideia poderosa: uma aplicação pode abrir mão, de forma segura, dos acessos de que não precisa.
Essa capacidade é particularmente útil porque muitas vulnerabilidades se tornam graves devido ao alcance disponível para o processo comprometido. Quando esse alcance é reduzido antecipadamente, uma falha ainda pode ocorrer, porém suas consequências tendem a ser menores.
O Landlock amplia as opções de isolamento disponíveis no Linux e aproxima o princípio do menor privilégio dos desenvolvedores de aplicações comuns. Sua adoção depende de mudanças nos programas e nas ferramentas que os executam, mas oferece um caminho relativamente simples para adicionar uma camada importante de proteção sem exigir privilégios administrativos.
O kernel descreve o Landlock como um LSM empilhável que permite inclusive a processos sem privilégios restringirem seus próprios direitos. As regras são reunidas em um *ruleset*, aplicadas ao processo e herdadas por seus descendentes.