Use MTLS para conexão com API - Postman e Burpsuite
mTLS, ou Mutual TLS (Transport Layer Security), é uma tipo de autenticação onde o cliente e o servidor se autenticam mutuamente usando o protocolo TLS. Isso significa que ambas as partes — cliente e servidor — apresentam certificados digitais para estabelecer a conexão.
O uso de autenticação baseada em mTLS para consumir os dados de uma API é cada vez mais comum. No pentest de API com esse tipo de autenticação, é necessário configurar o certificado no proxy onde a comunicação será interceptada.
A configuração que será abordada neste artigo usa o Postman e o Burp Suite para o teste na API, usando o certificado como parte da autorização para o consumo da API. O Postman vai usar o Burp Suite como proxy, e ambos deverão ter o certificado configurado.
Arquivos necessários para a configuração: "client-certificate" e "private key".
Importação do certificado-cliente no Postman
Acesse File > Settings > Certificates > Add Certificate
Adicione o arquivo do "certificado de cliente", que pode ter as seguintes extensões .crt, .pem ou .cer, e o arquivo com a chave privada que pode ser .key ou .pem. Configure nessa etapa a url principal e a porta de conexão com a API.
Observação: quando o Postman é usado em um host linux (sem o proxy), é necessário gerenciar as permissões dos arquivos "certificado de cliente" e "chave-privada" pois pode ocorrer falha de permissão de acesso do Postman a esses arquivos.
Configure o certificado de cliente no Burp Suite
Ao usar o Burp Suite como proxy para interceptar as requisições da API feitas com o Postman, é necessário gerar um arquivo .pfx e importa-lo no Burp Suite.
Usamos o Openssl para gerar o certificado no formato PKCS12, e esse formato usa o certificado de chave pública, a sua chave privada correspondente e, em alguns casos, usa o certificado intermediário para gerar um único certificado .pfx ou .p12. O comando para gerar o certificado .pfx é o seguinte:
openssl pkcs12 -export -in certificate.crt -inkey private.key -out cert.pfx
É obrigatório gerar o arquivo com uma senha pois na configuração do Burp Suite somente é aceito o upload do certificado com senha.
Acesse Burp > Settings > Network > TLS > Client TLS certificates > Add > Escolha a opção File (PKCS#12) > Selecione o arquivo e finalize a importação. A partir dessa etapa, o certificado da API está configurado no Burp Suite e será usado para autenticação da API.
Configure o proxy no Postman
No Postman, acesse File > Settings > Proxy > configure o endereço IP e porta do Burp Suite.
Agora é possível iniciar o pentest importando a configuração da API no Postman e usar o Burp Suite para manipular as requisições.
Comentários
Postar um comentário