Vamos ser sinceros, sempre estamos procurando uma maneira mais fácil de fazer as coisas, atalhos que nos ajudam a realizar nosso trabalho mais rapidamente e com menos esforço e hackers não são diferentes. Para iniciar um ataque contra qualquer software ou sistema, hackers e atores de ameaças procurarão primeiro uma vulnerabilidade ou uma fraqueza existente para que possam descobrir rapidamente como explorar.
O Instituto Nacional de Padrões e Tecnologia dos EUA (NIST) mantém uma lista de vulnerabilidades de software exclusivas em todo o software do mundo, passado e presente. No final de 2019, essa lista continha mais de 136.000 vulnerabilidades exclusivas: o que significa que um hacker tem mais de 136.000 maneiras possíveis de comprometer quase todos os softwares em uso. Obviamente, a grande maioria dessas vulnerabilidades tem correções disponíveis para elas. Mas algumas vulnerabilidades existem há muito tempo, sem soluções fáceis e disponíveis.
Um bom exemplo disso são os ataques de corrupção de memória, que geralmente são usados para tentar explorar programas escritos no Linux, o sistema operacional de código aberto mais usado no mundo. Os programas Linux são os principais componentes de milhões de computadores pessoais, dispositivos Android, laptops, roteadores de Internet, produtos de IoT, TVs inteligentes e muito mais. Eles também são usados para criar serviços da web para bancos globais, plataformas de bolsa de valores e grandes companhias aéreas. Por duas décadas, os programas Linux ficaram vulneráveis a esses ataques, nos quais o agente da ameaça executa seu código malicioso quando a memória em um sistema de computador é alterada ou modificada, geralmente em áreas onde o design do gerenciamento de memória principal do programa é conhecido, como ‘pilha’.
Um exemplo recente disso foi revelado pela Check Point Research em fevereiro deste ano, quando mostramos como um agente de ameaças poderia explorar uma rede IoT (lâmpadas inteligentes e sua ponte de controle) para lançar ataques a redes de computadores convencionais em residências, empresas ou até mesmo em redes inteligentes. Os pesquisadores mostraram como as vulnerabilidades nos bulbos e pontes inteligentes Philips Hue (CVE-2020-6007), líderes de mercado, permitiram que eles se infiltrassem nas redes, provocando um estouro de buffer baseado em heap no software da ponte.
Safe-Linking coloca a segurança no topo da pilha
Depois de concluir esta pesquisa sobre segurança inteligente de lâmpadas, nossos pesquisadores não conseguiram parar de pensar na exploração que acabavam de desenvolver e mitigar (veja o vídeo de demonstração). Como eles estão explorando vulnerabilidades semelhantes no Linux há anos, certamente deve haver uma maneira de ajudar a comunidade global a mitigar essa primitiva exploração popular?
Procurando acabar com esse problema de longa data, nossos pesquisadores criaram um mecanismo de segurança para impedir que a estrutura interna da pilha seja adulterada, que eles chamaram de “Conexão Segura”.
O Safe-Linking faz uso da aleatoriedade herdada de um mecanismo de segurança que agora é fortemente implantado na maioria dos sistemas operacionais modernos, chamado ASLR (Address-Space-Layout-Randomization). O ASLR escolhe aleatoriamente um endereço de base no qual o programa será carregado, forçando o hacker a adivinhar os endereços de memória corretos ou vazando-os de volta para ele usando uma vulnerabilidade adicional altamente específica.
Simplificando, o Safe-Linking remove os dados de endereço do programa, para que o hacker não possa mais ter certeza de onde será carregado na memória do sistema, desta forma dificultando muito o lançamento de uma exploração contra o programa.
Essa mitigação específica teria bloqueado várias grandes explorações que investigamos ao longo dos anos, transformando produtos de software ‘quebrados’ em produtos ‘inexploráveis’. No caso de nossa pesquisa sobre vulnerabilidades de lâmpadas inteligentes, isso teria bloqueado a exploração e o ataque.
Nossa abordagem de vinculação segura foi lançada e integrada com êxito nos ambientes mais importantes do sistema e nas bibliotecas principais do sistema operacional Linux. Essas bibliotecas são os principais componentes dos computadores e da Internet e estão sendo usadas por quase todos os sites, aplicativos ou dispositivos existentes hoje.
Nota Final
O Safe-Linking não é um item mágico que interromperá todas as tentativas de exploração contra as implementações de heap modernas. No entanto, este é outro passo na direção certa, forçando os invasores a ter uma vulnerabilidade de vazamento de memória antes que eles possam iniciar sua exploração, aumentamos a barra de segurança e dificultamos a execução das explorações. Por sua vez, isso ajuda a proteger melhor os usuários globalmente.
Este artigo é uma tradução de: https://blog.checkpoint.com/2020/05/21/safe-linking-fixing-a-20-year-old-problem-to-make-linux-exploitation-harder-for-threat-actor/?ez_cid=CLIENT_ID(AMP_ECID_EZOIC)