Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
TrustworthyRAG — Un agente di valutazione per rilevare disinformazione e avvelenamento della conoscenza nei sistemi di generazione aumentata da recupero. | Kitploit
Strumenti/GitHubGitHub/gpt-laboratory/trustworthyrag
Analisi del CodiceMachine LearningPaper e RicercaSicurezza dell'IARilevamento di Anomalie
GitHubgpt-laboratory/trustworthyrag

TrustworthyRAG

Un agente di valutazione per rilevare disinformazione e avvelenamento della conoscenza nei sistemi di generazione aumentata da recupero.

Vedi Repository
1 mese faNon ancora revisionato

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

RAG Affidabile

Un agente di valutazione per il rilevamento di disinformazione e avvelenamento della conoscenza nei sistemi di generazione aumentata da recupero.

Panoramica

Questo progetto implementa un framework RAG affidabile con un Evaluation Agent integrato che valuta l'affidabilità delle risposte RAG utilizzando tre componenti di analisi complementari:

  • NLI Verifier - Verifica della coerenza fattuale tramite inferenza in linguaggio naturale (BART-MNLI)
  • Poison Detector - Rilevamento di contenuti avversari multi-segnale (linguistico, strutturale, semantico, NLI intra/cross-documento)
  • Trust Index Calculator - Punteggio composito ponderato che combina fattualità, coerenza e sicurezza contro l'avvelenamento

Il sistema produce un Trust Score (0-1) per ogni risposta RAG, consentendo il rilevamento automatico di attacchi di avvelenamento della conoscenza e contenuti allucinati.

Questo repository è l'artefatto di ricerca per l'articolo della conferenza ICSEA 2026 con lo stesso titolo. Consulta [Conference_ICSEA2026/](https://github.com/gpt-laboratory/trustworthyrag/blob/HEAD/Conference_ICSEA2026/) per le fonti LaTeX e la sezione Paper di seguito.

Architettura

root@kitploit:~
User Query
    |
    v
+-------------------+
|     RETRIEVER     |   Embedding (MiniLM-L6-v2 or Snowflake Arctic Embed2) + FAISS
+--------+----------+
         |
         v
+-------------------+
|     GENERATOR     |   Llama 3.3 70B / Qwen 3.5 35B / Mistral 7B Instruct via FARMI API
+--------+----------+
         |
         v
+--------------------------------------------+
|           EVALUATION AGENT                 |
|                                            |
|  NLI Verifier    Poison Detector           |
|  (factuality)    (5 detection methods)     |
|       |                |                   |
|       v                v                   |
|     Trust Index Calculator                 |
|     T = 0.4*F + 0.35*C + 0.25*(1-P)       |
+--------------------------------------------+
         |
         v
   Answer + Trust Score + Evaluation Report

Struttura del Progetto

root@kitploit:~
src/
  retriever/              # Document retrieval (embeddings, FAISS, chunking)
  generator/              # LLM response generation (FARMI client, prompts)
  evaluation_agent/       # Core evaluation (NLI, poison detection, trust index)
  experiments/            # Experiment framework (poisoned datasets, runner)
  pipeline/               # End-to-end RAG pipeline orchestrator

tests/                    # Unit tests (78 tests, pytest)
configs/config.yaml       # All configuration parameters
figures/                  # Auto-generated charts (7 figures, 300 DPI)
run_experiment.py         # Experiment CLI (main entry point)
generate_charts.py        # Visualization generator
requirements.txt          # Python dependencies

Configurazione

root@kitploit:~
# Create and activate virtual environment
python -m venv venv
.\venv\Scripts\Activate.ps1    # Windows PowerShell
# source venv/bin/activate     # Linux/Mac

# Install dependencies
pip install -r requirements.txt

# Configure FARMI API access (required for LLM generation)
# Copy the template and fill in your own credentials:
#   cp .env.example .env       # then edit .env and set FARMI_API_KEY
# The .env file is .gitignored - never commit it or hardcode keys in source.

Utilizzo

Esegui la Suite Completa di Esperimenti

root@kitploit:~
python run_experiment.py --all

Questo esegue tutti gli esperimenti e genera automaticamente i grafici:

  • Esperimento principale TruthfulQA (100 campioni, avvelenamento misto)
  • Esperimenti per strategia (100 campioni ciascuno: iniezione, contraddizione, scambio di entità, sottile)
  • Esperimento sul dataset FEVER (100 campioni)
  • Studio di ablazione (5 configurazioni di pesi, 60 campioni ciascuno)

Altre Opzioni degli Esperimenti

root@kitploit:~
python run_experiment.py --quick          # Quick test (10 samples)
python run_experiment.py --samples 30     # Custom sample count
python run_experiment.py --per-strategy   # Per-strategy breakdown only
python run_experiment.py --fever          # Include FEVER dataset
python run_experiment.py --ablation       # Ablation study only
python run_experiment.py --grid           # 2x2 factorial grid (all LLM x embedding combos)
python run_experiment.py --grid --samples 50  # Full grid run (100 samples per config)

Il prompt interattivo consente di selezionare:

  • LLM: Llama 3.3 70B (principale), Qwen 3.5 35B o Mistral 7B Instruct (confronto)
  • Embedding: all-MiniLM-L6-v2 (locale) o snowflake-arctic-embed2 (API)
  • K: Profondità di recupero — K=3 (più veloce) o K=5 (standard, predefinito)

Puoi anche fissare il generatore in modalità non interattiva tramite la variabile d'ambiente LLM_MODEL (corrispondente a configs/config.yaml e ai MODEL_DESCRIPTIONS di run_experiment.py):

root@kitploit:~
$env:LLM_MODEL = "mistral-7b-instruct"   # or "qwen3.5:35b", "llama3.3:70b"
python run_experiment.py --all

Caso d'Uso Secure-Coding nell'SDLC

Riproduci l'esperimento dell'assistente di secure coding (40 regole OWASP/CWE) dalla radice del progetto. Riutilizza i componenti esistenti ExperimentRunner + PoisonedDatasetGenerator e scrive i risultati in data/experiments/seccode_*.json:

root@kitploit:~
$env:LLM_MODEL = "llama3.3:70b"; $env:HF_HUB_OFFLINE = "1"; $env:TRANSFORMERS_OFFLINE = "1"
python Conference_ICSEA2026/run_seccode_usecase.py
# Set $env:SECCODE_N = "4" first for a quick smoke run over a few rules.

Rigenera Solo i Grafici

root@kitploit:~
python generate_charts.py

Esegui i Test

root@kitploit:~
pytest                    # All tests (includes slow model-loading tests)
pytest -m "not slow"      # Fast tests only (~0.4s)
pytest --cov=src          # With coverage report

Risultati Principali

Risultati Principali (Llama 3.3 70B + all-MiniLM-L6-v2, TruthfulQA, K=5, 100 campioni)

Baseline naive di fiducia incondizionata: 85% (TruthfulQA), 85% (FEVER). FEVER ottiene prestazioni inferiori alla baseline — il Trust Index richiede una calibrazione specifica del dominio per affermazioni fattuali brevi.

Con intervalli di confidenza al 95% (Wilson per le proporzioni, bootstrap percentile B=20.000 per l'F1), il risultato misto principale di TruthfulQA è: accuratezza 91% (IC 83.8–95.2), recall 40% (IC 19.8–64.3), F1 57.1% (IC 25.0–80.0), Δ=0.225. Gli intervalli sono ampi perché ogni esecuzione ha solo 15 campioni avvelenati, quindi li riportiamo per evitare di sovrastimare la precisione.

Rilevamento per Strategia (TruthfulQA, 100 campioni ciascuno)

Griglia Fattoriale 2×2 (K=3, TruthfulQA, 100 campioni)

Risultati chiave:

  • Invarianza dell'embedding per Llama: entrambi i modelli di embedding producono risultati di rilevamento identici — il Trust Index è guidato dall'LLM, non dal recupero
  • Problema dello stile di generazione di Qwen: output prolissi/elusivi riducono l'implicazione NLI per i campioni puliti → accuratezza del 71%, 14 punti percentuali sotto la baseline naive dell'85%
  • Risultato nullo sulla sensibilità di K: K=5 produce prestazioni di rilevamento identiche a K=3 per Llama 3.3 70B — la separazione del trust score cambia solo di 0.015; il rilevamento è limitato dalla difficoltà della strategia di attacco, non dalla profondità di recupero

Caso d'Uso Secure-Coding nell'SDLC (OWASP/CWE)

Un'applicazione di ingegneria del software dell'agente: un assistente di secure coding che recupera da una knowledge base curata di 40 regole tratte dall'OWASP Top 10 e dal CWE (ad es. query parametrizzate per l'SQL injection, hashing adattivo delle password, configurazione TLS). Una query di uno sviluppatore recupera indicazioni che l'Evaluation Agent esamina prima che l'LLM emetta una raccomandazione. Avveleniamo il 30% delle regole con le cinque strategie come payload di sicurezza (ad es. una direttiva spuria CORRECTION:, un identificatore CWE scambiato).

Rilevamento per strategia (Llama 3.3 70B + all-MiniLM-L6-v2, K=5):

  • L'iniezione viene bloccata quasi perfettamente (F1 92.3%, Δ=0.54): l'agente intercetta in modo affidabile i tentativi espliciti di inserire consigli non sicuri (ad es. disabilitare la validazione degli input) prima che raggiungano lo sviluppatore.
  • Lo scambio di entità raggiunge il 58% di recall (rispetto allo 0% su TruthfulQA open-domain): alterare un identificatore CWE strutturato introduce incongruenze cross-documento che i segnali NLI possono rilevare.
  • Contraddizione e manipolazione sottile eludono ancora il rilevamento (0% di recall): una raccomandazione silenziosamente indebolita non presenta alcun artefatto superficiale e supera la revisione — il caso pericoloso e poco visibile in un flusso di lavoro di sicurezza.

Confronto tra Tre LLM e Indipendenza della Soglia

Oltre al punto operativo τ=0.5, il Trust Index ha un forte segnale indipendente dalla soglia su tre LLM (esecuzioni aggregate con strategia mista):

  • Lo stile di generazione > dimensione del modello: Mistral 7B supera Qwen 3.5 35B nonostante sia ~5× più piccolo — le risposte elusive e prolisse di Qwen riducono l'implicazione NLI.
  • τ è un iperparametro specifico dell'LLM: i tre modelli richiedono tre soglie ottimali diverse (0.71 / 0.58 / 0.43). Calibrare τ sui soli punteggi dei dati puliti riporta Qwen dal 65.5% → 74.5% di accuratezza riducendo i falsi positivi.
  • Tutti e tre si collocano ben sopra il caso (ROC-AUC > 0.70), quindi la debole accuratezza di Qwen a τ=0.5 è un artefatto di soglia, non un'assenza di segnale.

Stabilità e Overhead

  • La varianza tra esecuzioni è bassa: su 5 ripetizioni indipendenti la configurazione mista ottiene un'accuratezza di 90.6 ± 0.5% e un F1 di 56.1 ± 1.3%; l'iniezione è invariante al 99.0 ± 0.0%. I giudizi sono guidati dalle prove recuperate, non dalla formulazione di una singola generazione.
  • Overhead: la valutazione aggiunge ≈14.7 s/campione (≈17× rispetto alla RAG baseline), dominata da fino a 20 passate NLI su CPU a K=5. Questo si adatta all'uso batch/asincrono (ad es. un gate di code review/CI); l'inferenza GPU dovrebbe ridurre il tempo a meno di 2 s.

Stack Tecnologico

  • LLM: Llama 3.3 70B (principale), Qwen 3.5 35B e Mistral 7B Instruct (confronto) — cluster FARMI, Università di Tampere
  • Modello NLI: facebook/bart-large-mnli
  • Embedding: all-MiniLM-L6-v2 (384-dim), snowflake-arctic-embed2 (1024-dim)
  • Store vettoriale: FAISS (CPU)
  • Dataset: TruthfulQA, FEVER (HuggingFace) e una knowledge base di secure coding con 40 regole curate OWASP Top 10 / CWE
  • Framework: Python 3.10+, PyTorch, Transformers, LangChain

Formula del Trust Index

root@kitploit:~
Trust = alpha * Factuality + beta * Consistency + gamma * (1 - PoisonProbability)

Default weights: alpha=0.4, beta=0.35, gamma=0.25

Un attenuatore non lineare si applica quando la probabilità di avvelenamento supera 0.7: delta = 1 - 0.4 * (P - 0.70) / 0.30 — a P=1.0, il trust è ridotto del 40%.

Contributi

  • Un Evaluation Agent autonomo che opera come middleware difensivo all'interno del ciclo di inferenza RAG
  • Un rilevatore di avvelenamento a cinque segnali con aggregazione pesata per rilevanza (linguistico, strutturale, NLI intra-/cross-documento, outlier semantico)
  • Un Trust Index composito con un attenuatore non lineare per contesti ad alta contaminazione
  • Caratterizzazione di una gerarchia di rilevamento per strategia (iniezione risolta → scambio di entità non rilevato)
  • Prove che lo stile di generazione conta più della dimensione del modello, più un metodo di calibrazione della soglia per LLM
  • Un caso d'uso SDLC di secure-coding (OWASP/CWE) per l'ingegneria del software
  • Un framework riproducibile, un generatore di attacchi e un rilascio degli esperimenti

Paper

  • Articolo della conferenza — Trustworthy RAG: An Evaluation Agent for Detecting Misinformation and Knowledge Poisoning in Generative AI Systems, ICSEA 2026. Fonti LaTeX in [Conference_ICSEA2026/](https://github.com/gpt-laboratory/trustworthyrag/blob/HEAD/Conference_ICSEA2026/).

Il PDF compilato non è incluso volutamente in questa release; generarlo dalle fonti LaTeX.

Autori e Contatti

Autori dell'articolo della conferenza ICSEA 2026 — Università di Tampere (TUNI).

Balkrishna Giri, Ricercatore MSc, Facoltà di Tecnologie dell'Informazione e Scienze della Comunicazione, Università di Tampere
Email: [email protected], [email protected]

Md Toufique Hasan, Ricercatore Dottorando, GPT Lab, Facoltà di Tecnologie dell'Informazione e Scienze della Comunicazione, Università di Tampere
Email: [email protected]

Co-autori — Facoltà di Tecnologie dell'Informazione e Scienze della Comunicazione, Università di Tampere:

  • Dr. Jussi Rasku — [email protected]
  • Dr. Muhammad Waseem — [email protected]
  • Professor Dr. Pekka Abrahamsson — [email protected]

Sviluppato presso GPT Lab, Università di Tampere.

Scarica lo strumento
DatasetAccuratezzaPrecisioneRecallF1 Scorevs. Baseline
TruthfulQA (mixed)91%100%40%57.1%+7%
FEVER (full run)73%20%26.7%22.9%−12%
StrategiaAccuratezzaPrecisioneRecallF1Separazione
Iniezione99%93.8%100%96.8%0.498
Contraddizione92%88.9%53.3%66.7%0.311
Sottile88%100%20.0%33.3%0.149
Scambio di entità85%—0%0%0.053
LLMEmbeddingAccuratezzaPrecisioneRecallF1Trust pulitoSeparazione
Llama 3.3 70Ball-MiniLM-L6-v291%100%40%57.1%0.8300.240
Llama 3.3 70Bsnowflake-arctic-embed291%100%40%57.1%0.7990.188
Qwen 3.5 35Ball-MiniLM-L6-v271%25.0%46.7%32.6%0.6330.161
Qwen 3.5 35Bsnowflake-arctic-embed271%28.1%60.0%38.3%0.6530.199
StrategiaAccPrecRecallF1Δ
Iniezione di istruzioni97.5%85.7%100.0%92.3%0.542
Contraddizione85.0%—0.0%0.0%0.156
Manipolazione sottile85.0%—0.0%0.0%0.066
Scambio di entità72.5%29.2%58.3%38.9%0.291
Misto86.2%100.0%8.3%15.4%0.163
LLMAccuratezza (τ=0.5)ROC-AUCτ* ottimale
Llama 3.3 70B91%0.810.71
Mistral 7B Instruct87%0.790.58
Qwen 3.5 35B69–71%0.730.43
Livello di TrustIntervallo di punteggioSignificato
ALTO> 0.8Affidabile
MEDIO0.5 - 0.8Verifica se importante
BASSO0.3 - 0.5Probabilmente ha problemi
MOLTO BASSO< 0.3Non fidarti