Autor: Paulo Higa

Durante a trigésima edição do Chaos Communication Congress, evento anual de tecnologia que acontece em Hamburgo, na Alemanha, o hacker Andrew “bunnie” Huang demonstrou como os cartões de memória são inseguros. Por meio de modificações no firmware, é possível, por exemplo, fazer ataques man-in-the-middle, no qual os dados transmitidos entre o cartão de memória e o dispositivo são interceptados.

Para explicar a vulnerabilidade encontrada em alguns cartões SD, Bunnie dá algumas informações sobre o funcionamento dessas pequenas peças. Um cartão de memória não é apenas um pedaço de plástico que guarda dados: além da memória flash, que armazena as informações, há um microcontrolador, geralmente um processador ARM ou uma variação do Intel 8051, que executa algoritmos de correção de erro e custa algo entre 15 e 30 centavos de dólar ao fabricante.

cartao-de-memoria-controlador-flash

Esses complexos algoritmos são necessários porque as memórias flash, para serem extremamente baratas, saem das fábricas cheias de defeitos: dependendo do fabricante, até 80% dos setores são incapazes de reter dados. Memórias problemáticas podem ser vendidas com capacidade menor, para que nenhum chip seja desperdiçado. Assim, um chip defeituoso de memória flash de 2 Gb pode ser um chip de 1 Gb em perfeitas condições. Os setores defeituosos são silenciosamente inutilizados pelo microcontrolador do cartão de memória.

Para que toda a mágica funcione, é necessário que o cartão de memória contenha um firmware, com as instruções do microcontrolador e os algoritmos de correção de erro. Esse firmware é atualizável através de uma sequência de comandos. O problema é que, de acordo com Bunnie, boa parte dos fabricantes deixa essa sequência desprotegida, permitindo que qualquer um modifique indevidamente o firmware.

Detalhes do firmware de um cartão de memória

Ao modificar o firmware, é possível fazer com que o sistema operacional acredite que está lendo um pen drive de 64 GB quando, na verdade, há apenas uma memória flash de 2 GB ali dentro, só para citar um exemplo. Os dados serão gravados até o limite da memória flash e depois começarão a ser corrompidos. Quando lojas de reputação duvidosa te venderem cartões de memória de altíssima capacidade por preços inacreditáveis, você já sabe como isso foi feito.

Mas as modificações podem ir além: dá para fazer com que dados importantes do cartão de memória, por exemplo, sejam automaticamente copiados para uma área reservada da memória flash, sem que você faça a menor ideia disso. Além disso, os dados podem ser interceptados de alguma forma. Portanto, não dá para garantir que, após formatar um cartão de memória, ele esteja totalmente limpo.

Pelo menos há uma notícia positiva em tudo isso. Como os microcontroladores existentes nesses cartões de memória são relativamente poderosos (alguns podem atingir cerca de 100 MHz), eles podem ser usados em projetos simples: custam menos que um Arduino com microcontrolador 8 bits de 16 MHz, mas oferecem bem mais desempenho e ainda vêm com alguns gigabytes de memória.

A explicação completa sobre o assunto está no blog de Bunnie. O vídeo abaixo mostra a apresentação realizada no Chaos Communication Congress.

Fonte: Tecnoblog