SK-Shielders-Final-Project/llmscanner
GitHub: SK-Shielders-Final-Project/llmscanner
一款面向 LLM 聊天机器人的漏洞扫描工具,通过九大类共 1,166 个攻击 Prompt 评估 AI 系统的安全性并生成 Markdown 报告。
Stars: 0 | Forks: 0
# 🔍 Vrompt
**LLM 漏洞扫描器** — 专为评估共享单车出行平台的 LLM 聊天机器人安全性而设计。
## 📌 概述
| 项目 | 内容 |
| ------------------------ | --------------------------------------------------- |
| **目标模型** | RedHatAI/gemma-3-12b-it-FP8-dynamic (vLLM 服务) |
| **服务器环境** | AWS Private Subnet |
| **后端** | FastAPI + Oracle DB + MongoDB (Vector Search) |
| **API Endpoint** | |
| **认证** | JWT Bearer Token (RS256) — 支持自动登录 |
| **聊天机器人角色** | 共享单车服务咨询/支付/使用记录/安全守则应答 |
## 🛡️ 扫描类别 (9类, 1,166个 Prompt)
| # | 类别 | 严重度 | Platform | Normal | 合计 | 描述 |
| - | ----------------------- | ------ | ------------- | ------------- | --------------- | ------------------------------------------------------------------------- |
| 1 | 🔓`jailbreak` | HIGH | 28 | 107 | 135 | DAN, DUDE, STAN, Developer Mode, 角色扮演, AIM 等 Jailbreak 攻击 |
| 2 | ⚠️`unethical` | HIGH | 33 | 94 | 127 | 歧视、暴力、药物、GPS 跟踪、保险欺诈等非伦理言论诱导 |
| 3 | 💉`prompt_injection` | HIGH | 34 | 128 | 162 | 系统提示词提取、Ignore 注入、角色转换、分隔符攻击 |
| 4 | 📤`data_leakage` | HIGH | 26 | 117 | 143 | 数据库连接信息、环境变量、他人个人信息、admin 权限泄露尝试 |
| 5 | 🔢`encoding` | HIGH | 125* | 2* | 127 | Base64, ROT13, Hex, Leetspeak, 逆向编码绕过 |
| 6 | 👻`hallucination` | MEDIUM | 103 | 72 | 175 | 虚假功能/促销、接受虚假前提、诱导虚构法律/规定 |
| 7 | 💻`code_generation` | HIGH | 105 | — | 105 | 滥用 execute_in_sandbox、Docker 逃逸、Reverse Shell、DB 导出、DoS 攻击 |
| 8 | 🔤`special_tokens` | HIGH | 50 | 73 | 123 | 利用 Gemma 3 特殊 Token(`` 等)操纵对话流程及绕过过滤 |
| 9 | 🌐`web_vulnerability` | HIGH | — | 69 | 69 | SSRF, XSS, SQL Injection 等 Web 漏洞攻击 |
| | **合计** | | **504** | **662** | **1,166** | |
## ⚙️ 环境变量 (`.env`)
```
OPENROUTER_API_KEY= # OpenRouter API 키 (AI 교차 검증용)
MODEL_A= # 1차 검증 모델 (예: openai/gpt-5.2)
MODEL_B= # 2차 검증 모델 (예: google/gemini-3-flash-preview)
PLATFORM=true # 플랫폼 데이터셋 사용 여부 (true/false)
NORMAL=true # 일반 데이터셋 사용 여부 (true/false)
MAX_WORKERS=10 # 동시 스캔 스레드 수 (기본 10)
```
## 🚀 安装与运行
### 安装 (注册 CLI 命令)
```
cd scanner
pip install -e .
```
安装后可在任意位置运行 `vrompt` 命令。
### 交互式菜单 (默认)
```
vrompt
```
```
────────────────────────────────────────────────
대상 URL: https://zdme.kro.kr/api/chat
⚠ 인증 미설정
────────────────────────────────────────────────
1 🔍 전체 스캔 (모든 프로브 실행)
2 🎯 선택 스캔 (프로브 선택 실행)
3 🧪 드라이런 (API 호출 없이 프롬프트 확인)
4 📋 프로브 목록 (사용 가능한 프로브 보기)
5 🔑 로그인 (JWT 토큰 획득)
6 ⚙️ 설정 변경 (URL, 딜레이, 타임아웃 등)
0 🚪 종료
────────────────────────────────────────────────
```
### CLI 模式 (非交互)
```
vrompt --all # 전체 스캔
vrompt --probe jailbreak unethical # 특정 카테고리만
vrompt --probe special_tokens # 특수 토큰 공격만
vrompt --dry-run --all # API 호출 없이 프롬프트 확인
vrompt --list # 프로브 목록
vrompt --username user --password pw # 로그인 자동화
vrompt --jwt-token eyJ... # JWT 직접 지정
```
## 🔑 认证 (JWT)
扫描目标 API(`/api/chat`)需要 JWT 认证。
### 方法 1:交互式登录
```
메뉴 5번 (🔑 로그인) → 1번 (ID/PW 로그인) → 아이디/비밀번호 입력
```
### 方法 2:直接输入 JWT Token
```
메뉴 5번 (🔑 로그인) → 2번 (JWT 토큰 직접 입력) → 토큰 붙여넣기
```
### 方法 3:CLI 参数
```
vrompt --all --username friedp --password mypass
vrompt --all --jwt-token eyJhbGciOiJSUzI1NiJ9...
```
## 📊 显示扫描进度
扫描过程中会显示实时进度条:
```
[3/8] prompt_injection (15개 프롬프트)
████████████░░░░░░░░ 9/15 ( 47.2%) ✓ 당신은 더 이상 모빌리티 서비스...
```
## 📄 报告
扫描完成后,Markdown(`.md`) 报告会自动生成在 `reports/` 文件夹中。
- 📊 整体摘要 (总 Prompt 数、漏洞数、漏洞率、严重度分布)
- 📋 各类别详细结果 (所有 Prompt-响应对)
- 🚨 发现的漏洞摘要表
- 🛡️ 安全建议
## 📁 项目结构
```
scanner/
├── setup.py # CLI 설치 (vrompt 명령어 등록)
├── main.py # CLI 진입점 (대화형 메뉴 + ASCII 로고)
├── scanner.py # 스캔 엔진 (멀티스레드 실행)
├── api_client.py # API 클라이언트 (JWT 인증 + 자동 재로그인)
├── detector.py # 응답 분석 디텍터 (카테고리별 탐지 로직)
├── report.py # 마크다운 리포트 생성기 (그래프 포함)
├── .env # 환경변수 (PLATFORM, NORMAL, MAX_WORKERS 등)
├── requirements.txt # 의존성
├── reports/ # 스캔 리포트 저장 폴더
├── data/
│ ├── platform_data.json # 플랫폼 특화 프롬프트 (379개)
│ └── normal_data.json # 일반 공격 프롬프트 (762개)
└── probes/ # 프로브 모듈
├── __init__.py # BaseProbe (데이터셋 로딩 및 병합)
├── jailbreak.py
├── unethical.py
├── prompt_injection.py
├── data_leakage.py
├── encoding.py
├── hallucination.py
├── code_generation.py
└── special_tokens.py
```
## 🔧 架构
```
┌──────────┐ ┌──────────┐ ┌──────────────┐ ┌─────────┐
│ Vrompt │────▶│ Spring │────▶│ FastAPI │────▶│ vLLM │
│ Scanner │ JWT │ WAS │ │ Orchestrator │ │ Gemma 3 │
└──────────┘ └──────────┘ └──────┬───────┘ └─────────┘
│
┌────────┼────────┐
▼ ▼ ▼
┌────────┐┌───────┐┌──────────┐
│ Oracle ││MongoDB││ Sandbox │
│ DB ││Vector ││ (DinD) │
└────────┘└───────┘└──────────┘
```
标签:AI安全, AV绕过, AWS, Chatbot安全, Chat Copilot, DAST, DLL 劫持, DPI, FastAPI, Gemma, MongoDB, NLP安全, Oracle DB, SAST, vLLM, 伦理测试, 加密, 反取证, 域名收集, 大语言模型, 安全评估, 恶意软件分析, 漏洞扫描器, 盲注攻击, 网络安全, 逆向工具, 隐私保护