
DonkAI, OWASP Top 10 for LLM Applications (2025) के लिए एक व्यावहारिक प्रयोगशाला है - इसमें वास्तविक LLM की आवश्यकता नहीं है।
OWASP Top 10 for LLM Applications (2025) के लिए व्यावहारिक लैब - कोई वास्तविक LLM आवश्यक नहीं।
DonkAI एक जानबूझकर कमज़ोर वेब ऐप है जिसे आप एक ही कमांड में चला सकते हैं और इसका उपयोग यह सीखने के लिए कर सकते हैं कि LLM-एकीकृत सिस्टम कैसे तोड़े जाते हैं — वास्तव में उन्हें तोड़कर। OWASP LLM Top 10 की हर श्रेणी को कम से कम एक खेलने योग्य चुनौती द्वारा दर्शाया गया है, जिसमें एक लिखित ब्रीफ़, एक पेलोड एडिटर, बायपास करने के लिए एक सक्रिय सुरक्षा, क्रमिक संकेत, और हर प्रयास का प्रति-उपयोगकर्ता इतिहास शामिल है। यह अभ्यासों के एक निश्चित समूह से कहीं बढ़कर एक विस्तारणीय शिक्षण लैब है: मॉड्यूलर आर्किटेक्चर (प्रति श्रेणी एक फ़ाइल, बैकएंड और फ्रंटएंड) नई कमज़ोरियाँ जोड़ना, मौजूदा सुरक्षा को सुदृढ़ करना, या वर्कशॉप, पाठ्यक्रमों और CTF के लिए बिल्कुल नए ट्रैक बनाना सीधा बनाता है।
चेतावनी यह एप्लिकेशन जानबूझकर लाइव हमले की सतहें उजागर करता है (प्रॉम्प्ट इंजेक्शन, IDOR, SQL इंजेक्शन, हार्ड-कोडेड क्रेडेंशियल्स, और बहुत कुछ)। इसे केवल एक पृथक लैब वातावरण में चलाया जाना चाहिए, अधिमानतः एक समर्पित वर्चुअल मशीन के अंदर, और इसे कभी भी खुले इंटरनेट पर तैनात नहीं किया जाना चाहिए।
OWASP Top 10 for LLM Applications जोखिमों का मानचित्रण करता है और उनके बारे में बात करने के लिए शब्दावली प्रदान करता है — LLM सुरक्षा पर काम करने वाले किसी भी व्यक्ति के लिए आवश्यक पठन। DonkAI को उस कार्य के व्यावहारिक विस्तार के रूप में डिज़ाइन किया गया है: एक छोटा, नियतिवादी खेल का मैदान जहाँ आप हमलों को स्वयं आज़माते हैं, उन्हें एक नकली-लेकिन-यथार्थवादी चैटबॉट के विरुद्ध सफल होते देखते हैं, और एक डीब्रीफ़ पढ़ते हैं जो समझाता है कि अभी क्या काम किया और एक वास्तविक सिस्टम उससे कैसे बचाव करेगा। पर्दे के पीछे कोई वास्तविक LLM नहीं है, पूरा स्टैक नियम-आधारित है, इसलिए लैब सस्ती, ऑफ़लाइन-अनुकूल और पुनरुत्पादनीय है।
दो कमांड के साथ पूरे स्टैक को क्लोन करें, बनाएं और लॉन्च करें:
git clone https://github.com/OWASP/DonkAI.git && cd DonkAI
docker compose up --build
फिर http://localhost:3000 खोलें, alice / password123 से साइन इन करें, और बाईं ओर OWASP पैनल से अपनी पहली चुनौती चुनें।
| सेवा | URL / पता |
|---|---|
| वेब UI | http://localhost:3000 |
| बैकएंड (API + दस्तावेज़) | http://localhost:8000/docs |
| PostgreSQL | localhost:5432 — डेटाबेस |
| उपयोगकर्ता नाम |
|---|
सुझाव — सभी स्थिति (उपयोगकर्ता, सत्र, प्रयास इतिहास) मिटाने और एक साफ़ स्लेट से शुरू करने के लिए:
docker compose down -v
OWASP LLM Top 10 की प्रत्येक श्रेणी को कम से कम एक खेलने योग्य चुनौती द्वारा दर्शाया गया है।
श्रेणियाँ और चुनौतियाँ जोड़ने या संशोधित करने के लिए, चुनौतियों का विस्तार देखें।
┌──────────────────┐ ┌──────────────────┐ ┌────────────────┐
│ React SPA │ ───► │ FastAPI │ ───► │ PostgreSQL │
│ :3000 │ │ :8000 │ │ :5432 │
│ webapp/ │ │ ml-service/ │ │ database/ │
└──────────────────┘ └──────────────────┘ └────────────────┘
यह एप्लिकेशन जानबूझकर कमज़ोर है। डिफ़ॉल्ट (पासवर्ड, डेटाबेस क्रेडेंशियल्स, सिस्टम प्रॉम्प्ट में हार्ड-कोडेड रहस्य) शैक्षिक सामग्री का हिस्सा हैं, सुरक्षा की अनदेखी नहीं। इसे स्थानीय रूप से या पृथक लैब में चलाएँ, कभी भी साझा होस्ट या सार्वजनिक इंटरनेट पर नहीं, और कभी भी वास्तविक प्रोडक्शन डेटा के विरुद्ध नहीं।
यहाँ सीखी गई तकनीकों को केवल उन्हीं प्रणालियों पर लागू करें जिनके स्वामी आप हैं या जिनके परीक्षण की स्पष्ट लिखित अनुमति आपके पास है।
donk_ai_lab| पासवर्ड |
|---|
| भूमिका |
|---|
alice | password123 | उपयोगकर्ता |
bob | password123 | उपयोगकर्ता |
admin | admin123 | व्यवस्थापक |
| # | श्रेणी | चुनौतियाँ | बैकएंड फ़ाइल |
|---|
| LLM01 | प्रॉम्प्ट इंजेक्शन | 2 | llm01_prompt_injection.py |
| LLM02 | संवेदनशील जानकारी का खुलासा | 2 | llm02_sensitive_info.py |
| LLM03 | आपूर्ति श्रृंखला | 1 | llm03_supply_chain.py |
| LLM04 | डेटा और मॉडल विषाक्तीकरण | 1 | llm04_data_poisoning.py |
| LLM05 | अनुचित आउटपुट हैंडलिंग | 2 | llm05_improper_output.py |
| LLM06 | अत्यधिक एजेंसी | 2 | llm06_excessive_agency.py |
| LLM07 | सिस्टम प्रॉम्प्ट लीकेज | 2 | llm07_system_prompt_leak.py |
| LLM08 | वेक्टर और एम्बेडिंग कमज़ोरियाँ | 1 | llm08_vector_weaknesses.py |
| LLM09 | गलत सूचना | 1 | llm09_misinformation.py |
| LLM10 | असीमित खपत | 1 | llm10_unbounded_consumption.py |
| परत | स्टैक | भूमिका |
|---|
| फ्रंटएंड | React | चुनौती UI, पेलोड एडिटर और प्रति-प्रयास इतिहास ड्रॉअर प्रस्तुत करता है। |
| बैकएंड | FastAPI | प्रत्येक OWASP श्रेणी के लिए एक नियम-आधारित चैलेंज इंजन - पूरी तरह नियतिवादी, कोई LLM कॉल नहीं। |
| डेटाबेस | PostgreSQL | users, chat_sessions, chat_messages, exploit_attempts संग्रहीत करता है |