Claude Code, Cursor மற்றும் Grok Build போன்ற AI கோடிங் உதவியாளர்கள், ஒரு டெவலப்பர் நம்பகத்தன்மையற்ற ஒரு களஞ்சியத்தை (untrusted repository) திறந்தவுடன், எந்தவொரு கிளிக் அல்லது தூண்டுதலும் இன்றி தன்னிச்சையான கட்டளைகளை (arbitrary commands) செயல்படுத்த முடியும். ஒரு புராஜெக்ட்டின் கோப்புகளை ஸ்கேன் செய்ய இந்த கருவிகள் Git-இன் core.fsmonitor அம்சத்தைப் பயன்படுத்தும் விதத்தில்தான் இந்த குறைபாடு உருவாகிறது.

இந்த சிக்கல் இப்போது ஏன் முக்கியமானது

டெவலப்பர்கள் இப்போது கோட் பரிந்துரைக்க, பங்க்ஷன்களை மாற்றியமைக்க (refactor) அல்லது முழு தொகுதிகளையும் (modules) எழுத AI ஏஜெண்டுகளை அதிகம் நம்பியிருக்கிறார்கள். அந்த ஏஜெண்டுகளுக்குப் பணிபுரியும் இடத்தின் (workspace) விரைவான தகவல் தேவைப்படுவதால், அவை பின்னணியில் git status கட்டளையை இயக்குகின்றன. Git ஒரு களஞ்சியத்தின் .git/config கோப்பைப் படிக்கும்போது, core.fsmonitor-க்கு ஒதுக்கப்படும் எந்தவொரு மதிப்பும் Git இயக்கும் ஒரு ஷெல் கட்டளையாக (shell command) கருதப்படுகிறது. ஒரு தீய நோக்கம் கொண்ட நபர் அந்த கான்பிக் (config) உள்ளீட்டில் ஒரு கட்டளையைச் சேர்த்துவிட்டால், பயனர் ஒரு வரியைக் கூடத் தட்டச்சு செய்வதற்கு முன்பே, AI பின்னணியில் இயக்கும் Git அழைப்பு அந்தத் தீய கட்டளையைத் தூண்டிவிடும்.

இந்தக் குறியீடு டெவலப்பரின் சொந்த உரிமைகளுடன் (privileges) இயங்குவதால், AI ஏஜென்ட் வழக்கமாக இயங்கும் சாண்ட்பாக்ஸை (sandbox) இது தவிடுபொடியாக்கிவிடும். நடைமுறையில், ஒரு பாதிக்கப்பட்ட களஞ்சியம் மால்வேரை (malware) நிறுவலாம், கடவுச்சொற்களைத் திருடலாம் (exfiltrate credentials) அல்லது மூலக் கோப்புகளை (source files) மாற்றியமைக்கலாம்; இவை அனைத்தும் டெவலப்பர் அந்த உதவியாளர் வெறும் ஆலோசனைகளை மட்டுமே வழங்குகிறார் என்று நினைக்கும் போதே நடக்கும்.

தாக்குதல் எவ்வாறு நிகழ்கிறது

  1. தயாரிப்பு (Preparation) – ஒரு தாக்குதல் நடத்துபவர், தனது .git/config-இல் core.fsmonitor = /path/to/malicious/script போன்ற வரியைக் கொண்ட ஒரு களஞ்சியத்தை உருவாக்குகிறார்.
  2. விநியோகம் (Delivery) – அந்த களஞ்சியம் ஒரு zip கோப்பாகவோ, USB ஸ்டிக்கிலிருந்து நகலெடுக்கப்பட்டதாகவோ, பகிரப்பட்ட டிரைவ் மூலம் அல்லது பாதிக்கப்பட்டவரின் கணினியில் ஏற்கனவே .git ஃபோல்டர் இருக்கும்படி வைக்கப்படலாம்.
  3. தூண்டுதல் (Trigger) – டெவலப்பர் அந்த ஃபோல்டரை AI வசதி கொண்ட IDE-இல் திறக்கிறார். சூழலைப் புரிந்துகொள்ள (context) உதவியாளர் git status-ஐ இயக்குகிறார். Git உள்ளூர் கான்பிக்கைப் படித்து, core.fsmonitor கட்டளையைச் செயல்படுத்துகிறது, இதனால் அந்தத் தீய ஸ்கிரிப்ட் உடனடியாக இயங்குகிறது.

ஒரு சாதாரண git clone இந்த அபாயத்தை ஏற்படுத்தாது, ஏனெனில் குளோன் செய்யும் போது புதிய .git டைரக்டரி உருவாக்கப்படுவதால் அதில் மாற்றப்பட்ட கான்பிக் இருக்காது. தாக்குதல் நடத்துபவர் ஏற்கனவே இருக்கும் ஒரு .git ஃபோல்டரை வழங்கும்போது மட்டுமே இந்தத் தாக்குதல் வேலை செய்யும்.

இதில் உள்ள ஆபத்துகள் என்ன

  • தனிப்பட்ட டெவலப்பர்கள் தங்களுக்குத் தெரியாமலேயே தங்கள் கணினிகள் பாதிக்கப்படலாம், மேலும் AI ஏஜெண்டால் அணுகக்கூடிய அனைத்துத் தரவுகளையும் இழக்க நேரிடும்.
  • குழுக்கள் (Teams) உள்நாட்டு டிரைவ்கள் அல்லது ஒப்பந்ததாரர்களின் zip கோப்புகள் மூலம் கோடுகளைப் பகிர்ந்து கொள்ளும்போது, அந்தத் தீய மென்பொருள் பல கணினிகளுக்குப் பரவக்கூடும்.
  • கருவி விற்பனையாளர்கள் (Tool vendors), இந்தத் தாக்குதலுக்கு AI உதவியாளர் காரணம் என்று பயனர்கள் கருதினால், அவர்களின் நற்பெயருக்குப் பாதிப்பு ஏற்படலாம்.

இந்தத் தீய கட்டளை பயனரின் உரிமைகளைப் பெறுவதால், SSH கீய்கள், பில்ட் ஸ்கிரிப்ட்கள் அல்லது டிப்ளாய்மென்ட் சான்றுகள் (deployment credentials) உட்பட டெவலப்பரால் மாற்றக்கூடிய எந்தவொரு கோப்பையும் இது மாற்ற முடியும்.

டெவலப்பர்கள் இன்று எடுக்கக்கூடிய தணிப்பு நடவடிக்கைகள்

  • உள்ளூர் Git அமைப்புகளை நம்பாதீர்கள். ஒரு AI உதவியாளர் புராஜெக்ட்டைக் கேட்கும் ஒவ்வொரு முறையும், ஒரு களஞ்சியத்தின் கான்பிக் (config) உலகளாவிய (global) மதிப்புகளைத் தாண்டிச் செயல்படும்.

  • உதவியாளருடன் ஒரு ஃபோல்டரைத் திறப்பதற்கு முன் core.fsmonitor உள்ளீட்டைச் சரிபார்க்கவும்:

    git config --get core.fsmonitor
    

    ஏதேனும் மதிப்பு இருந்தால், அதைச் சந்தேகத்திற்குரியதாகக் கருதுங்கள்.

  • அந்த உள்ளீட்டை நீக்க:

    git config --local --unset core.fsmonitor
    
  • Git மூலம் செயல்படுத்தக்கூடிய மற்ற ஆபத்தான கீய்களைச் (keys) சரிபார்க்கவும்: hooksPath, sshCommand, pager, editor, filter. அவை காலியாக இருப்பதை உறுதி செய்ய அதே git config --get முறையைப் பயன்படுத்தவும்.

  • AI கருவிக்கு நீங்கள் வழங்க விரும்பும் எந்தவொரு கோடிற்கும் சுத்தமான குளோன்களை (clean clones) பயன்படுத்தவும். நீங்கள் ஒரு zip அல்லது மாற்றப்பட்ட ஃபோல்டருடன் வேலை செய்ய வேண்டியிருந்தால், அதன் .git டைரக்டரியை நீக்கிவிட்டு களஞ்சியத்தை மீண்டும் தொடங்குங்கள் (re-initialize), அல்லது மேலே உள்ள சோதனைகளை முதலில் செய்யுங்கள்.

பொறுப்பு யாருக்கு உள்ளது

இந்த பாதிப்பு Claude Code, Cursor அல்லது Grok Build இயக்கும் மொழி மாதிரிகளில் (language models) உள்ள குறைபாடு அல்ல; மாறாக அந்தத் கருவிகள் கோப்புத் தகவல்களைச் சேகரிக்கும் விதத்தினால் ஏற்படும் விளைவாகும். சில விற்பனையாளர்கள் Git அழைப்புகளை மிகவும் பாதுகாப்பான முறையில் (sandbox) செய்யத் தொடங்கியுள்ளனர், ஆனால் இயல்பான செயல்பாடு இன்னும் உள்ளூர் களஞ்சிய அமைப்புகளை நம்பியே உள்ளது. AI ஏஜென்ட் ஒரு பணிபுரியும் இடத்தைச் ஸ்கேன் செய்யும்போது, ஆபத்தான கான்பிக் உள்ளீடுகளை நீக்கும் அல்லது புறக்கணிக்கும் ஒரு தரநிலையைத் தொழில் துறை ஏற்றுக்கொள்ளும் வரை, டெவலப்பர்களே கடைசிப் பாதுகாப்பு அரணாக இருக்க வேண்டும்.

அடுத்து எதைக் கவனிக்க வேண்டும்

  • git status-ஐ இயக்குவதற்கு முன் Git கான்பிகரஷனைத் தெளிவாகச் சுத்தப்படுத்தும் கருவி மேம்பாடுகள் (Tool updates).
  • பாதுகாப்பான AI-உதவி டெவலப்மெண்டிற்கான சமூக வழிகாட்டுதல்கள் (Community-driven guidelines), இதில் பரிந்துரைக்கப்பட்ட முன்-சோதனைகள் (pre-flight checks) இருக்கலாம்.
  • மேலே குறிப்பிடப்பட்டுள்ள ஐந்து கீயைத் தாண்டி, கோட் செயல்படுத்தக்கூடிய கூடுதல் Git config கீய்களைக் கண்டறியும் பாதுகாப்பு ஆராய்ச்சி (Security research).

சுருக்கமாகச் சொன்னால்: ஒரு AI உதவியாளர் வசதியான ஒரு இணை-புரோகிராமராக (pair-programmer) இருக்கலாம், ஆனால் ஒரு களஞ்சியத்தின் Git கான்பிக்கில் மறைந்துள்ள எந்தவொரு கட்டளையையும் அது மகிழ்ச்சியுடன் இயக்கும். உதவியாளர் அதைத் தொடங்கும் முன் பணிபுரியும் இடத்தை (workspace) சரிபார்க்கவும்.