Proteção contra ataques 'offline' usando chip TPM

Nós chamamos de ataques offline a todo tipo de ataque feito contra o sistema enquanto ele não está em funcionamento. Isso é feito normalmente iniciando o computador com outro sistema operacional (fazendo o boot por CD, ou plugando outro disco rígido), que permite em seguida o acesso e a modificação de qualquer arquivo no disco. A forma de proteção básica contra este tipo de ataque é a boa e velha segurança física: por exemplo, ninguém vai conseguir fazer um ataque offline contra o seu servidor se não tiver acesso ao seu datacenter.

Ocorre que nem sempre é possível garantir segurança física a um equipamento. ATMs e quiosques por definição tem que ficar expostos ao público. Servidores tem que ser colocados em filiais e agências em todo o Brasil. E o seu notebook eventualmente vai ter que andar de táxi em São Paulo. Precisamos então de alguma outra forma de garantir a integridade do sistema e a confidencialidade dos dados contra ataques offline nestas situações onde não podemos contar com segurança física.

Vamos tratar primeiro da confidencialidade. A única forma de garantir a confidencialidade contra ataques offline é usando encriptação, e a Microsoft oferece desde o Windows 2000 o Encrypting File System (EFS). O EFS encripta arquivos de dados, utilizando uma chave AES criada para cada arquivo, que é encriptada com uma chave privada do usuário, que por sua vez é encriptada pela senha de logon desse usuário. Os arquivos somente são abertos se o usuário fizer logon com sua senha, e estão tão protegidos quanto mais forte for esta senha.

O EFS no entanto tem algumas limitações, em especial a de não poder ser utilizado para proteger arquivos do próprio sistema operacional. Se no EFS os arquivos são protegidos pela senha do usuário, como poderíamos encriptar os arquivos do sistema, que tem que ser decriptados antes de qualquer usuário poder se logar? E como o sistema operacional poderia decriptar a si mesmo para poder rodar?

Para encriptar o sistema operacional portanto existem dois problemas a serem resolvidos:

  1. Onde guardar a chave de encriptação? Se ela estiver no próprio disco do sistema ela vai estar então disponível para o próprio atacante. Se o usuário tiver que digitá-la durante o boot, então provavelmente não serve para ATMs, quiosques e servidores de filiais, onde nenhum administrador vai estar necessariamente disponível.
  2. Como proteger o programa de decriptação? Alguma coisa tem que ficar em claro (i.e. sem encriptação) para poder decriptar e iniciar o sistema operacional. Só que essa coisa ficaria ela mesma vulnerável a um ataque offline: por exemplo, um atacante poderia alterá-la para obter a senha de decriptação ou inocular um rootkit.

Chip TPM

Nenhum destes dois problemas pode ser resolvido sem ajuda do hardware. Entra em cena então o chamado Trusted Platform Module, ou TPM (sigla infame aqui no Brasil, eu sei!). O TPM é um chip especial colocado na placa mãe do computador, e que é usado para armazenar de forma segura chaves e acelerar operações criptográficas. Em uma boa comparação, seria como se o computador tivesse soldado nele um smart card. Os chips TPM seguem especificações abertas definidas pelo consórcio de empresas do Trusted Computing Group, e a versão mais recente é a 1.2.

O TPM resolve o primeiro problema armazenando dele mesmo a chave de encriptação do sistema. Dessa forma a chave fica protegida contra ataques offline e pode ser utilizada mesmo sem a intervenção do usuário. Sobra então o segundo problema - como proteger o programa de decriptação? Entra em cena aqui uma outra especificação do Trusted Computing Group, chamado de Static Root of Trust Measurement (SRTM).

Apesar do nome pomposo, o conceito do SRTM é bastante simples. Ele procura garantir que todos os componentes do processo de boot do sistema estão íntegros e não foram modificados offline,  e só então permite o acesso à chave de encriptação. Para fazer isso cada componente do processo de boot verifica a integridade do componente seguinte e informa ao chip TPM, que armazena este valor em registradores especiais chamados de PCR. A chave de encriptação só é fornecida pelo TPM se os valores corretos estiverem colocados em todos os PCRs.

O processo funciona da seguinte forma:

O boot começa pelo próprio TPM, que faz o hash da BIOS do sistema e extensões e coloca o valor no registrador PCR 0. O TPM passa então o controle para a BIOS.

A BIOS por sua vez faz o hash do Master Boot Record (MBR), e coloca o valor no registrador PCR 4 do TPM. A BIOS então passa o controle para o MBR.

O MBR faz o hash do setor de boot do NTFS e coloca o valor no registrador PCR 8 do TPM. E assim sucessivamente: o setor de boot do NTFS faz o hash do bloco de boot, que por sua vez faz o hash do boot manager do Windows, que faz do carregador do sistema operacional. Sempre informando o valor ao TPM.

O carregador do sistema operacionalsolicita então a chave para decriptar o disco e carregar o sistema. O chip TPM verifica os valores em cada registrador PCR e fornece a chave de decriptação ao carregador (podemos comparar o chip TPM a aqueles cadeados de mala, que só abrem se todos os números corretos forem colocados).  Se houve alguma modificação offline dos componentes de boot a chave não é fornecida e o sistema fica inacessível.

BitLocker

O Windows Vista implementa o BitLocker, recurso que consiste na encriptação total da partição de sistema e a proteção dos componentes de boot usando um chip TPM 1.2. Com o BitLocker o sistema pode se proteger da melhor forma possível contra ataques offline, em especial para notebooks que contenham informação sensível para a empresa. E em conjunto com a restrição na instalação de dispositivos (vamos falar disso mais tarde), ele oferece uma combinação de segurança sem paralelo para ATMs, quiosques de uso público,  e servidores em agências/filiais.

Minha dica então é que, se você estiver pensando em comprar um notebook, ou definindo os equipamentos para usar ATMs ou filiais, procure PCs que tenham um chip TPM 1.2 - mesmo que você não vá usar o Vista agora. Todos os principais fornecedores já oferecem equipamentos deste tipo, e se você se preocupa com segurança não faz sentido abrir mão deste recurso.

Comments

  • Anonymous
    January 01, 2003
    Law #3 - If a bad guy has unrestricted physical access to your computer, it's not your computer anymore.

  • Anonymous
    January 01, 2003
    Em um post anterior eu falei aqui sobre como rootkits e outros softwares maliciosos podem subverter o

  • Anonymous
    January 01, 2003
    Em um sistema operacional como o Windows os programas executados pelos usuários rodam dentro de processos.

  • Anonymous
    January 01, 2003
    Antes de explicar a afirmação acima, vamos conceituar rapidamente o que significa um ataque ser offline

  • Anonymous
    January 01, 2003
    O guru Marcus Ranum começou a fazer os seus próprios podcasts , e no primeiro ( slides , transcrição

  • Anonymous
    January 01, 2003
    A Intel Brasil começou um group blog muito interessante, mantido pelos próprios funcionários da empresa.