Edgar Cervantes / Autoridade Android
Resumo
- A confusão sobre como lidar com solicitações para 0.0.0.0 expôs uma vulnerabilidade de segurança em vários navegadores.
- Os invasores podem usar esse método para ignorar a proteção de acesso à rede privada.
- O Google tem uma correção para o Chrome que será lançada nas próximas versões.
Zero é um número engraçado, e um que tem causado problemas para computadores desde a primeira vez que alguém tentou dividir por zero. Quando usamos números para expressar coisas específicas, a ideia de “nada” também ser uma opção válida nem sempre é intuitiva de lidar. Hoje, estamos analisando o que pode acontecer quando alguns zeros são interpretados por software de uma forma que os usuários não esperavam, e como os agentes de ameaças conseguem usar esse manuseio incorreto a seu favor.
Nosso foco está nos endereços IP (e no antigo IPv4, especificamente), que identificam exclusivamente cada sistema em uma rede por meio de um conjunto de quatro números. Como você deve saber, alguns desses números têm propriedades especiais, como o endereço IP 127.0.0.1, que é conhecido como localhost e serve como um loopback — basicamente, é como segurar um espelho para um dispositivo em uma rede, e não importa quem você seja, quando você tenta se conectar a 127.0.0.1, você está apenas tentando se conectar de volta ao seu próprio dispositivo. Esse tipo de comportamento é praticamente padrão em todos os lugares, e o software sabe como lidar com isso.
Tudo isso nos leva a: 0.0.0.0. Se esse endereço IP parece estranho aos seus olhos, imagine como ele parece para um computador. O grande problema com 0.0.0.0 é que não há um consenso forte sobre como os sistemas devem tratá-lo. Alguns não o veem como um endereço válido, enquanto outros o tratam como um loopback 127.0.0.1. E, partindo dessa confusão, os hackers encontraram uma maneira de abusar de 0.0.0.0, conforme descoberto pela Oligo Security (via (Forbes).
Mesmo que você não esteja hospedando pessoalmente um servidor web, muitos softwares se tornam disponíveis na sua rede local — como você pode usar seu navegador para se conectar e configurar seu roteador. Coisas assim são amplamente destinadas a serem mantidas separadas da internet em geral, e o Chrome oferece um sistema de proteção chamado Private Network Access (PNA) para mantê-lo assim. Por exemplo, um invasor pode preparar uma página da web que instrua seu navegador a fazer solicitações para esse endereço de loopback, ou outro endereço na sua rede local interna, onde um software como esse está sendo executado. Se não for verificado, isso pode resultar na exposição não intencional de dados privados. Mas, graças ao PNA, o Chrome sabe manter esses dois mundos local e remoto separados.
O problema é que ninguém realmente pensou em 0.0.0.0 ao construir nada disso. E então, muitas vezes, os hackers podem simplesmente usar 0.0.0.0 para contornar essas proteções PNA. Talvez a pior parte? Esse tem sido o caso por pelo menos 18 anos.
A Apple e o Google estão consertando seus navegadores para fechar esse buraco, mas a Mozilla não está muito convencida quando se trata do Firefox. Basicamente, a equipe está preocupada que se os desenvolvedores vêm tratando 0.0.0.0 como loopback por anos, mudar isso de repente pode ameaçar quebrar muito software. Embora o plano seja bloquear 0.0.0.0 eventualmente, se você estiver preocupado com esse vetor de ataque, pode considerar outro navegador por enquanto.