Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
TrustworthyRAG — 검색 증강 생성(RAG) 시스템에서 허위 정보 및 지식 중독을 탐지하기 위한 평가 에이전트 | Kitploit
도구/GitHubGitHub/gpt-laboratory/trustworthyrag
Code AnalysisMachine LearningPapers & ResearchAI SecurityAnomaly Detection
GitHubgpt-laboratory/trustworthyrag

TrustworthyRAG

검색 증강 생성(RAG) 시스템에서 허위 정보 및 지식 중독을 탐지하기 위한 평가 에이전트

저장소 보기
1개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Trustworthy RAG

검색 증강 생성(Retrieval-Augmented Generation) 시스템에서 오정보(misinformation)와 지식 중독(knowledge poisoning)을 탐지하는 평가 에이전트(Evaluation Agent)입니다.

개요

이 프로젝트는 세 가지 상호 보완적 분석 구성 요소를 사용하여 RAG 응답의 신뢰성을 평가하는 통합 평가 에이전트(Evaluation Agent) 를 갖춘 신뢰할 수 있는 RAG 프레임워크(Trustworthy RAG Framework) 를 구현합니다:

  • NLI 검증기(NLI Verifier) - 자연어 추론(Natural Language Inference, BART-MNLI)을 통한 사실적 일관성 검증
  • 중독 탐지기(Poison Detector) - 다중 신호 적대적 콘텐츠 탐지 (언어적, 구조적, 의미적, 문서 내/문서 간 NLI)
  • 신뢰 지수 계산기(Trust Index Calculator) - 사실성, 일관성, 중독 안전성을 결합한 가중 합성 점수

이 시스템은 모든 RAG 응답에 대해 신뢰 점수(Trust Score) (0-1)를 생성하여 지식 중독 공격과 환각(hallucination) 콘텐츠를 자동으로 탐지할 수 있게 합니다.

이 저장소는 동일한 제목의 ICSEA 2026 학술대회 논문의 연구 산출물입니다. LaTeX 소스는 [Conference_ICSEA2026/](https://github.com/gpt-laboratory/trustworthyrag/blob/HEAD/Conference_ICSEA2026/)에서 확인할 수 있으며, 아래의 논문(Paper) 섹션도 참조하세요.

아키텍처

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

프로젝트 구조

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

설정

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.

사용법

전체 실험 제품군 실행

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

이 명령은 모든 실험을 실행하고 차트를 자동으로 생성합니다:

  • TruthfulQA 메인 실험 (100개 샘플, 혼합 중독)
  • 전략별 실험 (각 100개 샘플: 주입, 모순, 엔터티 교체, 미묘한 변조)
  • FEVER 데이터셋 실험 (100개 샘플)
  • 절제 연구(ablation study) (5개 가중치 구성, 각 60개 샘플)

기타 실험 옵션

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)

대화형 프롬프트에서 다음을 선택할 수 있습니다:

  • LLM: Llama 3.3 70B (기본), Qwen 3.5 35B 또는 Mistral 7B Instruct (비교)
  • 임베딩(Embedding): all-MiniLM-L6-v2 (로컬) 또는 snowflake-arctic-embed2 (API)
  • K: 검색 깊이 — K=3 (더 빠름) 또는 K=5 (표준, 기본값)

LLM_MODEL 환경 변수를 통해 비대화형으로 생성기(generator)를 고정할 수도 있습니다 (configs/config.yaml 및 run_experiment.py의 MODEL_DESCRIPTIONS와 일치):

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

보안 코딩 SDLC 사용 사례

프로젝트 루트에서 보안 코딩 어시스턴트 실험(40개 OWASP/CWE 규칙)을 재현합니다. 기존 ExperimentRunner + PoisonedDatasetGenerator를 재사용하며 결과를 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.

차트만 다시 생성

root@kitploit:~
python generate_charts.py

테스트 실행

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

주요 결과

주요 결과 (Llama 3.3 70B + all-MiniLM-L6-v2, TruthfulQA, K=5, 100개 샘플)

항상 신뢰하는 단순 기준(naive always-trust baseline): 85% (TruthfulQA), 85% (FEVER). FEVER는 기준 대비 낮은 성능을 보입니다 — 신뢰 지수(Trust Index)는 짧은 사실적 주장에 대해 도메인별 보정이 필요합니다.

95% 신뢰 구간(비율은 Wilson, F1은 백분위 부트스트랩 B=20,000)을 적용하면, 주요 TruthfulQA 혼합 결과는 다음과 같습니다: 정확도 91% (CI 83.8–95.2), 재현율 40% (CI 19.8–64.3), F1 57.1% (CI 25.0–80.0), Δ=0.225. 각 실행에 중독 샘플이 15개뿐이므로 구간이 넓으며, 정밀도를 과장하지 않도록 이를 보고합니다.

전략별 탐지 (TruthfulQA, 각 100개 샘플)

2×2 요인 그리드 (K=3, TruthfulQA, 100개 샘플)

주요 발견 사항:

  • Llama의 임베딩 불변성: 두 임베딩 모델 모두 동일한 탐지 결과를 생성 — 신뢰 지수는 검색 기반이 아닌 LLM 기반으로 동작합니다
  • Qwen 생성 스타일 문제: 장황하거나 모호하게 회피하는(hedged) 출력이 클린 샘플의 NLI 함의(entailment)를 낮춤 → 71% 정확도로 85% 단순 기준보다 14퍼센트포인트 낮음
  • K 민감도 무효 결과(null result): Llama 3.3 70B에서 K=5는 K=3과 동일한 탐지 성능을 생성 — 신뢰 점수 분리도는 0.015만 변경됨; 탐지는 검색 깊이가 아닌 공격 전략의 난이도에 의해 병목이 발생합니다

보안 코딩 SDLC 사용 사례 (OWASP/CWE)

이 에이전트의 소프트웨어 공학 응용 사례: OWASP Top 10 및 CWE에서 도출된 40개 규칙으로 구성된 선별된 지식 베이스에서 검색하는 보안 코딩 어시스턴트입니다 (예: SQL 인젝션을 위한 매개변수화된 쿼리, 적응형 비밀번호 해싱, TLS 구성). 개발자 쿼리는 LLM이 권장 사항을 생성하기 전에 평가 에이전트가 검열하는 지침을 검색합니다. 30%의 규칙에 다섯 가지 전략을 보안 페이로드로 중독시킵니다 (예: 가짜 CORRECTION: 지시문, 교체된 CWE 식별자).

전략별 탐지 (Llama 3.3 70B + all-MiniLM-L6-v2, K=5):

  • 주입은 거의 완벽하게 차단됩니다 (F1 92.3%, Δ=0.54): 에이전트는 안전하지 않은 조언(예: 입력 검증 비활성화)을 삽입하려는 명백한 시도를 개발자에게 도달하기 전에 안정적으로 감지합니다.
  • 엔터티 교체는 재현율 58%로 상승 (오픈 도메인 TruthfulQA의 0% 대비): 구조화된 CWE 식별자를 변경하면 NLI 신호가 감지할 수 있는 문서 간 불일치가 발생합니다.
  • 모순과 미묘한 조작은 여전히 탐지를 회피합니다 (재현율 0%): 조용히 약화된 권장 사항은 표면적 흔적을 남기지 않아 검토를 통과합니다 — 보안 워크플로에서 위험하고 가시성이 낮은 사례입니다.

3-LLM 비교 및 임계값 독립성

τ=0.5 운용 지점을 넘어, 신뢰 지수(Trust Index)는 세 LLM에 걸쳐 강력한 임계값 독립적 신호를 가집니다 (혼합 전략 실행 풀링):

  • 모델 크기보다 생성 스타일이 중요합니다: Mistral 7B는 약 5배 더 작음에도 Qwen 3.5 35B를 능가합니다 — Qwen의 모호하고 장황한 답변은 NLI 함의를 낮춥니다.
  • τ는 LLM별 하이퍼파라미터입니다: 세 모델은 서로 다른 세 가지 최적 임계값(0.71 / 0.58 / 0.43)이 필요합니다. 클린 전용 점수로 τ를 보정하면 오탐(false positive)을 줄여 Qwen의 정확도를 65.5% → 74.5%로 회복시킵니다.
  • 세 모델 모두 우연 수준을 훨씬 상회하므로(ROC-AUC > 0.70), τ=0.5에서 Qwen의 낮은 정확도는 신호 부재가 아닌 임계값 설정(thresholding) 아티팩트입니다.

안정성 및 오버헤드

  • 실행 간 변동이 낮습니다: 5회의 독립적인 반복 실행에서 혼합 구성은 90.6 ± 0.5% 정확도와 56.1 ± 1.3% F1을 기록합니다; 주입은 99.0 ± 0.0%로 불변입니다. 판정은 단일 생성 문구가 아닌 검색된 증거에 의해 결정됩니다.
  • 오버헤드: 평가는 샘플당 약 14.7초(기준 RAG 대비 약 17배)를 추가하며, K=5에서 최대 20회의 CPU NLI 패스가 지배적입니다. 이는 배치/비동기 사용(예: 코드 리뷰/CI 게이트)에 적합합니다; GPU 추론은 이를 2초 미만으로 줄일 것으로 예상됩니다.

기술 스택

  • LLM: Llama 3.3 70B (기본), Qwen 3.5 35B 및 Mistral 7B Instruct (비교) — FARMI 클러스터, 탐페레 대학교(Tampere University)
  • NLI 모델: facebook/bart-large-mnli
  • 임베딩: all-MiniLM-L6-v2 (384차원), snowflake-arctic-embed2 (1024차원)
  • 벡터 스토어: FAISS (CPU)
  • 데이터셋: TruthfulQA, FEVER (HuggingFace), 그리고 40개의 선별된 OWASP Top 10 / CWE 규칙으로 구성된 보안 코딩 KB
  • 프레임워크: Python 3.10+, PyTorch, Transformers, LangChain

신뢰 지수 공식

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

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

중독 확률이 0.7을 초과하면 비선형 감쇠기(dampener)가 적용됩니다: delta = 1 - 0.4 * (P - 0.70) / 0.30 — P=1.0에서 신뢰도는 40% 감소합니다.

신뢰 수준

기여 사항

  • RAG 추론 루프 내부에서 방어적 미들웨어로 작동하는 자율 평가 에이전트(Evaluation Agent)
  • 관련성 가중 집계를 사용하는 5-신호 중독 탐지기(five-signal poison detector) (언어적, 구조적, 문서 내/문서 간 NLI, 의미적 이상치)
  • 고오염(high-contamination) 컨텍스트를 위한 비선형 감쇠기를 갖춘 복합 신뢰 지수(Trust Index)
  • 전략별 탐지 계층 구조의 특성화 (주입 해결 → 엔터티 교체 미탐지)
  • 생성 스타일이 모델 크기보다 중요하다는 증거 및 LLM별 임계값 보정(per-LLM threshold calibration) 방법
  • 소프트웨어 공학 보안 코딩(OWASP/CWE) SDLC 사용 사례
  • 재현 가능한 프레임워크, 공격 생성기, 실험 릴리스

논문

  • 학술대회 논문 — Trustworthy RAG: An Evaluation Agent for Detecting Misinformation and Knowledge Poisoning in Generative AI Systems, ICSEA 2026. LaTeX 소스는 [Conference_ICSEA2026/](https://github.com/gpt-laboratory/trustworthyrag/blob/HEAD/Conference_ICSEA2026/)에 있습니다.

컴파일된 PDF는 이 릴리스에 의도적으로 포함되지 않았습니다. LaTeX 소스에서 직접 빌드하세요.

저자 및 연락처

ICSEA 2026 학술대회 논문 저자 — 탐페레 대학교(Tampere University, TUNI).

Balkrishna Giri, 석사 연구원, 정보기술 및 커뮤니케이션 과학 학부(Faculty of Information Technology and Communication Sciences), 탐페레 대학교
이메일: [email protected], [email protected]

Md Toufique Hasan, 박사 과정 연구원, GPT Lab, 정보기술 및 커뮤니케이션 과학 학부, 탐페레 대학교
이메일: [email protected]

공동 저자 — 정보기술 및 커뮤니케이션 과학 학부, 탐페레 대학교:

  • Jussi Rasku 박사 — [email protected]
  • Muhammad Waseem 박사 — [email protected]
  • Pekka Abrahamsson 교수 박사 — [email protected]

탐페레 대학교 GPT Lab에서 개발되었습니다.

도구 다운로드
데이터셋정확도정밀도재현율F1 점수기준 대비
TruthfulQA (혼합)91%100%40%57.1%+7%
FEVER (전체 실행)73%20%26.7%22.9%−12%
전략정확도정밀도재현율F1분리도
주입(Injection)99%93.8%100%96.8%0.498
모순(Contradiction)92%88.9%53.3%66.7%0.311
미묘한 변조(Subtle)88%100%20.0%33.3%0.149
엔터티 교체(Entity Swap)85%—0%0%0.053
LLM임베딩정확도정밀도재현율F1클린 신뢰도분리도
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
전략정확도정밀도재현율F1Δ
명령어 주입(Instruction injection)97.5%85.7%100.0%92.3%0.542
모순(Contradiction)85.0%—0.0%0.0%0.156
미묘한 조작(Subtle manipulation)85.0%—0.0%0.0%0.066
엔터티 교체(Entity swap)72.5%29.2%58.3%38.9%0.291
혼합(Mixed)86.2%100.0%8.3%15.4%0.163
LLM정확도 (τ=0.5)ROC-AUC최적 τ*
Llama 3.3 70B91%0.810.71
Mistral 7B Instruct87%0.790.58
Qwen 3.5 35B69–71%0.730.43
점수 범위
의미
HIGH> 0.8신뢰할 수 있음
MEDIUM0.5 - 0.8중요한 경우 확인 필요
LOW0.3 - 0.5문제가 있을 가능성이 높음
VERY_LOW< 0.3신뢰하지 마십시오