രഹസ്യങ്ങൾ ചോരാതെ AI ഉപയോഗിക്കാം

നിങ്ങൾക്ക് ഒരു എറർ (error) വരുന്നു. നിങ്ങൾ അതിന്റെ സ്റ്റാക്ക് ട്രാസ് (stack trace) കോപ്പി ചെയ്യുന്നു. അത് ശരിയാക്കാൻ നിങ്ങൾ AI-യോട് ചോദിക്കുന്നു. ആ ടെക്സ്റ്റിൽ നിങ്ങളുടെ DATABASE_URL-ഉം പാസ്‌വേഡും ഉണ്ടെന്ന് നിങ്ങൾ മറന്നുപോകുന്നു. നാല് സെക്കൻഡിനുള്ളിൽ AI മറുപടി നൽകുന്നു. ഇപ്പോൾ നിങ്ങളുടെ രഹസ്യവിവരങ്ങൾ ഒരു റിക്വസ്റ്റ് ലോഗിലോ (request log) അല്ലെങ്കിൽ ട്രെയിനിംഗ് സെറ്റിലോ എത്തിക്കഴിഞ്ഞു. നിങ്ങൾക്ക് അത് തിരികെ എടുക്കാൻ കഴിയില്ല.

രഹസ്യവിവരങ്ങൾ ഒരു AI-യിൽ പേസ്റ്റ് ചെയ്യുന്നത് ഒരു പബ്ലിക് സൈറ്റിൽ പേസ്റ്റ് ചെയ്യുന്നത് പോലെയാണ്. നിങ്ങൾക്ക് അവ തിരികെ പിൻവലിക്കാൻ കഴിയില്ല.

കോഡ് ഡെലിവറി ചെയ്യാൻ ഞാൻ ദിവസവും AI ഉപയോഗിക്കാറുണ്ട്. ഞാൻ അത് ഒഴിവാക്കാറില്ല. പകരം, ഒരു ത്രെറ്റ് മോഡൽ (threat model) ഉപയോഗിച്ചാണ് ഞാൻ അത് ഉപയോഗിക്കുന്നത്.

മിക്ക ആളുകളും കരുതുന്നത് ഒരു പ്രോംപ്റ്റ് (prompt) എന്നത് ഒരു സ്വകാര്യ ചാറ്റ് ആണെന്നാണ്. എന്നാൽ അതല്ല. അതൊരു ഔട്ട്‌ബൗണ്ട് റിക്വസ്റ്റ് (outbound request) ആണ്.

  • ഫ്രീ ടയറുകൾ (Free tiers) പലപ്പോഴും നിങ്ങളുടെ ഡാറ്റ മോഡലുകൾ പരിശീലിപ്പിക്കാൻ ഉപയോഗിക്കുന്നു.
  • പെയ്ഡ് ടയറുകൾ (Paid tiers) സാധാരണയായി നിങ്ങളുടെ ഡാറ്റ ഉപയോഗിച്ച് ട്രെയിനിംഗ് നടത്തില്ലെന്ന് വാഗ്ദാനം ചെയ്യുന്നു.
  • ദുരുപയോഗം കണ്ടെത്താനും മനുഷ്യർ പരിശോധിക്കാനും വേണ്ടി പെയ്ഡ് ടയറുകൾ പോലും ലോഗുകൾ സൂക്ഷിക്കാറുണ്ട്.

ഡാറ്റ മൂന്ന് രീതികളിൽ ചോരാം:

  • നിങ്ങൾ പേസ്റ്റ് ചെയ്യുന്നത്: കോഡ് സ്നിപ്പറ്റുകൾ (code snippets), കോൺഫിഗറേഷനുകൾ (configs), അല്ലെങ്കിൽ ട്രാസുകൾ (traces).
  • ടൂളുകൾ ഓട്ടോമാറ്റിക്കായി ചേർക്കുന്നത്: തുറന്നു വെച്ചിരിക്കുന്ന ഫയലുകൾ, റെപ്പോസിറ്ററി കോൺടെക്സ്റ്റ് (repo context), അല്ലെങ്കിൽ ടെർമിനൽ ഔട്ട്‌പുട്ട്.
  • മോഡൽ തിരികെ അയക്കുന്നത്: ഒരു PR ഡിസ്ക്രിപ്ഷനിലോ ലോഗിലോ വരുന്ന രഹസ്യവിവരങ്ങൾ.

AI പ്രൊവൈഡർ ഒരു വിശ്വസനീയമായ മൂന്നാം കക്ഷി (third party) ആണ്. അവരുടെ ഇന്റേണൽ പൈപ്പ്‌ലൈനുകൾ നിങ്ങൾക്ക് പരിശോധിക്കാൻ കഴിയില്ല. പ്രോംപ്റ്റ് ബോക്സിനെ ഒരു വിശ്വസിക്കാൻ കഴിയാത്ത നെറ്റ്‌വർക്ക് കോൾ (untrusted network call) പോലെ കാണുക.

ഇവ അയക്കുന്നത് ഒഴിവാക്കുക:

  • ലൈവ് API കീകൾ അല്ലെങ്കിൽ ടോക്കണുകൾ.
  • .env ഫയലുകളിലെ വിവരങ്ങൾ.
  • പ്രൈവറ്റ് കീകൾ അല്ലെങ്കിൽ സർട്ടിഫിക്കറ്റുകൾ.
  • യഥാർത്ഥ ഉപഭോക്താക്കളുടെ പേരുകൾ, ഇമെയിലുകൾ, അല്ലെങ്കിൽ പേയ്‌മെന്റ് വിവരങ്ങൾ.
  • നിങ്ങൾ ഓപ്പൺ സോഴ്‌സ് ചെയ്യാൻ ആഗ്രഹിക്കാത്ത പ്രൊപ്രൈറ്ററി ലോജിക് (proprietary logic).

പകരം പ്ലേസ്‌ഹോൾഡറുകൾ (placeholders) ഉപയോഗിക്കുക. [API_KEY] അല്ലെങ്കിൽ [DB_PASSWORD] എന്ന് ഉപയോഗിക്കുക. മാസ്ക് ചെയ്ത വിവരങ്ങൾ ഉപയോഗിച്ചും AI മികച്ച രീതിയിൽ പ്രവർത്തിക്കും.

ഈ മൂന്ന് ശീലങ്ങൾ വളർത്തിയെടുക്കുക:

  • ഒരു AI ignore ഫയൽ ഉപയോഗിക്കുക. .env ഫയലുകളും രഹസ്യ ഫോൾഡറുകളും ടൂളിന്റെ കോൺടെക്സ്റ്റിൽ നിന്ന് ഒഴിവാക്കുക.
  • അയക്കുന്നതിന് മുമ്പ് സ്കാൻ ചെയ്യുക. പേസ്റ്റ് ചെയ്യുന്നതിന് മുമ്പ് നിങ്ങളുടെ ടെക്സ്റ്റിൽ ഒരു സീക്രട്ട് ഡിറ്റക്ടർ (secret detector) പ്രവർത്തിപ്പിക്കുക.
  • രഹസ്യങ്ങൾ എൻക്രിപ്റ്റ് ചെയ്ത് സൂക്ഷിക്കുക. റൺടൈമിൽ (runtime) മെമ്മറിയിൽ മാത്രം നിലനിൽക്കുന്ന രഹസ്യങ്ങൾ നിങ്ങൾക്ക് പേസ്റ്റ് ചെയ്യാൻ കഴിയില്ല.

നിങ്ങളുടെ ഓപ്ഷനുകളുടെ സംഗ്രഹം:

  • ഫ്രീ/കൺസ്യൂമർ (Free/Consumer): പബ്ലിക് ഡോക്യുമെന്റുകൾക്കോ അല്ലെങ്കിൽ ഉപയോഗിച്ച് കളയുന്ന സ്നിപ്പറ്റുകൾക്കോ വേണ്ടി ഉപയോഗിക്കാം.
  • പെയ്ഡ് പ്രോ/ടീം (Paid Pro/Team): മിക്ക എഞ്ചിനീയറിംഗ് ജോലികൾക്കും ഉപയോഗിക്കാം. ഇതിൽ കരാർ സംരക്ഷണം (contractual protections) ലഭ്യമാണ്.
  • ലോക്കൽ/സെൽഫ് ഹോസ്റ്റഡ് (Local/Self-hosted): നിങ്ങളുടെ മെഷീനിൽ തന്നെ സൂക്ഷിക്കേണ്ട നിയന്ത്രിത ഡാറ്റയ്ക്കായി ഉപയോഗിക്കാം.

'ട്രെയിനിംഗ് നടത്തില്ല' എന്ന ഗ്യാരണ്ടി ഒരു കരാറാണ്. അതൊരു സാങ്കേതികമായ കവചമല്ല. അത് റിസ്ക് കുറയ്ക്കുന്നുണ്ടെങ്കിലും പൂർണ്ണമായും ഇല്ലാതാക്കുന്നില്ല.

AI നിങ്ങളുടെ കോഡിൽ തൊടുന്നതിന് മുമ്പ് ഈ ഘട്ടങ്ങൾ പാലിക്കുക:

  • നിങ്ങളുടെ AI ടൂളുകൾക്കായി ഒരു ignore ഫയൽ ചേർക്കുക.
  • നിങ്ങൾ പേസ്റ്റ് ചെയ്യുന്നതെല്ലാം സ്കാൻ ചെയ്യുക.
  • എല്ലാ ക്രെഡൻഷ്യലുകളും (credentials) പ്ലേസ്‌ഹോൾഡറുകൾ ഉപയോഗിച്ച് മാസ്ക് ചെയ്യുക.
  • പ്രൊപ്രൈറ്ററി ജോലികൾക്കായി പെയ്ഡ് ടയറുകൾ ഉപയോഗിക്കുക.
  • രഹസ്യങ്ങൾ പ്ലെയിൻ ടെക്സ്റ്റ് (plaintext) രൂപത്തിൽ ഇല്ലാതിരിക്കാൻ ഒരു KMS ഉപയോഗിക്കുക.
  • AI ഔട്ട്‌പുട്ട് നിങ്ങളുടെ ലോഗുകളിലോ കമ്മറ്റുകളിലോ (commits) എത്തുന്നതിന് മുമ്പ് പരിശോധിക്കുക.

ആ നാല് സെക്കൻഡുള്ള മറുപടി ഇപ്പോഴും വേഗതയുള്ളതാണ്. പക്ഷേ അത് നിങ്ങളുടെ സുരക്ഷയെ ബാധിക്കരുത്.

Source: https://dev.to/faizahmedfarooqui/using-ai-without-leaking-your-secrets-a-threat-model-for-ai-assisted-development-2l57

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