Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
qlcoder — Framework agente per la sintesi di query CodeQL | Kitploit
Strumenti/GitHubGitHub/neuralprogram/qlcoder
Analisi StaticaScanner di VulnerabilitàAnalisi delle VulnerabilitàAnalisi del CodicePaper e RicercaReverse Engineering Assistito dall'IA
GitHubneuralprogram/qlcoder

qlcoder

Framework agente per la sintesi di query CodeQL

Vedi Repository
2871041 mese faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

QLCoder

Framework agentico per la sintesi di query CodeQL

Sommario

  • Panoramica
  • Installazione
    • Docker (Consigliato)
    • Nativo (Linux)
  • Utilizzo
  • Avvio Rapido
  • Strumenti di Sviluppo
  • Esempi
  • Ambiente dell'Articolo
  • Contributi
  • Team
  • Citazione
  • Progetti Affiliati

Panoramica

QLCoder Iterative Refinement

QLCoder è un framework per l'utilizzo di LLM nella sintesi di query CodeQL end-to-end per il rilevamento di vulnerabilità. Data la metadati di una CVE esistente, un LLM e un agente di codifica, QLCoder sintetizza iterativamente una query CodeQL per rilevare la CVE esistente. La query iniziale è un template di query di percorso CodeQL popolato da un AST estratto dal diff. Durante la sintesi della query, l'agente di codifica ha accesso a strumenti per interfacciarsi con un database RAG e con il language server CodeQL. Successivamente, la query può essere utilizzata per analisi multivariante, test di regressione o come guida per la scrittura di query CodeQL.

Installazione

Docker (Consigliato)

Passo 1: Installare CodeQL

Nota - Nell'articolo è stata utilizzata la versione 2.22.2 di CodeQL. Tuttavia, è possibile utilizzare qualsiasi versione (e linguaggio). QLCoder memorizza i QL pack della versione locale di CodeQL nel database vettoriale. I percorsi sono configurati in .env.

Scarica una versione appropriata del bundle CodeQL Action dalla pagina delle release di CodeQL Action.

  • Per la versione più recente: Visita la release più recente e scarica il bundle appropriato per il tuo sistema operativo:

    • codeql-bundle-osx64.tar.gz per macOS
    • codeql-bundle-linux64.tar.gz per Linux
  • Per una versione specifica (es. 2.22.2): Vai alla pagina delle release di CodeQL Action, trova la release taggata codeql-bundle-v2.22.2 e scarica il bundle appropriato per la tua piattaforma.

Estrai in ~/codeql (o in un altro percorso — aggiorna CODEQL_HOME in .env di conseguenza):

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

Passo 2: Installare il server MCP CodeQL LSP

Clona il server MCP CodeQL LSP e compilalo.

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

Passo 3: Configurare e avviare i servizi

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

Inserisci la tua chiave API e i percorsi CodeQL in .env:

ANTHROPIC_API_KEY=...

# I percorsi dei QL pack dipendono dalla versione di CodeQL.
# Trova i numeri di versione con:
#   ls ~/codeql/qlpacks/codeql/java-queries/   → usa per SECURITY_QLPACK_PATH
#   ls ~/codeql/qlpacks/codeql/java-all/        → usa per 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

Quindi avvia l'app QLCoder e ChromaDB:

docker compose up -d

Passo 4: Recuperare i repository delle CVE

La CVE deve essere elencata in data/project_info.csv. Questo clona il repository al commit difettoso e genera il diff della correzione.

docker compose run --rm app python3 scripts/get_cve_repos.py --cve CVE-2025-27818
# oppure più di una alla volta:
docker compose run --rm app python3 scripts/get_cve_repos.py --cves CVE-2025-27818,CVE-2025-0851
# elabora le CVE da un file (un ID CVE per riga)
docker compose run --rm app python3 scripts/get_cve_repos.py --cve-file cves.txt
# elabora tutte le CVE
docker compose run --rm app python3 scripts/get_cve_repos.py --all
# forza la rigenerazione dei diff esistenti
docker compose run --rm app python3 scripts/get_cve_repos.py --cve CVE-2018-9159 --force

Passo 5: Creare i database CodeQL

I database vengono creati con --build-mode=none — nessuna toolchain di compilazione richiesta.

# per creare i database CodeQL di una CVE specifica
docker compose run --rm app python3 scripts/build_codeql_dbs.py --cve-id CVE-2025-27818

Questo crea cves/CVE-2025-27818/CVE-2025-27818-vul e cves/CVE-2025-27818/CVE-2025-27818-fix.

# per creare i database CodeQL di tutti i repository CVE recuperati
docker compose run --rm app python3 scripts/build_codeql_dbs.py

Passo 6: Popolare il database RAG

Esegui questi script per popolare il database vettoriale. codeql_docs_fetcher.py e cwe_fetcher.py sono configurazioni una tantum; cves_fetcher.py deve essere rieseguito dopo l'aggiunta di nuove CVE.

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)

Passo 1: Installare CodeQL

Nota - Nell'articolo è stata utilizzata la versione 2.22.2 di CodeQL. Tuttavia, è possibile utilizzare qualsiasi versione (e linguaggio). QLCoder memorizza i QL pack della versione locale di CodeQL nel database vettoriale. I percorsi sono configurati in .env.

Scarica una versione appropriata del bundle CodeQL Action dalla pagina delle release di CodeQL Action.

  • Per la versione più recente: Visita la release più recente e scarica il bundle appropriato per il tuo sistema operativo:

    • codeql-bundle-linux64.tar.gz per Linux
  • Per una versione specifica (es. 2.22.2): Vai alla pagina delle release di CodeQL Action, trova la release taggata codeql-bundle-v2.22.2 e scarica il bundle appropriato per la tua piattaforma.

Dopo il download, estrai l'archivio nella directory principale del progetto:

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

Questo dovrebbe creare una sottodirectory codeql/ con l'eseguibile codeql al suo interno.

Aggiungi il percorso di questo eseguibile alla tua variabile d'ambiente PATH:

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

Passo 2: Installare il server MCP CodeQL LSP

Clona il server MCP CodeQL LSP e compilalo.

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

Passo 3: Configurare l'ambiente Conda

conda env create -f environment.yml
conda activate qlcoder

Passo 4: Configurare .env

cp .env.example .env

Inserisci la tua chiave API e i percorsi CodeQL in .env:

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

# I percorsi dei QL pack dipendono dalla versione di CodeQL.
# Trova i numeri di versione con:
#   ls ~/codeql/qlpacks/codeql/java-queries/   → usa per SECURITY_QLPACK_PATH
#   ls ~/codeql/qlpacks/codeql/java-all/        → usa per 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

Passo 5: Recuperare i repository delle CVE

La CVE deve essere elencata in data/project_info.csv. Questo clona il repository al commit difettoso e genera il diff della correzione.

Scarica lo strumento