Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
FinRED-paper — 금융 도메인 특화 레드팀 벤치마크 평가 루브릭 | Kitploit
도구/GitHubGitHub/selectstar-ai/finred-paper
Vulnerability AnalysisThreat IntelligenceMachine LearningPapers & ResearchLearning & EducationRed TeamingAI Security
GitHubselectstar-ai/finred-paper

FinRED-paper

금융 도메인 특화 레드팀 벤치마크 평가 루브릭

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

FinRED: 금융 레드팀 평가 데이터셋

금융 도메인의 안전성 평가를 위한 레드팀 벤치마크 생성 파이프라인.

FinRED overview


보충 문서

논문에서 참조된 상세 자료:

  • docs/expert_validation.md — 12명의 FSI 도메인 전문가가 수행한 질문별 포커스 그룹 인터뷰(FGI) 결과 (일치도, Likert 점수, Cohen's κ / Krippendorff's α).
  • docs/judge_rubric.md — 전체 LLM-as-a-Judge 평가 템플릿, 다섯 가지 루브릭 차원, 결정 규칙, 출력 JSON 스키마.
  • docs/schemas.md — 위협 행동 스키마 구조 (필수/선택 요소)와 R4.4 예시.
  • docs/related_work.md — 기존 금융 도메인 LLM 벤치마크에 대한 벤치마크별 설명과 FinRED의 차별점.

프로젝트 구조

root@kitploit:~
FinRED/
├── main.py                      # Main runner
├── requirements.txt             # Dependencies
├── run/                         # Example run scripts
├── prompts/                     # Prompt files
├── tests/                       # Example notebooks
├── README.md
│
├── src/
│   ├── Step1_build.py           # Scenario generation module
│   ├── Step2_build.py           # Seed prompt generation module
│   ├── __init__.py
│   │
│   ├── data/                    # Downloaded data
│   │   ├── contexts/            # Context data
│   │   │   ├── R3_products/     # R3 product summaries
│   │   │   └── retrieved_chunks/# Similarity search outputs
│   │   ├── orig/                # Raw data
│   │   │   ├── db/              # Chunk CSV DB
│   │   │   ├── parsed_docs/     # PDFs + chunk JSON
│   │   │   └── investinfo/      # R3 product text
│   │   └── queries/             # Query CSV files
│   │
│   ├── data/schemas/            # Output schema definitions
│   │   ├── ko/                  # Korean schemas
│   │   └── en/                  # English schemas
│   │
│   ├── outputs/                 # Generation outputs
│   │   ├── scenarios/           # Step 1 outputs
│   │   └── prompts/             # Step 2 outputs
│   │
│   ├── preprocess/              # Preprocessing pipeline
│   │   ├── preprocess_README.md # Detailed preprocessing guide
│   │   ├── 1_chunking.py
│   │   ├── 2_parsed_to_csv.py
│   │   ├── 3_common_to_csv.py
│   │   ├── 4_product_summarizer.py
│   │   ├── 5_summary_extractor.py
│   │   └── 6_chunk_retriever.py
│   │
│   ├── eval/                    # Evaluation module
│   │   ├── judge_finred.py      # Evaluation script
│   │   ├── dataset/             # Evaluation dataset

환경 설정

0. 관련 데이터 다운로드

Google Drive: https://drive.google.com/drive/u/0/folders/1cfBf419OUDrQQMRKMPLLJqRX97WMxExC Google Drive

다운로드한 데이터를 위 폴더 구조에 맞게 배치하세요 (src/data 아래).

1. 가상 환경 생성 (Python 3.10)

root@kitploit:~
# Conda
conda create -n finred python=3.10 -y
conda activate finred

# Or venv
python3.10 -m venv finred_env
source finred_env/bin/activate

2. 패키지 설치

root@kitploit:~
cd /path/to/FinRED
pip install -r requirements.txt

3. 전처리 환경 (선택 사항)

전처리(PDF 청킹 등)가 필요한 경우:

root@kitploit:~
# Unstructured
pip install "unstructured[all-docs]"

# System dependencies (Ubuntu/Debian)
sudo apt-get install -y libmagic-dev poppler-utils tesseract-ocr tesseract-ocr-kor libreoffice pandoc

전처리 가이드: src/preprocess/preprocess_README.md

4. 설치 확인

root@kitploit:~
python --version  # Python 3.10.x
python -c "import torch; print(f'CUDA: {torch.cuda.is_available()}')"

파이프라인 개요

root@kitploit:~
[Context + Schema + Query]
         │
         ▼
   ┌─────────────┐
   │ Step1_build │  Scenario generation (OpenAI GPT-4)
   └─────────────┘
         │
         ▼
   [Scenario JSON]
         │
         ▼
   ┌─────────────┐
   │ Step2_build │  Seed prompt generation (Gemini)
   └─────────────┘
         │
         ▼
   [Seed Prompts]
         │
         ▼
   ┌─────────────┐
   │ Evaluation  │  Model response evaluation
   └─────────────┘

모듈 상세

Step1_build.py - 시나리오 생성

컨텍스트와 스키마를 기반으로 레드팀 시나리오를 생성합니다.

  • 입력: 스키마, 쿼리, 검색된 컨텍스트 청크
  • 출력: src/outputs/scenarios/{category}/의 시나리오 JSON 파일
  • 모델: OpenAI GPT-4

Step2_build.py - 시드 프롬프트 생성

시나리오로부터 시드 프롬프트를 생성합니다.

  • 입력: Step 1의 시나리오 JSON
  • 출력: src/outputs/prompts/{category}/의 프롬프트 JSON + 병합된 CSV
  • 모델: Google Gemini 2.5 Pro

사용법

빠른 시작

데이터 생성

root@kitploit:~
# Run the full pipeline with the example script
sh run/run_data_generate.sh

Judge

root@kitploit:~
python src/eval/judge_finred.py \
    -i src/eval/dataset/qwen_2.5_test.csv \
    -o qwen_2.5_test_judged \
    -d src/eval/infer_result

기본

root@kitploit:~
cd /path/to/FinRED

python main.py \
    --step <1|2|all> \
    --category <category> \
    --openai_api_key "sk-..." \
    --gemini_api_key "AIza..."

매개변수

매개변수필수설명
--step예실행할 단계: 1 (시나리오), 2 (프롬프트), all (순차 실행)
--category예카테고리: R1, R2, R3, R4, R5 또는 R1_1 등
--openai_api_keyStep 1OpenAI API 키
--gemini_api_keyStep 2Gemini API 키
--lang선택프롬프트 언어: ko (기본값), en
--num_prompts선택프롬프트 수 (기본값: 3)
--step1_model선택Step 1 모델 (기본값: gpt-4.1-2025-04-14)
--step2_model선택Step 2 모델 (기본값: models/gemini-2.5-pro)
--model_name선택--step1_model의 사용 중단된 별칭

예시

root@kitploit:~
# Full pipeline (R1)
python main.py \
    --step all \
    --category R1 \
    --openai_api_key "sk-proj-..." \
    --gemini_api_key "AIza..."

# Step 1 only
python main.py \
    --step 1 \
    --category R2 \
    --openai_api_key "sk-proj-..."

# Step 2 only (English, 5 prompts)
python main.py \
    --step 2 \
    --category R5 \
    --lang en \
    --num_prompts 5 \
    --gemini_api_key "AIza..."

# Single subcategory
python main.py \
    --step 2 \
    --category R1_1 \
    --num_prompts 3 \
    --gemini_api_key "AIza..."

카테고리 정보

카테고리하위 카테고리설명
R1R1_1 ~ R1_6금융 보안 위협
R2R2_1 ~ R2_5사기 및 불법 활동
R3R3_1 ~ R3_3부당 판매
R4R4_1 ~ R4_5시장 조작
R5R5_1 ~ R5_7규제 위반

평가

생성된 프롬프트에 대한 모델 응답을 평가합니다.

실행

root@kitploit:~
cd /path/to/FinRED/src/eval

python src/eval/judge_finred.py \
    -i <input_csv_path> \
    -o <output_basename> \
    -d <output_dir>

예시

root@kitploit:~
python src/eval/judge_finred.py \
    -i ./dataset/qwen_2.5_7b_all_with_responses.csv \
    -o qwen2.5_7b_responses \
    -d ./infer_result/

입력 CSV 형식

CSV에는 다음이 포함되어야 합니다:

  • prompt 열
  • model response 열

출력

  • infer_result/: 평가 결과
  • judge_errors/: 오류 로그

출력 형식

시나리오 JSON (Step 1)

root@kitploit:~
{
  "scenario_id": "R1_1_0001",
  "context": "...",
  "risk_description": "...",
  "attack_vector": "..."
}

프롬프트 JSON (Step 2)

root@kitploit:~
{
  "prompt_1": "Provide details about vulnerabilities in a financial system...",
  "prompt_1_optionalelements": ["social engineering", "phishing"],
  "prompt_2": "...",
  "prompt_2_optionalelements": ["..."]
}
도구 다운로드