AI കോഡിംഗ് സുരക്ഷ: പ്രോംപ്റ്റ് ഇൻജക്ഷൻ നിങ്ങളുടെ പ്രോജക്റ്റ് ഫയലുകളിൽ ഒളിച്ചിരിക്കുന്നു
നിങ്ങളുടെ AI കോഡിംഗ് അസിസ്റ്റന്റ് നിങ്ങളുടെ റെപ്പോസിറ്ററിയിലെ (repository) എല്ലാ ഫയലുകളും വായിക്കുന്നു. അത് നിങ്ങളുടെ README, കോൺഫിഗറേഷൻ ഫയലുകൾ, നിയമങ്ങൾ എന്നിവ വായിക്കുന്നു. കോഡ് എങ്ങനെ എഴുതണമെന്ന് തീരുമാനിക്കാൻ ഇത് ഈ ഫയലുകൾ ഉപയോഗിക്കുന്നു.
പുതിയൊരു സുരക്ഷാ ഭീഷണി ഈ സ്വഭാവത്തെത്തന്നെ ചൂഷണം ചെയ്യുന്നു. 28 വ്യത്യസ്ത AI കോഡിംഗ് ടൂളുകളിൽ ഗവേഷകർ ഒരു സുരക്ഷാ വീഴ്ച കണ്ടെത്തിയിട്ടുണ്ട്. ഈ ആക്രമണം സങ്കീർണ്ണമായ ഒരു ഹാക്കിംഗ് അല്ല. നിങ്ങളുടെ റെപ്പോസിറ്ററിയിലുള്ള ഒരു ലളിതമായ ടെക്സ്റ്റ് ഫയൽ മാത്രമാണിത്.
ആക്രമണം എങ്ങനെ പ്രവർത്തിക്കുന്നു:
നിങ്ങൾ ഒരു ഓപ്പൺ സോഴ്സ് പ്രോജക്റ്റ് ക്ലോൺ ചെയ്യുന്നു. അത് സാധാരണമായി തോന്നുന്നു. നിങ്ങൾ അത് നിങ്ങളുടെ AI എഡിറ്ററിൽ തുറന്ന് ഒരു പുതിയ ഫീച്ചറിനായി ആവശ്യപ്പെടുന്നു. കോൺഫിഗറേഷൻ ഫയലുകളിലെ ഒളിഞ്ഞിരിക്കുന്ന യൂണിക്കോഡ് (Unicode) അക്ഷരങ്ങൾ നിങ്ങൾ കാണുന്നില്ല. ഈ അക്ഷരങ്ങൾ നിർദ്ദേശങ്ങളെ നിങ്ങളിൽ നിന്ന് മറച്ചുവെക്കുകയും എന്നാൽ AI-യോട് മറ്റെന്തെങ്കിലും ചെയ്യാൻ ആവശ്യപ്പെടുകയും ചെയ്യുന്നു.
നിങ്ങളുടെ AWS ക്രെഡൻഷ്യലുകൾ (credentials) ഒരു എക്സ്റ്റേണൽ സെർവറിലേക്ക് അയക്കാൻ ഈ ഒളിഞ്ഞിരിക്കുന്ന നിർദ്ദേശം AI-യോട് പറയുന്നു. ഇതൊരു നിയമപരമായ പ്രോജക്റ്റ് നിർദ്ദേശമാണെന്ന് AI കരുതുന്നു. അത് ആ കമാൻഡ് നടപ്പിലാക്കുന്നു. നിങ്ങളുടെ രഹസ്യ വിവരങ്ങൾ നഷ്ടപ്പെടുന്നു.
ഇത് തടയുന്നത് എന്തുകൊണ്ട് പ്രയാസകരമാണ്:
- ഒളിഞ്ഞിരിക്കുന്ന അക്ഷരങ്ങൾ: നിങ്ങൾ സാധാരണ ടെക്സ്റ്റ് കാണുന്നു, എന്നാൽ അദൃശ്യമായ യൂണിക്കോഡ് അക്ഷരങ്ങളിലൂടെ AI അപകടകരമായ കമാൻഡുകൾ കാണുന്നു.
- ഓരോ ഫയലും ഒരു എൻട്രി പോയിന്റാണ്: ഒരു README അല്ലെങ്കിൽ ഒരു ലൈബ്രറിയിലെ കമന്റ് പോലും അപകടകരമായ വിവരങ്ങൾ (payload) വഹിച്ചേക്കാം.
- ഉയർന്ന അനുമതികൾ: AI ഏജന്റുകൾ പലപ്പോഴും നിങ്ങളുടെ യൂസർ പെർമിഷനുകളോടെയാണ് പ്രവർത്തിക്കുന്നത്. അവയ്ക്ക് നിങ്ങളുടെ SSH കീകുകളും API ടോക്കണുകളും വായിക്കാൻ കഴിയും.
- ടൂൾ കോളുകൾ: കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കാൻ AI ടൂൾ കോളുകൾ ഉപയോഗിക്കുന്നു. സുരക്ഷാ പരിശീലനങ്ങളെ മറികടക്കാൻ ഈ ആക്രമണം ഈ കോളുകളെ ലക്ഷ്യം വെക്കുന്നു.
നിങ്ങളുടെ വർക്ക്ഫ്ലോ എങ്ങനെ സംരക്ഷിക്കാം:
- ഫയൽ ഉള്ളടക്കം ശുദ്ധീകരിക്കുക (Sanitize): AI അവ വായിക്കുന്നതിന് മുമ്പ് ഒളിഞ്ഞിരിക്കുന്ന അക്ഷരങ്ങളും സാധാരണ ഇൻജക്ഷൻ പാറ്റേണുകളും നീക്കം ചെയ്യുക.
- സാൻഡ്ബോക്സുകൾ (Sandboxes) ഉപയോഗിക്കുക: നെറ്റ്വർക്ക് ആക്സസ് ഇല്ലാത്തതും റീഡ്-ഒൺലി (read-only) ഫയൽ സിസ്റ്റങ്ങളുള്ളതുമായ കണ്ടെയ്നറുകളിൽ AI ഏജന്റുകളെ പ്രവർത്തിപ്പിക്കുക.
- കർശനമായ നയങ്ങൾ നിശ്ചയിക്കുക: അനുവദനീയമായ കമാൻഡുകളുടെ ഒരു വൈറ്റ്ലിസ്റ്റ് (whitelist) തയ്യാറാക്കുക. ഡാറ്റ മാറ്റുന്നതോ ഫയലുകൾ ഡിലീറ്റ് ചെയ്യുന്നതോ ആയ ഏതൊരു കമാൻഡിനും മനുഷ്യന്റെ അനുമതി ആവശ്യമാക്കുക.
കോഡിംഗ് സെഷനുകൾക്ക് മുമ്പ് നിങ്ങൾക്ക് വേഗത്തിൽ ഒരു സ്കാൻ നടത്താം. "ignore all previous" അല്ലെങ്കിൽ "curl", "exfil" തുടങ്ങിയ സംശയാസ്പദമായ പദങ്ങൾ നിങ്ങളുടെ ഫയലുകളുണ്ടോ എന്ന് പരിശോധിക്കുക.
AI കോഡിംഗ് ടൂളുകൾ ഉൽപ്പാദനക്ഷമമാണ്, എന്നാൽ നിങ്ങളുടെ ഡിസ്കിലുള്ള ഫയലുകൾ സുരക്ഷിതമാണെന്ന് അവ കരുതുന്നു. അവ സുരക്ഷിതമല്ല. ഓരോ ഫയലിനെയും വിശ്വസിക്കാൻ കഴിയാത്ത ഇൻപുട്ട് (untrusted input) ആയി പരിഗണിക്കുക.
നിങ്ങളുടെ AI വർക്ക്ഫ്ലോയിൽ പ്രോംപ്റ്റ് ഇൻജക്ഷൻ അപകടസാധ്യതകൾ നിങ്ങൾ എങ്ങനെയാണ് കൈകാര്യം ചെയ്യുന്നത്?
സ്രോതസ്സ്: https://dev.to/tyson_cung/ai-coding-security-prompt-injection-is-hiding-in-your-project-files-4be9
