O novo método 'Oreo' dos pesquisadores do MIT CSAIL remove pegadas que revelam onde o código está armazenado antes que um hacker possa vê-las.

O "espaço de endereço mascarado" do Oreo remapeia o código de endereços virtuais aleatórios para locais fixos antes de ser executado no hardware, dificultando que hackers rastreiem os locais originais do programa por meio de ataques de hardware. Créditos: Imagem: Alex Shipps/MIT CSAIL, com elementos do Pixabay.
Imagine que você é um chef com uma receita muito procurada. Você escreve suas instruções ultrasecretas em um diário para garantir que se lembrará delas, mas sua localização dentro do livro é evidente pelas dobras e rasgos nas bordas daquela página frequentemente referenciada.
Assim como receitas em um livro de receitas, as instruções para executar programas são armazenadas em locais específicos dentro da memória física de um computador. O método de segurança padrão — conhecido como “address space layout randomization” (ASLR) — espalha esse código precioso para diferentes lugares, mas os hackers agora podem encontrar seus novos locais. Em vez de hackear o software diretamente, eles usam abordagens chamadas ataques laterais microarquitetônicos que exploram o hardware, identificando quais áreas da memória são mais frequentemente usadas. A partir daí, eles podem usar o código para revelar senhas e fazer alterações administrativas críticas no sistema (também conhecidas como ataques de reutilização de código).
Para aumentar a eficácia do ASLR, pesquisadores do Laboratório de Ciência da Computação e Inteligência Artificial do MIT (CSAIL) encontraram uma maneira de fazer essas pegadas desaparecerem. Seu método “Oreo” atenua ataques de hardware removendo bits aleatórios de endereços que levam às instruções de um programa antes que sejam traduzidos para um local físico. Ele limpa os rastros de onde os gadgets de código (ou sequências curtas de instruções para tarefas específicas) estão localizados antes que os hackers possam encontrá-los, aumentando eficientemente a segurança de sistemas operacionais como o Linux.
O Oreo tem três camadas, muito parecido com seu saboroso homônimo. Entre o espaço de endereço virtual (que é usado para referenciar instruções do programa) e o espaço de endereço físico (onde o código está localizado), o Oreo adiciona um novo "espaço de endereço mascarado". Isso remapeia o código de endereços virtuais aleatórios para locais fixos antes de ser executado dentro do hardware, dificultando que hackers rastreiem os locais originais do programa no espaço de endereço virtual por meio de ataques de hardware.
"Tivemos a ideia de estruturá-lo em três camadas a partir dos biscoitos Oreo", diz Shixin Song, um aluno de doutorado do MIT em engenharia elétrica e ciência da computação (EECS) e afiliado do CSAIL, que é o autor principal de um artigo sobre o trabalho. "Pense no recheio branco no meio dessa guloseima — nossa versão disso é uma camada que essencialmente apaga os traços de localizações de gadgets antes que eles acabem nas mãos erradas."
A autora sênior Mengjia Yan, professora associada do MIT de EECS e pesquisadora principal do CSAIL, acredita que as habilidades de mascaramento do Oreo podem tornar a randomização do layout do espaço de endereço mais segura e confiável.
“O ASLR foi implantado em sistemas operacionais como Windows e Linux, mas na última década, suas falhas de segurança o tornaram quase quebrado”, diz Yan. “Nosso objetivo é reviver esse mecanismo em sistemas modernos para defender ataques de microarquitetura, então desenvolvemos um mecanismo de co-design de software-hardware que impede o vazamento de deslocamentos secretos que dizem aos hackers onde os gadgets estão.”
Os pesquisadores do CSAIL apresentarão suas descobertas sobre o Oreo no Network and Distributed System Security Symposium no final deste mês.
Song e seus coautores avaliaram o quão bem o Oreo poderia proteger o Linux simulando ataques de hardware no gem5 , uma plataforma comumente usada para estudar arquitetura de computadores. A equipe descobriu que ele poderia prevenir ataques laterais microarquitetônicos sem prejudicar o software que ele protege.
Song observa que esses experimentos demonstram como o Oreo é uma atualização de segurança leve para sistemas operacionais. “Nosso método introduz mudanças marginais de hardware ao exigir apenas algumas unidades de armazenamento extras para armazenar alguns metadados”, ela diz. “Felizmente, ele também tem um impacto mínimo no desempenho do software.”
Embora o Oreo adicione uma etapa extra à execução do programa ao remover bits reveladores de dados, ele não desacelera os aplicativos. Essa eficiência o torna um reforço de segurança valioso para o ASLR para sistemas de memória virtual baseados em tabela de páginas além do Linux, como aqueles comumente encontrados nas principais plataformas, como Intel, AMD e Arm.
No futuro, a equipe procurará abordar ataques de execução especulativa — onde hackers enganam computadores para prever suas próximas tarefas e, em seguida, roubam os dados ocultos que eles deixam para trás. Um caso em questão: os infames ataques Meltdown/Spectre em 2018.
Para se defender contra ataques de execução especulativa, a equipe enfatiza que o Oreo precisa ser acoplado a outros mecanismos de segurança (como mitigações Spectre). Essa limitação potencial se estende à aplicação do Oreo a sistemas maiores.
“Achamos que o Oreo pode ser uma plataforma útil de codesign de software e hardware para um tipo mais amplo de aplicativos”, diz Yan. “Além de mirar no ASLR, estamos trabalhando em novos métodos que podem ajudar a proteger as bibliotecas de criptografia críticas amplamente usadas para proteger informações na comunicação de rede das pessoas e no armazenamento em nuvem.”
Song e Yan escreveram o artigo com o pesquisador de graduação do MIT EECS Joseph Zhang. O trabalho da equipe foi apoiado, em parte, pela Amazon, o US Air Force Office of Scientific Research e o ACE, um centro dentro da Semiconductor Research Corporation patrocinado pela US Defense Advanced Research Projects Agency (DARPA).