terça-feira, 25 de março de 2008

Python e Firewire: Burlando o Login do Windows

Um dos princípios básicos de segurança em TI nos diz que "Segurança de software não significa nada se a segurança física é quebrada". Como você deve ter ouvido falar nos últimos dias, recentemente foi demonstrado que é possível (e viável) quebrar a segurança de um sistema inteiramente criptografado, usando informações contidas na memória RAM, que apesar de volátil, pode durar tempo suficiente para ter seu conteúdo copiado e consequentemente estudado. Há inclusive uma galeria com os computadores sendo hackeados por um dos autores do artigo).

O hack leva um tempo para executar, assim como exige acesso físico ao computador para que outro sistema possa efetuar a ação. No entanto, um jeito mais eficiente foi descoberto ...


Um analista de segurança chamado Adam Boileau demonstrou a eficácia da linguagem Python para passar pela segurança da tela de logon do Windows via firewire usando qualquer coisa desde um sistema completo até um dispositivo em miniatura. Tudo o que é necessário é uma porta Firewire. Este estudo é baseado num artigo feito por outro analista, Maximillian Dornseif, que demonstrou que é possível fazer a mesma coisa contra o sistema operacional da Apple.

Desenvolvido pela Apple, a tecnologia Firewire é bastante popular lá pelos Estados Unidos. Apesar de ter uma fraca presença no Brasil, vários novos computadores já estão vindo com a interface disponível, em placas mãe com o dispositivo embarcado. A grande vantagem do Firewire é sua alta performance em transferência de dados, sendo usado por vezes para comunicação entre computadores, e até como interface de rápido acesso para dispositivos personalizados. Boileau e Dornseif demonstraram que, configurando o dispositivo para mentir sobre suas configurações, ele pode fazer com que o windows (ou outros sistemas operacionais) dê acesso ao módulo de DMA da memória RAM (e até de outros dispositivos), permitindo que o script atue em cima da memória.

Algumas pessoas me perguntaram porque esse problema existe há tanto tempo, e ninguém ainda parece ter resolvido? Porque o acesso aos módulos de DMA pela interface Firewire é o que realmente dá à mesma a velocidade que ela alcança, permitindo que ela acesse partes do sistema diretamente, sem a intervenção direta do processador, diminuindo o uso do mesmo.

Para aqueles que estão interessados, o código pode ser encontrado no próprio site do Boileau, completo. Em seu site ele também tem várias informações sobre como extrair, via mesma técnica, uma imagem completa da RAM da máquina alvo, o que para quem mexe com informática forense, é bastante útil.

O link direto é: http://www.storm.net.nz/static/files/winlockpwn

Fica aí minha colaboração com este tema. Apesar de extremamente instigante, não pretendo fazer nada em cima desse material. Portas Firewire estão, atualmente, fora do meu alcance, e mesmo que tivessem mais acessíveis, não me interessam tanto quanto outros projetos. Caso algum de vocês desenvolva algo e se sentirem agradecidos, me mandem um comentário que eu posto por aqui.

Até um próximo post.