← Últimos artigos
💻 computer science

A Security Analysis of CheriBSD and Morello Linux

Este artigo analisa a segurança do CheriBSD e do Morello Linux, demonstrando que, apesar da eficácia da arquitetura CHERI contra corrupção de memória, os mecanismos de compartimentação existentes permanecem vulneráveis a bypass por meio de bugs e ataques simples, e propõe mitigações e recomendações específicas para abordar essas fraquezas.

Autores originais: Dariy Guzairov, Alex Potanin, Stephen Kell, Alwen Tiu

Publicado 2026-01-28
📖 6 min de leitura🧠 Leitura aprofundada

Autores originais: Dariy Guzairov, Alex Potanin, Stephen Kell, Alwen Tiu

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine um cofre de um banco de alta segurança. No passado, se um ladrão quebrasse uma janela (um erro de software/bug), ele poderia fazer o que quisesse dentro do banco, roubando desde a mesa do caixa até o cofre do CEO.

Para impedir isso, engenheiros construíram um novo tipo de cofre chamado CHERI. Em vez de apenas trancar as portas, eles deram a cada item individual do banco uma "chave mágica" especial (chamada de capacidade ou capability). Esta chave não diz apenas "abra esta porta"; ela diz: "Você pode abrir esta porta específica, mas apenas entre as 9h e as 17h, e você só pode olhar para dentro, não tocar em nada".

O objetivo do CHERI é a Compartimentação: dividir o banco em salas minúsculas e isoladas. Se um ladrão invadir a sala da "Loja de Presentes", as chaves mágicas que ele encontrar ali devem permitir que ele abra apenas as portas da Loja de Presentes. Ele não deve conseguir entrar na sala do "Cofre".

Este artigo é como um relatório de auditoria de segurança. Os pesquisadores perguntaram: "Se um ladrão entrar na Loja de Presentes, ele ainda consegue se infiltrar no Cofre?". Eles testaram isso em duas versões diferentes do sistema bancário: Morello Linux e CheriBSD.

Aqui está o que eles descobriram, explicado de forma simples:

O Problema Central: Vazamento das Chaves Mestras

Mesmo que as paredes sejam fortes, os pesquisadores descobriram quatro maneiras de o ladrão da "Loja de Presentes" roubar chaves que abrem o "Cofre".

1. O Ataque de "Stack Walking" (Olhando no Lixo)

A Analogia: Imagine que toda vez que um funcionário do banco realiza uma tarefa, ele escreve notas em um post-it e o cola em uma pilha sobre sua mesa. Quando ele termina, ele passa para a próxima tarefa, mas às vezes esquece de jogar fora os post-its antigos.
O Ataque: O ladrão na Loja de Presentes observa a pilha de post-its deixados por funcionários anteriores. Ele encontra uma nota que diz: "Aqui está a chave para o Cofre". Como o sistema não limpou as notas (a memória), o ladrão rouba a chave e entra direto no Cofre.
A Solução: Os pesquisadores sugerem que o banco deve ter uma "equipe de limpeza" que apague cada post-it da mesa imediatamente após o uso, ou que dê a cada funcionário sua própria mesa privada para que não possam ver as notas uns dos outros.

2. O Vazamento de "Dlopen" (O Mapa com Defeito)

A Analogia: O banco possui um diretório central (um mapa) que informa onde todas as salas estão. Quando uma nova sala é adicionada, o diretório é atualizado. O ladrão pede ao diretório um mapa da "Loja de Presentes".
O Ataque: O diretório entrega a ele um mapa, mas é uma versão "com defeito". Em vez de mostrar apenas a Loja de Presentes, o mapa acidentalmente inclui uma lista secreta de todas as salas do banco, incluindo o Cofre, o escritório do CEO e o cofre de segurança. O ladrão usa essa lista acidental para encontrar as chaves de todos os lugares.
A Solução: Os pesquisadores sugerem que o diretório deve entregar ao ladrão um mapa "selado". O ladrão pode ver o mapa, mas não pode ler as partes secretas, a menos que possua uma ferramenta especial de quebra de selo (a qual ele não possui).

3. O Ataque de "Heap Scavenging" (Vasculhando a Pilha)

A Analogia: O banco tem uma grande pilha de caixas descartadas (memória) no canto. Quando uma caixa é jogada fora, supõe-se que ela esteja vazia. Mas, às vezes, os trabalhadores jogam fora caixas que ainda contêm ferramentas ou chaves dentro delas porque esqueceram de esvaziá-las primeiro.
O Ataque: O ladrão vasculha a pilha de caixas descartadas, procurando por uma que ainda tenha uma chave dentro. Se ele encontrar uma chave deixada para trás pelo funcionário do "Cofre", ele pode usá-la para abrir o Cofre.
A Solução: O banco precisa de uma regra que diga: "Antes de jogar uma caixa fora, você deve varrê-la limpa". Ou, o ladrão só deve ser permitido vasculhar uma pilha de caixas que pertença à Loja de Presentes, e não de todo o banco.

4. O Ataque de "Heap Storing" (A Bomba Relógio)

A Analogia: O ladrão pega uma caixa da pilha, escreve seu nome nela e a esconde no bolso. Mais tarde, o banco joga fora essa mesma caixa e a entrega a um novo funcionário.
O Ataque: O ladrão espera. Mais tarde, ele verifica seu bolso. A caixa agora está sendo usada pelo novo funcionário para guardar o ouro do Cofre. Como o ladrão ainda possui um "ponteiro" (uma nota mental) para aquela caixa específica, ele pode esticar a mão e roubar o ouro, mesmo não devendo estar ali.
A Solação: O banco precisa de um sistema que "revogue" (destrua) as chaves antigas de uma caixa no momento em que ela é descartada, para que a nota mental do ladrão se torne inútil.

Os Resultados: Dois Bancos Diferentes

Os pesquisadores testaram esses truques em dois sistemas diferentes:

  • Morello Linux: Este sistema era muito vulnerável. O ladrão podia usar todos os quatro truques para escapar da Loja de Presentes e roubar as chaves privadas do Cofre principal. Era como um banco sem seguranças e com post-its sujos espalhados por toda parte.
  • CheriBSD: Este sistema era muito melhor. Possuía guardas integrados (chamados de c18n e heap revocation).
    • O truque de "Stack Walking" não funcionou porque cada funcionário tinha sua própria mesa privada (pilhas/stacks isoladas).
    • O truque de "Heap Storing" não funcionou porque o banco tinha um sistema que destruía as chaves antigas imediatamente.
    • No entanto, o vazamento de "Dlopen" e o "Heap Scavenging" ainda funcionaram. O ladrão ainda conseguia encontrar o mapa secreto e vasculhar as caixas sujas.

A Grande Conclusão

Os pesquisadores construíram uma "Prova de Conceito" (um caso de teste) onde conseguiram roubar uma chave privada (como uma senha mestre) de um programa seguro usando o vazamento de "Dlopen".

A Conclusão:
A arquitetura CHERI é uma nova invenção fantástica que interrompe muitos roubos do "estilo antigo" (como quebrar paredes). Contudo, o software que roda sobre ela (os sistemas operacionais e bibliotecas) ainda possui falhas. Essas falhas agem como janelas abertas ou chaves perdidas, permitindo que um ladrão contorne a segurança mesmo quando as paredes são fortes.

O artigo conclui que, embora o hardware seja seguro, precisamos corrigir o software (limpar os post-its, consertar os mapas com defeito e varrer as caixas) para tornar o sistema verdadeiramente seguro.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →