Visão geral da tecnologia principal
Teste de segurança de aplicações black-box
Durante a análise de segurança black-box, apenas o código do lado do cliente está disponível. A análise do lado do servidor só é possível através da interação com seus endpoints de interface.
O teste de vulnerabilidade black-box geralmente consiste em três estágios:
Enumeração da superfície de ataque: busca por endpoints disponíveis do lado do servidor (endpoints de API);
Envio de solicitações com vetores de ataque para endpoints descobertos;
Análise de resultados.
Rastreamento avançado com consciência de segurança
Nossa tecnologia de rastreamento avançado é especialmente projetada para descobrir automaticamente todos os endpoints disponíveis do lado do servidor, abordando assim o primeiro estágio.
Existem várias maneiras de descobrir endpoints HTTP do servidor em um ambiente black-box:
Inferindo-os do lado do cliente determinando quais solicitações podem ser enviadas a partir dele;
Fingerprinting do software executando no servidor e usando endpoints previamente conhecidos específicos para ele (por exemplo, endpoints conhecidos do WordPress);
Fuzzing do servidor com solicitações geradas usando um dicionário e analisando respostas — técnica conhecida como dirbusting.
Análise estática JavaScript para enumeração de API
Nossa tecnologia de rastreamento avançado utiliza análise estática do código do lado do cliente junto com rastreamento dinâmico mais tradicional com navegador headless e rastreamento estático com consciência de segurança.
Nossa tecnologia de análise estática infere endpoints do servidor a partir do código JS do lado do cliente com análise não trivial de valor e caminhos de código para fins de escaneamento de segurança de aplicações web.
Rastreamento avançado
Com nossa tecnologia de rastreamento avançado podemos:
Detectar endpoints do servidor a partir de código cliente morto, inacessível ou comentado;
Detectar endpoints do servidor a partir do código cliente, que está ativo apenas para área de cliente autorizada ou área de administração;
Usar especificações de API OpenAPI/Swagger e outras fontes de informação sobre os endpoints como pontos de partida para análise e rastreamento.
Isso nos dá a melhor enumeração de superfície de ataque disponível no mercado.
Armadilhas do rastreamento dinâmico tradicional
A métrica de qualidade mais importante da busca por endpoints é a completude.
Dirbusting e fingerprinting não podem, em geral, determinar todos os endpoints, especialmente para software não padrão e personalizado.
Ser capaz de inferir endpoints do servidor a partir do lado do cliente é de vital importância para um scanner black-box obter cobertura adequada de endpoints.
Rastreamento dinâmico
O rastreamento dinâmico é a interação automatizada com elementos da interface da página web usando um navegador headless, simulando ações do usuário e observando as solicitações sendo enviadas ao servidor.
Embora o rastreamento dinâmico frequentemente funcione bem, há casos em que ele falha em descobrir alguns endpoints. Às vezes a interface do usuário é muito complexa para ser rastreada completamente. Fazer todas as ações possíveis do usuário pode exigir muito tempo. Em tais casos, um rastreador pararia antes de completar, provavelmente perdendo alguns endpoints.
Além disso, às vezes o código JS que acessa um endpoint é impossível de ser acionado a partir da interface do usuário — essencialmente, isso é código morto. Tal código ainda fornece interesse para o scanner e pode acessar partes funcionais do servidor. Chamamos tais endpoints de endpoints ocultos.