केवळ 'रीड-ओन्ली' (Read-Only) पुरेसे नाही: AI एजंट्ससाठी गार्डरेल्स (Guardrails)

AI एजंट्स सुरक्षित ठेवण्यासाठी वरिष्ठ इंजिनिअर्स अनेकदा एकच गोष्ट सांगतात: त्यांना 'रीड-ओन्ली' (read-only) ॲक्सेस द्या.

हे सुरक्षित वाटते. एजंट काहीही खराब न करता स्लो क्वेरीजची (slow queries) तपासणी करू शकतो किंवा स्कीमाचा (schemas) सारांश देऊ शकतो.

परंतु 'रीड-ओन्ली' हा सुरक्षिततेचा मॉडेल नाही. ती एक मर्यादा आहे.

ज्या क्षणी तुमच्या एजंटला उपयुक्त काम करण्याची गरज पडते, त्याच क्षणी 'रीड-ओन्ली' त्याला थांबवते. जर एजंटला एखादा चुकीचा इंडेक्स (index) किंवा करप्ट झालेली रो (corrupted row) आढळली, तर तो ती दुरुस्त करू शकत नाही. यामुळे तुमच्याकडे असा असिस्टंट उरतो जो आगीकडे बोट दाखवू शकतो, पण पाण्याचा पाईप (hose) उचलू शकत नाही.

टीम्स अनेकदा हार मानतात आणि एजंटला 'राईट ॲक्सेस' (write access) देतात. तेव्हाच खऱ्या धोक्याची सुरुवात होते.

खरा प्रश्न 'एजंटने लिहावे का?' हा नाही. खरा प्रश्न 'तुम्ही त्या राइट्सवर (writes) नियंत्रण कसे ठेवता?' हा आहे.

सूचनांच्या (instructions) आधारे राइट्सवर नियंत्रण ठेवण्याचा प्रयत्न करू नका. सिस्टम प्रॉम्प्टमध्ये 'कधीही टेबल ड्रॉप करू नका' (never drop a table) सारखे नियम लिहू नका.

प्रॉम्प्ट इंजेक्शनमुळे (Prompt injection) हे नियम निरर्थक ठरतात. एखादा अटॅकर डेटाची एखादी रो किंवा कमेंट वापरून एजंटला तुमचे नियम दुर्लक्षित करण्यास फसवू शकतो. जर गार्डरेल एजंटच्या त्याच विंडोमध्ये असेल, तर एजंट तर्क लावून त्यातून मार्ग काढू शकतो.

तुम्हाला 'अनगव्हर्नड राइट्स' (ungoverned writes) आणि 'मिडिएटेड राइट्स' (mediated writes) यांच्यात फरक करणे आवश्यक आहे.

• अनगव्हर्नड राइट्स: एजंट कमांड चालवण्याचा निर्णय घेतो आणि डेटाबेस ती कार्यान्वित करतो. येथे एकमेव नियंत्रण म्हणजे एजंटचा स्वतःचा निर्णय. • मिडिएटेड राइट्स: कमांड एजंटच्या बाहेर असलेल्या एका चेकपॉइंटमधून जाते. हे चेकपॉइंट एजंट आणि डेटाबेस यांच्यातील डेटा पाथमध्ये (data path) असते.

मिडिएटेड राइट खालीलप्रमाणे काम करते:

  • एजंट एक स्टेटमेंट सुचवतो.
  • एक प्रॉक्सी (proxy) किंवा कंट्रोल प्लेन (control plane) त्या स्टेटमेंटचे विश्लेषण (parse) करते.
  • प्रॉक्सी जोखमीचे वर्गीकरण करते.
  • प्रॉक्सी ते मान्य करायचे की मानवी मंजुरीसाठी विचारायचे, याचा निर्णय घेते.

हा दृष्टिकोन तुम्हाला प्रॉम्प्ट इंजेक्शनपासून वाचवतो. एखादी घातक सूचना एजंटला DROP TABLE कमांड लिहिण्यासाठी फसवू शकते, परंतु ती प्रॉक्सीला फसवू शकत नाही. प्रॉक्सी एजंटचा हेतू वाचत नाही; ती फक्त प्रत्यक्ष SQL कमांड पाहते.

सुरक्षित राहण्यासाठी या संरचनेचा वापर करा:

  • सुरक्षित रीड्सना ऑटो-अलो (Auto-allow) करा. काम वेगवान ठेवण्यासाठी एजंट्सना SELECT क्वेरीज मुक्तपणे चालवू द्या.
  • धोकादायक राइट्सवर गेटिंग (Gate) लावा. DELETE, UPDATE किंवा स्कीमा बदलांसाठी मानवी मंजुरी आवश्यक करा.
  • सर्व काही लॉग (Log) करा. कोणी बदल सुचवला आणि कोणी त्याला मंजुरी दिली, याचा एक अपरिवर्तनीय (immutable) रेकॉर्ड ठेवा.

सुरक्षिततेसाठी रीड रेप्लिकांवर (read replicas) अवलंबून राहू नका. रेप्लिका तपासणीसाठी मदत करतात, परंतु ते दुरुस्ती करू शकत नाहीत. प्रोडक्शनमधील समस्या सोडवण्यासाठी, तुम्हाला प्रायमरी डेटाबेसमध्ये (primary database) लिहावे लागेल.

मिडिएशनमुळे (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