1 pontos por GN⁺ 2024-04-19 | 1 comentários | Compartilhar no WhatsApp

Aqui estão os pontos principais da explicação e das informações sobre o Randar, resumidos em formato Markdown:

Visão geral do exploit Randar

  • Randar é um exploit para versões do Minecraft da Beta 1.8 até a 1.12.2 que pode revelar a localização de outros jogadores ao quebrar o java.util.Random reutilizado incorretamente no servidor do Minecraft
  • Ele funciona usando redução de reticulado LLL para determinar o estado interno do RNG com base nas coordenadas precisas dos itens dropados quando um bloco é quebrado
  • O exploit foi descoberto por n0pf0x (pcm1k) em 7 de outubro de 2022

Como o exploit Randar funciona

  • O código do Minecraft reutiliza por engano o RNG entre a geração do terreno (como Woodland Mansions) e ações dentro do jogo (como minerar blocos)
  • Quando um chunk é carregado, ele verifica estruturas como Woodland Mansions, redefinindo a seed do RNG com base nas coordenadas do chunk
  • Quando um jogador minera um bloco logo depois, as coordenadas do item dropado são determinadas pelo estado do RNG
  • Usando redução de reticulado, é possível determinar o estado interno exato do RNG a partir das coordenadas dos itens dropados
  • Retrocedendo o estado do RNG, é possível revelar as coordenadas do chunk carregado mais recentemente, expondo a localização de um jogador

Protegendo stashes contra o Randar

  • Construir stashes em regiões específicas de Woodland "isca", onde outra região esteja a até 4 passos do RNG, pode enganar quem explora a vulnerabilidade
  • Garantir que todo o stash esteja dentro da região e manter uma conta AFK na isca oferece proteção extra

Código completo do exploit e aplicação de patch

  • O código Java completo para quebrar o estado do RNG a partir das coordenadas de drop de itens e retroceder para encontrar a localização dos jogadores é fornecido
  • Para servidores de Minecraft que ainda estão em versões vulneráveis, o patch envolve alterar a função World.setRandomSeed() para usar uma instância de RNG separada para a geração do mundo

Notas adicionais de n0pf0x

  • n0pf0x usou um sistema de cache para buscas mais rápidas de seed para coordenadas, em vez da abordagem de hashmap em GPU do Mason
  • São descritas técnicas para rastrear acertos na dimensão The End, o que é mais complicado, já que os chunks só afetam o RNG na primeira geração
  • Um "End Occupancy Tracker" estima quais jogadores estão no The End com base nas chamadas de RNG por tick para ajudar a identificar quem causou determinados acertos

Opinião do GN⁺

  • O Randar é um exploit grave porque pode descobrir a seed e vazar a localização de jogadores em todo o mundo. Em servidores que não atualizaram para a 1.13 ou não aplicaram o patch, isso pode representar uma ameaça séria
  • Especialmente em servidores anarchy que permitem hacking, há grande potencial de uso indevido como ferramenta de cheat, então parece urgente preparar contramedidas
  • O uso de um único RNG aplicado ao mundo inteiro provavelmente foi feito por conveniência, mas, quando uma vulnerabilidade é descoberta, isso parece uma falha estrutural capaz de afetar o jogo inteiro. Partes que exigem seeds previsíveis e repetitivas deveriam idealmente ser gerenciadas por um RNG separado
  • No entanto, como isso também pode ser inferido a partir de replays de PoC em versões anteriores à 1.12, vale revisar se bases importantes não ficaram expostas em replays passados
  • Não só no Minecraft, mas também em outros jogos já houve casos de vulnerabilidades causadas pela reutilização de seed. Seeds e RNGs usados em sistemas centrais do jogo exigem cuidado extremo. É preciso verificar o período do gerador pseudoaleatório, a aleatoriedade da seed e a sua reutilização

1 comentários

 
GN⁺ 2024-04-19
Comentários do Hacker News

Aqui estão os principais pontos resumidos dos comentários do Hacker News:

  • Na "International RoShamBo Programming Competition" de 1999-2000, um bot chamado "Nostradamus" venceu ao reverter o estado do gerador de números aleatórios para prever as jogadas de um bot aleatório de referência com 100% de precisão.

  • A redução de reticulado LLL, o mesmo algoritmo usado no bot "Nostradamus", também pode ser usada para quebrar chaves do PuTTY a partir de nonces enviesados, como explicado em um comentário recente no Hacker News por 'tptacek'.

  • O servidor de Minecraft SciCraft usava uma configuração sofisticada para manipular deterministicamente o estado do RNG do jogo e acionar relâmpagos "aleatórios" a cada frame para obter melhores drops de itens, como demonstrado em um vídeo no YouTube.

  • Alguns comentaristas consideram esse exploit ao mesmo tempo fascinante e um alerta, pois ele destaca os riscos de fazer fontes aleatórias interagirem no código. É considerado um dos exploits mais sofisticados para o menor retorno possível.

  • A ideia de um "servidor de abuso de bugs liberado geral" em Minecraft é comparada a como combates reais poderiam ser em um metaverso hipotético.

  • A comunidade de modding/hacking de Minecraft é elogiada por sua sofisticação, com algumas demonstrações impressionantes de quebra de RNG dentro do jogo em outro vídeo no YouTube.

  • A manipulação de RNG é comparada a gráficos de espaço de fase de um RNG fraco de ISN do TCP.

  • Alguns jogadores gostam dos servidores de "anarquia" no Minecraft, como o 2b2t, considerando esse o jeito como o jogo deve ser jogado, embora esses servidores às vezes fiquem populares demais.

  • Um comentarista tem curiosidade sobre a formação profissional de um conhecido hacker de Minecraft chamado Leijurv, supondo que ele possa trabalhar com infosec ou trading algorítmico, dado o nível impressionante de suas habilidades.