Claude Code, Cursor અને Grok Build જેવા AI કોડિંગ આસિસ્ટન્ટ્સ ડેવલપર દ્વારા કોઈપણ ક્લિક અથવા પ્રોમ્પ્ટ વગર, અવિશ્વાસપાત્ર (untrusted) રિપોઝિટરી ખોલતાની સાથે જ મનસ્વી (arbitrary) કમાન્ડ્સ અમલમાં મૂકી શકે છે. આ ખામી પ્રોજેક્ટની ફાઇલો સ્કેન કરવા માટે આ ટૂલ્સ Git ની core.fsmonitor સુવિધાનો ઉપયોગ કરવાની રીતમાંથી ઉદભવે છે.

આ સમસ્યા અત્યારે શા માટે મહત્વની છે

ડેવલપર્સ કોડ સૂચવવા માટે, ફંક્શન્સ રિફેક્ટર કરવા માટે અથવા આખા મોડ્યુલ્સ લખવા માટે વધુને વધુ AI એજન્ટ્સ પર નિર્ભર બની રહ્યા છે. તે એજન્ટ્સને વર્કસ્પેસનું ઝડપી સ્નેપશોટની જરૂર હોય છે, તેથી તેઓ પડદા પાછળ git status રન કરે છે. જ્યારે Git રિપોઝિટરીની .git/config ફાઇલ વાંચે છે, ત્યારે core.fsmonitor ને આપવામાં આવેલી કોઈપણ વેલ્યુને શેલ કમાન્ડ તરીકે ગણવામાં આવે છે જે Git રન કરશે. એક દુષ્ટ એક્ટર (malicious actor) તે કન્ફિગ એન્ટ્રીમાં એક તૈયાર કરેલો કમાન્ડ મૂકી શકે છે, અને AI ની બેકગ્રાઉન્ડ Git કોલ યુઝર દ્વારા એક પણ લાઇન કોડ લખતા પહેલા જ તેને ટ્રિગર કરી દેશે.

આ કોડ ડેવલપરના પોતાના પ્રિવિલેજિસ (privileges) સાથે ચાલે છે, જે AI એજન્ટ સામાન્ય રીતે જે સેન્ડબોક્સમાં કામ કરે છે તેને બાયપાસ કરે છે. વ્યવહારમાં, એક કમ્પ્રોમાઇઝ્ડ રિપોઝિટરી માલવેર ઇન્સ્ટોલ કરી શકે છે, ક્રેડેન્શિયલ્સ ચોરી શકે છે અથવા સોર્સ ફાઇલોમાં ફેરફાર કરી શકે છે, તે બધું જ ત્યારે થાય છે જ્યારે ડેવલપર માને છે કે આસિસ્ટન્ટ માત્ર સૂચનો આપી રહ્યો છે.

હુમલો કેવી રીતે થાય છે

  1. તૈયારી – હુમલાખોર એક એવી રિપોઝિટરી બનાવે છે જેની .git/config માં core.fsmonitor = /path/to/malicious/script જેવી લાઇન હોય છે.
  2. ડિલિવરી – રિપોઝિટરીને ઝિપ ફાઇલ તરીકે આપવામાં આવે છે, USB સ્ટીકમાંથી કોપી કરવામાં આવે છે, શેર કરેલા ડ્રાઇવ દ્વારા સિંક કરવામાં આવે છે, અથવા અન્યથા .git ફોલ્ડર સાથે જ પીડિતની મશીન પર મૂકવામાં આવે છે.
  3. ટ્રિગર – ડેવલપર AI-સક્ષમ IDE માં ફોલ્ડર ખોલે છે. આસિસ્ટન્ટ સંદર્ભ (context) મેળવવા માટે git status રન કરે છે. Git લોકલ કન્ફિગ વાંચે છે, core.fsmonitor કમાન્ડ એક્ઝિક્યુટ કરે છે, અને દુષ્ટ સ્ક્રિપ્ટ તરત જ ચાલે છે.

સાદું git clone આ જોખમને ખુલ્લું પાડતું નથી કારણ કે ક્લોન એક નવી .git ડિરેક્ટરી બનાવે છે જેમાં છેડછાડ કરેલી કન્ફિગ હોતી નથી. આ હુમલો ત્યારે જ કામ કરે છે જ્યારે હુમલાખોર અગાઉથી અસ્તિત્વ ધરાવતું .git ફોલ્ડર આપી શકે.

શું જોખમમાં છે

  • વ્યક્તિગત ડેવલપર્સ જાણ્યા વગર જ તેમના મશીન કમ્પ્રોમાઇઝ થઈ શકે છે, અને AI એજન્ટ જે ડેટા એક્સેસ કરી શકે છે તે બધો જ ગુમાવી શકે છે.
  • ટીમો જે ઇન્ટરનલ ડ્રાઇવ્સ અથવા કોન્ટ્રાક્ટર ઝિપ ફાઇલો દ્વારા કોડ શેર કરે છે, તેઓ ઘણા વર્કસ્ટેશન પર પેલોડ (payload) ફેલાવી શકે છે.
  • ટૂલ વેન્ડર્સ જો યુઝર્સ આ બ્રીચ માટે અન્ડરલાઇંગ Git ઇન્ટરેક્શનને બદલે AI આસિસ્ટન્ટને જવાબદાર ઠેરવે, તો તેમની પ્રતિષ્ઠાને નુકસાન થવાનું જોખમ રહે છે.

કારણ કે દુષ્ટ કમાન્ડ યુઝરના અધિકારો વારસામાં મેળવે છે, તે ડેવલપર જે કોઈપણ ફાઇલ મોડિફાઇ કરી શકે છે તેને મોડિફાઇ કરી શકે છે, જેમાં SSH કીઝ, બિલ્ડ સ્ક્રિપ્ટ્સ અથવા ડિપ્લોયમેન્ટ ક્રેડેન્શિયલ્સનો સમાવેશ થાય છે.

ડેવલપર્સ આજે લઈ શકે તેવા નિવારણના પગલાં

  • લોકલ Git સેટિંગ્સ પર વિશ્વાસ ન કરો. જ્યારે પણ AI આસિસ્ટન્ટ પ્રોજેક્ટ ક્વેરી કરે છે, ત્યારે રિપોઝિટરીની કન્ફિગ ગ્લોબલ વેલ્યુઝને ઓવરરાઇડ કરે છે.

  • આસિસ્ટન્ટ સાથે ફોલ્ડર ખોલતા પહેલા core.fsmonitor એન્ટ્રી તપાસો:

    git config --get core.fsmonitor
    

    જો કોઈ વેલ્યુ દેખાય, તો તેને શંકાસ્પદ ગણો.

  • એન્ટ્રી દૂર કરો:

    git config --local --unset core.fsmonitor
    
  • Git એક્ઝિક્યુટ કરી શકે તેવી અન્ય જોખમી કીઝ તપાસો: hooksPath, sshCommand, pager, editor, filter. તે ખાલી છે કે નહીં તે ચકાસવા માટે સમાન git config --get પેટર્નનો ઉપયોગ કરો.

  • ક્લીન ક્લોન્સ (clean clones) ને પ્રાધાન્ય આપો જે કોઈપણ કોડ તમે AI ટૂલમાં ફીડ કરવા માંગો છો. જો તમારે ઝિપ અથવા ટ્રાન્સફર કરેલા ફોલ્ડર સાથે કામ કરવું જ પડે, તો તેની .git ડિરેક્ટરી ડિલીટ કરો અને રિપોઝિટરીને ફરીથી ઇનિશિયલાઇઝ કરો, અથવા પહેલા ઉપરના ચેક્સ ચલાવો.

જવાબદારી કોની છે

આ નબળાઈ Claude Code, Cursor અથવા Grok Build ને પાવર કરતા લેંગ્વેજ મોડલ્સમાં ખામી નથી; તે આ ટૂલ્સ ફાઇલ માહિતી કેવી રીતે મેળવે છે તેનું પરિણામ છે. કેટલાક વેન્ડર્સે Git કોલ્સને વધુ કડક રીતે સેન્ડબોક્સ કરવાનું શરૂ કર્યું છે, પરંતુ ડિફોલ્ટ બિહેવિયર હજુ પણ લોકલ રિપોઝિટરી સેટિંગ્સ પર વિશ્વાસ કરે છે. જ્યાં સુધી ઇન્ડસ્ટ્રી એવા સ્ટાન્ડર્ડને અપનાવે નહીં જે AI એજન્ટ વર્કસ્પેસ સ્કેન કરે ત્યારે સંભવિત જોખમી કન્ફિગ એન્ટ્રીઝને દૂર કરે અથવા અવગણે, ત્યાં સુધી ડેવલપર્સને અંતિમ સુરક્ષા રેખા (last line of defense) તરીકે રહેવું પડશે.

આગળ શું જોવું

  • ટૂલ અપડેટ્સ જે git status ને ઇન્વોક કરતા પહેલા Git કન્ફિગરેશનને સ્પષ્ટપણે સેનિટાઇઝ (sanitize) કરે છે.
  • સુરક્ષિત AI-આસિસ્ટેડ ડેવલપમેન્ટ માટે કોમ્યુનિટી-ડ્રિવન માર્ગદર્શિકા, જેમાં સંભવિત રીતે પ્રી-ફ્લાઇટ ચેક્સની ભલામણ કરવામાં આવશે.
  • સિક્યુરિટી રિસર્ચ જે કોડ એક્ઝિક્યુશન કરવા સક્ષમ વધારાની Git કન્ફિગ કીઝ શોધી શકે છે, જે ઉપર દર્શાવેલ પાંચથી વધુ ચેકલિસ્ટમાં વિસ્તરણ કરશે.

ટૂંકમાં: AI આસિસ્ટન્ટ એક અનુકૂળ પેયર-પ્રોગ્રામર હોઈ શકે છે, પરંતુ તે રિપોઝિટરીના Git કન્ફિગમાં છુપાયેલા કોઈપણ કમાન્ડને ખુશીથી રન કરશે. આસિસ્ટન્ટને તેને સ્પર્શ કરવા દેતા પહેલા વર્કસ્પેસની ચકાસણી કરો.