.
Os ataques de inicialização a frio, nos quais os chips de memória podem ser resfriados e os dados, incluindo as chaves de criptografia, saqueados, foram demonstrados em 2008 – mas foram automatizados.
aquele original Esse tipo de ataque foi aprimorado e automatizado na forma de uma máquina de furto de memória que pode ser sua por cerca de US$ 2.000, com um pouco de manipulação elétrica autoguiada.
Na sexta-feira, na conferência de engenharia reversa REcon no Canadá, Ang Cui, fundador e CEO da Red Balloon Security, apresentará uma palestra intitulada “Ice Ice Baby: Coppin’ RAM com robô criomecânico DIY.”
A apresentação se concentra em um robô criomecânico de extração de conteúdo RAM que Cui e seus colegas Grant Skipper e Yuanzhe Wu desenvolveram para coletar dados descriptografados de módulos de memória DDR3. A justificativa para fazer isso é que os fabricantes de hardware tornaram mais difícil a engenharia reversa de seus dispositivos – desativando as interfaces de depuração JTAG e os circuitos UART e usando o pacote Ball Grid Array (BGA) e o firmware criptografado.
“Estamos vendo o que chamo de acabamento do produto, onde os fabricantes estão removendo muitas interfaces de depuração”, disse Cui Strong The One em uma entrevista. “Isso não aumenta necessariamente a segurança do produto, mas torna a introspecção do dispositivo e a engenharia reversa do dispositivo muito mais difícil. É uma espécie de perda de tempo, contornando algumas dessas coisas de hardware.
“Então decidimos mudar essa dinâmica seguindo um caminho diferente”, disse Cui. “Em vez de tentar fazer a injeção de falhas, o que fizemos no passado, ou fazer uma engenharia reversa muito invasiva por ablação a laser, construímos este robô muito acessível e surpreendentemente preciso que literalmente congela um chip de RAM no dispositivo por vez. .”
“Em seguida, retiramos a memória física do dispositivo quando queremos ler o conteúdo da RAM física – nós a colocamos em nosso pequeno dispositivo FPGA. É basicamente apenas ler a memória física, pegando-a do dispositivo e colocando-a fisicamente em o leitor. E realmente funcionou surpreendentemente bem”, explicou Cui.
“Muitas vezes no bootloader, você verá as chaves de descriptografia. Você também verá o código do bootloader – que muitas vezes, se você tiver criptografado o firmware no flash e tiver uma ROM de inicialização segura mesmo um pouco, você pode ter muita dificuldade até mesmo em obter acesso para ler o código. Mas com essa abordagem, você obtém o código, obtém todos os dados, obtém a pilha, obtém a pilha, obtém toda a memória física “, contou.
O ataque de inicialização a frio original, disse Cui, envolvia o congelamento da memória de um laptop invertendo uma lata de ar comprimido para resfriar a DRAM do computador. Quando os chips de memória podem ser reduzidos para cerca de -50°C, os dados representados podem ser temporariamente congelados – de modo que persistem por vários minutos, mesmo quando desligados.
“Mas se você olhar para dispositivos embutidos, eles não têm RAM modular”, disse Cui. “Está tudo soldado. Também trabalhamos em vários controladores de memória muito personalizados. Usamos essa abordagem para fazer o Trabalho de divulgação de vulnerabilidade da Siemens no início deste ano.
“Então, uma vez que conseguimos um chip de memória funcionando de forma confiável e lendo corretamente, tivemos que fazer não um, mas cinco chips, porque eles estão todos entrelaçados. E então três dos chips estão em um lado da placa e dois deles estão na parte inferior da placa. Então, tivemos que encontrar uma maneira de, de alguma forma, extrair magicamente todos os cinco chips de memória literalmente com a mesma instrução – o que é, você sabe, hilariamente complicado e simplesmente não é realizável. “
Coisas complicadas, tempo
“Criamos outro truque muito legal em que fazemos um de cada vez e procuramos não apenas uma execução determinística, mas também observamos a emanação eletromagnética do dispositivo para descobrir basicamente onde o dispositivo está passando por períodos de operação limitados pela CPU. Porque se você estiver limitado pela CPU, adivinhe o que não está fazendo? Você não está gravando da memória”, lembrou ele.
“Portanto, em vez de precisar ter dezenas de nanossegundos de resolução de tempo ao retirar o chip de memória, temos períodos de dezenas de milissegundos em que podemos fazer isso. E foi assim que retiramos cinco chips de memória ao mesmo tempo e em seguida, reconstruiu a memória para o bootloader, o código e os dados e obteve visibilidade para o dispositivo.”
E dezenas de milissegundos, disse Cui, é tempo suficiente para uma máquina de controle numérico computadorizado (CNC) – adquirida por cerca de US$ 500 no AliExpress e modificada – para realizar a manipulação necessária do chip.
O robô – uma máquina CNC acoplada a um leitor de memória construído com um field-programmable gate array (FPGA) e um controlador baseado em um Módulo ESP32 correndo MicroPythonGenericName – simplifica a técnica de ataque de inicialização a frio, tornando-a menos onerosa.
Cui disse que o robô consiste em um CNC que foi despojado de componentes imprecisos, como os motores e o atuador do eixo X. O que torna o ataque possível, disse ele, é algo chamado soquete de teste IC de elastômero condutivo.
Em contraste com os soquetes de teste típicos que têm a forma de uma concha e pinos de metal, o soquete de teste de elastômero tem a consistência de ursinhos de goma duros e é impresso com pinos condutores.
A flexibilidade do soquete possibilitou que um pistão empurrasse os chips de memória no lugar com hardware barato, sem danificar a placa de circuito ou os chips de memória. E esses soquetes, que custavam centenas de dólares cada uma há uma década, agora podem ser adquiridos por cerca de US$ 30 no Taobao.
Ao incorporar um sistema de leitura de memória baseado em FPGA, não há necessidade de obter a execução do código por meio de um bootloader personalizado para despejar o conteúdo da DRAM. O robô também simplifica o processo de ataque transferindo fisicamente os chips DRAM entre o dispositivo de destino e o sistema de leitura.
Funciona, mas nem tudo está perdido
Cui e seus colegas demonstraram seu robô em um PLC Siemens SIMATIC S7-1500, do qual conseguiram recuperar o conteúdo de binários de firmware criptografados. Eles também conduziram um ataque igualmente bem-sucedido em DDR3 DRAM em um CISCO IP Phone 8800 series para acessar a memória ARM TrustZone de tempo de execução.
Eles acreditam que sua técnica é aplicável a DDR4 e DDR5 mais sofisticados se uma plataforma de leitura de memória baseada em FPGA mais cara (cerca de US$ 10.000) for usada – um custo que eles esperam diminuir com o tempo.
Os ataques de inicialização a frio podem ser combatidos com criptografia de memória física, disse Cui.
“No tipo moderno de CPUs, e também em consoles de jogos, eles já estão usando memória totalmente criptografada”, explicou Cui. “Isso derrotaria essa abordagem, porque mesmo que conseguíssemos extrair a memória física, ainda precisaríamos ter a chave física, que está em algum outro lugar do dispositivo.”
“Mas quanto mais importante uma coisa é para o mundo, menos segurança ela tem”, disse ele. “Então, adivinhe o que tem [memory encryption]? Xbox tem. PS5 tem. Adivinha o que não? Cada CLP [programmable logic controller] CPU no planeta de forma eficaz. Muitas das infraestruturas críticas incorporadas das quais dependemos, quase nenhuma delas está abordando esse tipo de ataque.” ®
.