Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
C0deVari4nt — Una herramienta de análisis de variantes y visualización que escanea bases de código en busca de vulnerabilidades similares. | Kitploit
Herramientas/GitHubGitHub/whitesquirrell/c0devari4nt
Análisis Estático de Código (SAST)Análisis de VulnerabilidadesAnálisis de Código
GitHubwhitesquirrell/c0devari4nt

C0deVari4nt

Una herramienta de análisis de variantes y visualización que escanea bases de código en busca de vulnerabilidades similares.

Ver Repositorio
746hace 4 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

C0deVari4nt

Black Hat Arsenal
C0deVari4nt

Descripción

C0deVari4nt es una herramienta de análisis de variantes y visualización que inspecciona bases de código en busca de vulnerabilidades similares. Aprovecha CodeQL, un motor de análisis semántico de código, para consultar código basado en plantillas de consulta CodeQL controladas por el usuario y pasa los resultados a nuestra interfaz cliente construida con vis.js y React para su posterior exploración y visualización. Esto permite un análisis de variantes rápido y completo basado en informes de vulnerabilidades anteriores. La función de visualización de vis.js proporciona información adicional a los desarrolladores sobre las rutas de código vulnerables y les permite priorizar eficazmente las variantes potenciales.

Vista de la herramienta

Motivaciones

El incidente Log4Shell en diciembre de 2021 puso de relieve las dificultades que enfrentan los desarrolladores de código abierto para responder a informes de vulnerabilidades. Después del parche inicial para CVE-2021-44228, que permitía a atacantes remotos no autenticados tomar el control de dispositivos que ejecutan versiones vulnerables de Log4j 2, Apache lanzó 3 parches adicionales para abordar vulnerabilidades relacionadas y casos límite no mitigados.

Los desarrolladores de código abierto a menudo carecen de formación en revisiones exhaustivas de código y enfrentan problemas para identificar variantes de una vulnerabilidad, lo que lleva a parches incompletos. Aunque existen suites de consultas CodeQL para facilitar el análisis rápido de la base de código, los resultados devueltos por estas suites pueden generar tasas de falsos positivos significativas. Además, estas suites se basan en consultas predefinidas que no admiten análisis de variantes y no están personalizadas para bases de código individuales. Como resultado, los proyectos de código abierto a menudo responden a informes de vulnerabilidades de manera fragmentada, omitiendo variantes potenciales.

C0deVari4nt proporciona una plataforma para que los desarrolladores realicen fácilmente análisis de variantes sin la sobrecarga significativa de escribir sus propias consultas CodeQL. Esto brinda a los desarrolladores la flexibilidad de personalizar plantillas CodeQL proporcionando información específica de la base de código, como una fuente y un sumidero particulares de una vulnerabilidad. Los resultados se visualizarán en una vista de base de datos de gráficos impulsada por vis.js para que los desarrolladores identifiquen rápidamente variantes potenciales. De esta manera, los desarrolladores podrán abordar eficazmente clases enteras de errores a partir de un solo informe de vulnerabilidad.

Componentes de la herramienta

C0deVari4nt está construido con Python, CodeQL, vis.js y React para crear una aplicación GUI interactiva que toma la entrada del usuario y muestra las relaciones entre diferentes rutas de código vulnerables.

Arquitectura de la herramienta

C0deVari4nt consta de los siguientes 2 componentes principales:

  • Interfaz de cliente: Este componente está construido con React y la biblioteca de visualización basada en navegador vis.js. Los usuarios interactúan con este componente para personalizar la consulta CodeQL y analizar los resultados de CodeQL a través de una vista de visualización de gráficos.
  • Servidor API: Este componente está construido sobre el framework web Python FastAPI para recibir solicitudes de la interfaz de cliente y ejecutar comandos CodeQL contra una lista de archivos de base de datos listos para CodeQL. El servidor luego devuelve los resultados de datos analizados a la interfaz de cliente.

Más detalles de la interfaz de cliente se pueden ver a continuación: Arquitectura de la herramienta

Uso v1

Configuración de la carpeta de la base de datos

  • cd al directorio api-server y ejecuta dbextractor.py <archivo zip de la base de datos codeql> para descomprimir el contenido de la base de datos codeql

Ejecución del servidor backend

  • cd al directorio api-server
  • Descargar dependencias pip install -r requirements.txt
  • Ejecuta uvicorn main:app --reload para iniciar el servidor de desarrollo local en el puerto 8000

Ejecutar la interfaz React

  • cd al directorio react-gui
  • Descargar dependencias npm i
  • Ejecuta npm start para iniciar el servidor de desarrollo local

Uso de la herramienta

Proceso del usuario

  • Ingresa tus opciones de consulta en el cuadro de opciones y haz clic en aplicar
  • Espera unos segundos para que el backend procese la solicitud
  • Usa el cuadro de propiedades de la derecha para aislar rutas y ver propiedades de nodos

Uso

Ejecutar la base de código contra fuentes y sumideros vulnerables predefinidos (Opción 1)

  1. Encuentra todas las funciones fuente hacia funciones de cadena prohibidas (basadas en las Llamadas a Funciones Prohibidas del Ciclo de Vida de Desarrollo de Seguridad (SDL) de Microsoft)
  2. Encuentra todas las llamadas a funciones strcat sin comprobaciones de límites en el argumento fuente
  3. Encuentra todas las llamadas a funciones strncpy sin comprobaciones de límites en el argumento fuente
  4. Encuentra todos los casos sin comprobaciones de límites en el valor de retorno de una llamada a snprintf
    1. Ej: Cuando la operación llega al final del búfer y se descarta más de 1 carácter, el valor de retorno será mayor que el tamaño del búfer
  5. Encuentra todas las llamadas a malloc, calloc o realloc sin suficiente memoria asignada para contener una instancia del tipo del puntero

Ejecutar la base de código contra fuentes y sumideros de tu elección (Opción 2)

  1. Encuentra todas las expresiones fuente hacia una función sumidero peligrosa
  2. Encuentra una función fuente específica hacia una función sumidero peligrosa
  3. Encuentra una función fuente específica hacia una función sumidero peligrosa (Función contaminada)
    1. Usa el método isAdditionalTaintStep para transferir contaminación entre 2 funciones desconectadas
  4. Encuentra una función fuente específica hacia una función sumidero peligrosa (Expresión contaminada)
    1. Usa el método isAdditionalTaintStep para transferir contaminación entre punteros que tienen los mismos valores en tiempo de ejecución

Simplificación de los resultados de CodeQL y relaciones entre nodos

Lo siguiente muestra los resultados de CodeQL para una consulta con recvfrom como fuente, mempool_alloc como paso de contaminación adicional y memcpy como sumidero:

neo-1

Este resultado arroja un total de 180 nodos en 27 rutas de código diferentes. Los resultados se muestran en una interfaz neo4j simple a continuación:

neo-2

Al pasar esta consulta a través de nuestra herramienta, pudimos identificar ocurrencias duplicadas de cada nodo, fuente y sumidero y fusionar las relaciones de los nodos.
Esto resultó en un gráfico significativamente más limpio con un total de 11 nodos únicos mientras aún se conservan las 27 rutas de código únicas:

neo-3

Los resultados se pueden categorizar aún más en sus respectivas rutas a través de nuestra función de etiquetado de rutas:

neo-4

codevariant

Descargar herramienta