Simple Science

Ciência de ponta explicada de forma simples

# Informática# Criptografia e segurança

Falha Grave Encontrada na Unidade de Proteção de Memória da Xilinx

Uma grande vulnerabilidade no XMPU expõe dados sensíveis após a terminação do processo.

― 6 min ler


Falha do XMPU ExpondoFalha do XMPU ExpondoDados Sensíveisde processos encerrados.permite que atacantes acessem a memóriaVulnerabilidade do MPU da Xilinx
Índice

As unidades de proteção de memória (MPUs) são super importantes pra manter os dados seguros em dispositivos como processadores embutidos. Esses bagulhos ajudam a separar diferentes partes da memória pra que um processo não consiga acessar os dados de outro, o que é vital pra manter a segurança. Mas, uma descoberta recente mostrou que um tipo específico de MPU, a Unidade de Proteção de Memória da Xilinx (XMPU), tem uma falha séria que pode permitir acesso não autorizado à memória do usuário. Esse problema, chamado de Ataque da Ressurreição, oferece o risco de expor Dados Sensíveis assim que um processo é encerrado.

O que é um Ataque da Ressurreição?

Um Ataque da Ressurreição acontece quando um atacante consegue acessar a memória que pertencia a um processo encerrado. No caso da XMPU, a memória do usuário é protegida só enquanto o usuário tá ativo. Assim que a sessão do usuário acaba, a área de memória usada por aquele processo não é limpa. Isso significa que um atacante pode aproveitar essa vulnerabilidade, lendo informações sensíveis que sobraram na memória, como senhas ou dados pessoais.

Por que isso é importante

A capacidade de um atacante de ler esses dados é alarmante. Informações sensíveis podem ser roubadas ou pode-se obter acesso não autorizado a um sistema. Os usuários de dispositivos Xilinx precisam estar cientes desse problema até que uma solução seja encontrada.

O papel das MPUs na proteção da memória

As unidades de proteção de memória são recursos de hardware projetados pra impedir que um processo interfira em outro. As MPUs dividem a memória em diferentes seções e atribuem configurações de proteção pra cada seção. Essas configurações geralmente incluem dois modos: modo usuário e modo supervisor. O modo usuário permite operação normal, enquanto o modo supervisor oferece acesso adicional pros trabalhos em nível de sistema.

Como as MPUs funcionam

As MPUs criam espaços de memória separados, atribuindo permissões pra cada parte da memória. Se um processo tenta acessar uma área de memória pra qual não tem permissão, a MPU vai acionar um erro. Isso é crítico pra proteger dados sensíveis de acessos não autorizados.

Tipos de FPGAs

Os FPGAs (Field-Programmable Gate Arrays) são um tipo de hardware que pode ser programado pra realizar várias tarefas. Eles são adaptáveis e estão sendo cada vez mais usados em muitas indústrias como redes e finanças por causa da eficiência. Mas, essa flexibilidade também pode trazer riscos de segurança.

Estudos de segurança sobre FPGAs

Vários estudos analisaram a segurança dos FPGAs. Esses estudos focam principalmente em ataques que visam pontos fracos no sistema, como vulnerabilidades na cadeia de suprimentos ou mudanças de lógica não autorizadas. Outro tipo de ataque foca no acesso físico, onde os atacantes podem analisar o uso de energia do FPGA pra extrair informações privadas.

Vulnerabilidades em FPGAs multi-inquilinos

Num ambiente de FPGA multi-inquilino, vários usuários podem compartilhar o mesmo hardware. Essa configuração pode criar novos desafios de segurança, já que atacantes podem explorar recursos compartilhados pra criar pontos de acesso não autorizados. Pesquisas mostraram que um atacante poderia usar componentes elétricos compartilhados pra vazar informações entre processos.

Visão geral do ataque

O Ataque da Ressurreição visa especificamente a XMPU. Essa MPU deveria proteger a memória usada pelos processos. Mas, ao encerrar um processo, a memória não é limpa. Em vez disso, ela permanece intacta e pode ser acessada por um novo processo.

A falha na XMPU

Quando a sessão de um usuário termina, a XMPU não limpa o espaço de memória associado. Assim, um atacante pode solicitar acesso à memória através do sistema operacional embutido, permitindo que ele leia dados antigos que sobraram. Essa falta de limpeza da memória cria um risco significativo de exposição de dados sensíveis.

Etapas do Ataque da Ressurreição

As seguintes etapas resumem como um atacante pode explorar essa falha na XMPU:

  1. Monitorando o ID do Processo: Um atacante pode monitorar um ID de processo pra acompanhar quando um processo da vítima termina.

  2. Solicitando Alocação de Memória: Depois que o processo da vítima termina, o atacante pode solicitar alocação de memória do sistema sem que os dados antigos sejam apagados.

  3. Acessando Endereços Virtuais: O atacante verifica os endereços virtuais atribuídos ao novo espaço de memória alocado.

  4. Mapeando Endereços: O atacante pode então mapear esses endereços virtuais para físicos usando ferramentas do sistema.

  5. Lendo Resíduos de Memória: Por fim, o atacante lê os dados deixados nesses endereços físicos, que podem incluir informações sensíveis do processo anterior.

Configuração experimental

Pra demonstrar esse ataque, é necessária uma configuração experimental específica:

  1. O ataque é realizado em uma placa alvo, especificamente um FPGA Xilinx Zynq UltraScale+.

  2. O sistema operacional usado aqui é o PetaLinux, que facilita a gestão de processos e alocação de memória.

  3. A configuração da placa alvo permite que o atacante ative e desative as configurações da XMPU.

Execução do ataque passo a passo

O atacante primeiro estabelece uma conexão com a placa alvo e começa a monitorar os processos. Quando o processo da vítima termina, o atacante pode solicitar acesso à memória.

Solicitando Proteção de Memória

Depois de ganhar acesso, o atacante pode alterar as configurações de memória na XMPU. Essa mudança permite que o atacante acesse locais de memória que estavam previamente seguros.

Coletando Dados da Memória

Uma vez que o atacante identificou os endereços de memória, ele pode ler os dados presentes lá. Esses dados podem incluir informações críticas que o processo encerrado estava usando, como senhas ou arquivos pessoais.

Análise dos Dados

Um aspecto importante do ataque envolve analisar os dados coletados. O atacante pode perfilar padrões de uso da memória pra entender que tipo de informação o processo da vítima estava manipulando. Esse perfil pode levar a ataques mais focados, tornando os dados roubados particularmente valiosos.

Conclusão

O Ataque da Ressurreição revela uma falha significativa no design da Unidade de Proteção de Memória da Xilinx. Não sanitizar a memória após o término de um processo cria vulnerabilidades que os atacantes podem explorar pra acessar informações sensíveis. As implicações dessa falha são preocupantes, especialmente em ambientes onde a segurança dos dados é fundamental.

À medida que a tecnologia continua a evoluir, é crucial que fabricantes e desenvolvedores priorizem a segurança em seus designs. Abordar vulnerabilidades como as encontradas na XMPU é essencial pra manter a confiança em sistemas embutidos e proteger dados sensíveis de acessos não autorizados.

Fonte original

Título: Resurrection Attack: Defeating Xilinx MPU's Memory Protection

Resumo: Memory protection units (MPUs) are hardware-assisted security features that are commonly used in embedded processors such as the ARM 940T, Infineon TC1775, and Xilinx Zynq. MPUs partition the memory statically, and set individual protection attributes for each partition. MPUs typically define two protection domains: user mode and supervisor mode. Normally, this is sufficient for protecting the kernel and applications. However, we have discovered a way to access a process memory due to a vulnerability in Xilinx MPU (XMPU) implementation that we call Resurrection Attack. We find that XMPU security policy protects user memory from unauthorized access when the user is active. However, when a user's session is terminated, the contents of the memory region of the terminated process are not cleared. An attacker can exploit this vulnerability by gaining access to the memory region after it has been reassigned. The attacker can read the data from the previous user's memory region, thereby compromising the confidentiality. To prevent the Resurrection Attack, the memory region of a terminated process must be cleared. However, this is not the case in the XMPU implementation, which allows our attack to succeed. The Resurrection Attack is a serious security flaw that could be exploited to steal sensitive data or gain unauthorized access to a system. It is important for users of Xilinx FPGAs to be aware of this vulnerability until this flaw is addressed.

Autores: Bharadwaj Madabhushi, Chandra Sekhar Mummidi, Sandip Kundu, Daniel Holcomb

Última atualização: 2024-05-22 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2405.13933

Fonte PDF: https://arxiv.org/pdf/2405.13933

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes