# Unrestricted Access to Business Flows

## **🔍 Fundamentos**

### **O que é?**

O **Acesso Irrestrito a Fluxos de Negócio** (API6:2023 no OWASP API Security Top 10) ocorre quando uma API expõe uma funcionalidade de negócio (como comprar um produto, postar um comentário ou reservar um horário) de uma forma que pode ser abusada de maneira automatizada e massiva, mesmo que a API esteja tecnicamente "segura" contra injeções ou falhas de autenticação.

### **O Problema da Lógica, não do Código**

Diferente de um SQL Injection, onde o erro está na forma como o código fala com o banco, aqui o problema está na **regra de negócio**. A API faz exatamente o que foi programada para fazer, mas não previu que alguém faria isso 10.000 vezes por minuto para causar prejuízo financeiro ou operacional.

***

## **🏗️ O que define um Fluxo de Negócio?**

Um fluxo de negócio é uma sequência de ações ou uma funcionalidade específica que agrega valor ou altera o estado da aplicação:

* Criação de contas.
* Adição de itens ao carrinho.
* Envio de convites para amigos.
* Reserva de passagens ou ingressos.
* Postagem em fóruns ou redes sociais.

***

## **⚖️ Diferença entre Rate Limiting e Abuso de Fluxo**

| Característica | Lack of Rate Limiting (API4)                       | Unrestricted Business Flows (API6)                       |
| -------------- | -------------------------------------------------- | -------------------------------------------------------- |
| **Foco**       | Número bruto de requisições.                       | Quantas vezes uma *ação lógica* é permitida.             |
| **Exemplo**    | 1000 requisições por segundo em qualquer endpoint. | Reservar todos os 200 ingressos de um show em 1 segundo. |
| **Defesa**     | API Gateway / WAF genérico.                        | Lógica de negócio / Detecção de comportamento.           |

***

## **🔧 Técnicas de Exploração**

### **1. Automatização de Ações "Humanas"**

Uso de scripts (Python, Selenium, Puppeteer) para realizar ações que deveriam ser manuais.

* Criar centenas de usuários para ganhar bônus de indicação.
* Enviar mensagens de spam para todos os usuários da plataforma.

### **2. Esgotamento de Inventário (Hoarding)**

Adicionar produtos limitados ao carrinho e não finalizar a compra, impedindo que usuários reais comprem (lock de estoque).

### **3. Scraping de Preços e Dados de Negócio**

Consultar exaustivamente endpoints de produtos para monitorar preços de concorrentes em tempo real.

***

## **🚀 Cenários de Exploração Prática**

### **Cenário A: Abuso de Promoções (Referral Fraud)**

Uma Fintech oferece R$ 20,00 para cada amigo convidado que abrir uma conta.

1. O atacante usa uma lista de emails vazados ou gera emails temporários.
2. Cria um script que automatiza o processo de "Cadastro -> Confirmação -> Indicação".
3. A API permite cadastros ilimitados sem verificação de comportamento humano (como CAPTCHA ou análise de similaridade de IP).

**Impacto:** Prejuízo financeiro direto para a empresa.

### **Cenário B: Reserva de Ingressos (Scalping)**

Uma plataforma de vendas de ingressos lança vendas para um show famoso.

1. Atacantes usam bots para comprar centenas de ingressos no milissegundo em que as vendas abrem.
2. A API não tem limites de "tickets por conta" ou "tempo de compra humana" validados no backend.

**Impacto:** Ingressos esgotados instantaneamente e revendidos em sites paralelos por preços abusivos.

***

## **🔍 Detecção e Ferramentas**

### **1. Análise de Logs de Comportamento**

Procure por padrões de tráfego que não pareçam humanos:

* Ações realizadas em intervalos de tempo exatos (ex: a cada 500ms).
* Sequências de ações extremamente rápidas que um humano não conseguiria completar.

### **2. Ferramentas de Teste de Carga (k6 / JMeter)**

Use estas ferramentas não para testar performance, mas para testar se a regra de negócio se mantém sob pressão automatizada.

### **3. Burp Suite (Intruder)**

Excelente para testar fluxos de criação e envio simultâneo de requisições.

***

## **🛡️ Mitigação e Prevenção**

### **1. Detecção de Bots e Behavior Analysis**

Utilize soluções que identifiquem comportamento não-humano (Fingerprinting de navegador, velocidade de digitação, análise de user-agent).

### **2. CAPTCHAs em Fluxos Críticos**

Implemente reCAPTCHA v3 ou Turnstile em endpoints de cadastro, login e finalização de pedido.

### **3. Limites no Nível do Negócio**

* Máximo de 1 indicação paga por dia/IP.
* Tempo mínimo de 30 segundos entre o início do cadastro e a conclusão.
* Máximo de 2 itens iguais por carrinho para promoções específicas.

### **4. Bloqueio de Provedores de Proxy e VPN conhecidos**

Muitos bots operam através de redes de proxy comerciais para evitar o rate limit por IP simples.

***

> Proteger um fluxo de negócio exige que a equipe de segurança entenda **como a empresa ganha dinheiro** e onde estão os incentivos para a automatização maliciosa. Não é apenas uma questão de "HTTP 200 OK", mas de quanto cada "OK" custa para o negócio.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://0xmorte.gitbook.io/bibliadopentestbr/tecnicas/web/back-end/apis/unrestricted-access-to-business-flows.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
