PXoM: Um Novo Escudo Contra Ataques JIT-ROP
Descubra o PXoM, a defesa inovadora contra ataques de corrupção de memória.
Chenke Luo, Jiang Ming, Mengfei Xie, Guojun Peng, Jianming Fu
― 7 min ler
Índice
- Entendendo Ataques de Corrupção de Memória
- O Que Tem de Especial no PXoM?
- O Papel dos Dados Incorporados
- Testando o PXoM
- Como o PXoM Funciona: Um Olhar por Dentro
- Avaliação de Desempenho: Mantendo Leve
- Servidores Web e Bancos de Dados Testados
- Benefícios do PXoM
- Conclusão: O Futuro do PXoM
- Fonte original
- Ligações de referência
No mundo dos computadores, a briga entre os bons e os maus tá rolando. De um lado, temos os defensores tentando manter seus sistemas seguros de ataques traiçoeiros. Do outro, estão os atacantes tentando se infiltrar e explorar vulnerabilidades. Um dos métodos mais espertos que eles usam é chamado de JIT-ROP. É tipo um ladrão que foge com suas coisas de valor bem na hora que você vira as costas!
Pra combater essa tática chata, os pesquisadores desenvolveram uma nova abordagem chamada PXoM. Imagine o PXoM como um segurança em um clube high-tech, garantindo que só convidados autorizados (dados) possam entrar, enquanto mantém os convidados indesejados (atacantes) do lado de fora.
O PXoM é feito pra proteger programas de software, especialmente aqueles escritos em linguagens mais antigas como C/C++. Essas linguagens costumam ter falhas que podem ser exploradas pelos atacantes. O que o PXoM faz é criar um ambiente seguro onde os dados podem descansar tranquilos, sabendo que não vão ser acessados pelos caras maus.
Entendendo Ataques de Corrupção de Memória
Antes de entrar mais a fundo no PXoM, é essencial entender a ideia dos ataques de corrupção de memória. Pense na memória como um grande espaço digital onde os programas guardam suas informações importantes. Às vezes, os atacantes conseguem se infiltrar nesse espaço e bagunçar tudo, fazendo os programas travarem ou se comportarem de maneira estranha. É como se alguém colocasse uma almofada de pum na sua cadeira favorita—surpreendente e inconveniente!
A corrupção de memória pode se manifestar de várias formas, mas uma especialmente complicada é o JIT-ROP. Essa técnica permite que os atacantes reutilizem partes de código existente para criar ações maliciosas sem precisar injetar o próprio código. Então, em vez de arrombar a porta, eles usam as janelas de forma esperta!
Pra se defender desses ataques, os desenvolvedores tentaram várias estratégias, como misturar o código pra que os atacantes não consigam encontrá-lo facilmente. Eles também evitam que o mesmo espaço de memória seja tanto gravável quanto executável—pense nisso como não deixar a mesma pessoa cozinhar e comer na cozinha ao mesmo tempo.
O Que Tem de Especial no PXoM?
O PXoM se destaca porque resolve algumas das falhas das defesas anteriores. Em vez de simplesmente erguer uma barricada, o PXoM vai além, permitindo também o acesso legítimo aos dados que os programas precisam pra funcionar. É como deixar o entregador de pizza passar enquanto você mantém os convidados indesejados longe da sua festa.
Isso não requer mudanças drásticas em softwares mais antigos, permitindo que eles funcionem normalmente. Isso é um grande lance porque muitos programas antigos não se dão bem com novas estratégias de segurança, levando a frustrações e problemas de desempenho.
O PXoM usa um jeito sofisticado, mas eficiente, de gerenciar permissões, o que significa que ele consegue diferenciar um pedido de leitura inofensivo de um programa de um pedido malicioso de um atacante.
O Papel dos Dados Incorporados
No mundo da programação, dados incorporados se referem a pequenos pedaços de informação que estão dentro do próprio código. Por exemplo, se você estiver criando um jogo, a imagem de um personagem fofo pode estar incorporada no código do jogo. Isso pode ser super útil, mas também abre a porta pra que os atacantes manipulem esses dados se não forem devidamente protegidos.
O grande desafio é descobrir como proteger esses dados sem complicar as coisas ou deixar o programa mais lento. É aí que o PXoM brilha novamente! Ele consegue gerenciar permissões com precisão, permitindo que os dados necessários sejam lidos enquanto o resto fica trancado.
Testando o PXoM
Como qualquer novo método de segurança, o PXoM precisa se provar. Pesquisadores realizaram uma variedade de testes pra garantir que ele consegue lidar com a pressão.
Imagine um campo de treinamento pra um novo recruta: o PXoM foi submetido a uma série de desafios rigorosos pra testar sua resistência. Eles avaliaram como ele se defendia contra o JIT-ROP, como se saía sob uso intenso e como isso afetava a velocidade geral do programa.
Os resultados foram promissores. O PXoM mostrou que conseguia manter os atacantes afastados sem deixar o sistema lento. Programas que usavam PXoM tiveram apenas um pouquinho de trabalho extra, como um empurrãozinho amigável em vez de uma derrubada total.
Como o PXoM Funciona: Um Olhar por Dentro
Agora que sabemos que o PXoM é eficaz, vamos dar uma olhada em como ele opera nos bastidores.
No seu núcleo, o PXoM usa novos recursos de hardware chamados Chaves de Proteção de Memória pra impor suas políticas. Pense nessas chaves como passes VIP especiais que controlam quem pode ler quais áreas da memória. O PXoM atribui permissões diferentes a diferentes partes da memória, agindo como um segurança bem treinado que sabe exatamente quem deve ser deixado entrar.
Quando um programa tenta ler da memória, o PXoM confere se aquele pedido é legítimo. Se for, a leitura é liberada. Se não for, o programa é bloqueado. Assim, o PXoM garante que apenas as pessoas certas (ou dados) tenham acesso à memória, mantendo os atacantes de fora!
Avaliação de Desempenho: Mantendo Leve
Desempenho é vital quando se trata de segurança. Imagine ter um sistema de segurança tão pesado que faz as operações do seu negócio pararem. Isso não ajuda ninguém!
O PXoM foi testado usando vários benchmarks pra ver seu impacto na velocidade e eficiência. Os resultados mostraram que programas rodando PXoM tiveram apenas um pequeno atraso, normalmente variando de cerca de 0,22% a 0,82%. Pra colocar em perspectiva, isso é como adicionar uma pedrinha em uma mochila cheia de pedras—mal dá pra notar!
Servidores Web e Bancos de Dados Testados
O PXoM também foi avaliado em aplicações do mundo real, como servidores web e bancos de dados. Cada um foi submetido a cargas de trabalho variadas pra ver como a proteção se comportava na prática. As descobertas mostraram que mesmo com tráfego pesado, o PXoM manteve defesas fortes enquanto mantinha o uso de recursos baixo.
Benefícios do PXoM
Os benefícios do PXoM são muitos:
- Segurança Aumentada: Ele efetivamente combate ataques JIT-ROP, mantendo os sistemas mais seguros.
- Compatibilidade com Programas Antigos: Softwares mais velhos não precisam de mudanças significativas pra trabalhar com o PXoM, facilitando a adoção pelas organizações.
- Impacto Mínimo no Desempenho: Não pesa nos programas, permitindo que funcionem suavemente mesmo enquanto estão protegidos.
Em resumo, o PXoM é como atualizar o sistema de defesa do seu castelo sem precisar derrubar nenhuma parede!
Conclusão: O Futuro do PXoM
À medida que as ameaças cibernéticas continuam a evoluir, a necessidade de medidas de segurança robustas como o PXoM se torna ainda mais crítica. Combinando controles de acesso eficientes, compatibilidade com softwares mais antigos e impacto mínimo no desempenho, o PXoM está pronto pra enfrentar os desafios impostos por atores maliciosos.
Em um mundo onde cada byte conta, ter um segurança como o PXoM garante que seus dados fiquem bem onde pertencem—seguros e protegidos! À medida que avançamos, o PXoM pode muito bem se tornar um item essencial na segurança de software, ajudando os defensores a ficarem sempre um passo à frente.
Então, da próxima vez que você ouvir sobre as últimas novidades em segurança, lembre-se de que por trás das cenas, existem inovações como o PXoM trabalhando duro pra manter nossas vidas digitais seguras e sem complicações.
Fonte original
Título: Retrofitting XoM for Stripped Binaries without Embedded Data Relocation
Resumo: In this paper, we present PXoM, a practical technique to seamlessly retrofit XoM into stripped binaries on the x86-64 platform. As handling the mixture of code and data is a well-known challenge for XoM, most existing methods require the strict separation of code and data areas via either compile-time transformation or binary patching, so that the unreadable permission can be safely enforced at the granularity of memory pages. In contrast to previous approaches, we provide a fine-grained memory permission control mechanism to restrict the read permission of code while allowing legitimate data reads within code pages. This novelty enables PXoM to harden stripped binaries but without resorting to error-prone embedded data relocation. We leverage Intel's hardware feature, Memory Protection Keys, to offer an efficient fine-grained permission control. We measure PXoM's performance with both micro- and macro-benchmarks, and it only introduces negligible runtime overhead. Our security evaluation shows that PXoM leaves adversaries with little wiggle room to harvest all of the required gadgets, suggesting PXoM is practical for real-world deployment.
Autores: Chenke Luo, Jiang Ming, Mengfei Xie, Guojun Peng, Jianming Fu
Última atualização: 2024-12-03 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2412.02110
Fonte PDF: https://arxiv.org/pdf/2412.02110
Licença: https://creativecommons.org/licenses/by-nc-sa/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.
Ligações de referência
- https://zenodo.org/records/14251050
- https://zenodo.org/records/13892220
- https://zenodo.org/records/14251155
- https://github.com/junxzm1990/x86-sok
- https://docs.vmware.com/en/VMware-Workstation-Pro/17/com.vmware.ws.using.doc/GUID-DDCBE9C0-0EC9-4D09-8042-18436DA62F7A.html
- https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.hostclient.doc/GUID-8ABDB2E1-DDBF-40E3-8ED6-DC857783E3E3.html
- https://phoenixnap.com/kb/build-linux-kernel
- https://dx.doi.org/10.14722/ndss.2025.240825