Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
TrustworthyRAG — Um Agente de Avaliação para Detectar Desinformação e Envenenamento de Conhecimento em Sistemas de Geração Aumentada por Recuperação. | Kitploit
Ferramentas/GitHubGitHub/gpt-laboratory/trustworthyrag
Análise de CódigoAprendizado de MáquinaPapers e PesquisaSegurança de IADetecção de Anomalias
GitHubgpt-laboratory/trustworthyrag

TrustworthyRAG

Um Agente de Avaliação para Detectar Desinformação e Envenenamento de Conhecimento em Sistemas de Geração Aumentada por Recuperação.

Ver Repositório
há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

RAG Confiável

Um Agente de Avaliação para Detectar Desinformação e Envenenamento de Conhecimento em Sistemas de Geração Aumentada por Recuperação.

Visão Geral

Este projeto implementa um Framework RAG Confiável com um Agente de Avaliação integrado que avalia a confiabilidade das respostas RAG usando três componentes de análise complementares:

  • Verificador NLI - Verificação de consistência factual via Inferência de Linguagem Natural (BART-MNLI)
  • Detector de Envenenamento - Detecção de conteúdo adversário multissinal (linguístico, estrutural, semântico, NLI intra/entre documentos)
  • Calculadora de Índice de Confiança - Pontuação composta ponderada que combina factualidade, consistência e segurança contra envenenamento

O sistema produz um Trust Score (0-1) para cada resposta RAG, permitindo a detecção automatizada de ataques de envenenamento de conhecimento e conteúdo alucinado.

Este repositório é o artefato de pesquisa do artigo da conferência ICSEA 2026 de mesmo título. Consulte [Conference_ICSEA2026/](https://github.com/gpt-laboratory/trustworthyrag/blob/HEAD/Conference_ICSEA2026/) para os fontes LaTeX e a seção Paper abaixo.

Arquitetura

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

Estrutura do Projeto

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

Configuração

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

Executar a Suíte Completa de Experimentos

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

Isso executa todos os experimentos e gera automaticamente os gráficos:

  • Experimento principal TruthfulQA (100 amostras, envenenamento misto)
  • Experimentos por estratégia (100 amostras cada: injeção, contradição, troca de entidade, sutil)
  • Experimento no dataset FEVER (100 amostras)
  • Estudo de ablação (5 configurações de pesos, 60 amostras cada)

Outras Opções de Experimento

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)

O prompt interativo permite selecionar:

  • LLM: Llama 3.3 70B (principal), Qwen 3.5 35B ou Mistral 7B Instruct (comparação)
  • Embedding: all-MiniLM-L6-v2 (local) ou snowflake-arctic-embed2 (API)
  • K: Profundidade de recuperação — K=3 (mais rápido) ou K=5 (padrão, predefinido)

Você também pode fixar o gerador de forma não interativa via variável de ambiente LLM_MODEL (correspondente a configs/config.yaml e 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 Codificação Segura

Reproduza o experimento do assistente de codificação segura (40 regras OWASP/CWE) a partir da raiz do projeto. Ele reutiliza o ExperimentRunner + PoisonedDatasetGenerator existentes e grava os resultados em 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 Apenas os Gráficos

root@kitploit:~
python generate_charts.py

Executar Testes

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

Principais Resultados

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

Linha de base ingênua de confiança total: 85% (TruthfulQA), 85% (FEVER). O FEVER fica abaixo da linha de base — o Índice de Confiança exige calibração específica de domínio para afirmações factuais curtas.

Com intervalos de confiança de 95% (Wilson para proporções, bootstrap de percentil B=20,000 para F1), o resultado principal misto do TruthfulQA é: acurácia 91% (IC 83.8–95.2), recall 40% (IC 19.8–64.3), F1 57.1% (IC 25.0–80.0), Δ=0.225. Os intervalos são amplos porque cada execução tem apenas 15 amostras envenenadas, então os reportamos para evitar superestimar a precisão.

Detecção por Estratégia (TruthfulQA, 100 amostras cada)

Grade Fatorial 2×2 (K=3, TruthfulQA, 100 amostras)

Principais descobertas:

  • Invariância de embedding para o Llama: os dois modelos de embedding produzem resultados de detecção idênticos — o Índice de Confiança é orientado pelo LLM, não pela recuperação
  • Problema de estilo de geração do Qwen: saídas verbosas/evasivas reduzem o acarretamento do NLI para amostras limpas → 71% de acurácia, 14 pontos percentuais abaixo da linha de base ingênua de 85%
  • Resultado nulo de sensibilidade a K: K=5 produz desempenho de detecção idêntico ao K=3 para Llama 3.3 70B — a separação do Trust Score muda apenas 0.015; a detecção é limitada pela dificuldade da estratégia de ataque, não pela profundidade de recuperação

Caso de Uso SDLC de Codificação Segura (OWASP/CWE)

Uma aplicação de engenharia de software do agente: um assistente de codificação segura que recupera de uma base de conhecimento curada de 40 regras extraídas do OWASP Top 10 e CWE (ex.: consultas parametrizadas para injeção de SQL, hash adaptativo de senhas, configuração de TLS). Uma consulta de desenvolvedor recupera orientações que o Agente de Avaliação examina antes de o LLM emitir uma recomendação. Envenenamos 30% das regras com as cinco estratégias como payloads de segurança (ex.: uma diretiva CORRECTION: espúria, um identificador CWE trocado).

Detecção por estratégia (Llama 3.3 70B + all-MiniLM-L6-v2, K=5):

  • A injeção é bloqueada quase perfeitamente (F1 92.3%, Δ=0.54): o agente detecta de forma confiável tentativas explícitas de inserir conselhos não seguros (ex.: desativar a validação de entrada) antes que cheguem ao desenvolvedor.
  • A troca de entidade sobe para 58% de recall (vs. 0% no TruthfulQA de domínio aberto): alterar um identificador CWE estruturado introduz inconsistências entre documentos que os sinais de NLI conseguem capturar.
  • Contradição e manipulação sutil ainda escapam (0% de recall): uma recomendação silenciosamente enfraquecida não carrega nenhum artefato de superfície e passa pela revisão — o caso perigoso e de baixa visibilidade em um fluxo de trabalho de segurança.

Comparação de Três LLMs e Independência de Limiar

Além do ponto de operação τ=0.5, o Índice de Confiança tem um sinal forte e independente de limiar em três LLMs (execuções agrupadas de estratégia mista):

  • Estilo de geração > tamanho do modelo: o Mistral 7B supera o Qwen 3.5 35B apesar de ser ~5× menor — as respostas evasivas e verbosas do Qwen reduzem o acarretamento do NLI.
  • τ é um hiperparâmetro específico do LLM: os três modelos precisam de três limiares ótimos diferentes (0.71 / 0.58 / 0.43). Calibrar τ apenas com as pontuações limpas restaura a acurácia do Qwen de 65.5% → 74.5% ao reduzir os falsos positivos.
  • Os três estão bem acima do acaso (ROC-AUC > 0.70), portanto a fraca acurácia do Qwen em τ=0.5 é um artefato de limiarização, não uma ausência de sinal.

Estabilidade e Sobrecarga

  • A variância entre execuções é baixa: em 5 repetições independentes, a configuração mista atinge 90.6 ± 0.5% de acurácia e 56.1 ± 1.3% de F1; a injeção é invariante em 99.0 ± 0.0%. As decisões são orientadas pela evidência recuperada, não pela formulação de uma única geração.
  • Sobrecarga: a avaliação adiciona ≈14.7 s/amostra (≈17× sobre o RAG de linha de base), dominada por até 20 passadas de NLI na CPU com K=5. Isso é adequado para uso em lote/assíncrono (ex.: um portão de revisão de código/CI); a inferência em GPU deve reduzir isso para menos de 2 s.

Pilha de Tecnologias

  • LLMs: Llama 3.3 70B (principal), Qwen 3.5 35B e Mistral 7B Instruct (comparação) — cluster FARMI, Universidade de Tampere
  • Modelo NLI: facebook/bart-large-mnli
  • Embeddings: all-MiniLM-L6-v2 (384-dim), snowflake-arctic-embed2 (1024-dim)
  • Armazenamento de Vetores: FAISS (CPU)
  • Datasets: TruthfulQA, FEVER (HuggingFace) e uma base de conhecimento (KB) de codificação segura com 40 regras selecionadas do OWASP Top 10 / CWE
  • Framework: Python 3.10+, PyTorch, Transformers, LangChain

Fórmula do Índice de Confiança

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

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

Um amortecedor não linear é aplicado quando a probabilidade de envenenamento excede 0.7: delta = 1 - 0.4 * (P - 0.70) / 0.30 — em P=1.0, a confiança é reduzida em 40%.

Contribuições

  • Um Agente de Avaliação autônomo que atua como middleware defensivo dentro do loop de inferência do RAG
  • Um detector de envenenamento de cinco sinais com agregação ponderada por relevância (linguístico, estrutural, NLI intra-/entre documentos, outlier semântico)
  • Um Índice de Confiança composto com amortecedor não linear para contextos de alta contaminação
  • Caracterização de uma hierarquia de detecção por estratégia (injeção resolvida → troca de entidade não detectada)
  • Evidência de que o estilo de geração importa mais que o tamanho do modelo, além de um método de calibração de limiar por LLM
  • Um caso de uso SDLC de codificação segura (OWASP/CWE) em engenharia de software
  • Um framework reproduzível, gerador de ataques e versão de experimentos

Paper

  • Artigo de conferência — Trustworthy RAG: An Evaluation Agent for Detecting Misinformation and Knowledge Poisoning in Generative AI Systems, ICSEA 2026. Fontes LaTeX em [Conference_ICSEA2026/](https://github.com/gpt-laboratory/trustworthyrag/blob/HEAD/Conference_ICSEA2026/).

O PDF compilado não é incluído intencionalmente nesta versão; compile-o a partir das fontes LaTeX.

Autores & Contato

Autores do artigo da conferência ICSEA 2026 — Universidade de Tampere (TUNI).

Balkrishna Giri, Pesquisador de Mestrado, Faculdade de Tecnologia da Informação e Ciências da Comunicação, Universidade de Tampere
E-mail: [email protected], [email protected]

Md Toufique Hasan, Pesquisador de Doutorado, GPT Lab, Faculdade de Tecnologia da Informação e Ciências da Comunicação, Universidade de Tampere
E-mail: [email protected]

Coautores — Faculdade de Tecnologia da Informação e Ciências da Comunicação, Universidade de Tampere:

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

Desenvolvido no GPT Lab, Universidade de Tampere.

Baixar ferramenta
DatasetAcuráciaPrecisãoRecallF1 Scorevs. Linha de Base
TruthfulQA (misto)91%100%40%57.1%+7%
FEVER (execução completa)73%20%26.7%22.9%−12%
EstratégiaAcuráciaPrecisãoRecallF1Separação
Injeção99%93.8%100%96.8%0.498
Contradição92%88.9%53.3%66.7%0.311
Sutil88%100%20.0%33.3%0.149
Troca de Entidade85%—0%0%0.053
LLMEmbeddingAcuráciaPrecisãoRecallF1Confiança LimpaSeparação
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
EstratégiaAcuráciaPrecisãoRecallF1Δ
Injeção de instrução97.5%85.7%100.0%92.3%0.542
Contradição85.0%—0.0%0.0%0.156
Manipulação sutil85.0%—0.0%0.0%0.066
Troca de entidade72.5%29.2%58.3%38.9%0.291
Misto86.2%100.0%8.3%15.4%0.163
LLMAcurácia (τ=0.5)ROC-AUCτ* Ótimo
Llama 3.3 70B91%0.810.71
Mistral 7B Instruct87%0.790.58
Qwen 3.5 35B69–71%0.730.43
Nível de ConfiançaFaixa de PontuaçãoSignificado
ALTO> 0.8Confiável
MÉDIO0.5 - 0.8Verifique se for importante
BAIXO0.3 - 0.5Provavelmente tem problemas
MUITO BAIXO< 0.3Não confie