Site Meter TPM Impede Ataques Offline, Não Online - Segurança na Microsoft - Site Home - TechNet Blogs

Segurança na Microsoft

Comentários e Análises sobre Segurança da Informação, por Fernando Cima

TPM Impede Ataques Offline, Não Online

TPM Impede Ataques Offline, Não Online

  • Comments 5
  • Likes

Antes de explicar a afirmação acima, vamos conceituar rapidamente o que significa um ataque ser offline e online:

■ Um ataque offline é aquele que é executado quando o sistema não está em operação, aproveitando normalmente o fato das defesas lógicas do sistema (logon, permissões, auditoria) não estarem ativas nesta situação. Um exemplo de ataque offline seria alguém iniciar o computador com um disco de boot, e então alterar arquivos gravados no disco rígido para colocar um keylogger.

■ Um ataque online é aquele que acontece quando o sistema está em plena operação, explorando alguma vulnerabilidade no código ou alguma ação do usuário. Uma pessoa executando um trojan achando que é um cartão virtual de um administrador anônimo seria um bom exemplo de ataque online.

Ataques offline requerem invariavelmente acesso físico ao equipamento, e a melhor medida para impedí-los é claro utilizar recursos de segurança física. Em situações onde isso não é possível, ou como complemento para essas medidas, os recursos fornecidos por um chip Trusted Platform Module (TPM) protegem a integridade do sistema contra ataques offline. No Windows Vista o recurso de BitLocker usa o chip TPM para esse fim.

Isto já foi tratado aqui no blog antes, mas fazendo um breve resumo: o BitLocker encripta as partições de disco do computador, e armazena a chave de encriptação dentro do chip TPM. Ao armazenar essa chave, o chip faz também uma "medida" - um hash - dos componentes envolvidos na inicialização do sistema, como BIOS, MBR e setor de boot da partição.

Quando o sistema é iniciado, o chip TPM "mede" de novo estes componentes e só libera a chave de encriptação se eles não tiverem sido alterados. Alguém tentando fazer um ataque offline não teria acesso ao dados nas partições de disco, já que não ele não teria a chave de encriptação, e se tentar alterar a BIOS, a MBR ou qualquer outro componente de boot o sistema não irá se inicializar porque a chave não seria liberada pelo TPM.

O chip TPM no entanto não foi feito para oferecer proteção contra ataques online, e a sua eficácia é limitada nestes cenários. Por exemplo, vamos pegar o caso do rootkit de MBR recentemente descoberto em ataques reais. O BitLocker não impediria a infecção, mas como o chip TPM "mede" a MBR durante o boot o sistema iria acusar a alteração durante o próximo boot, e o usuário poderia tomar as medidas cabíveis. Neste caso mesmo o ataque sendo online o TPM fornece algum nível de proteção.

Um rootkit mais "esperto" no entanto contornaria totalmente esta proteção, reprogramando ele mesmo o chip TPM. Lembre-se, o rootkit está rodando com privilégios de administrador no sistema. Após alterar a MBR, o rootkit poderia ordenar ao TPM que tomasse uma nova "medida" dos componentes de boot e considerasse os novos valores como válidos. Os próximos boots aconteceriam normalmente e o rootkit não seria detectado.

Isto não quer dizer que um recurso como o TPM seja inútil. Ao contrário, é uma defesa excepcional e bastante efetiva. Mas é preciso saber bem quais são os cenários de ataque que ele foi feito para evitar, e quais são os cenários de ataque onde ele não oferece proteção.

 

Comments
  • PingBack from http://blog.waltercunha.com/2008/01/25/tpm-impede-ataques-offline-nao-online/

  • Vejo utilidade para uso do TPM para protecao de integridade de kernel, tais como oferecidas pelo patchguard.

    De fato, penso em utilizar recursos do TPM no StMichael justamente para armazenar informacoes sobre a integridade do sistema.  A dificuldade, claro, estaria no codigo coletor de tais informacoes... ainda nao pesquisei se consigo acesso ao TPM (de forma pratica) atraves da SMM, mas creio que sim... a ideia seria criptografar os hashs e manter a chave justamente lockada no proprio TPM... se alguem violar o chip, obviamente nao conseguiria mais obter os hashes.

    Neste caso, o TPM estaria sendo utilizado para seguranca online, dado que mesmo para seguranca offline o TPM nao passa de um 'armazenamento seguro' de informacao.

    [s],

    Rodrigo (BSDaemon).

  • Oi Rodrigo,

    É uma boa idéia, mas para se ter proteção contra um ataque online seria ainda necessário ter alguma forma de isolamento entre o código que faz a proteção (StMichael) e o código sendo protegido (kernel), garantindo que só o código que faz a proteção tenha acesso ao TPM. Caso contrário um esquema desse seria burlável.

    O Patchguard não possui esse isolamento hoje, nem presumo possua o StMichael. Colocar simplesmente o TPM em cima deles acrescenta muito pouco e é contraproducente na minha opinião.

    O melhor caminho, também na minha opinião, para ter esse isolamento seria você transformar o StMichael em um hypervisor (ou um "virtual appliance" na terminologia que a Intel está usando). Com isso você pode usar o TPM para assegurar a integridade do StMichael, e o StMichael em seguida iniciar e proteger o kernel, sem risco de código no kernel corromper o StMichael ou o TPM.

    Abraços,

  • Oi Rodrigo,

    Lendo com mais atenção o seu comentário, me parece que você quer rodar o StMichael no SMM e assim obter o isolamento em relação ao kernel.

    Humm me parece que com um hypervisor seria mais fácil, já que o SMM não foi feito originalmente para isso, mas pode ser que funcione! Você teria já alguma prova de conceito ou código qualquer implementando isso?

    Abraços,

  • Cima,

    O grupo de pesquisa da Universidade de Princeton desenvolveu uma suite de ataques para sistemas de encriptação de discos, com sucesso testado para os seguintes sistemas: BitLocker, TrueCrypt e FileVault.

    Vale a pena conferir.

    http://citp.princeton.edu/memory/

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment