AI ஏஜெண்டுகளுக்கு எல்லைகள் தேவை, மாஸ்டர் சாவிகள் அல்ல

MCP மூலம் உங்கள் செயலியில் ஒரு AI ஏஜெண்டிற்கு அணுகல் வழங்குவது ஆபத்தானது. நீங்கள் ஒரு சாவிக் கொத்தை அவர்களிடம் கொடுத்துவிட்டு, அவர்கள் குறிப்பிட்ட சில கதவுகளை மட்டுமே திறப்பார்கள் என்று நம்புகிறீர்கள். அந்த நம்பிக்கை ஒரு பாதுகாப்பு அபாயமாகும்.

ஒரு multi-tenant Laravel செயலிக்கான MCP கருவிகளை உருவாக்கும்போது, நீங்கள் ஒரு சிக்கலைத் தீர்க்க வேண்டும்: மற்றவர்களின் தரவை அணுகாமல், ஒரு ஏஜெண்ட் செயலியை இயக்குவதை எப்படி அனுமதிப்பது?

ஒவ்வொரு MCP கருவியும் ஒரு endpoint ஆகச் செயல்படுகிறது. ஒரு ஏஜெண்ட் ஒரு கருவியை அழைக்கும்போது, உங்கள் சர்வர் குறியீட்டை (code) இயக்கும். ஒரு multi-tenant அமைப்பில், ஒவ்வொரு கருவியும் இரண்டு கேள்விகளுக்குப் பதிலளிக்க வேண்டும்:

  • இதைச் செய்ய உங்களுக்கு அனுமதி உள்ளதா?
  • இங்கே இதைச் செய்ய உங்களுக்கு அனுமதி உள்ளதா?

இவற்றை நீங்கள் தவிர்த்தால், ஒரு பாதுகாப்புத் துளையை (security hole) உருவாக்குகிறீர்கள்.

Web requests, multi-tenancy-யைக் கையாள sessions-களைப் பயன்படுத்துகின்றன. MCP கருவிகள் tokens-களைப் பயன்படுத்துகின்றன. தற்போதைய tenant context-ஐ அமைக்க அங்கு session அல்லது middleware எதுவும் இல்லை. ஒரு session-இல் உள்ள "current org"-ஐத் தேடும் global scopes-களை நீங்கள் நம்பியிருந்தால், அவை எதையும் கண்டறியாது. கட்டுப்படுத்தப்பட வேண்டிய ஒரு query, உங்கள் தரவுத்தளத்தில் உள்ள அனைத்து வரிசைகளையும் (rows) திரும்பத் தரக்கூடும்.

பாதுகாப்பாக இருக்க நான் இந்த நான்கு விதிகளைப் பயன்படுத்துகிறேன்:

  • தெளிவான வடிகட்டுதல் (Explicit filtering): token auth-ன் கீழ் உள்ள ambient scope-ஐ ஒருபோதும் நம்பியிருக்க வேண்டாம். ஒவ்வொரு முறையும் organization வாரியாக வடிகட்ட ஒரு தனி trait-ஐப் பயன்படுத்தவும்.
  • UUID-களைப் பயன்படுத்தவும்: ஒருபோதும் auto-increment IDs-களைப் பயன்படுத்த வேண்டாம். ஏஜெண்டுகளால் மற்ற பதிவுகளைக் (records) கணிக்க முடியாத வகையில், யூகிக்க முடியாத அடையாளங்காட்டிகளைப் (unguessable identifiers) பயன்படுத்தவும்.
  • அனுமதிகளை மறுபயன்பாடு செய்யவும் (Reuse permissions): ஏஜெண்டுகளுக்காகப் புதிய permission sets-களை உருவாக்க வேண்டாம். உங்கள் web app பயன்படுத்தும் அதே ability strings-களைப் பயன்படுத்தவும்.
  • பக்க விளைவுகளைக் குறிக்கவும் (Mark side effects): கருவிகளை read-only அல்லது write-enabled என்று லேபிளிட annotations-களைப் பயன்படுத்தவும்.

Organization lookups-களுக்கு ஒரு தனி trait-ஐப் பயன்படுத்துவதன் மூலம், தணிக்கை (audit) செய்ய ஒரே ஒரு இடத்தை நீங்கள் உருவாக்குகிறீர்கள். Lookup null-ஐத் திருப்பியளித்தால், அந்தப் பதிவு இல்லை என்று கருவி ஏஜெண்டிற்குத் தெரிவிக்கும். மற்ற tenants பற்றிய எந்தத் தகவலும் ஏஜெண்டிற்கு கிடைக்காது.

இது ஒரு AI சிக்கல் அல்ல. இது ஒரு multi-tenancy மற்றும் authorization சிக்கல். MCP உங்கள் செயலியை வெளிப்படுத்துவதை எளிதாக்குகிறது, எனவே உங்கள் எல்லைகள் குறித்து நீங்கள் ஒழுக்கத்துடன் இருக்க வேண்டும்.

ஒரு ஏஜெண்ட் தனது சொந்த tenant-க்குள், ஒரு மனிதன் என்ன செய்ய முடியுமோ அதை மட்டுமே செய்ய வேண்டும், அதற்கு மேல் எதுவும் செய்யக்கூடாது.

Source: https://dev.to/nasrulhazim/giving-an-ai-agent-the-keys-without-giving-it-the-building-rbac-org-scoped-mcp-tools-in-laravel-43oi

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