banner

blog

Jul 28, 2023

Ignorando o Bitlocker com um Analzyer Lógico

O engenheiro de segurança [Guillaume Quéré] passa o dia testando sistemas de penetração para seu empregador e apontou e explorou com sucesso uma fraqueza bastante óbvia no sistema de criptografia de volume total do BitLocker, que, como diz o artigo vinculado, permite simplesmente farejar o tráfego entre o chip TPM discreto e CPU por meio de um barramento SPI. A forma como o Bitlocker funciona é usar uma chave privada armazenada no chip TPM para criptografar a chave de volume completa que, por sua vez, foi usada para criptografar os dados do volume. Tudo isso é feito por drivers de dispositivos de baixo nível no kernel do Windows e é transparente para o usuário.

O objetivo do BitLocker era impedir o acesso aos dados no volume seguro no caso de roubo ou perda de um dispositivo físico. Simplesmente puxar a unidade e soltá-la em uma máquina não segura ou em algum outro adaptador não forneceria nenhum dado sem a chave armazenada pelo TPM. No entanto, como essa chave deve passar como texto simples do TPM para a CPU durante a sequência de inicialização, [Guillaume] mostra que é bastante simples — com ferramentas de custo muito baixo e software gratuito — simplesmente localizar e detectar esse TPM para -Transação de CPU e decodifica o fluxo de dados e localiza a chave. Usando pouco mais do que um analisador lógico barato conectado a alguns pinos convenientemente grandes em um chip flash próximo (porque os pinos SCK, MISO e MOSI são compartilhados com o TPM), o TIS simples foi decodificado o suficiente para travar nos bytes do TPM quadro. Isso poderia então ser decodificado com um aplicativo da web decodificador de fluxo TPM, cortesia do grupo da comunidade de software TPM2. O comando a procurar é o TPM_CC.Unseal, que é a solicitação da CPU ao TPM para enviar a chave que nos interessa. Depois disso, basta capturar e decodificar o quadro de resposta do TPM para revelar imediatamente a mercadoria.

O que você faz a seguir é uma questão de conveniência, mas a maioria dos tipos de segurança e análise forense já estariam sentados em um arquivo de imagem de disco de baixo nível do volume de destino. Ao usar o comando Linux xxd para transformar essa chave hexadecimal de 32 bytes em um arquivo de chave binária, o módulo dislocker-fuse FUSE pode criar um sistema de arquivos virtual descriptografado dinamicamente que você pode simplesmente montar. Se desejar, você poderá gravar os dados do volume descriptografado em um novo disco, colocá-los em uma máquina e inicializar o sistema operacional. Você provavelmente não conseguiu fazer login, mas como [Guillaume] aponta, ao substituir o aplicativo de teclas adesivas (sethc.exe) por cmd.exe, você pode acessar um prompt de comando apenas pressionando a tecla Shift cinco vezes. Bons tempos!

Se você realmente precisa de suporte TPM para um sistema mais antigo, para instalar o Windows 11 (se realmente precisar), você pode simplesmente fazer o seu próprio. Além disso, como a interface LPC está presente em muitas placas-mãe, por que não aproveitá-la e usá-la para pendurar um adaptador de barramento ISA para conectar aquela velha placa Soundblaster clássica que você não suportava descartar?

COMPARTILHAR