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
Herramientas/GitHubGitHub/gpt-laboratory/trustworthyrag
Análisis de CódigoAprendizaje AutomáticoPapers e InvestigaciónSeguridad de IADetección de Anomalías
GitHubgpt-laboratory/trustworthyrag

TrustworthyRAG

Un Agente de Evaluación para Detectar Desinformación y Envenenamiento de Conocimiento en Sistemas de Generación Aumentada por Recuperación.

Ver Repositorio
hace 1 mesAún no revisado

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

Trustworthy RAG

Un Agente de Evaluación para Detectar Desinformación y Envenenamiento del Conocimiento en Sistemas de Generación Aumentada por Recuperación.

Visión general

Este proyecto implementa un Trustworthy RAG Framework con un Agente de Evaluación integrado que evalúa la fiabilidad de las respuestas RAG mediante tres componentes de análisis complementarios:

  • Verificador NLI - Comprobación de consistencia fáctica mediante Inferencia de Lenguaje Natural (BART-MNLI)
  • Detector de Envenenamiento - Detección de contenido adversarial multiseñal (lingüístico, estructural, semántico, NLI intradocumental/entredocumentos)
  • Calculador del Índice de Confianza - Puntuación compuesta ponderada que combina facticidad, consistencia y seguridad frente al envenenamiento

El sistema produce una Puntuación de Confianza (0-1) para cada respuesta RAG, lo que permite la detección automatizada de ataques de envenenamiento del conocimiento y contenido alucinado.

Este repositorio es el artefacto de investigación del artículo de la conferencia ICSEA 2026 del mismo título. Consulta [Conference_ICSEA2026/](https://github.com/gpt-laboratory/trustworthyrag/blob/HEAD/Conference_ICSEA2026/) para las fuentes LaTeX y la sección Artículo más abajo.

Arquitectura

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

Estructura del Proyecto

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

Configuración

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.

Uso

Ejecutar la Suite de Experimentos Completa

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

Esto ejecuta todos los experimentos y genera los gráficos automáticamente:

  • Experimento principal de TruthfulQA (100 muestras, envenenamiento mixto)
  • Experimentos por estrategia (100 muestras cada uno: inyección, contradicción, intercambio de entidades, sutil)
  • Experimento con el conjunto de datos FEVER (100 muestras)
  • Estudio de ablación (5 configuraciones de pesos, 60 muestras cada una)

Otras Opciones de Experimentos

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)

El prompt interactivo permite seleccionar:

  • LLM: Llama 3.3 70B (principal), Qwen 3.5 35B o Mistral 7B Instruct (comparación)
  • Embedding: all-MiniLM-L6-v2 (local) o snowflake-arctic-embed2 (API)
  • K: profundidad de recuperación — K=3 (más rápido) o K=5 (estándar, predeterminado)

También puedes fijar el generador de forma no interactiva mediante la variable de entorno LLM_MODEL (coincidente con configs/config.yaml y con MODEL_DESCRIPTIONS de run_experiment.py):

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

Caso de Uso SDLC de Codificación Segura

Reproduce el experimento del asistente de codificación segura (40 reglas OWASP/CWE) desde la raíz del proyecto. Reutiliza el ExperimentRunner y el PoisonedDatasetGenerator existentes y escribe los resultados en 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.

Regenerar Solo los Gráficos

root@kitploit:~
python generate_charts.py

Ejecutar Pruebas

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

Resultados Clave

Resultados Principales (Llama 3.3 70B + all-MiniLM-L6-v2, TruthfulQA, K=5, 100 muestras)

Conjunto de datosExactitudPrecisiónExhaustividadPuntuación F1vs. Línea base
TruthfulQA (mixto)91%100%40%57.1%+7%
FEVER (ejecución completa)73%20%26.7%22.9%−12%

Línea base ingenua de confianza incondicional: 85% (TruthfulQA), 85% (FEVER). FEVER se queda por debajo de la línea base: el Índice de Confianza requiere calibración específica del dominio para afirmaciones fácticas cortas.

Con intervalos de confianza del 95% (Wilson para proporciones, bootstrap percentil con B=20 000 para F1), el resultado principal mixto de TruthfulQA es: exactitud 91% (IC 83.8–95.2), exhaustividad 40% (IC 19.8–64.3), F1 57.1% (IC 25.0–80.0), Δ=0.225. Los intervalos son amplios porque cada ejecución tiene solo 15 muestras envenenadas, por lo que los reportamos para no sobreestimar la precisión.

Detección por Estrategia (TruthfulQA, 100 muestras cada una)

EstrategiaExactitudPrecisiónExhaustividadF1Separación
Inyección99%93.8%100%96.8%0.498
Contradicción92%88.9%53.3%66.7%0.311
Sutil88%100%20.0%33.3%0.149
Intercambio de Entidades85%—0%0%0.053

Cuadrícula Factorial 2×2 (K=3, TruthfulQA, 100 muestras)

LLMEmbeddingExactitudPrecisiónExhaustividadF1Confianza limpiaSeparación
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

Hallazgos clave:

  • Invarianza del embedding para Llama: ambos modelos de embedding producen resultados de detección idénticos — el Índice de Confianza está impulsado por el LLM, no por la recuperación
  • Problema del estilo de generación de Qwen: las salidas verbosas/evasivas reducen la implicación NLI en muestras limpias → 71% de exactitud, 14 puntos porcentuales por debajo de la línea base ingenua del 85%
  • Resultado nulo de la sensibilidad a K: K=5 produce un rendimiento de detección idéntico a K=3 para Llama 3.3 70B — la separación de la puntuación de confianza cambia solo 0.015; la detección está limitada por la dificultad de la estrategia de ataque, no por la profundidad de recuperación

Caso de Uso SDLC de Codificación Segura (OWASP/CWE)

Una aplicación de ingeniería de software del agente: un asistente de codificación segura que recupera de una base de conocimiento curada de 40 reglas extraídas del OWASP Top 10 y de CWE (p. ej., consultas parametrizadas para inyección SQL, hashing adaptativo de contraseñas, configuración TLS). Una consulta de un desarrollador recupera orientación que el Agente de Evaluación examina antes de que el LLM emita una recomendación. Envenenamos el 30% de las reglas con las cinco estrategias como cargas útiles de seguridad (p. ej., una directiva espuria CORRECTION:, un identificador CWE intercambiado).

Detección por estrategia (Llama 3.3 70B + all-MiniLM-L6-v2, K=5):

EstrategiaExact.Prec.Exhaust.F1Δ
Inyección de instrucciones97.5%85.7%100.0%92.3%0.542
Contradicción85.0%—0.0%0.0%0.156
Manipulación sutil85.0%—0.0%0.0%0.066
Intercambio de entidades72.5%29.2%58.3%38.9%0.291
Mixta86.2%100.0%8.3%15.4%0.163
  • La inyección se bloquea casi perfectamente (F1 92.3%, Δ=0.54): el agente detecta de forma fiable los intentos abiertos de insertar consejos inseguros (p. ej., deshabilitar la validación de entrada) antes de que lleguen al desarrollador.
  • El intercambio de entidades alcanza un 58% de exhaustividad (frente al 0% en TruthfulQA de dominio abierto): alterar un identificador CWE estructurado introduce inconsistencias entre documentos que las señales NLI pueden detectar.
  • La contradicción y la manipulación sutil aún evaden la detección (0% de exhaustividad): una recomendación silenciosamente debilitada no presenta ningún artefacto superficial y pasa la revisión — el caso peligroso y de baja visibilidad en un flujo de trabajo de seguridad.

Comparación de Tres LLM e Independencia del Umbral

Más allá del punto de operación τ=0.5, el Índice de Confianza tiene una señal fuerte e independiente del umbral en tres LLM (ejecuciones combinadas de estrategias mixtas):

LLMExactitud (τ=0.5)ROC-AUCτ* óptimo
Llama 3.3 70B91%0.810.71
Mistral 7B Instruct87%0.790.58
Qwen 3.5 35B69–71%0.730.43
  • El estilo de generación pesa más que el tamaño del modelo: Mistral 7B supera a Qwen 3.5 35B a pesar de ser ~5× más pequeño — las respuestas evasivas y verbosas de Qwen reducen la implicación NLI.
  • τ es un hiperparámetro específico del LLM: los tres modelos necesitan tres umbrales óptimos diferentes (0.71 / 0.58 / 0.43). Calibrar τ solo con puntuaciones de muestras limpias restaura la exactitud de Qwen del 65.5% al 74.5% al reducir los falsos positivos.
  • Los tres están muy por encima del azar (ROC-AUC > 0.70), por lo que la baja exactitud de Qwen en τ=0.5 es un artefacto de umbralización, no una ausencia de señal.

Estabilidad y Sobrecarga

  • La varianza entre ejecuciones es baja: en 5 repeticiones independientes, la configuración mixta obtiene 90.6 ± 0.5% de exactitud y 56.1 ± 1.3% de F1; la inyección es invariable en 99.0 ± 0.0%. Los veredictos están impulsados por la evidencia recuperada, no por la redacción de una única generación.
  • Sobrecarga: la evaluación añade ≈14.7 s/muestra (≈17× sobre el RAG base), dominada por hasta 20 pasadas NLI en CPU con K=5. Esto es adecuado para uso por lotes/asíncrono (p. ej., un gate de revisión de código/CI); se proyecta que la inferencia en GPU lo reduzca por debajo de 2 s.

Stack Tecnológico

  • LLMs: Llama 3.3 70B (principal), Qwen 3.5 35B y Mistral 7B Instruct (comparación) — clúster FARMI, Universidad de Tampere
  • Modelo NLI: facebook/bart-large-mnli
  • Embeddings: all-MiniLM-L6-v2 (384 dim), snowflake-arctic-embed2 (1024 dim)
  • Almacén de Vectores: FAISS (CPU)
  • Conjuntos de datos: TruthfulQA, FEVER (HuggingFace) y una base de conocimiento de codificación segura con 40 reglas curadas de OWASP Top 10 / CWE
  • Framework: Python 3.10+, PyTorch, Transformers, LangChain

Fórmula del Índice de Confianza

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

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

Se aplica un amortiguador no lineal cuando la probabilidad de envenenamiento supera 0.7: delta = 1 - 0.4 * (P - 0.70) / 0.30 — en P=1.0, la confianza se reduce en un 40%.

Nivel de ConfianzaRango de PuntuaciónSignificado
HIGH> 0.8Confiable
MEDIUM0.5 - 0.8Verificar si es importante
LOW0.3 - 0.5Probablemente tiene problemas
VERY_LOW< 0.3No confiar

Contribuciones

  • Un Agente de Evaluación autónomo que opera como middleware defensivo dentro del bucle de inferencia RAG
  • Un detector de envenenamiento de cinco señales con agregación ponderada por relevancia (lingüística, estructural, NLI intradocumental/entredocumentos, valor atípico semántico)
  • Un Índice de Confianza compuesto con un amortiguador no lineal para contextos de alta contaminación
  • Caracterización de una jerarquía de detección por estrategia (inyección resuelta → intercambio de entidades no detectado)
  • Evidencia de que el estilo de generación importa más que el tamaño del modelo, más un método de calibración de umbral por LLM
  • Un caso de uso SDLC de codificación segura (OWASP/CWE) en ingeniería de software
  • Un framework reproducible, un generador de ataques y una versión de experimentos

Artículo

  • Artículo de conferencia — Trustworthy RAG: An Evaluation Agent for Detecting Misinformation and Knowledge Poisoning in Generative AI Systems, ICSEA 2026. Fuentes LaTeX en [Conference_ICSEA2026/](https://github.com/gpt-laboratory/trustworthyrag/blob/HEAD/Conference_ICSEA2026/).

El PDF compilado no se incluye intencionadamente en esta versión; constrúyelo a partir de las fuentes LaTeX.

Autores y Contacto

Autores del artículo de conferencia ICSEA 2026 — Universidad de Tampere (TUNI).

Balkrishna Giri, investigador de máster, Facultad de Tecnologías de la Información y Ciencias de la Comunicación, Universidad de Tampere
Correo electrónico: [email protected], [email protected]

Md Toufique Hasan, investigador doctoral, GPT Lab, Facultad de Tecnologías de la Información y Ciencias de la Comunicación, Universidad de Tampere
Correo electrónico: [email protected]

Coautores — Facultad de Tecnologías de la Información y Ciencias de la Comunicación, Universidad de Tampere:

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

Desarrollado en GPT Lab, Universidad de Tampere.

Descargar herramienta