SLAM — um ataque a CPUs Intel, AMD e ARM que permite determinar o conteúdo da memória

Um grupo de pesquisadores da Universidade Livre de Amsterdã apresentou uma nova técnica de ataque chamada SLAM (Spectre Linear Address Masking), que oferece um novo método para explorar vulnerabilidades microarquiteturais na classe Spectre. Nesse ataque, a vazamento de dados ocorre durante a tradução de endereços não canônicos, e as extensões para mascaramento de endereços lineares, disponíveis em novos processadores, são utilizadas para contornar as verificações de canonicalidade. Os pesquisadores publicaram um conjunto de ferramentas com a implementação do método e propuseram uma demonstração mostrando como é possível extrair da memória do núcleo dados correspondentes a uma determinada máscara (demonstrado como, em poucos segundos, no Ubuntu, é possível extrair da memória do núcleo uma string com o hash da senha do usuário root).

Por que no hosting comum a administração do PrestaShop é lenta, e no seu não é?

O ataque pode ser realizado em sistemas com processadores Intel que suportam a extensão LAM (Linear Address Masking), processadores AMD com a extensão UAI (Upper Address Ignore) e processadores ARM com a extensão TBI (Top Byte Ignore). Essas extensões permitem que parte dos bits de ponteiros de 64 bits seja utilizada para armazenar metadados não relacionados ao endereçamento (programas convencionais não exigem tanta memória e conseguem endereçar ponteiros de 64 bits, portanto, os bits superiores podem ser utilizados, por exemplo, para verificações relacionadas à segurança). É interessante notar que os processadores Intel, AMD e ARM com suporte para LAM, UAI e TBI foram apenas anunciados, mas ainda não estão sendo produzidos em massa, o que torna o SLAM o primeiro ataque especulativo contra CPUs futuras. O ataque também pode ser realizado em CPUs antigas da AMD Zen+ e Zen 2, vulneráveis à falha CVE-2020-12965.

Assim como na exploração de vulnerabilidades Spectre, para realizar um ataque SLAM é necessário que o núcleo tenha determinadas sequências de instruções (gadgets) que levam à execução especulativa de instruções. Essas instruções provocam a leitura especulativa de dados da memória, dependendo das condições externas, que podem ser influenciadas pelo atacante. Após a determinação de uma previsão incorreta, o resultado da execução especulativa é descartado, mas os dados processados permanecem no cache e podem ser extraídos posteriormente através da análise por canais externos. Para extrair dados que ficaram no cache, os pesquisadores utilizam o método Evict+Reload, que se baseia na criação de condições para expulsar dados do cache (por exemplo, uma atividade é gerada para preencher uniformemente o cache com conteúdo típico) e na execução de operações cujo tempo de execução indica a presença de dados no cache do processador.

Para realizar um ataque SLAM, são utilizados gadgets baseados em código onde os dados controlados pelo atacante (abaixo, a variável "secret") são usados como ponteiro. Por exemplo: void unmasked_gadget(long **secret) { **secret; }

Observa-se que tais padrões de código são frequentemente utilizados em programas, por exemplo, no núcleo do Linux foram identificados dezenas de milhares desses gadgets, dos quais pelo menos algumas centenas são adequados para uso em exploits. A fuga pode ser bloqueada através da adição de instruções adicionais a esses gadgets que bloqueiam a execução especulativa. A Intel planeja fornecer um método de bloqueio de vazamentos antes do início da entrega de processadores com suporte ao LAM. A AMD recomendou o uso de métodos existentes para bloquear ataques do tipo Spectre v2. Os desenvolvedores do núcleo do Linux, para proteção contra ataques, decidiram desativar por padrão o suporte ao LAM até a publicação das recomendações da Intel sobre como bloquear a vulnerabilidade.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster