RAG PROJECT
1. 개요
최근 대규모 언어 모델(Large Language Model, LLM)은 다양한 분야에서 활용되며, 보안 학습에서도 빠른 개념 이해를 돕는 도구로 자리 잡고 있다. 그러나 LLM은 종종 근거가 명확하지 않은 응답(할루시네이션)을 생성하며, 이는 보안 분야에서 심각한 신뢰성 문제를 야기할 수 있다.
보안 영역에서는 취약점, 공격 기법, 대응 방안 등이 모두 공식 문서(NIST, OWASP, CIS 등)를 기반으로 검증되어야 한다. 따라서 단순 생성형 모델이 아닌, 문서 기반 근거 중심 응답 구조가 필요하다.
이에 본 프로젝트에서는 RAG(Retrieval-Augmented Generation) 구조를 적용하여, 신뢰 가능한 보안 문서를 기반으로 답변을 생성하는 보안 학습 도우미 시스템을 설계 및 구현하였다.
2. 문제 정의
기존 LLM 기반 보안 학습 방식은 다음과 같은 한계를 가진다.
2.1 근거 없는 응답 생성
LLM은 학습된 패턴을 기반으로 답변을 생성하기 때문에, 실제 문서와 일치하지 않는 정보도 자연스럽게 생성하는 문제가 존재한다. 이는 학습 신뢰도를 저하시킨다.
2.2 보안 문서 기반 학습의 필요성
보안 지식은 OWASP, NIST, CVE 등 공식 문서를 기반으로 정의된다. 그러나 기존 LLM은 이러한 문서를 직접 참조하지 않기 때문에 최신 표준과 불일치하는 응답이 발생할 수 있다.
2.3 방대한 데이터와 비효율성
보안 문서는 방대한 양을 가지며 지속적으로 업데이트된다.
이를 수동으로 탐색하고 비교하는 과정은 비효율적이며 학습 부담을 증가시킨다.
3. 연구 목표
본 시스템의 주요 목표는 다음과 같다.
- 문서 기반 근거 중심 응답 생성
- LLM의 할루시네이션 최소화
- 보안 문서 간 자동 요약 및 비교 기능 제공
- 각 응답에 대한 출처 명시 및 신뢰도 표시
4. 시스템 구조
본 시스템은 RAG 구조를 기반으로 설계되었으며, 전체 흐름은 다음과 같다.
사용자 질의
↓
질의 분석 (LLM)
↓
벡터 검색 (Qdrant)
↓
정확 데이터 조회 (PostgreSQL)
↓
문맥 기반 응답 생성 (LLM)
↓
출처 포함 결과 출력
특징
- 검색 + 생성 결합 구조
- 단순 AI가 아닌 문서 기반 AI 시스템
5. 개발 과정
본 프로젝트는 오픈소스인 Penetration Testing RAG를 기반으로 진행되었으며,
다음과 같은 단계로 개발이 이루어졌다.
5.1 오픈소스 분석
초기에는 코드 구조 파악이 가장 어려운 부분이었다. 이를 해결하기 위해 다음과 같은 방식으로 접근하였다.
- README 분석을 통해 전체 구조 이해
- 핵심 파일(pen_test_rag.py) 중심으로 흐름 파악
- 데이터 흐름(CSV → DB → 검색 → 생성) 구조 분석
5.2 환경 구축 및 실행
git clone https://github.com/CyberScienceLab/Penetration_Testing_Rag.git
pip install -r requirements.txt
실행 과정에서 다음과 같은 문제를 경험하였다.
오류: PyMuPDF 관련 문제
- ModuleNotFoundError: No module named ‘frontend’
해결 방법
pip uninstall fitz
pip install PyMuPDF
5.3 데이터 처리 및 인덱싱
- Exploit-DB 기반 데이터 수집
- CSV → PostgreSQL 저장
- 텍스트 → Qdrant 벡터 임베딩
이를 통해 검색 가능한 구조를 구축하였다.
5.4 시스템 개선
기존 오픈소스의 한계를 보완하기 위해 다음과 같은 기능을 추가하였다.
(1) 신뢰도 기반 재정렬 (Trust Level)
보안 데이터의 신뢰도를 다음과 같이 정의하였다.
수준 / 기준
- High / OWASP, NIST, CVE
- Medium / Exploit-DB
- Low / 블로그, 포럼
검색 결과를 신뢰도 기반으로 재정렬하여 정확도 향상
(2) 출처 기반 응답 생성
기존 : 단순 텍스트 응답
개선:
{
“description”: “…”,
“source”: “OWASP”,
“trust_level”: “high”
}
근거 기반 학습 가능
(3) 검색 구조 개선
- 기존 : 단순 벡터 검색
- 개선 : Hybrid Search (BM25 + Dense)
검색 정확도 및 문맥 적합성 향상
6. 구현 결과 (영상)
다음 영상은 본 시스템의 실제 구현 및 동작 과정을 보여준다. 구현 영상 보러가기
주요 기능:
- 자연어 질문 입력
- 관련 exploit 자동 검색
- 문서 기반 답변 생성
- 출처 및 정보 제공
7. 기술 구성
모듈기술
- 전처리 / PyPDF, unstructured
- 임베딩 / OpenAI Embedding
- 벡터 / DB Qdrant
- 검색 / BM25 + Dense Hybrid
- 생성 / LLaMA / GPT
- 평가 / RAGAS, Precision@k
8. 기대 효과
본 시스템을 통해 다음과 같은 효과를 기대할 수 있다.
- 보안 학습의 정확성 향상
- 출처 기반 신뢰성 확보
- 문서 비교 및 요약을 통한 학습 효율 증가
- LLM의 한계였던 할루시네이션 문제 완화
9. 결론
본 연구에서는 RAG 구조를 활용하여, 기존 LLM의 한계를 극복하고
문서 기반의 신뢰성 있는 보안 학습 시스템을 구현하였다.
특히, 검색 기반 구조를 도입함으로써
단순 생성형 AI를 넘어 근거 중심 AI 시스템으로 발전시킬 수 있었다.