AI കോഡിംഗ് അസിസ്റ്റന്റുകൾ വെറും ഓട്ടോകംപ്ലീറ്റ് വിഡ്ജറ്റുകൾ എന്നതിലുപരിയായി പണ്ടേ മാറിയിരിക്കുന്നു. അവ നിങ്ങളുടെ റെപ്പോസിറ്ററികൾ ഇൻഡക്സ് ചെയ്യുന്നു, എൻവയോൺമെന്റ് വേരിയബിളുകൾ (environment variables) വായിക്കുന്നു, ഷെൽ കമാൻഡുകൾ നിർദ്ദേശിക്കുന്നു, നിങ്ങളുടെ ടെർമിനലിൽ പരിഹാരങ്ങൾ (fixes) നിർദ്ദേശിക്കുന്നു. നിങ്ങളുടെ സോഴ്സ് കോഡ്, ലോക്കൽ ടോക്കണുകൾ, ക്ലൗഡ് CLI കോൺഫിഗറേഷനുകൾ, SSH കീകൾ എന്നിവയുമായി ഒരേ മെമ്മറി സ്പേസിൽ അവ നിലകൊള്ളുന്നു. ഈ സാമീപ്യം അവയെ കേവലം ഒരു സൈദ്ധാന്തികമായ പ്രശ്നമെന്നതിലുപരി, നിങ്ങളുടെ അറ്റാക്ക് സർഫസിന്റെ (attack surface) നേരിട്ടുള്ള ഭാഗമാക്കി മാറ്റുന്നു.

മിക്ക ടീമുകളും ഈ ടൂളുകൾ വളരെ വേഗത്തിലാണ് സ്വീകരിച്ചത്. ഒരു ഡെവലപ്പർ ഒരു എക്സ്റ്റൻഷൻ ഇൻസ്റ്റാൾ ചെയ്യുന്നു, ഒരു പേഴ്സണൽ ആക്സസ് ടോക്കൺ ഉപയോഗിച്ച് ഓതന്റിക്കേറ്റ് ചെയ്യുന്നു, തുടർന്ന് AI നിർദ്ദേശങ്ങൾ സ്വീകരിക്കാൻ തുടങ്ങുന്നു. സെക്യൂരിറ്റി റിവ്യൂകൾ പലപ്പോഴും ഇതിനൊപ്പം എത്താറില്ല. Djinn Stealer, ChocoPoC എന്നീ രണ്ട് സമീപകാല ഭീഷണികൾ ഈ വിടവ് എത്രത്തോളം അപകടകരമാണെന്ന് കൃത്യമായി കാണിച്ചുതരുന്നു.

നിങ്ങൾ പരിശോധിക്കാൻ മറന്നുപോയ അയൽക്കാരൻ

നിങ്ങളുടെ അസിസ്റ്റന്റ് യഥാർത്ഥത്തിൽ എവിടെയാണ് ഇരിക്കുന്നത് എന്ന് ചിന്തിച്ചുനോക്കൂ. നിങ്ങൾ GitHub Copilot, Cursor, Continue അല്ലെങ്കിൽ സമാനമായ ഏതെങ്കിലും ടൂൾ ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ, നിങ്ങളുടെ തുറന്ന ഫയലുകൾക്കും പ്രോജക്റ്റ് ഘടനയ്ക്കും ചിലപ്പോൾ നിങ്ങളുടെ മുഴുവൻ ലോക്കൽ ഫയൽ സിസ്റ്റത്തിനും റീഡ് ആക്സസ് (read access) അതിനുണ്ടാകാൻ സാധ്യതയുണ്ട്. ഡിസ്കിലെ പ്രവചിക്കാവുന്ന ഇടങ്ങളിൽ ഇത് ഓതന്റിക്കേഷൻ ടോക്കണുകൾ സംഭരിക്കുന്നു. ഇത് നിങ്ങളുടെ IDE-ക്കുള്ളിലാണ് പ്രവർത്തിക്കുന്നത്, അത് നിങ്ങളുടെ യൂസർ പെർമിഷനുകളോടെയാണ് പ്രവർത്തിക്കുന്നത്. ഇതിനർത്ഥം നിങ്ങളുടെ വർക്ക്സ്റ്റേഷൻ ബാധിക്കുന്ന ഒരു മാൽവെയറിന് ക്രെഡൻഷ്യലുകൾക്കായി അലഞ്ഞുതിരിയേണ്ടതില്ല എന്നാണ്. AI അസിസ്റ്റന്റ് ഇതിനകം തന്നെ പ്രധാനപ്പെട്ട കീകൾ എല്ലാം ഒരിടത്ത് ശേഖരിച്ചു വെച്ചിട്ടുണ്ടാകും.

ഇതൊരു സാങ്കൽപ്പികമായ ആർക്കിടെക്ചർ പിഴവല്ല. Djinn Stealer കൃത്യമായി ഈ രീതി ഉപയോഗിച്ചാണ് പ്രവർത്തിക്കുന്നത്. ഇത് ഡെവലപ്പർമാരുടെ ക്രെഡൻഷ്യലുകളെയും AI ടൂൾ സെഷനുകളെയും ലക്ഷ്യം വെക്കുന്നു. ഒരു ഫയൽ സിസ്റ്റത്തിന്റെ എല്ലാ കോണുകളും പരിശോധിക്കുന്നതിന് പകരം, നിങ്ങളുടെ കോഡിംഗ് വർക്ക്ഫ്ലോ നിയന്ത്രിക്കുന്ന ടോക്കണുകളെയാണ് ഇത് ലക്ഷ്യം വെക്കുന്നത്. നിങ്ങളുടെ അസിസ്റ്റന്റ് GitHub, GitLab അല്ലെങ്കിൽ ഒരു ക്ലൗഡ് പ്രൊവൈഡറുമായി ഓതന്റിക്കേറ്റ് ചെയ്തിട്ടുണ്ടെങ്കിൽ, ആ സെഷൻ മോഷ്ടിക്കുന്നത് ഒരു അറ്റാക്കർക്ക് കോഡിനേക്കാൾ ഉപരിയായി നിങ്ങളുടെ ഐഡന്റിറ്റി (identity) നൽകുന്നു. അവർക്ക് നിങ്ങളുടെ പേരിൽ കമ്മറ്റുകൾ പുഷ് ചെയ്യാനും, സ്വകാര്യ റെപ്പോസിറ്ററികൾ വായിക്കാനും, നിങ്ങൾ ദിവസവും ഉപയോഗിക്കുന്ന അതേ API-കൾ പരിശോധിക്കാനും സാധിക്കും.

Djinn Stealer: നിങ്ങളുടെ സാമ്രാജ്യത്തിന്റെ താക്കോലുകൾ തേടി

Djinn Stealer ഒരു മെഷീനിൽ എത്തിയാൽ, ഏത് ഡ്രോയറിലാണ് അധിക കീകൾ ഇരിക്കുന്നത് എന്ന് അറിയാവുന്ന ഒരു ബുദ്ധിമാനായ കള്ളനെപ്പോലെയാണ് അത് പെരുമാറുന്നത്. ഇത് AI ടൂൾ കോൺഫിഗറേഷൻ ഡയറക്ടറികൾ, ബ്രൗസർ സെഷൻ സ്റ്റോറുകൾ, മാസങ്ങളായുള്ള ജോലിക്കിടയിൽ ഡെവലപ്പർമാർ ശേഖരിച്ച ക്രെഡൻഷ്യൽ ഫയലുകൾ എന്നിവ തിരയുന്നു. ആധുനിക ഡെവലപ്മെന്റ് എൻവയോൺമെന്റുകൾ ആക്സസ് കേന്ദ്രീകരിക്കുന്നുണ്ടെന്ന് ഈ സ്റ്റീലർ അറിയുന്നു. നിങ്ങളുടെ AI അസിസ്റ്റന്റിനായുള്ള ഒരു OAuth ടോക്കന് പാക്കേജ് രജിസ്ട്രികൾ, കണ്ടെയ്നർ റെപ്പോസിറ്ററികൾ, ഇൻഫ്രാസ്ട്രക്ചർ API-കൾ എന്നിവയിലേക്കുള്ള ആക്സസുമായി ബന്ധമുണ്ടാകാം.

ഡെവലപ്പർമാർ ലോക്കലായി പ്രൂഫ്-ഓഫ്-കോൺസെപ്റ്റ് (proof-of-concept) കോഡുകൾ ടെസ്റ്റ് ചെയ്യുമ്പോൾ അപകടസാധ്യത വർദ്ധിക്കുന്നു. നിങ്ങൾ ഒരു സെക്യൂരിറ്റി റിസർച്ചറുടെ രസകരമായ ഒരു റെപ്പോസിറ്ററി ക്ലോൺ ചെയ്യുന്നു, അത് എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് കാണാൻ ഒരു സ്ക്രിപ്റ്റ് റൺ ചെയ്യുന്നു, ആ സ്ക്രിപ്റ്റ് പശ്ചാത്തലത്തിൽ നിശബ്ദമായി ഒരു ക്രെഡൻഷ്യൽ ഹാർവെസ്റ്റർ പ്രവർത്തിപ്പിക്കുന്നു. നിങ്ങളുടെ AI അസിസ്റ്റന്റിന്റെ ടോക്കണുകൾ നിങ്ങളുടെ ഹോം ഡയറക്ടറിക്ക് കീഴിലുള്ള സ്റ്റാൻഡേർഡ് പാത്തുകളിൽ ഉള്ളതിനാൽ, നിങ്ങൾ README വായിച്ചു തീരുന്നതിന് മുമ്പ് തന്നെ സ്റ്റീലർ അവ ചോർത്താൻ സാധ്യതയുണ്ട്. ഏറ്റവും മോശമായ കാര്യം, ഈ ടോക്കണുകൾ പ്രൊഡക്ഷൻ സിസ്റ്റങ്ങൾക്കല്ല, മറിച്ച് പ്രൊഡക്റ്റിവിറ്റി ടൂളുകൾക്കായി നിർമ്മിച്ചവയായതിനാൽ അവ പലപ്പോഴും കോർപ്പറേറ്റ് SSO-യെ മറികടക്കുന്നു എന്നതാണ്.

ChocoPoC: ഡിപെൻഡൻസികൾ കള്ളം പറയുമ്പോൾ

Djinn Stealer വീടിനുള്ളിൽ മോഷണം നടത്തുമ്പോൾ, ChocoPoC മെയിൽ സ്ലോട്ടിലൂടെ (mail slot) രഹസ്യമായി അകത്തേക്ക് കടക്കുന്നു. ഈ ഭീഷണി Python ഡിപെൻഡൻസികൾക്കുള്ളിൽ, പ്രത്യേകിച്ച് frint, skytext എന്ന് പേരുള്ള പാക്കേജുകൾക്കുള്ളിൽ മാൽവേഷ്യസ് പാത്തുകൾ ഒളിപ്പിച്ചു വെക്കുന്നു. ഒരു സാധാരണ പരിശോധനയിൽ പെടാത്ത വിധം, ഇതിന്റെ പേലോഡ് (payload) ദൃശ്യമായ സ്ക്രിപ്റ്റുകളിൽ ഇരിക്കുന്നില്ല. പകരം, അത് കൂടുതൽ ആഴത്തിൽ ഒളിഞ്ഞിരിക്കുന്നു,