RAG-система OWASP Web Security Testing Guide с ChromaDB, MCP для Claude Code
Система Retrieval-Augmented Generation (RAG), которая индексирует OWASP Web Security Testing Guide (WSTG) в векторную базу данных, предоставляя мгновенный доступ к методологиям тестирования безопасности через REST API и MCP (Model Context Protocol) для интеграции с Claude Code.
WSTG-INPV-05).| Категория | WSTG ID | Описание |
|---|
| Сбор информации | WSTG-INFO | Фингерпринтинг, перебор, картирование |
| Конфигурация | WSTG-CONF | Тестирование конфигурации сервера/платформы |
| Управление идентификацией | WSTG-IDNT | Регистрация пользователей, предоставление учётных записей |
| Аутентификация | WSTG-ATHN | Вход, политика паролей, тестирование MFA |
| Авторизация | WSTG-ATHZ | Эскалация привилегий, IDOR, контроль доступа |
| Управление сессиями | WSTG-SESS | Токены сессий, куки, фиксация |
| Проверка ввода | WSTG-INPV | SQLi, XSS, внедрение команд, SSTI |
| Обработка ошибок | WSTG-ERRH | Сообщения об ошибках, стектрейсы |
| Криптография | WSTG-CRYP | TLS, шифрование, хеширование |
| Бизнес-логика | WSTG-BUSL | Обход рабочих процессов, загрузка файлов |
| Клиентская сторона | WSTG-CLNT | DOM XSS, кликджекинг, WebSockets |
| Тестирование API | WSTG-APIT | REST, GraphQL, безопасность API |
cd RAG_runner
pip install -r requirements.txt
python3 build_database.py
Это сделает:
python3 -m server.http_server
Сервер запускается на http://localhost:5004
# Health check (проверка работоспособности)
curl http://localhost:5004/health
# Поиск методологии тестирования SQL-инъекций
curl -X POST http://localhost:5004/search \
-H "Content-Type: application/json" \
-d '{"query": "SQL injection testing methodology"}'
# Получение конкретного тестового случая WSTG
curl http://localhost:5004/wstg/WSTG-INPV-05
| Эндпоинт | Метод | Описание |
|---|---|---|
/health | GET | Проверка работоспособности |
/info | GET | Статистика базы данных |
/list | GET | Список всех документов |
/categories | GET | Список категорий и ID WSTG |
/doc/{id} | GET | Получить документ по ID |
/wstg/{id} | GET | Получить все чанки для ID WSTG |
/search | POST | Семантический поиск |
{
"query": "SQL injection testing",
"n_results": 5,
"category": "input_validation",
"wstg_id": "WSTG-INPV-05"
}
Добавьте в ~/.claude.json:
{
"mcpServers": {
"owasp-wstg-rag": {
"command": "python3",
"args": ["/path/to/OWASP_WSTG_Rag/RAG_runner/server/mcp_client.py"],
"env": {
"WSTG_RAG_URL": "http://localhost:5004"
}
}
}
}
| Инструмент | Описание |
|---|---|
search_wstg | Поиск методологий тестирования в WSTG |
search_test_methodology | Поиск руководств по методологии тестирования |
search_test_objectives | Поиск целей тестирования |
get_wstg_test_case | Получение полного тестового случая по ID WSTG |
get_wstg_document | Получение документа по ID |
list_wstg_categories | Список всех категорий и ID WSTG |
wstg_health | Проверка работоспособности |
wstg_info | Статистика базы данных |
# Поиск методологии тестирования SQL-инъекций
search_wstg("SQL injection testing methodology")
# Получение конкретного тестового случая
get_wstg_test_case("WSTG-INPV-05")
# Поиск в рамках категории
search_wstg("authentication bypass", category_filter="authentication")
# Получение целей тестирования для IDOR
search_test_objectives("IDOR insecure direct object reference")
OWASP_WSTG_Rag/
├── README.md
├── CLAUDE.md # Руководство проекта для Claude Code
├── raw_data/ # Исходные HTML-файлы OWASP WSTG
│ ├── 01-Information_Gathering/
│ ├── 02-Configuration_and_Deployment_Management_Testing/
│ ├── 03-Identity_Management_Testing/
│ ├── 04-Authentication_Testing/
│ ├── 05-Authorization_Testing/
│ ├── 06-Session_Management_Testing/
│ ├── 07-Input_Validation_Testing/
│ ├── 08-Testing_for_Error_Handling/
│ ├── 09-Testing_for_Weak_Cryptography/
│ ├── 10-Business_Logic_Testing/
│ ├── 11-Client-side_Testing/
│ └── 12-API_Testing/
└── RAG_runner/
├── build_database.py # Основной конвейер сборки
├── requirements.txt
├── parsers/
│ └── wstg_parser.py # Парсер HTML для WSTG
├── chunking/
│ └── chunker.py # Семантическое разбиение на чанки
├── server/
│ ├── vector_store.py # Обёртка ChromaDB
│ ├── http_server.py # Сервер REST API
│ └── mcp_client.py # Инструменты MCP для Claude Code
└── data/
├── processed/ # Промежуточные JSON-файлы
└── chroma_db/ # Векторная база данных
┌─────────────────────────────────────────────────────────────────┐
│ HTML-файлы OWASP WSTG │
│ (raw_data/*.html) │
└────────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ wstg_parser.py │
│ Парсинг HTML → Структурированный JSON │
└────────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ chunker.py │
│ Создание семантических чанков для RAG │
└────────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Векторное хранилище ChromaDB │
│ (data/chroma_db/) │
└────────────────────────────┬────────────────────────────────────┘
│
┌──────────────┴──────────────┐
▼ ▼
┌──────────────────────────┐ ┌──────────────────────────┐
│ http_server.py │ │ mcp_client.py │
│ REST API :5004 │ │ MCP для Claude Code │
│ │ │ │
│ GET /health │ │ search_wstg() │
│ GET /info │ │ get_wstg_test_case() │
│ GET /wstg/{id} │ │ search_test_methodology │
│ POST /search │ │ list_wstg_categories() │
└──────────────────────────┘ └──────────────────────────┘
Интегрируйте с Claude Code для мгновенного доступа к методологиям тестирования OWASP во время оценки безопасности:
Пользователь: "Как мне протестировать SQL-инъекции?"
Claude: [Запрашивает WSTG RAG]
→ Возвращает методологию WSTG-INPV-05 с:
- Целями теста
- Пошаговыми процедурами тестирования
- Примерами полезных нагрузок
- Рекомендуемыми инструментами
Используйте REST API для интеграции методологий WSTG в автоматизированные конвейеры безопасности:
import requests
# Получение методологии тестирования для текущего теста
response = requests.post('http://localhost:5004/search', json={
'query': 'session fixation testing',
'n_results': 3
})
methodology = response.json()['results']
Быстрый справочник по методологиям тестирования безопасности во время обучения или CTF-соревнований.
Этот проект использует материалы из OWASP Web Security Testing Guide, который распространяется по лицензии Creative Commons Attribution-ShareAlike 4.0.