Pular para o conteúdo principal

2 postagens marcadas com "history"

Ver todas os Marcadores

· Leitura de 6 minutos
Anderson de Souza

Bem antes das I.A.s surgirem com seu vibe-coding mágico, o "poder" de criar soluções em forma de software costumava estar nas mãos de programadores. E isso era vez ou outra romantizado em filmes.

Nosso personagem acreditava nisso, tanto que tinha tal capacidade criativa mas sempre lhe faltava as habilidades de vendedor. O primeiro cliente pra quem vendeu um site até tentou o ajudar, inclusive emprestando um livro de vendas mas ele não ouviu os conselhos e optou for focar no desenvolvimento das habilidades compatíveis com a função.

Por isso, sempre buscou seu parceiro, ou parceira, de vendas. A pessoa-chave que venderia a solução e os lançaria na brincadeira. Tentou algumas vezes: irmão, esposa, amigo, amigos até que surgiu um cara boa pinta, multi-empresário bem sucedido.

Acreditou que tinha encontrado a componente faltante pra receita do sucesso, o cara do negócio e das vendas. Então, sem perder muito tempo, abriu o jogo e mostrou toda a ideia com grande potencial: plano de ação, key-features, branding, tudo para o novo app de mobilidade. Na época basicamente uma unica opção dominava o mercado e quase não tinha concorrência.

"Entrega já!" era o nome.

O sujeito se demonstrou bastante interessado e aceitou a oferta de sociedade. Além do capital, cuidaria do marketing e demais operações de vendas.

Le coup

Após uns dias de trabalho no MVP e apresentadas as necessidades de compras (expandir equipe e etc) um problema novo surgiu: "Entrega lá!" - o abençoado havia contratado uma empresa de SC para desenvolver o projeto. ( E pqp, nem pra disfarçar um pouco com o nome...) 🤡

A raiva de ser feito de trouxa serviu como lenha na fogueira da sua vingança e ele logo tratou de ir atrás da sua vitória.

Descobriu a empresa que havia vendido o software e o valor, na época: R$ 6.000,00.

Desenvolvido em PHP puro, sem nenhum framework, a API do aplicativo tinha mais falhas que recursos.

Logo de cara encontrou um IDOR 1 no endpoint de usuários. O primeiro usuário cadastrado, com ID 1, era o admin. Depois disso, pôde listar todas as informações dos usuários: endereço completo, dados pessoais e etc. Por sorte, o sistema não gerenciava pagamentos, entao não havia dados de cartão de credito armazenados.

Le contrecoup

Em seguida, tentou o que talvez tivesse sido o ponto de entrada de qualquer pentester ou hacker: SQLinjection 2 no formulário de login. Advinha? Totalmente vulnerável!

Voilà! O sistema era dele!

A partir dali, ele poderia:

  • exfiltrar os dados do sistema todo;
  • promover o caos total no sistema com pedidos falsos e bagunça em informações;
  • deixar a plataforma toda indisponível com ataques de DoS 3;
  • e até mesmo comprometer todo o servidor com um ataque de RCE 4!

Coup de grâce?!

Seus dedos se apressaram em encontrar as teclas e digitar. Mas, ao invés de elaborar um ataque e o executar, tratou de gerar um relatório.

Entrou em contato com a fabrica de software, se apresentando e listando os problemas encontrados. Em vão! A ignorância e prepotência do gestor foram como um balde de agua fria.

Mais uma vez, aquele serzinho no seu ouvido esquerdo tentou convence-lo a tocar o terror:

  • "Ladrão que rouba ladrão, tem sete anos de perdão!" - dizia...

Mas ele não flertava com um "emprego" que envolvesse ser acordado logo depois das 05h pela PF. E, sim, uma hora ou outra quem faz besteira acaba sendo pego. Por melhor que seja o hacker...

Além do mais, ética é sobre agir de forma correta independente da situação e, basta uma ação errada para manchar toda uma história correta.

Du coup

Resultado? Deixou tudo como estava e o caso se converteu em "mais um CD debaixo da cama"...

O "Entrega lá!" não durou muito: em poucos meses o aplicativo havia sumido da Play Store e o domínio não mais apontava para um IP.

Depois disso, sequer pesquisou sobre a empresa que desenvolveu a plataforma. Pode ser que, em algum lugar da internet, um app de "mobilidade" cheio de falhas ainda expõe seus usuários. Mas isso não é problema dele.

"A vingança nunca é plena, mata a alma e a envenena." - Seu Madruga

Notas


    • OWASP: Referência Direta Insegura a Objeto (IDOR) A Referência Direta Insegura a Objetos (IDOR) é uma vulnerabilidade que surge quando atacantes conseguem acessar ou modificar objetos manipulando identificadores usados ​​em URLs ou parâmetros de uma aplicação web. Isso ocorre devido à ausência de verificações de controle de acesso, que não conseguem verificar se um usuário deve ter permissão para acessar dados específicos.

    • OWASP: Injecao de SQL (SQLi) Um ataque de injeção de SQL consiste na inserção ou "injeção" de uma consulta SQL através dos dados de entrada do cliente para a aplicação. Uma exploração bem-sucedida de injeção de SQL pode ler dados sensíveis do banco de dados, modificar dados do banco de dados (inserir/atualizar/excluir), executar operações administrativas no banco de dados (como desligar o SGBD), recuperar o conteúdo de um determinado arquivo presente no sistema de arquivos do SGBD e, em alguns casos, emitir comandos para o sistema operacional. Ataques de injeção de SQL são um tipo de ataque de injeção, no qual comandos SQL são injetados na entrada do plano de dados para afetar a execução de comandos SQL predefinidos.

    • OWASP: Negação de Serviço (DoS) O ataque de Negação de Serviço (DoS) tem como objetivo tornar um recurso (site, aplicativo, servidor) indisponível para a finalidade para a qual foi projetado. Existem muitas maneiras de tornar um serviço indisponível para usuários legítimos, manipulando pacotes de rede, explorando vulnerabilidades de programação, lógica ou gerenciamento de recursos, entre outras. Se um serviço receber um número muito grande de solicitações, ele poderá deixar de estar disponível para usuários legítimos.

    • CloudFlare: Execução Remota de Código (RCE) Um ataque de execução remota de código (RCE) é quando um invasor executa um código malicioso nos computadores ou na rede de uma organização. A capacidade de executar códigos controlados pelo invasor pode ser usada para várias finalidades, incluindo a implantação de malware adicional ou o roubo de dados confidenciais

· Leitura de 3 minutos
Anderson de Souza

Olá, amigo.

Um cara estava querendo comprar passagens de ônibus para visitar seus pais. A cidade onde ele morava tinha um site de venda de passagens.

Sua cabeça começou a coçar, sabe né... Então ele decidiu ver como o site funcionava: quando você aprende desenvolvimento web, na teoria você deveria aprender as "Ferramentas de Desenvolvedor do Navegador" (Chrome/Chromium, Firefox, etc., todos eles tem). Nessa ferramenta, você pode mexer com um monte de coisas: Console JS, cookies, corpo HTML, requisições HTTP e daí por diante.

Avaliação de Vulnerabilidade

Ele começou a analisar cada requisição... escolheu a passagem e seguiu no processo.

Durante o checkout, ele percebeu que as informações da passagem era enviada de volta na requisição! O que isso quer dizer??? "Bem," ele pensou, "já que eu to enviando o preço de volta, será que eu posso escolher ele então?"

Exploração

Então, ao invés de "R$57,60" pela passagem, ele trocou a requisição e definiu "R$57,69."

Cruzou os dedos e... Funcionou! O saldo foi debitado da sua conta e o recibo foi gerado.

Mas ainda não tinha acabado. Você precisa imprimir o recibo e trocar pelo bilhete lá na rodoviária.

Problemas

Mas e se os funcionários da rodoviária notarem a diferença de preço? Será que ele enfrentaria um processo por fraude? Vamos fazer uma análise superficial da Lei.

Código Penal Brasileiro - Art 154a

Art. 154-A. Invadir dispositivo informático de uso alheio, conectado ou não à rede de computadores, com o fim de obter, adulterar ou destruir dados ou informações sem autorização expressa ou tácita do usuário do dispositivo ou de instalar vulnerabilidades para obter vantagem ilícita:

Pena – reclusão, de 1 (um) a 4 (quatro) anos, e multa.

Bom, podemos ver claramente que nenhuma vantagem foi obtida nesse caso. Na verdade, ele até gastou nove centavos.

Mas, como eu não sou um advogado, não posso garantir.

Como ele não sabia o que fazer com essas informações, ele só ignorou... Sua recompensa sempre era burlar e quebrar as coisas e não fazer dinheiro.

Alguns anos depois

Ele se lembrou do problema e foi fuçar nisso de novo.

O site estava igual (na verdade, ainda está). Mas a vulnerabilidade foi mitigada.

Eles não refatoraram o sistema. O usuário ainda envia as informações da passagem para o servidor, mas... Mesmo se tu colocar um centavo a mais, o servidor verifica e retorna uma mensagem de erro dizendo que o usuário mudou o preço da passagem.

Nunca confie no usuário

Com essa história, pudemos ver (numa abordagem prática e da vida real), o que é dito na maioria dos "Cursos de cibersegurança": Nunca confie no usuário! Quando estiver desenhando, arquitetando e programando um software, sempre tenha essa premissa profundamente gravada na sua mente.

Não importa se você está programando um sisteminha para monitorar a temperatura do teu quarto numa Raspberry Pi, um quadro de mensagens na intranet da empresa onde você trabalha ou uma API no seu trabalho...

É isso aí!

References