તમારો AI કોડિંગ આસિસ્ટન્ટ તમારા જાણ્યા વગર જ તમારી SSH કીઝ ફરીથી લખી રહ્યો હોઈ શકે છે.
Wiz Research એ “GhostApproval” ખામી શોધી કાઢી છે જે એક દુષ્ટ project_settings.json symlink ને પ્રાઇવેટ કીઝ તરફ નિર્દેશિત કરવા દે છે, અને દરેક એક્શન માટે જે એપ્રુવલ ડાયલોગ દેખાય છે તે ફક્ત symlink નું નામ જ બતાવે છે. જો તમે ડાયલોગને એપ્રુવ કરો છો, તો તમે આસિસ્ટન્ટને તમારી ક્રેડેન્શિયલ્સનો અનિયંત્રિત એક્સેસ આપી દીધો છે.
આ એક્સપ્લોઈટ (exploit) કેવી રીતે કામ કરે છે
- એક હુમલાખોર રિપોઝિટરીમાં project_settings.json નામની ફાઇલ ઉમેરે છે.
- તે કોઈ સામાન્ય JSON ફાઇલ નથી; તે એક સિમ્બોલિક લિંક (symlink) છે જે યુઝરની ~/.ssh/id_rsa (અથવા સમાન) પ્રાઇવેટ કી તરફ રીડાયરેક્ટ કરે છે.
- જ્યારે ડેવલપર AI આસિસ્ટન્ટને “set up the workspace” કરવા માટે કહે છે, ત્યારે આસિસ્ટન્ટ symlink ને અનુસરે છે અને વાસ્તવિક SSH કી ફાઇલમાં લખવા માટે તૈયાર થાય છે.
- દેખાતો એપ્રુવલ ડાયલોગ ફક્ત project_settings.json જ દર્શાવે છે. તે ડિસ્ક પરના વાસ્તવિક પાથ (path) બતાવવા માટે symlink ને રિઝોલ્વ કરતો નથી.
- “Approve” પર ક્લિક કરવાથી આસિસ્ટન્ટને પ્રાઇવેટ કીમાં ફેરફાર કરવાની પરવાનગી મળે છે, જે અસરકારક રીતે તે કી પર વિશ્વાસ કરતા દરેક સર્વિસ પર યુઝરની ઓળખ જોખમમાં મૂકે છે.
આ બગ છ વ્યાપકપણે ઉપયોગમાં લેવાતા ટૂલ્સમાં જોવા મળે છે: Amazon Q Developer, Claude Code, Augment, Cursor, Google Antigravity અને Windsurf. આ તમામ એક જ પ્રકારનો ગેરમાર્ગે દોરતો ડાયલોગ બતાવે છે કારણ કે UI તેને મળતું નામ બતાવે છે, રિઝોલ્વ થયેલ ટાર્ગેટ નહીં.
શા માટે દરેક એક્શન માટેના ડાયલોગ પૂરતા નથી
દરેક એક્શન માટેની મંજૂરી એ ધારણા પર આધારિત છે કે માણસ AI દ્વારા કરવામાં આવતી દરેક પ્રક્રિયાની તપાસ કરી શકે છે. વ્યવહારમાં, તે તમને દર થોડી સેકન્ડે સચોટ નિર્ણય લેવા માટે મજબૂર કરે છે—જે કોઈ પણ વ્યક્તિ એજન્ટની ઝડપ કરતા ઝડપથી કરી શકતી નથી.
વેન્ડર્સ શું કરી રહ્યા છે – અને તે શા માટે મહત્વનું છે
- Amazon, Google અને Cursor એ તેને પહેલેથી જ સુધારી લીધું છે.
- Anthropic (Claude Code બનાવનાર) કહે છે કે યુઝર્સે ફક્ત તે જ મંજૂર કરવું જોઈએ જે તેઓ સમજે છે. તે symlinks ને ઓળખવાના માનસિક ભારને અવગણે છે અને માને છે કે યુઝર્સ દરેક ફાઇલ પાથનું તરત જ ઓડિટ કરી શકે છે—જે એક અ 현실વાળી અપેક્ષા છે.
- Cursor એ DuneSlide તરીકે ઓળખાતી એક અલગ સમસ્યા પણ જાહેર કરી હતી, જે હુમલાખોરોને કોઈપણ એપ્રુવલ પ્રોમ્પ્ટ વગર મશીન પર કોડ એક્ઝિક્યુટ કરવા દેતી હતી. કંપનીએ તે બગને પેચ કર્યો છે, જે દર્શાવે છે કે જ્યારે પરમિશન ચેક્સ નબળા હોય ત્યારે આ આસિસ્ટન્ટ્સ કેટલી ઝડપથી એટેક વેક્ટર્સ બની શકે છે.
પ્રતિસાદોમાં આ તફાવત એક ઊંડો પ્રશ્ન ઉભો કરે છે: શું સુરક્ષા એ ઘટના પછીનો ડાયલોગ હોવો જોઈએ, કે પછી એક પૂર્વ-નિર્ધારિત સીમા જે આસિસ્ટન્ટ ક્યારેય ઓળંગે નહીં?
સ્કોપ્ડ પરમિશન (Scoped permissions): એક વ્યવહારુ વિકલ્પ
દરેક ફાઇલ ઓપરેશન માટે પ્રોમ્પ્ટ કરવાને બદલે, ડેવલપર્સ આસિસ્ટન્ટ ચાલતા પહેલા તેના માટે એક scope સેટ કરી શકે છે:
- એક ડિરેક્ટરી ટ્રી (દા.ત.,
/src) વ્યાખ્યાયિત કરો જેને AI વાંચી અથવા લખી શકે છે. - તે ટ્રીની બહારની ફાઇલોને સ્પર્શ કરવાનો કોઈપણ પ્રયાસ—જેમ કે
~/.ssh/id_rsa—ઓપરેટિંગ સિસ્ટમ અથવા સેન્ડબોક્સ લેયર દ્વારા બ્લોક કરવામાં આવે છે. - સ્કોપ એકવાર સ્થાપિત કરવામાં આવે છે, જેનાથી માણસે લેવાના નિર્ણયોની સંખ્યા ઘટે છે અને આ સાથે આસિસ્ટન્ટના પ્રભાવને પણ મર્યાદિત રાખવામાં આવે છે.
સ્કોપિંગ સુરક્ષા મોડેલને “દર વખતે પૂછો” થી બદલીને “જરૂરિયાત મુજબ જ મંજૂરી આપો” માં ફેરવે છે. તે કન્ટેનર રનટાઇમ અને મોબાઈલ OS કેવી રીતે એપ્લિકેશન્સને સેન્ડબોક્સ કરે છે તેનું પ્રતિબિંબ પાડે છે, જે કંઈક ખોટું થાય ત્યારે નુકસાનને મર્યાદિત કરે છે.
આગળ શું જોવું
- વેન્ડર રોલ-આઉટ્સ: અસરગ્રસ્ત છ ટૂલ્સના અપડેટ નોટ્સ પર નજર રાખો.
નિષ્કર્ષ
GhostApproval એક્સપ્લોઈટ સાબિત કરે છે કે પોપ-અપ ડાયલોગ પર વિશ્વાસ કરવાથી સુરક્ષાનો ખોટો અહેસાસ થાય છે. જ્યાં સુધી દરેક AI કોડિંગ આસિસ્ટન્ટ symlinks ને રિઝોલ્વ ન કરે અને સંપૂર્ણ પાથ ન બતાવે, ત્યાં સુધી ડેવલપર્સે સ્કોપ્ડ રાઈટ પરમિશન (scoped write permissions) લાગુ કરવી જોઈએ—આસિસ્ટન્ટ શરૂ કરે તે પહેલાં તેને ચોક્કસપણે જણાવવું જોઈએ કે તે ક્યાં કામ કરી શકે છે. આ સરળ ફેરફાર ક્લિક-ફેટિગ (click-fatigue) વધાર્યા વિના સૌથી ખતરનાક પ્રકારના હુમલાઓને રોકે છે.
સ્ત્રોત: dev.to/girish_r/your-coding-agents-approval-dialog-is-lying-to-you-ih1
