Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
qlcoder — Agente Framework para Sintetizar Consultas CodeQL | Kitploit
Herramientas/GitHubGitHub/neuralprogram/qlcoder
Análisis EstáticoEscáneres de VulnerabilidadesAnálisis de VulnerabilidadesAnálisis de CódigoPapers e InvestigaciónReversing Asistido por IA
GitHubneuralprogram/qlcoder

qlcoder

Agente Framework para Sintetizar Consultas CodeQL

Ver Repositorio
287103hace 1 mesRevisado 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

QLCoder

Framework agéntico para sintetizar consultas CodeQL

Tabla de contenidos

  • Resumen
  • Instalación
    • Docker (Recomendado)
    • Nativo (Linux)
  • Uso
  • Inicio rápido
  • Herramientas de desarrollo
  • Ejemplos
  • Entorno del artículo
  • Contribuciones
  • Equipo
  • Citación
  • Proyectos afiliados

Resumen

Refinamiento iterativo de QLCoder

QLCoder es un framework para usar LLMs con el fin de sintetizar consultas CodeQL de extremo a extremo para la detección de vulnerabilidades. Dados los metadatos de un CVE existente, un LLM y un agente de codificación, QLCoder sintetiza iterativamente una consulta CodeQL para detectar el CVE existente. La consulta inicial es una plantilla de consulta de ruta CodeQL poblada por un AST extraído del diff. Mientras sintetiza la consulta, el agente de codificación tiene acceso a herramientas para interactuar con una base de datos RAG y el servidor de lenguaje CodeQL. Posteriormente, la consulta puede utilizarse para análisis multivariante, pruebas de regresión o como guía para escribir consultas CodeQL.

Instalación

Docker (Recomendado)

Paso 1: Instalar CodeQL

Nota: en el artículo se utilizó la versión 2.22.2 de CodeQL. Sin embargo, se puede usar cualquier versión (e idioma). QLCoder almacena los paquetes QL de la versión local de CodeQL en la base de datos vectorial. Las rutas se configuran en .env.

Descargue una versión adecuada del paquete CodeQL Action desde la página de lanzamientos de CodeQL Action.

  • Para la versión más reciente: Visite el último lanzamiento y descargue el paquete adecuado para su sistema operativo:

    • codeql-bundle-osx64.tar.gz para macOS
    • codeql-bundle-linux64.tar.gz para Linux
  • Para una versión específica (p. ej., 2.22.2): Vaya a la página de lanzamientos de CodeQL Action, busque el lanzamiento etiquetado codeql-bundle-v2.22.2 y descargue el paquete adecuado para su plataforma.

Extraiga a ~/codeql (u otra ruta — actualice CODEQL_HOME en .env en consecuencia):

tar -xzf codeql-bundle-<platform>.tar.gz -C ~/

Paso 2: Instalar el servidor MCP de CodeQL LSP

Clone el servidor MCP de CodeQL LSP y compílelo.

git clone https://github.com/neuralprogram/codeql-lsp-mcp ~/codeql-lsp-mcp
cd ~/codeql-lsp-mcp
npm install
npm run build

Paso 3: Configurar e iniciar los servicios

cp .env.example .env
echo "APP_UID=$(id -u)" >> .env
echo "APP_GID=$(id -g)" >> .env

Complete su clave API y las rutas de CodeQL en .env:

ANTHROPIC_API_KEY=...

# Las rutas de los paquetes QL dependen de su versión de CodeQL.
# Encuentre los números de versión con:
#   ls ~/codeql/qlpacks/codeql/java-queries/   → use para SECURITY_QLPACK_PATH
#   ls ~/codeql/qlpacks/codeql/java-all/        → use para LIBRARY_QLPACK_PATH
SECURITY_QLPACK_PATH=~/codeql/qlpacks/codeql/java-queries/<version>/Security/CWE
LIBRARY_QLPACK_PATH=~/codeql/qlpacks/codeql/java-all/<version>/semmle/code/java

Luego inicie la aplicación QLCoder y ChromaDB:

docker compose up -d

Paso 4: Recuperar repositorios de CVEs

El CVE debe estar listado en data/project_info.csv. Esto clona el repositorio en el commit con el error y genera el diff de la corrección.

docker compose run --rm app python3 scripts/get_cve_repos.py --cve CVE-2025-27818
# o varios a la vez:
docker compose run --rm app python3 scripts/get_cve_repos.py --cves CVE-2025-27818,CVE-2025-0851
# procesar CVEs desde un archivo (un ID de CVE por línea)
docker compose run --rm app python3 scripts/get_cve_repos.py --cve-file cves.txt
# procesar todos los CVEs
docker compose run --rm app python3 scripts/get_cve_repos.py --all
# forzar la regeneración de diffs existentes
docker compose run --rm app python3 scripts/get_cve_repos.py --cve CVE-2018-9159 --force

Paso 5: Crear bases de datos CodeQL

Las bases de datos se crean con --build-mode=none — no se requiere cadena de herramientas de compilación.

# para compilar las bases de datos CodeQL de un CVE específico
docker compose run --rm app python3 scripts/build_codeql_dbs.py --cve-id CVE-2025-27818

Esto crea cves/CVE-2025-27818/CVE-2025-27818-vul y cves/CVE-2025-27818/CVE-2025-27818-fix.

# para compilar las bases de datos CodeQL de todos los repositorios de CVEs obtenidos
docker compose run --rm app python3 scripts/build_codeql_dbs.py

Paso 6: Poblar la base de datos RAG

Ejecute estos scripts para poblar la base de datos vectorial. codeql_docs_fetcher.py y cwe_fetcher.py son de configuración única; cves_fetcher.py debe volver a ejecutarse después de agregar nuevos CVEs.

docker compose run --rm app python3 scripts/codeql_docs_fetcher.py
docker compose run --rm app python3 scripts/cwe_fetcher.py
docker compose run --rm app python3 scripts/cves_fetcher.py

Nativo (Linux)

Paso 1: Instalar CodeQL

Nota: en el artículo se utilizó la versión 2.22.2 de CodeQL. Sin embargo, se puede usar cualquier versión (e idioma). QLCoder almacena los paquetes QL de la versión local de CodeQL en la base de datos vectorial. Las rutas se configuran en .env.

Descargue una versión adecuada del paquete CodeQL Action desde la página de lanzamientos de CodeQL Action.

  • Para la versión más reciente: Visite el último lanzamiento y descargue el paquete adecuado para su sistema operativo:

    • codeql-bundle-linux64.tar.gz para Linux
  • Para una versión específica (p. ej., 2.22.2): Vaya a la página de lanzamientos de CodeQL Action, busque el lanzamiento etiquetado codeql-bundle-v2.22.2 y descargue el paquete adecuado para su plataforma.

Después de descargar, extraiga el archivo en el directorio raíz del proyecto:

tar -xzf codeql-bundle-<platform>.tar.gz

Esto debería crear un subdirectorio codeql/ con el ejecutable codeql dentro.

Agregue la ruta de este ejecutable a su variable de entorno PATH:

export PATH="$PWD/codeql:$PATH"

Paso 2: Instalar el servidor MCP de CodeQL LSP

Clone el servidor MCP de CodeQL LSP y compílelo.

git clone https://github.com/neuralprogram/codeql-lsp-mcp
cd codeql-lsp-mcp
npm install
npm run build

Paso 3: Configurar el entorno Conda

conda env create -f environment.yml
conda activate qlcoder

Paso 4: Configurar .env

cp .env.example .env

Complete su clave API y las rutas de CodeQL en .env:

ANTHROPIC_API_KEY=...
CODEQL_HOME=~/codeql
CODEQL_LSP_MCP_HOME=~/codeql-lsp-mcp

# Las rutas de los paquetes QL dependen de su versión de CodeQL.
# Encuentre los números de versión con:
#   ls ~/codeql/qlpacks/codeql/java-queries/   → use para SECURITY_QLPACK_PATH
#   ls ~/codeql/qlpacks/codeql/java-all/        → use para LIBRARY_QLPACK_PATH
SECURITY_QLPACK_PATH=~/codeql/qlpacks/codeql/java-queries/<version>/Security/CWE
LIBRARY_QLPACK_PATH=~/codeql/qlpacks/codeql/java-all/<version>/semmle/code/java

Paso 5: Recuperar repositorios de CVEs

El CVE debe estar listado en data/project_info.csv. Esto clona el repositorio en el commit con el error y genera el diff de la corrección.

Descargar herramienta