Claude Code, Cursor, Grok Build പോലുള്ള AI കോഡിംഗ് അസിസ്റ്റന്റുകൾക്ക് ഒരു ഡെവലപ്പർ വിശ്വസിക്കാൻ കഴിയാത്ത ഒരു റെപ്പോസിറ്ററി (untrusted repository) തുറക്കുന്ന നിമിഷം തന്നെ, യാതൊരു ക്ലിക്കോ പ്രോംപ്റ്റോ ഇല്ലാതെ തന്നെ ഏത് കമാൻഡും പ്രവർത്തിപ്പിക്കാൻ സാധിക്കും. ഒരു പ്രോജക്റ്റിലെ ഫയലുകൾ സ്കാൻ ചെയ്യുന്നതിനായി ഈ ടൂളുകൾ Git-ന്റെ core.fsmonitor ഫീച്ചർ ഉപയോഗിക്കുന്ന രീതിയിലാണ് ഈ പിഴവ് സംഭവിക്കുന്നത്.
ഈ പ്രശ്നം ഇപ്പോൾ എന്തുകൊണ്ട് പ്രധാനമാകുന്നു
കോഡ് നിർദ്ദേശിക്കാനോ, ഫംഗ്ഷനുകൾ റീഫാക്ടർ ചെയ്യാനോ, അല്ലെങ്കിൽ മുഴുവൻ മൊഡ്യൂളുകൾ എഴുതാനോ ഡെവലപ്പർമാർ ഇന്ന് AI ഏജന്റുകളെ കൂടുതൽ ആശ്രയിക്കുന്നു. ഈ ഏജന്റുകൾക്ക് വർക്ക്സ്പേസിന്റെ ഒരു വേഗത്തിലുള്ള സ്നാപ്പ്ഷോട്ട് ആവശ്യമാണ്, അതിനാൽ അവ പശ്ചാത്തലത്തിൽ git status പ്രവർത്തിപ്പിക്കുന്നു. Git ഒരു റെപ്പോസിറ്ററിയുടെ .git/config ഫയൽ വായിക്കുമ്പോൾ, core.fsmonitor-ന് നൽകിയിരിക്കുന്ന ഏതൊരു മൂല്യത്തെയും (value) Git പ്രവർത്തിപ്പിക്കേണ്ട ഒരു ഷെൽ കമാൻഡായി കണക്കാക്കുന്നു. ഒരു ദുഷ്ടപ്രവർത്തകന് (malicious actor) ആ കോൺഫിഗിൽ ഒരു കമാൻഡ് നൽകാൻ കഴിയും, അങ്ങനെ ഉപയോക്താവ് ഒരു വരി കോഡ് പോലും ടൈപ്പ് ചെയ്യുന്നതിന് മുമ്പ് തന്നെ AI-യുടെ പശ്ചാത്തലത്തിലുള്ള Git കോൾ അത് പ്രവർത്തിപ്പിക്കും.
ഈ കോഡ് ഡെവലപ്പറുടെ തന്നെ അധികാരങ്ങളോടെയാണ് (privileges) പ്രവർത്തിക്കുന്നത്, ഇത് AI ഏജന്റ് സാധാരണയായി പ്രവർത്തിക്കുന്ന സാൻഡ്ബോക്സിനെ (sandbox) മറികടക്കുന്നു. പ്രായോഗികമായി പറഞ്ഞാൽ, ഒരു വിശ്വസിക്കാൻ കഴിയാത്ത റെപ്പോസിറ്ററി വഴി മാൽവെയർ ഇൻസ്റ്റാൾ ചെയ്യാനോ, ക്രെഡൻഷ്യലുകൾ ചോർത്താനോ, അല്ലെങ്കിൽ സോഴ്സ് ഫയലുകൾ മാറ്റം വരുത്താനോ സാധിക്കും; ഈ സമയത്ത് അസിസ്റ്റന്റ് വെറും നിർദ്ദേശങ്ങൾ നൽകുകയാണെന്നാണ് ഡെവലപ്പർ വിചാരിക്കുന്നത്.
ആക്രമണം എങ്ങനെ നടക്കുന്നു
- തയ്യാറെടുപ്പ് (Preparation) – ഒരു അറ്റാക്കർ
.git/config-ൽcore.fsmonitor = /path/to/malicious/scriptഎന്ന വരി അടങ്ങിയ ഒരു റെപ്പോസിറ്ററി നിർമ്മിക്കുന്നു. - ഡെലിവറി (Delivery) – റെപ്പോസിറ്ററി ഒരു സിപ്പ് (zip) ഫയലായോ, യുഎസ്ബി സ്റ്റിക്കിൽ നിന്നോ, ഷെയർ ചെയ്ത ഡ്രൈവിലൂടെയോ അല്ലെങ്കിൽ മറ്റേതെങ്കിലും രീതിയിലോ
.gitഫോൾഡർ സഹിതം ഇരയുടെ മെഷീനിൽ എത്തിക്കുന്നു. - ട്രിഗർ (Trigger) – ഡെവലപ്പർ ആ ഫോൾഡർ ഒരു AI-സജ്ജമായ IDE-യിൽ തുറക്കുന്നു. വിവരങ്ങൾ ശേഖരിക്കുന്നതിനായി അസിസ്റ്റന്റ്
git statusപ്രവർത്തിപ്പിക്കുന്നു. Git ലോക്കൽ കോൺഫിഗർ വായിക്കുകയുംcore.fsmonitorകമാൻഡ് പ്രവർത്തിപ്പിക്കുകയും ചെയ്യുന്നു, ഉടൻ തന്നെ ആ മാൽവേഷ്യസ് സ്ക്രിപ്റ്റ് പ്രവർത്തിക്കുന്നു.
ഒരു സാധാരണ git clone ഈ അപകടസാധ്യത ഉണ്ടാക്കില്ല, കാരണം ക്ലോൺ ചെയ്യുമ്പോൾ പുതിയൊരു .git ഡയറക്ടറി സൃഷ്ടിക്കപ്പെടുന്നു, അതിൽ മാറ്റം വരുത്തിയ കോൺഫിഗറുകൾ ഉണ്ടാകില്ല. അറ്റാക്കർക്ക് നേരത്തെ നിലവിലുള്ള ഒരു .git ഫോൾഡർ നൽകാൻ കഴിയുമ്പോൾ മാത്രമേ ഈ ആക്രമണം ഫലപ്രദമാകൂ.
എന്തൊക്കെ നഷ്ടപ്പെടാം
- വ്യക്തിഗത ഡെവലപ്പർമാർക്ക് (Individual developers) തങ്ങൾ അറിയാതെ തന്നെ അവരുടെ മെഷീനുകൾ ഹാക്ക് ചെയ്യപ്പെടാനും AI ഏജന്റിന് പ്രവേശനമുള്ള ഏത് ഡാറ്റയും നഷ്ടപ്പെടാനും സാധ്യതയുണ്ട്.
- ടീമുകൾ (Teams) ഇന്റേണൽ ഡ്രൈവുകൾ വഴിയോ കോൺട്രാക്ടർമാരുടെ സിപ്പ് ഫയലുകൾ വഴിയോ കോഡ് പങ്കുവെക്കുമ്പോൾ, ഈ മാൽവെയർ പല വർക്ക്സ്റ്റേഷനുകളിലേക്കും പടരാം.
- ടൂൾ വെണ്ടർമാർക്ക് (Tool vendors) ഉപയോക്താക്കൾ ഈ സുരക്ഷാ വീഴ്ചയ്ക്ക് കാരണം AI അസിസ്റ്റന്റാണെന്ന് വിചാരിക്കുകയാണെങ്കിൽ അവരുടെ സൽപ്പേരിന് കളങ്കം സംഭവിക്കാം.
ഈ മാൽവേഷ്യസ് കമാൻഡിന് ഉപയോക്താവിന്റെ അവകാശങ്ങൾ (rights) ലഭിക്കുന്നതിനാൽ, SSH കീകൾ, ബിൽഡ് സ്ക്രിപ്റ്റുകൾ, അല്ലെങ്കിൽ ഡിപ്ലോയ്മെന്റ് ക്രെഡൻഷ്യലുകൾ എന്നിവയുൾപ്പെടെ ഡെവലപ്പർക്ക് മാറ്റാൻ കഴിയുന്ന ഏത് ഫയലും ഇതിന് മാറ്റം വരുത്താൻ കഴിയും.
ഡെവലപ്പർമാർക്ക് ഇന്ന് ചെയ്യാവുന്ന പ്രതിരോധ നടപടികൾ
ലോക്കൽ Git സെറ്റിംഗുകളെ വിശ്വസിക്കരുത്. ഒരു AI അസിസ്റ്റന്റ് പ്രോജക്റ്റ് പരിശോധിക്കുമ്പോഴെല്ലാം റെപ്പോസിറ്ററിയുടെ കോൺഫിഗർ ഗ്ലോബൽ വാല്യൂസിനെ മറികടക്കുന്നു.
അസിസ്റ്റന്റ് ഉപയോഗിച്ച് ഒരു ഫോൾഡർ തുറക്കുന്നതിന് മുമ്പ്
core.fsmonitorഎൻട്രി പരിശോധിക്കുക:git config --get core.fsmonitorഏതെങ്കിലും വാല്യൂ കാണുന്നുണ്ടെങ്കിൽ അത് സംശയാസ്പദമായി കാണുക.
ആ എൻട്രി നീക്കം ചെയ്യാൻ:
git config --local --unset core.fsmonitorGit പ്രവർത്തിപ്പിക്കാൻ സാധ്യതയുള്ള മറ്റ് റിസ്കിയുള്ള കീകൾ പരിശോധിക്കുക:
hooksPath,sshCommand,pager,editor,filter. അവ ശൂന്യമാണോ എന്ന് പരിശോധിക്കാൻ ഇതേgit config --getരീതി ഉപയോഗിക്കുക.AI ടൂളുകൾക്ക് നൽകാൻ ഉദ്ദേശിക്കുന്ന കോഡുകൾക്ക് ക്ലീൻ ക്ലോണുകൾ (clean clones) ഉപയോഗിക്കുക. നിങ്ങൾക്ക് ഒരു സിപ്പ് ഫയലോ അല്ലെങ്കിൽ കൈമാറ്റം ചെയ്ത ഫോൾഡറോ ഉപയോഗിക്കേണ്ടി വന്നാൽ, അതിന്റെ
.gitഡയറക്ടറി നീക്കം ചെയ്ത ശേഷം റെപ്പോസിറ്ററി വീണ്ടും ഇൻസ്റ്റാൾ ചെയ്യുക (re-initialize), അല്ലെങ്കിൽ മുകളിൽ പറഞ്ഞ പരിശോധനകൾ ആദ്യം നടത്തുക.
ഉത്തരവാദിത്തം ആർക്കാണ്
ഈ സുരക്ഷാ വീഴ്ച Claude Code, Cursor അല്ലെങ്കിൽ Grok Build എന്നിവ പ്രവർത്തിപ്പിക്കുന്ന ലാംഗ്വേജ് മോഡലുകളിലെ പിഴവല്ല; മറിച്ച് ആ ടൂളുകൾ ഫയൽ വിവരങ്ങൾ ശേഖരിക്കുന്ന രീതിയുടെ ഫലമാണ്. ചില വെണ്ടർമാർ Git കോളുകളെ കൂടുതൽ കർശനമായി സാൻഡ്ബോക്സ് ചെയ്യാൻ തുടങ്ങിയിട്ടുണ്ട്, എങ്കിലും ഡിഫോൾട്ട് രീതി ഇപ്പോഴും ലോക്കൽ റെപ്പോസിറ്ററി സെറ്റിംഗുകളെ വിശ്വസിക്കുന്നു. ഒരു AI ഏജന്റ് വർക്ക്സ്പേസ് സ്കാൻ ചെയ്യുമ്പോൾ അപകടകരമായ കോൺഫിഗറുകൾ ഒഴിവാക്കുന്ന ഒരു സ്റ്റാൻഡേർഡ് വ്യവസായം സ്വീകരിക്കുന്നത് വരെ, ഡെവലപ്പർമാർ തന്നെയായിരിക്കണം അവസാന പ്രതിരോധ നിര.
ഇനി ശ്രദ്ധിക്കേണ്ട കാര്യങ്ങൾ
git statusപ്രവർത്തിപ്പിക്കുന്നതിന് മുമ്പ് Git കോൺഫിഗറേഷൻ കൃത്യമായി പരിശോധിക്കുന്ന (sanitize) ടൂൾ അപ്ഡേറ്റുകൾ.- സുരക്ഷിതമായ AI അസിസ്റ്റഡ് ഡെവലപ്മെന്റിനായുള്ള കമ്മ്യൂണിറ്റി മാർഗ്ഗനിർദ്ദേശങ്ങൾ, ഇതിൽ മുൻകൂർ പരിശോധനകൾ ഉൾപ്പെട്ടേക്കാം.
- കോഡ് എക്സിക്യൂട്ട് ചെയ്യാൻ കഴിയുന്ന കൂടുതൽ Git കോൺഫിഗർ കീകൾ കണ്ടെത്താൻ സാധ്യതയുള്ള സെക്യൂരിറ്റി റിസർച്ച്, ഇത് മുകളിൽ പറഞ്ഞ അഞ്ച് കീകൾക്ക് പുറമെ കൂടുതൽ പരിശോധനകൾ ആവശ്യമായി വന്നേക്കാം.
ചുരുക്കത്തിൽ: ഒരു AI അസിസ്റ്റന്റ് മികച്ചൊരു ജോടി പ്രോഗ്രാമർ ആകാം, എന്നാൽ ഒരു റെപ്പോസിറ്ററിയുടെ Git കോൺഫിഗറിൽ ഒളിഞ്ഞിരിക്കുന്ന ഏത് കമാൻഡും അത് സന്തോഷത്തോടെ പ്രവർത്തിപ്പിക്കും. അസിസ്റ്റന്റിനെ ഉപയോഗിക്കുന്നതിന് മുമ്പ് വർക്ക്സ്പേസ് പരിശോധിക്കുക.
