Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
C0deVari4nt — Uma ferramenta de análise de variantes e visualização que examina bases de código em busca de vulnerabilidades semelhantes | Kitploit
Ferramentas/GitHubGitHub/whitesquirrell/c0devari4nt
Análise Estática de Código (SAST)Análise de VulnerabilidadesAnálise de Código
GitHubwhitesquirrell/c0devari4nt

C0deVari4nt

Uma ferramenta de análise de variantes e visualização que examina bases de código em busca de vulnerabilidades semelhantes

Ver Repositório
74640há 4 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

C0deVari4nt

Black Hat Arsenal
C0deVari4nt

Descrição

O C0deVari4nt é uma ferramenta de análise e visualização de variantes que inspeciona bases de código em busca de vulnerabilidades semelhantes. Ele utiliza o CodeQL, um mecanismo de análise semântica de código, para consultar o código com base em modelos de consulta CodeQL controlados pelo usuário e passa os resultados para nossa interface de cliente construída com vis.js e React para exploração e visualização adicionais. Isso permite uma análise de variantes rápida e abrangente com base em relatórios de vulnerabilidade anteriores. O recurso de visualização vis.js fornece informações adicionais para desenvolvedores sobre caminhos de código vulneráveis e permite que eles classifiquem efetivamente possíveis variantes.

Tool View

Motivações

O incidente Log4Shell em dezembro de 2021 destacou as dificuldades que os desenvolvedores de código aberto enfrentam ao responder a relatórios de vulnerabilidade. Após o patch inicial para CVE-2021-44228, que permitia que invasores remotos não autenticados assumissem o controle de dispositivos executando versões vulneráveis do Log4j 2, a Apache lançou 3 patches adicionais para lidar com vulnerabilidades relacionadas e casos limites não mitigados.

Desenvolvedores de código aberto frequentemente carecem de treinamento em revisão abrangente de código e enfrentam problemas ao identificar variantes de uma vulnerabilidade, levando a patches incompletos. Embora existam suítes de consulta CodeQL para facilitar a análise rápida da base de código, os resultados retornados por essas suítes podem resultar em taxas significativas de falsos positivos. Além disso, essas suítes dependem de consultas predefinidas que não suportam análise de variantes e não são personalizadas para bases de código individuais. Como resultado, projetos de código aberto frequentemente respondem a relatórios de vulnerabilidade de forma fragmentada, perdendo possíveis variantes.

O C0deVari4nt fornece uma plataforma para que desenvolvedores realizem facilmente análises de variantes sem a sobrecarga significativa de escrever suas próprias consultas CodeQL. Isso dá aos desenvolvedores a flexibilidade de personalizar modelos CodeQL fornecendo informações específicas da base de código, como uma determinada origem e sumidouro de uma vulnerabilidade. Os resultados serão visualizados em uma visão de banco de dados gráfico alimentada por vis.js para que os desenvolvedores identifiquem rapidamente possíveis variantes. Assim, os desenvolvedores poderão lidar efetivamente com classes inteiras de bugs a partir de um único relatório de vulnerabilidade.

Componentes da Ferramenta

O C0deVari4nt é construído usando Python, CodeQL, vis.js e React para criar uma aplicação GUI interativa que recebe entrada do usuário e exibe relações entre diferentes caminhos de código vulneráveis.

Tool Architecture

O C0deVari4nt consiste nos seguintes 2 componentes principais:

  • Interface do Cliente: Este componente é construído com React e a biblioteca de visualização baseada em navegador vis.js. Os usuários interagem com este componente para personalizar a consulta CodeQL e analisar os resultados do CodeQL através de uma visualização em grafo.
  • Servidor API: Este componente é construído sobre o framework web Python FastAPI para receber requisições da interface do cliente e executar comandos CodeQL em uma lista de arquivos de banco de dados prontos para CodeQL. O servidor então retorna os dados processados de volta para a interface do cliente.

Mais detalhes da interface do cliente podem ser vistos abaixo: Tool Architecture

Uso v1

Configurando a Pasta do Banco de Dados

  • cd no diretório api-server e execute dbextractor.py <codeql db zip file> para descompactar o conteúdo do banco de dados codeql

Executando o Servidor Backend

  • cd no diretório api-server
  • Baixe as dependências pip install -r requirements.txt
  • Execute uvicorn main:app --reload para iniciar o servidor de desenvolvimento local na porta 8000

Executar a Interface React

  • cd no diretório react-gui
  • Baixe as dependências npm i
  • Execute npm start para iniciar o servidor de desenvolvimento local

Usando a Ferramenta

User Process

  • Insira suas opções de consulta na caixa de opções e clique em aplicar
  • Aguarde alguns segundos para o backend processar a requisição
  • Use a caixa de propriedades à direita para isolar caminhos e visualizar propriedades dos nós

Uso

Executar a base de código contra origens e sumidouros vulneráveis predefinidos (Opção 1)

  1. Encontre todas as funções de origem para funções de string banidas (com base nas Chamadas de Função Banidas do Microsoft Security Development Lifecycle (SDL))
  2. Encontre todas as chamadas para funções strcat sem verificações de limite no argumento de origem
  3. Encontre todas as chamadas para funções strncpy sem verificações de limite no argumento de origem
  4. Encontre todos os casos sem verificações de limite no valor de retorno de uma chamada para snprintf
    1. Ex: Quando a operação atinge o final do buffer e mais de 1 caractere é descartado, o valor de retorno será maior que o tamanho do buffer
  5. Encontre todas as chamadas para malloc, calloc ou realloc sem memória suficiente alocada para conter uma instância do tipo do ponteiro

Executar a base de código contra origens e sumidouros de sua escolha (Opção 2)

  1. Encontre todas as expressões de origem para uma função sumidouro perigosa
  2. Encontre uma função de origem específica para uma função sumidouro perigosa
  3. Encontre uma função de origem específica para uma função sumidouro perigosa (Função contaminada)
    1. Use o método isAdditionalTaintStep para transferir contaminações entre 2 funções desconectadas
  4. Encontre uma função de origem específica para uma função sumidouro perigosa (Expressão contaminada)
    1. Use o método isAdditionalTaintStep para transferir contaminações entre ponteiros que possuem os mesmos valores em tempo de execução

Simplificando Resultados do CodeQL e Relações entre Nós

A seguir, os resultados do CodeQL para uma consulta com recvfrom como origem, mempool_alloc como etapa de contaminação adicional e memcpy como sumidouro:

neo-1

Este resultado produz um total de 180 nós em 27 caminhos de código diferentes. Os resultados são representados em uma interface neo4j simples abaixo:

neo-2

Ao submeter esta consulta através da nossa ferramenta, conseguimos identificar ocorrências duplicadas de cada nó, origem e sumidouro e mesclar as relações dos nós.
Isso resultou em um gráfico significativamente mais limpo com um total de 11 nós únicos enquanto ainda mantinha todos os 27 caminhos de código únicos:

neo-3

Os resultados podem ser ainda mais categorizados em seus respectivos caminhos através do nosso recurso de rotulagem de caminhos:

neo-4

codevariant

Baixar ferramenta