Automated TEE Adaptation with LLMs: Identifying, Transforming, and Porting Sensitive Functions in Programs

Este artigo apresenta o AUTOTEE, a primeira abordagem baseada em Grandes Modelos de Linguagem (LLMs) que automatiza a identificação, transformação e portabilidade de funções sensíveis para Ambientes de Execução Confiáveis (TEEs), alcançando altas taxas de sucesso na adaptação de código Java e Python com intervenção mínima do desenvolvedor.

Ruidong Han, Zhou Yang, Chengyan Ma, Ye Liu, Yuqing Niu, Siqi Ma, Debin Gao, David Lo

Publicado 2026-03-06
📖 5 min de leitura🧠 Leitura aprofundada

Each language version is independently generated for its own context, not a direct translation.

Imagine que você tem uma casa muito segura, com um cofre à prova de bombas no porão. Esse cofre é o TEE (Ambiente de Execução Confiável). Ele é um lugar onde você pode guardar seus segredos mais valiosos (como senhas, dados de cartão de crédito ou chaves criptográficas) e realizá-los sem medo de que um ladrão (um hacker ou um vírus) veja o que está acontecendo lá dentro.

O problema é que a maioria das pessoas constrói suas casas (seus programas de computador) inteiramente no andar de cima, que é acessível a qualquer um. Mover uma parte da casa para o cofre do porão é difícil. É como tentar levar um sofá gigante (um código complexo escrito em Java ou Python) por uma escada estreita e transformá-lo em algo que caiba perfeitamente no cofre, sem quebrar as pernas do sofá ou mudar a forma como ele funciona.

Até agora, fazer essa mudança exigia um especialista em segurança (um programador humano) passar dias analisando o código, decidindo o que mover e reescrevendo tudo manualmente. Era caro, lento e propenso a erros.

É aqui que entra o AUTOTEE, a "estrela" deste artigo.

O que é o AUTOTEE?

Pense no AUTOTEE como um arquiteto robô superinteligente (alimentado por uma Inteligência Artificial chamada LLM) que tem uma missão específica:

  1. Olhar para a sua casa inteira (o programa).
  2. Identificar exatamente quais são os "segredos" (as funções sensíveis, como calcular senhas ou criptografar dados).
  3. Mover esses segredos para o cofre seguro.
  4. Reconstruir esses segredos em uma nova linguagem (Rust) que o cofre entende perfeitamente.
  5. Garantir que, depois de movidos, os segredos ainda funcionem exatamente como antes.

Como o Robô Faz Isso? (A Analogia do Tradutor e do Chefe de Cozinha)

O processo do AUTOTEE é dividido em três etapas mágicas:

1. O Detetive (Identificação)

Primeiro, o robô lê o código como um detetive lendo um livro. Ele procura por palavras-chave como "senha", "criptografia" ou "token".

  • O Truque: Em vez de tentar entender o livro inteiro de uma vez, ele foca apenas nos "pedaços finais" (chamados leaf functions). Imagine que o programa é uma grande árvore. O robô não tenta mover a árvore inteira; ele apenas corta as folhas que contêm o suco valioso (os dados sensíveis) e as coloca em um saco. Isso torna a tarefa muito mais fácil e segura.

2. O Tradutor e o Chefe de Cozinha (Transformação)

Agora vem a parte difícil. O robô precisa traduzir o código de "Português" (Java/Python) para "Língua do Cofre" (Rust).

  • O Desafio: Se você pedir para um tradutor comum traduzir um poema, ele pode errar a rima. Se o robô traduzir o código errado, o segredo pode quebrar.
  • A Solução (ReAct): O AUTOTEE usa uma estratégia chamada ReAct (Raciocinar + Agir). É como um chef de cozinha que tenta fazer um prato novo:
    1. Ele tenta cozinhar (escreve o código em Rust).
    2. Ele prova (compila o código). Se queimar, o chef recebe uma mensagem de erro: "Muito sal!".
    3. O chef pensa: "Ah, errei o sal", e tenta de novo.
    4. Ele repete isso várias vezes até o prato ficar perfeito.
    5. O Teste Final: O robô não confia apenas no gosto. Ele faz o prato original e o novo prato lado a lado com os mesmos ingredientes (dados de teste). Se o resultado for idêntico, o prato está aprovado!

3. O Porteiro (Conexão Segura)

Depois que o código está pronto no cofre, o robô cria um "porteiro" seguro.

  • Quando o programa no andar de cima precisa usar a senha, ele não a envia diretamente. Ele chama o porteiro, que verifica a identidade do cofre (Atestação) e abre um túnel de vidro blindado (TLS) para enviar o pedido. O cofre processa e devolve o resultado. O ladrão no andar de cima só vê que o pedido foi feito, mas nunca vê o que aconteceu lá dentro.

Os Resultados: Funciona de Verdade?

Os pesquisadores testaram esse robô em centenas de programas reais (Java e Python). Os resultados foram impressionantes:

  • Precisão: O robô conseguiu encontrar os segredos corretamente em 94% dos casos (no Java) e 87% (no Python).
  • Sucesso na Mudança: Ele conseguiu transformar e mover o código para o cofre com sucesso em 91% dos casos de Java e 84% de Python.
  • Velocidade: O que antes levava dias de trabalho manual, agora é feito em minutos com a ajuda da IA.

Por que isso é importante?

Antes do AUTOTEE, usar cofres de segurança (TEEs) era como ter um carro de luxo que só um piloto de Fórmula 1 sabia dirigir. Poucas pessoas usavam porque era muito difícil.
Com o AUTOTEE, é como se tivéssemos um piloto automático que permite que qualquer motorista comum (desenvolvedor) use os recursos de segurança mais avançados do carro sem precisar saber como o motor funciona.

Em resumo: O AUTOTEE é um assistente mágico que pega os códigos sensíveis dos nossos programas, os traduz para uma linguagem de segurança, testa se funcionam e os coloca em um cofre digital, tudo isso quase sem a necessidade de ajuda humana. Isso torna a segurança da internet muito mais acessível para todos.