نظام RAG لدليل اختبار أمان الويب من OWASP مع ChromaDB وMCP لـ Claude Code
نظام RAG (التوليد المعزز بالاسترجاع) يقوم بفهرسة دليل اختبار الأمان لـ OWASP WSTG في قاعدة بيانات متجهة، مما يوفر وصولاً فوريًا إلى منهجيات اختبار الأمان عبر واجهة REST API وبروتوكول سياق النموذج (MCP) للتكامل مع Claude Code.
WSTG-INPV-05)| الفئة | معرف WSTG | الوصف |
|---|
| جمع المعلومات | 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، clickjacking، 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
# التحقق من الصحة
curl http://localhost:5004/health
# البحث عن اختبار SQL injection
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 | سرد الفئات ومعرفات WSTG |
/doc/{id} | GET | الحصول على مستند بواسطة المعرف |
/wstg/{id} | GET | الحصول على جميع الأجزاء لمعرف 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 | الحصول على حالة اختبار كاملة بواسطة معرف WSTG |
get_wstg_document | الحصول على مستند بواسطة المعرف |
list_wstg_categories | سرد جميع الفئات ومعرفات WSTG |
wstg_health | التحقق من الصحة |
wstg_info | إحصائيات قاعدة البيانات |
# البحث عن منهجية اختبار SQL injection
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/ # قاعدة بيانات المتجهات
┌─────────────────────────────────────────────────────────────────┐
│ OWASP WSTG HTML Files │
│ (raw_data/*.html) │
└────────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ wstg_parser.py │
│ Parse HTML → Structured JSON │
└────────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ chunker.py │
│ Create Semantic Chunks for RAG │
└────────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ ChromaDB Vector Store │
│ (data/chroma_db/) │
└────────────────────────────┬────────────────────────────────────┘
│
┌──────────────┴──────────────┐
▼ ▼
┌──────────────────────────┐ ┌──────────────────────────┐
│ http_server.py │ │ mcp_client.py │
│ REST API :5004 │ │ MCP for 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 injection؟"
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 WSTG، والذي يتم ترخيصه بموجب Creative Commons Attribution-ShareAlike 4.0.