← नवीनतम पेपर
💻 computer science

Graph-Aware Fuzzing for Graph Database Management Systems

GRAF एक ब्लैक-बॉक्स फज़िंग फ्रेमवर्क है जो ग्राफ डेटाबेस मैनेजमेंट सिस्टम्स के लिए है और जो मौजूदा परीक्षण विधियों की सीमाओं को दूर करने के लिए LLM-संचालित, ग्राफ-कॉन्टेक्स्ट-अवेयर क्वेरी जनरेशन और एक्जीक्यूशन-स्टेट-गाइडेड म्यूटेशन का लाभ उठाता है, जिससे अंततः काफी अधिक कोड कवरेज प्राप्त होता है और कई सिस्टम्स में दर्जनों पहले से अज्ञात बग्स की खोज की जाती है।

मूल लेखक: Yu Li, Qiang Hu, Yao Zhang, Junjie Wang, Hao Liu, Rui Wang, Yongqiang Lyu

प्रकाशित 2026-07-07
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Yu Li, Qiang Hu, Yao Zhang, Junjie Wang, Hao Liu, Rui Wang, Yongqiang Lyu

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

एक ग्राफ डेटाबेस (Graph Database) की कल्पना एक विशाल, जीवंत शहर के मानचित्र के रूप में करें। एक मानक स्प्रेडशीट (जो पंक्तियों और स्तंभों के एक कठोर ग्रिड की तरह है) के विपरीत, यह शहर नोड्स (nodes) (लोग, स्थान, चीजें) से बना है जो सड़कों (roads) (संबंधों) द्वारा जुड़े हुए हैं। इस शहर में, आप ऐसे प्रश्न पूछ सकते हैं जैसे, "बौब के दोस्तों के दोस्तों को खोजें जो पेरिस में रहते हैं और एक बेकरी में काम करते हैं।"

यह परीक्षण करने के लिए कि इस शहर की नेविगेशन प्रणाली (डेटाबेस इंजन) सुरक्षित और विश्वसनीय है या नहीं, आपको इसे हजारों पेचीदा सवाल भेजने होंगे। यदि सिस्टम क्रैश हो जाता है या किसी लूप (loop) में फंस जाता है, तो यह एक बग (bug) है।

यह पेपर GRAF का परिचय देता है, जो एक नया "रोबोट टेस्टर" है जिसे विशेष रूप से इन ग्राफ डेटाबेसों को तोड़ने के लिए डिज़ाइन किया गया है। यह कैसे काम करता है, इसे सरल भाषा में यहाँ समझाया गया है:

समस्या: पुराने टेस्टर क्यों विफल रहे

पिछले टेस्टर दो अलग-अलग प्रकार के अनाड़ी पर्यटकों की तरह थे:

  1. "नकल करने वाला" पर्यटक (The "Copycat" Tourist): उन्होंने यह देखने के लिए पांच अलग-अलग शहरों से एक ही सवाल पूछा कि क्या उनके जवाब मेल खाते हैं। यदि वे मेल नहीं खाते थे, तो उन्होंने एक बग ढूंढ लिया। लेकिन यह केवल तभी काम करता था जब सवाल इतना सरल हो कि उसे सभी पांच शहरों में पूछा जा सके। इसने उन गहरे, अजीब क्रैशों को मिस कर दिया जो तब होते हैं जब आप एक एकल शहर से बहुत जटिल सवाल पूछते हैं।
  2. "रैंडम टाइपिंग करने वाला" पर्यटक (The "Random Typist"): वे बस रैंडम वाक्य बनाने के लिए कुंजियाँ दबाते थे। लेकिन ग्राफ डेटाबेस बहुत नखरेबाज होते हैं। यदि आप कहते हैं "बौब एलिस को जानता है" लेकिन बॉब और एलिस वास्तव में उस शहर में मौजूद नहीं हैं, तो सिस्टम तुरंत सवाल को खारिज कर देता है। रैंडम टाइपिंग करने वाले ने अपना 99% समय ऐसे सवाल पूछने में बर्बाद कर दिया जिन्हें सिस्टम पढ़ता तक नहीं।

समाधान: GRAF (स्मार्ट पर्यटक)

GRAF एक "ब्लैक बॉक्स" टेस्टर है, जिसका अर्थ है कि इसे डेटाबेस के आंतरिक कोड को देखने की आवश्यकता नहीं है। यह केवल प्रश्न भेजता है और देखता है कि क्या होता है। यह दो मुख्य समस्याओं को दो चतुर तरकीबों का उपयोग करके हल करता है:

1. "कंकाल और मांस" की तरकीब (वैध प्रश्न उत्पन्न करना - The "Skeleton and Flesh" Trick)

कल्पना करें कि आप एक घर बनाना चाहते हैं।

  • पुराना तरीका: आप दीवार पर रैंडम ईंटें फेंककर घर बनाने की कोशिश करते हैं। ज्यादातर समय, दीवार ढह जाती है क्योंकि ईंटें फिट नहीं बैठतीं।
  • GRAF का तरीका:
    • चरण A (कंकाल/Skeleton): GRAF एक सुपर-स्मार्ट AI (एक लार्ज लैंग्वेज मॉडल) का उपयोग करके एक ब्लूप्रिंट तैयार करता है। इस ब्लूप्रिंट में खाली जगहें होती हैं जहाँ विशिष्ट विवरण भरे जाने होते हैं, जैसे "यहाँ [नाम] डालें" या "यहाँ [सड़क] से जोड़ें।"
    • चरण B (मांस/Flesh): ब्लूप्रिंट को शहर में भेजने से पहले, GRAF वास्तविक शहर के मानचित्र को देखता है। वह देखता है कि "बौब" मौजूद है और "पेरिस" मौजूद है। वह खाली जगहों को वास्तविक, वैध डेटा से भर देता है जो उस शहर के नियमों के अनुकूल हो।
    • परिणाम: GRAF द्वारा भेजा गया हर प्रश्न व्याकरणिक रूप से सही और उस विशिष्ट शहर के भीतर तार्किक रूप से संभव होता है। वह अपना समय उन सवालों में बर्बाद नहीं करता जिन्हें सिस्टम खारिज कर देगा।

2. "ट्रैफिक पुलिस" की तरकीब (अन्वेषण को निर्देशित करना - The "Traffic Cop" Trick)

एक बार जब GRAF सवाल भेजना शुरू कर देता है, तो वह देखता है कि शहर कैसे प्रतिक्रिया देता है। यह आगे क्या करना है, यह तय करने के लिए तीन संकेतों का उपयोग करता है:

  • समय (Time): सवाल में कितना समय लगा?
  • आकार (Size): जवाब कितना बड़ा था?
  • स्थिति (Status): क्या सिस्टम क्रैश हो गया, फ्रीज हो गया, या सामान्य रूप से समाप्त हुआ?

यह इस जानकारी का उपयोग कैसे करता है:

  • यदि उत्तर खाली है: GRAF सोचता है, "यह सवाल बहुत सख्त था।" वह नियमों को ढीला करता है (उदाहरण के लिए, "शायद बॉब को पेरिस में रहने की आवश्यकता नहीं है") और फिर से प्रयास करता है।
  • यदि उत्तर में बहुत समय लग रहा है (Time out): GRAF सोचता है, "यह बहुत भारी है।" वह फंसने से बचने के लिए सवाल को और गहरा बनाना बंद कर देता है और एक अलग कोण आज़माता है।
  • यदि सिस्टम क्रैश हो जाता है: GRAF जश्न मनाता है! वह उस विशिष्ट सवाल को सहेज लेता है, उसमें थोड़ा बदलाव करता है, और उसे फिर से दोहराने की कोशिश करता है ताकि यह साबित किया जा सके कि यह एक वास्तविक बग है।

परिणाम: सिस्टम को तोड़ना

शोधकर्ताओं ने छह लोकप्रिय ग्राफ डेटाबेसों (जैसे Neo4j और Memgraph) पर GRAF का परीक्षण किया और इसकी तुलना सबसे अच्छे मौजूदा टेस्टर्स से की।

  • कवरेज (Coverage): GRAF ने अगले सबसे अच्छे टेस्टर की तुलना में डेटाबेस के आंतरिक तर्क (internal logic) के 31% से 41% अधिक हिस्से का अन्वेषण किया। इसने उन गहरे, छिपे हुए कोनों को खोज निकाला जिन्हें अन्यों ने मिस कर दिया था।
  • मिले बग्स (Bugs Found): केवल 12 घंटों में, GRAF ने अपने आप 25 अद्वितीय बग खोजे। अन्य तीन टेस्टर्स ने मिलकर केवल 6 ही खोजे।
  • वास्तविक दुनिया का प्रभाव: GRAF ने 34 पहले से अज्ञात बग खोजे। डेवलपर्स ने उनमें से 32 की पुष्टि की, और 23 को आधिकारिक "CVE" नंबर (सुरक्षा अलर्ट) दिए गए, जिसका अर्थ है कि वे इतने गंभीर थे कि उन्हें तुरंत पैच (ठीक) करने की आवश्यकता थी।

मुख्य निष्कर्ष

GRAF एक मास्टर डिटेक्टिव की तरह है जो जानता है कि शहर के नेविगेशन सिस्टम को सबसे भ्रमित करने वाले, जटिल सवाल कैसे पूछे जाएं, बिना कभी खारिज हुए। प्रश्न की संरचना को उसके अंदर के डेटा से अलग करके, और यह सुनकर कि सिस्टम कैसे प्रतिक्रिया देता है, यह उन क्रैश और त्रुटियों को ढूंढ निकालता है जिन्हें अन्य उपकरण देख ही नहीं पाते।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →