केवल 'रीड-ओनली' पर्याप्त नहीं है: AI एजेंट्स के लिए गार्डरेल्स (Guardrails)

सीनियर इंजीनियर्स अक्सर AI एजेंट्स को सुरक्षित रखने के लिए एक ही बात कहते हैं: उन्हें केवल 'रीड-ओनली' (read-only) एक्सेस दें।

यह सुरक्षित लगता है। एजेंट बिना कुछ तोड़े धीमी क्वेरीज़ (queries) की जांच कर सकता है या स्कीमा (schemas) का सारांश दे सकता है।

लेकिन 'रीड-ओनली' कोई सुरक्षा मॉडल नहीं है। यह एक सीमा है।

जैसे ही आपके एजेंट को कोई उपयोगी काम करने की ज़रूरत पड़ती है, 'रीड-ओनली' उसे रोक देता है। यदि एजेंट को कोई खराब इंडेक्स (index) या करप्टेड रो (corrupted row) मिलता है, तो वह उसे ठीक नहीं कर सकता। अंत में आपके पास एक ऐसा असिस्टेंट रह जाता है जो आग की ओर इशारा तो कर सकता है, लेकिन पाइप नहीं उठा सकता।

टीमें अक्सर हार मान लेती हैं और एजेंट को 'राइट एक्सेस' (write access) दे देती हैं। असली खतरा तब शुरू होता है।

असली सवाल यह नहीं है कि "क्या एजेंट को लिखना चाहिए।" असली सवाल यह है कि "आप उन राइट्स (writes) को कैसे नियंत्रित (govern) करते हैं।"

निर्देशों (instructions) के माध्यम से राइट्स को नियंत्रित करने की कोशिश न करें। सिस्टम प्रॉम्प्ट में "कभी भी टेबल ड्रॉप न करें" जैसे नियम न डालें।

प्रॉम्प्ट इंजेक्शन (Prompt injection) इन नियमों को बेकार बना देता है। एक हमलावर डेटा की एक रो (row) या किसी कमेंट का उपयोग करके एजेंट को आपके नियमों को अनदेखा करने के लिए छल सकता है। यदि गार्डरेल (guardrail) एजेंट के साथ एक ही विंडो में है, तो एजेंट तर्क देकर उससे बच सकता है।

आपको अनगवर्नड राइट्स (ungoverned writes) और मीडिएटेड राइट्स (mediated writes) के बीच अंतर करने की आवश्यकता है।

• अनगवर्नड राइट्स (Ungoverned writes): एजेंट कमांड चलाने का निर्णय लेता है, और डेटाबेस उसे निष्पादित (execute) कर देता है। एकमात्र नियंत्रण एजेंट का अपना निर्णय है। • मीडिएटेड राइट्स (Mediated writes): कमांड एजेंट के बाहर एक चेकपॉइंट से होकर गुजरती है। यह चेकपॉइंट एजेंट और डेटाबेस के बीच डेटा पाथ (data path) में स्थित होता है।

एक मीडिएटेड राइट इस तरह काम करती है:

  • एजेंट एक स्टेटमेंट (statement) प्रस्तावित करता है।
  • एक प्रॉक्सी (proxy) या कंट्रोल प्लेन (control plane) स्टेटमेंट को पार्स (parse) करता है।
  • प्रॉक्सी जोखिम को वर्गीकृत (classify) करती है।
  • प्रॉक्सी तय करती है कि इसे अनुमति देनी है या किसी इंसान से मंजूरी लेनी है।

यह दृष्टिकोण आपको प्रॉम्प्ट इंजेक्शन से बचाता है। एक दुर्भावनापूर्ण निर्देश एजेंट को DROP TABLE कमांड लिखने के लिए छल सकता है, लेकिन वह प्रॉक्सी को नहीं छल सकता। प्रॉक्सी एजेंट के इरादे को नहीं पढ़ती; यह केवल वास्तविक SQL कमांड को देखती है।

सुरक्षित रहने के लिए इस संरचना का उपयोग करें:

  • सुरक्षित रीड्स (reads) को ऑटो-अनुमति दें। काम को तेज़ रखने के लिए एजेंटों को स्वतंत्र रूप से SELECT क्वेरीज़ चलाने दें।
  • जोखिम भरे राइट्स (writes) पर रोक लगाएं। DELETE, UPDATE, या स्कीमा परिवर्तनों के लिए मानवीय अनुमोदन (human approval) आवश्यक करें।
  • सब कुछ लॉग (log) करें। एक अपरिवर्तनीय (immutable) रिकॉर्ड रखें कि किसने बदलाव का प्रस्ताव दिया और किसने उसे मंजूरी दी।

सुरक्षा के लिए रीड रेप्लिकास (read replicas) पर भरोसा न करें। रेप्लिका जांच में मदद करते हैं, लेकिन वे सुधार (fixes) लागू नहीं कर सकते। प्रोडक्शन की समस्या को ठीक करने के लिए, आपको प्राइमरी डेटाबेस में लिखना ही होगा।

मीडिएशन (Mediation) आपके डेटा को सुरक्षित रखते हुए एजेंट को उपयोगी बनाता है।

Source: https://dev.to/maxime_dalessandro_28171d/read-only-isnt-enough-guardrails-for-ai-agents-that-change-your-database-2e5h

Optional learning community: https://t.me/GyaanSetuAi