Check point lançou um novo mecanismo Safe-Linking contra links perigosos

A Check point lançou um novo mecanismo Safe-Linking contra links perigosos, que no futuro pode impedir esse tipo de exploração.

A Check point é um fornecedor global de soluções de segurança de TI fundada em 1993 e atua em diversos países na área de segurança para internet com produtos como o Check Point Express que é uma solução de segurança e VPN voltada para empresas de médio porte que inclui Firewall, proteção contra ataques à redes e aplicações e gerenciamento centralizado de vários firewalls.

Essa empresa lançou há alguns dias a introdução do mecanismo de segurança “Safe-Linking”, que dificulta a criação de explorações que manipulam a definição ou alteram os ponteiros para buffers atribuídos ao executar uma ligação malloc.

Check point lançou um novo mecanismo Safe-Linking contra links perigosos

Check point lançou um novo mecanismo Safe-Linking contra links perigosos
Check point lançou um novo mecanismo Safe-Linking contra links perigosos

O novo mecanismo “Safe-Linking” não bloqueia completamente a possibilidade de explorar vulnerabilidades, mas com sobrecarga mínima complica a criação de certas categorias de explorações, pois além do estouro do buffer explorado, é necessário encontrar outra vulnerabilidade que cause informações sobre o local da pilha na memória.

Os patches de implementação de vinculação segura foram preparados para Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) e Google TCMalloc, além de ter sido proposto modernizar a proteção no Chromium (desde 2012, o Chromium já foi integrado a soluções para o mesmo problema) técnica de proteção MaskPtr, mas a solução Checkpoint mostra melhor desempenho).
 

“Os patches propostos já foram aprovados para entrega na versão de agosto do Glibc 3.32 e o Safe-Linking será ativado por padrão. No uClibc-NG, o suporte à ligação segura foi incluído na versão 1.0.33 e é ativado por padrão. As alterações são aceitas no gperftools (tcmalloc antigo), mas serão oferecidas como uma opção em uma versão futura.”

Os desenvolvedores do TCMalloc recusaram-se a aceitar a alteração, citando forte sucesso de desempenho e a necessidade de adicionar testes avançados para verificar regularmente se tudo está funcionando corretamente.
 
Os testes realizados pelos engenheiros do ponto de verificação mostraram que o método Safe-Linking não leva a um consumo adicional de memória e o desempenho da execução de operações dinâmicas de armazenamento diminui, em média, apenas 0,02% e, no pior dos casos, 1,5%

A ativação do Safe-Linking leva à execução de 2-3 instruções adicionais de montagem com cada chamada para instruções free() e 3-4 ao chamar malloc(). O início da inicialização e a geração de valores aleatórios não são necessários.

O Safe-Linking pode ser usado não apenas para aumentar a segurança de várias implementações de heap, mas também para adicionar verificações de integridade a qualquer estrutura de dados que use uma lista de ponteiros vinculados individualmente, localizados ao lado de buffers.

O método é muito simples de implementar e requer apenas adicionar uma macro e aplicá-la aos ponteiros para o próximo bloco do código (por exemplo, para Glibc, apenas algumas linhas no código são alteradas).

“A essência do método é aplicar dados aleatórios do mecanismo de codificação de endereços ASLR (mmap_base) para proteger listas vinculadas individualmente, como Fast-Bins e TCache. Antes de aplicar o valor do ponteiro ao próximo item da lista, a conversão da máscara e a verificação do alinhamento são realizadas ao longo da borda da página de memória. O ponteiro é substituído pelo resultado da operação “(L >> PAGE_SHIFT) XOR (P)”, onde P é o valor do ponteiro e L é o local na memória em que esse ponteiro está armazenado.

Quando utilizados no sistema ASLR (Address Space Design Randomization), alguns dos bits L com o endereço base do heap contêm valores aleatórios que são usados ​​como chave para codificar P  (Eles são extraídos usando uma operação de deslocamento de 12 bits para páginas de 4096 bytes).”

Essa manipulação reduz o risco de capturar um ponteiro em uma exploração, já que o ponteiro não é armazenado em sua forma original e, para substituí-lo, é necessário saber informações sobre o local do heap.

O método é eficaz na proteção contra ataques que usam redefinição parcial de ponteiro (deslocamento de baixo byte), reescrita completa do ponteiro (redirecionamento para código do invasor) e reposicionamento da lista em um endereço não alinhado.

Como exemplo, mostra-se que o uso do Safe-Linking no malloc impediria a exploração da vulnerabilidade CVE-2020-6007 descoberta recentemente pelos mesmos pesquisadores na luz de fundo inteligente Philips Hue Bridge causada pelo excesso de buffer e permitindo controlar o dispositivo.

O que está sendo falado no blog

PinLinkedIn

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Ads Blocker Image Powered by Code Help Pro

Bloqueador de anúncios detectado!!!

Nosso site precisa de publicidade para existir. Por favor, insira-o na lista de permissões/lista branca para liberar a exibição de anúncios e apoiar nosso site. Nosso conteúdo é GRATUITO, e tudo o que pedimos é isso!