Você está visualizando atualmente Money for nothing, discounts for free: rocking the gift card loop

Money for nothing, discounts for free: rocking the gift card loop

  • Categoria do post:Labs

1.0 Introdução

Com uma certa frequência me aparece a oportunidade de realizar pesquisa de vulnerabilidades em e-commerce’s e sendo bem franco, apesar do contexto ser o mesmo, cada uma das oportunidades acaba sendo única. Sempre existe ao menos uma peculiaridade nas aplicações e recentemente teve um caso envolvendo Gift Card’s que acredito valer a pena o esforço de escrever uma publicação.

Sites de comercialização de qualquer tipo de item possuem uma enorme complexidade ao em torno de suas lógicas e normalmente quando isso acontece fica um tanto quanto difícil garantir que todos os fluxos tenham as medidas de seguranças adequadas. Gosto tanto desse cenário que normalmente uso como exemplo quando estou entrevista alguém para oportunidades em meu time. Gosto de propor um cenário de modelagem de ameaças especificamente no componente de cupom de desconto, pois mesmo um pequeno recurso como esse, pode gerar muitos problemas.

Nessa publicação iremos falar especificamente sobre as duas partes já comentadas em um e-commerce: gift cards & cupons de descontos.

Gift cards: espécie de cartão pré-pago virtual que os clientes podem adquirir para si ou para presentear outras pessoas. Ele possui um valor monetário associado que pode ser utilizado para fazer compras no site, permitindo que o destinatário escolha os produtos ou serviços que deseja adquirir, até que o saldo do gift card seja utilizado por completo.

Cupom de desconto: é um código normalmente alfanumérico fornecido aos clientes para reduzir o preço de compra de produtos ou serviços. Ao aplicar o cupom durante o processo de pagamento, o cliente recebe um desconto ou benefício específico, como uma porcentagem de desconto ou frete grátis, tornando a compra mais vantajosa.

2.0 Rocking the gift card loop

Imagine um cenário hipotético, onde um site possuí essa opção de compra de gift card e ao mesmo tempo permite que um cupom de desconto seja utilizado nessa compra. Exemplo: iremos comprar um gift card de R$ 150,00 e utilizar um cupom 15OFF que representa 15% de desconto, ou seja, R$ 15,00 nesse caso. Assim iremos pagar apenas R$ 135,00 por algo que irá continuar valendo R$ 150,00.

Mas qual o problema aqui? Esse gift card nos permite comprar outro gift card, aplicando novamente o cupom de desconto. Assim na próxima compra podemos novamente comprar um gift card de R$ 150,00 mas agora pagando somente R$ 120,00. Identificou o padrão? A cada compra estamos “criando” R$ 15,00 de saldo extra.

Se isso for feito 10x seguidas, teremos um retorno de 100% do saldo de R$ 150,00 que foi criado, iremos ter um total de R$ 300,00. Categorizando essa ação como uma fraude.

Além disso, cada operação financeira em um e-commerce normalmente possuí uma taxa de transação. Então provavelmente isso seria cobrado em cada uma das 10x desse ciclo, prejudicando mais um pouquinho a plataforma.

3.0 Considerações finais

Essa vulnerabilidade explora por erros de lógica de negócios, então para tentar realizar uma mitigação iremos precisar rever esse fluxo. A primeira opção, mais simples e com uma mitigação direta é criar uma nova regra que não permita o uso de gift card durante as compras de outros gift cards. Mais uma regra que pode adicionar um pouco mais de maturidade no mecanismo seria não permitir o uso de cupons de descontos em compras de gift card.

Além disso é altamente recomendado que e-commerce tenham uma implementação de uma uma Engine para detecção de fraudes.

4.0 Referências

  1. Common Security Issues in Financially- Oriented Web Applications – NCC Group: https://research.nccgroup.com/wp-content/uploads/2020/07/common_security_issues_in_financially-orientated_web.pdf
  2. Gift Card Fraud Prevention Methods & Solutions: https://datadome.co/threats/gift-card-fraud-prevention/