Pular para conteúdo

Método prático para descobrir a arquitetura de um gateway/API usando apenas ferramentas padrão de linha de comando.

Ferramentas usadas:

  • dig / nslookup
  • curl
  • openssl
  • traceroute (opcional)

Esse método permite identificar:

  • DNS routing
  • load balancers
  • reverse proxies
  • gateways compartilhados
  • service mesh

Fluxo de investigação

flowchart TD

A[Descobrir DNS] --> B[Identificar Load Balancer]
B --> C[Testar HTTP headers]
C --> D[Analisar TLS Certificate]
D --> E[Confirmar Gateway / Proxy]
E --> F[Descobrir Upstream]

1 DNS Recon

Primeiro passo: descobrir para onde o domínio aponta.

dig host.com
nslookup host.com

O que procurar

Sinal Significado


CNAME existe camada intermediária elb.amazonaws.com AWS Load Balancer cloudfront.net CDN cloudflare proxy edge

Exemplo:

api.example.com
  CNAME gateway.gtm.company.com
  CNAME internal-lb.elb.amazonaws.com

Isso indica:

DNS → GTM → Load Balancer

2 Descobrir o proxy HTTP

curl -v https://host

Headers importantes:

Header Indica


server: envoy Envoy proxy server: nginx Nginx gateway via proxies intermediários x-forwarded-for proxy forwarding x-envoy-upstream-service-time upstream interno

Exemplo:

server: envoy
x-envoy-upstream-service-time: 35

Conclusão:

Existe um reverse proxy Envoy.


3 Descobrir se existe redirect

Redirect verdadeiro aparece assim:

HTTP/1.1 301
Location: https://novo-host

Se não existir Location, então:

não existe redirect
existe roteamento interno

4 Inspecionar TLS

openssl s_client -connect host:443 -servername host

Informações importantes:

  • CN
  • SAN
  • cadeia de certificados

Exemplo:

CN = api-gateway-universal.company.com

Isso indica:

host solicitado
    ↓
gateway universal compartilhado

5 Descobrir se é gateway compartilhado

Testar hosts diferentes:

curl -v https://api1.company.com
curl -v https://api2.company.com

Se ambos retornarem:

server: envoy
mesmo certificado

Então existe:

gateway compartilhado

6 Descobrir roteamento por path

curl -v https://host/service1
curl -v https://host/service2

Comparar:

x-envoy-upstream-service-time
``

Mudança de latência indica **serviços diferentes**.

---

# Arquitetura típica encontrada

```mermaid
flowchart TD

Client --> DNS
DNS --> GTM
GTM --> LoadBalancer
LoadBalancer --> Gateway
Gateway --> ServiceA
Gateway --> ServiceB
Gateway --> ServiceC

Comandos essenciais

DNS

dig host
nslookup host

HTTP

curl -v https://host
curl -vkI https://host

TLS

openssl s_client -connect host:443 -servername host

Rede

traceroute host

Heurísticas de diagnóstico

Evidência Conclusão


CNAME → ELB load balancer server: envoy reverse proxy Location header redirect CN diferente do host gateway compartilhado x-forwarded headers tráfego passando por proxy


Conclusão

Com apenas três ferramentas:

dig
curl
openssl

é possível descobrir:

  • topologia de gateway
  • presença de proxies
  • arquitetura de balanceamento
  • possíveis upstreams

Esse método funciona para:

  • AWS API Gateway
  • Envoy
  • Kong
  • Apigee
  • Nginx Gateway
  • Cloudflare