𝗬𝗼𝘂𝗿 𝗥𝗲𝗽𝗼 𝗖𝗼𝗻𝘁𝗲𝘅𝘁 𝗜𝘀 𝗔𝗻 𝗔𝘁𝘁𝗮𝗰𝗸 𝗦𝘂𝗿𝗳𝗮𝗰𝗲 𝗡𝗼𝘄
AI കോഡിംഗ് സുരക്ഷ എന്നത് മോശം കോഡ് എഴുതുന്നതിൽ നിന്ന് ഒരു മോഡലിനെ തടയുന്നതിനേക്കാൾ ഉപരിയാണ്.
യഥാർത്ഥ അപകടം നിലനിൽക്കുന്നത് ഏജന്റ് കോഡ് എഴുതുന്നതിന് മുമ്പ് എന്താണ് വായിക്കുന്നത് എന്നതിലാണ്. നിങ്ങളുടെ റെപ്പോസിറ്ററി ഇനി വെറുമൊരു കോഡ് ശേഖരം മാത്രമല്ല. അത് ഇപ്പോൾ AI ഏജന്റുകൾക്കുള്ള ഒരു ഇൻപുട്ട് സ്ട്രീം കൂടിയാണ്.
നിങ്ങളുടെ റെപ്പോയിലെ എല്ലാം ഒരു ഏജന്റിനെ നയിക്കാനുള്ള (steering material) സാമഗ്രികളായി മാറാം:
- പഴയ README ഫയലുകൾ
- കാലഹരണപ്പെട്ട മൈഗ്രേഷൻ കുറിപ്പുകൾ
- കാലഹരണപ്പെട്ട ഡോക്യുമെന്റേഷൻ
- ഒളിഞ്ഞിരിക്കുന്ന പ്രോജക്റ്റ് രീതികൾ (conventions)
- ലോക്കൽ ഇൻസ്ട്രക്ഷൻ ഫയലുകൾ
- डिपൻഡൻസി സ്ക്രിപ്റ്റുകളും ഷെൽ ഹുക്കുകളും
ഡെവലപ്പർമാർ പലപ്പോഴും ഈ ഫയലുകളെ ഉപദ്രവകാരിയല്ലാത്ത അനാവശ്യമായവയായിട്ടാണ് കാണുന്നത്. ഒരു AI ഏജന്റ് സാമൂഹിക പശ്ചാത്തലങ്ങൾ (social context) കാണുന്നില്ല. അത് കാണുന്നത് ടെക്സ്റ്റുകളും ടൂളുകളും പാറ്റേണുകളും മാത്രമാണ്. നിങ്ങളുടെ ഡോക്യുമെന്റേഷൻ പഴയതോ ക്രമരഹിതമോ ആണെങ്കിൽ, ഏജന്റ് ആ ക്രമരഹിതതയെ തന്നെ മാനദണ്ഡമായി (standard) കണക്കാക്കും.
മോശം കോൺടെക്സ്റ്റ് രണ്ട് രൂപങ്ങളിൽ വരുന്നു:
- വിരസമായ പിശകുകൾ (Boring errors):
- കാലഹരണപ്പെട്ട സെറ്റപ്പ് നിർദ്ദേശങ്ങൾ
- കാലഹരണപ്പെട്ട (deprecated) API-കൾ ഉപയോഗിക്കുന്ന ഉദാഹരണങ്ങൾ
- പഴയ ആർക്കിടെക്ചർ കുറിപ്പുകൾ
- അഡ്വേഴ്സേറിയൽ അറ്റാക്കുകൾ (Adversarial attacks):
- ഫയലുകൾക്കുള്ളിലെ പ്രോംപ്റ്റ് ഇൻജക്ഷൻ (Prompt injection)
- ദോഷകരമായ डिपൻഡൻസി സ്ക്രിപ്റ്റുകൾ
- കോഡിനെ സുരക്ഷിതമല്ലാത്ത രീതികളിലേക്ക് നയിക്കുന്ന വിഷലിപ്തമായ (poisoned) ഉദാഹരണങ്ങൾ
ടെസ്റ്റുകൾ റൺ ചെയ്യാനോ, ഫയലുകൾ തിരയാനോ, അല്ലെങ്കിൽ പുൾ റിക്വസ്റ്റുകൾ (pull requests) ഓപ്പൺ ചെയ്യാനോ ഉള്ള അധികാരം നിങ്ങൾ ഒരു ഏജന്റിന് നൽകുമ്പോൾ, അതിന്റെ അപകടസാധ്യതയുടെ വ്യാപ്തി (blast radius) വർദ്ധിക്കുന്നു. ഒരു ഹുക്ക് സിസ്റ്റം (hook system) എന്നത് ഇനി വെറുമൊരു ഉൽപ്പാദനക്ഷമതാ ഉപകരണം (productivity tool) മാത്രമല്ല. അത് ഓട്ടോമേഷൻ ആണ്. നിങ്ങൾ അതിനെ ഓട്ടോമേഷൻ പോലെ തന്നെ കാണണം.
നിങ്ങളുടെ വർക്ക്ഫ്ലോയെക്കുറിച്ച് ഈ ചോദ്യങ്ങൾ ചോദിക്കുക:
- ആരാണ് ഒരു ഹുക്ക് എഡിറ്റ് ചെയ്യാൻ കഴിയുന്നത്?
- ഏജന്റിന് ഏതൊക്കെ എൻവയോൺമെന്റ് വേരിയബിളുകൾ കാണാൻ കഴിയും?
- ഏജന്റ് ഡെവലപ്പർ ക്രെഡൻഷ്യലുകൾ (credentials) സ്വീകരിക്കുന്നുണ്ടോ?
- ആ ടൂൾ റെപ്പോയ്ക്ക് പുറത്ത് എന്തെങ്കിലും എഴുതുന്നുണ്ടോ?
ഏജന്റുകളെ മാന്ത്രിക ടെക്സ്റ്റ് ബോക്സുകളായി കാണരുത്. അവയെ ഡെവലപ്പർ ഇൻഫ്രാസ്ട്രക്ചർ (developer infrastructure) ആയി പരിഗണിക്കുക.
നിങ്ങളുടെ ഏജന്റിക് വർക്ക്ഫ്ലോ എങ്ങനെ സുരക്ഷിതമാക്കാം:
- പരിധി കുറയ്ക്കുക: മൂന്ന് ഫയലുകൾ മാത്രം ആവശ്യമുള്ളപ്പോൾ ഒരു ഏജന്റിനെ മുഴുവൻ പ്രോജക്റ്റിലേക്കും വിടരുത്.
- കോൺടെക്സ്റ്റ് വൃത്തിയാക്കുക: കാലഹരണപ്പെട്ട ഡോക്യുമെന്റേഷനുകളും പഴയ നിർദ്ദേശങ്ങളും നീക്കം ചെയ്യുകയോ ശരിയാക്കുകയോ ചെയ്യുക.
- എക്സിക്യൂഷൻ സുരക്ഷിതമാക്കുക: അപകടസാധ്യതയുള്ള ജോലികൾ ഒരു സാൻഡ്ബോക്സിൽ (sandbox) ചെയ്യുക. ക്രെഡൻഷ്യലുകൾ പരിമിതപ്പെടുത്തുക.
- സുതാര്യത ഉറപ്പാക്കുക: ഏജന്റ് എന്താണ് വായിച്ചത്, ഏതൊക്കെ ടൂളുകൾ ഉപയോഗിച്ചു, ഏതൊക്കെ കമാൻഡുകൾ പ്രവർത്തിപ്പിച്ചു എന്ന് കൃത്യമായി അറിയുക.
ഒരു AI ഏജന്റ് എന്നത് ഷെൽ ആക്സസ്സും (shell access) വേഗത്തിൽ ടൈപ്പ് ചെയ്യാനുള്ള കഴിവും ഉള്ള ഒരു ജൂനിയർ ഡെവലപ്പറെപ്പോലെയാണ്. ഒരു പുതിയ ജൂനിയർ ഡെവലപ്പർക്ക് ഒന്നാം ദിവസം തന്നെ നിങ്ങൾ ഫുൾ പ്രൊഡക്ഷൻ ക്രെഡൻഷ്യലുകൾ നൽകില്ലല്ലോ. പകരം നിങ്ങൾ അവർക്ക് ചെറിയ ജോലികളും, വ്യക്തമായ കോൺടെക്സ്റ്റും, പരിമിതമായ അനുമതികളും (permissions) നൽകും.
നിങ്ങളുടെ ഏജന്റുകളോടും ഇതേ രീതിയിൽ പെരുമാറുക.
Source: https://dev.to/hefty_69a4c2d631c9dd70724/your-repo-context-is-an-attack-surface-now-5dhj
Optional learning community: https://t.me/GyaanSetuAi