A segurança da informação é uma ciência dinâmica e estar atualizado com ela não é uma tarefa fácil. Novas tecnologias surgem a todo momento e com elas novas vulnerabilidades, novas falhas e diferentes tipos de ataques aparecem num piscar de olhos.
Em meio a esse cenário temos as APIs — Application Programming Interface. Um mecanismo que permite que dois programas se conversem seguindo um conjunto de regras, protocolos sem a necessidade de se conhecerem previamente. Sabe-se que mais de 90% dos desenvolvedores usam API, muitas vezes você não a vê, não percebe, mas ela está por trás, fazendo seu trabalho. Porém ela é uma camada visada e passível de ataques de usuários mal-intencionado.
Diante disso surge a APIsec University, uma instituição de ensino em segurança de APIs e que deixa bem claro em seu site: APIsec University foi fundada com uma missão simples, porém poderosa: tornar a educação em segurança de APIs de classe mundial acessível a todos, independentemente de sua formação ou situação financeira.
A APIsec possui cursos com certificações, palestras, workshops, ferramentas e vários cursos gratuitos, eu já fiz quase todos. 😎
Confiram aqui:
Quando iniciamos um pentest em API a primeira coisa que analisamos é a documentação: conhecer e saber o que a API faz, seu fluxo de trabalho, seus parâmetros é fundamental para prosseguir com os testes. Depois, fazemos um reconhecimento dos recursos, endpoints, tipo de token etc da API e como base nisso é possível criar um arquivo JSON, chamado Collection o qual inclui solicitações, autorizações, cabeçalhos HTTP e até mesmo exemplos de respostas para solicitações específicas.
Mas nem tudo que reluz é ouro. Encontramos APIs com documentação incompleta, ou sem documentação; APIs que utilizam outras APIs; APIs com versionamento esquecida e, nestes casos, para criarmos um arquivo Collection temos que realizar uma engenharia reversa na aplicação. Uma espécie de mapeamento reverso do fluxo de toda API.
Para nos ajudar com essa tarefa, mapear o fluxo de uma API, a APIsec criou uma ferramenta chamada BOLT um add-on para o Google Chrome.
APIsec BOLT automatically discovers APIs by capturing real application traffic directly from your browser — without proxies, agents, or configuration.
As you interact with an application, BOLT identifies API endpoints, generates OpenAPI (Swagger) specifications, and provides a streamlined path to analyze and test those APIs using APIsec.ai.
Mas essa ferramenta pode fazer muito mais:
Build the API inventory you're missing from real, observed behavior. Seed test plans and automation with live endpoints + parameters. Accelerate BOLA/BOPLA hunts by mapping object/parameter access quickly. Generate specs for governance when teams haven't published OpenAPI.
O BOLT está na versão 1.3.0 e está disponível no Chrome Web Store:
Mais informação sobre ela:
Uma vez instalado o Bolt no Chrome acesse o site do seu interesse, no caso, eu instalei uma aplicação vulnerável chamada crAPI, disponível em:
Com o crAPI online, basta ativar o BOLT. Quando o BOLT inicializa ele detecta automaticamente o domínio que se encontra no navegador. Caso queira que o BOLT capture somente o tráfego vindo do referido domínio basta deixar ticado a caixa "Capture only base-url". Caso queira capturar todo tráfego desmarque essa caixa. Agora basta clicar no botão "Start Capture" para iniciar o BOLT.

Conforme formos navegando pelo site, preenchendo formulários, adicionando compras etc. o BOLT capturar todo tráfego vindo do domínio, simples assim, sem precisar de proxy.

Uma vez terminado clicamos em "Stop" para encerrar a captura. Nota. O botão "Stop" passa ser agora o botão "New", caso queira iniciar uma nova captura.
Temos três abas no BOLT: traffic, params, swagger e o pesquisar.

Na aba "Traffic" temos todo o tráfego capturado, como o nome sugere, porém temos mais duas opções GET e POST, que podem ser clicados caso você queira que mostre somente um dos métodos sugeridos. Aqui podemos ver que temos 72 requisições divididas em 47 GETs e 25 POSTs:

No canto direito de cada requisição podemos ver três símbolos:

- Flag, um marcador de cor para destacar determinadas requisições:


2. Hacker, para abrir o manipulador. Aqui você pode editar a requisição do jeito que lhe convier, no formato "Form" e "Raw":
- você pode escolher métodos HTTP;
- deletar, adicionar parâmetros;
- deletar, adicionar ou modificar cabeçalhos;
- adicionar e remover conteúdo do corpo.
Uma vez editado clicamos em "Send" e veremos a resposta logo abaixo em "Response".


Podemos exportar a requisição como um comando do cURL, clicando no botão "cURL", claro:

3. Uma seta apontando para baixo, para expandir a requisição e ver seu conteúdo por completo.
A aba seguinte "Params" mostra os parâmetros envolvidos nas requisições:
Você pode classificá-los por Query, Body ou Header.

Próxima aba é a "Swagger" (UI), um a lista de recursos que estão disponíveis na API e as operações que podem ser chamadas sobre esses recursos.
No canto direito de cada requisição podemos ver dois símbolos:

O hacker e a seta apontada para baixo, cujas funções já conhecemos.

Enfim temos o botão "Analyze" que quando clicado ele irá criar um nova aba, chamada "apis".

Essa função do BOLT agrupar as requisições por serviços.

Clique na seta à esquerda para expandir.

Clicando no botão "Onboard" você precisará estar cadastrado na APIsec para enviar os dados para analise.

Aqui entre nós, o cadastro é gratuito! 😉
Não abordarei a analise neste artigo, quem sabe fica pro próximo.
E por fim e, como sempre, não menos importante a barra inferior:
Da esquerda para direita temos:

- a versão do BOLT;
- termos de privacidade;
- OAS, exporta um arquivo com Especificações da OpenAPI;
- exportar um arquivo em JSON;
- roldana de configurações (cadastro);
- e a Lua, escolha um tema, claro ou escuro.
Como podemos ver, a BOLT é uma ferramenta bastante útil para testes em APIs, promovendo testes rápidos e eficientes.
A APIsec tem se esforçado em ajudar a todos na questão de segurança de APIs, então, se por acaso você testou o BOLT, dê um feedback para eles e conte sobre sua experiência com o BOLT.
PS: na data em que este artigo foi publicado o BOLT foi para a versão 1.3.1.