# Improper Inventory Management

## **🔍 Fundamentos**

### **O que é?**

A **Gestão Inadequada de Inventário** (API9:2023 no OWASP API Security Top 10) ocorre quando uma organização não tem visibilidade ou controle sobre todas as suas APIs expostas. Isso inclui versões antigas (obsoletas), APIs de teste/staging que nunca foram removidas, endpoints não documentados ou novos endpoints lançados sem revisão de segurança.

### **Por que é um risco?**

Versões antigas de uma API geralmente não possuem as mesmas correções de segurança que a versão atual. Se um atacante encontrar um endpoint `/v1/user` que ainda funciona mas contém uma vulnerabilidade corrigida no `/v2/user`, ele explorará a versão mais fraca.

## **🏗️ Cenários de Exposição**

{% stepper %}
{% step %}

#### **Shadow APIs (APIs Fantasma)**

APIs criadas por times de desenvolvimento ou parceiros que não passaram pelo processo oficial de governança ou segurança da empresa. Frequentemente usadas para "testes rápidos" que acabam ficando em produção.
{% endstep %}

{% step %}

#### **Zombie APIs (APIs Zumbi)**

Versões antigas de APIs que deveriam ter sido desativadas após o lançamento de novas versões, mas que continuam ativas para "não quebrar" clientes antigos que nunca atualizaram.
{% endstep %}

{% step %}

#### **Endpoints de Staging/UAT em Produção**

Ambientes de teste que residem na mesma infraestrutura de produção ou que são acessíveis pela internet sem as devidas restrições.
{% endstep %}
{% endstepper %}

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

{% stepper %}
{% step %}

#### **Enumeração de Versões**

Tentar adivinhar versões anteriores ou posteriores de uma API conhecida.

* `GET /api/v3/profile` -> V3 (Atual)
* `GET /api/v2/profile` -> V2 (Zumbi?)
* `GET /api/v1/profile` -> V1 (Obsoleta?)
* `GET /api/v3.1-beta/profile` -> Beta (Shadow?)
  {% endstep %}

{% step %}

#### **Busca por Hosts de Teste e Beta**

Explorar subdomínios que possam conter versões não protegidas.

* `api.empresa.com`
* `dev-api.empresa.com`
* `staging-api.empresa.com`
* `test.api.empresa.com`
* `v1.api.empresa.com`
  {% endstep %}
  {% endstepper %}

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

### **Cenário A: Bypass de MFA em Versão Antiga**

A versão atual da API (`/api/v2/login`) exige MFA (Multi-Factor Authentication). No entanto, o atacante descobre que o endpoint `/api/v1/login` ainda está ativo e **não exige MFA**, permitindo ataques de força bruta bem-sucedidos.

### **Cenário B: Documentação Expeditada (Swagger)**

Um desenvolvedor habilitou o Swagger UI no ambiente de staging para facilitar os testes. Por erro de configuração, o staging é acessível via `https://staging-api.empresa.com/swagger-ui.html`. O atacante usa essa documentação para mapear todos os endpoints, incluindo os administrativos, que não têm a mesma proteção de rede do ambiente de produção.

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

{% stepper %}
{% step %}

#### **FFuf e Gobuster**

Essenciais para brute-force de caminhos e descoberta de endpoints ocultos ou versionados.

```bash
ffuf -u https://api.empresa.com/api/vFUZZ/user -w versions.txt
```

{% endstep %}

{% step %}

#### **Subfinder e Amass**

Para descobrir subdomínios de desenvolvimento, teste ou shadow.

```bash
subfinder -d empresa.com -silent
```

{% endstep %}

{% step %}

#### **Kiterunner**

Ferramenta especializada em descobrir endpoints de APIs através de wordlists baseadas em tráfego real de APIs.

```bash
kr scan https://api.empresa.com -w roots.txt
```

{% endstep %}
{% endstepper %}

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

{% stepper %}
{% step %}

#### **Inventário Centralizado**

Mantenha uma lista atualizada de todos os hosts e endpoints de API. Utilize ferramentas de **API Governance**.
{% endstep %}

{% step %}

#### **Desativação Rígida de Versões Antigas**

Defina uma política de ciclo de vida para as APIs. Após o lançamento da V2, dê um prazo para os clientes migrarem e, após esse prazo, **desative fisicamente** a V1.
{% endstep %}

{% step %}

#### **Proteção de Ambientes Não-Produção**

Ambientes de teste não devem ser acessíveis pela internet pública. Use VPNs, IP Whitelisting ou autenticação adicional (Basic Auth, IAP) para acessá-los.
{% endstep %}

{% step %}

#### **Documentação Restrita**

Nunca exponha documentações como Swagger/OpenAPI em ambientes de produção para usuários não autenticados.
{% endstep %}

{% step %}

#### **API Gateway**

Utilize um API Gateway como ponto único de entrada. Isso ajuda a monitorar todos os endpoints ativos e aplicar políticas de segurança de forma centralizada, bloqueando acesso a rotas que não deveriam existir.
{% endstep %}
{% endstepper %}

> A gestão de inventário é a base da segurança. Você não pode proteger o que você não sabe que existe. Em grandes infraestruturas, as Zombie APIs são frequentemente o link mais fraco da corrente.


---

# 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/improper-inventory-management.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.
