- Google का नया agentic code editor Antigravity अप्रत्यक्ष prompt injection के ज़रिए उपयोगकर्ता के credentials और code को बाहरी स्थान पर भेज सकता है
- हमला इस तरह होता है कि Gemini किसी दुर्भावनापूर्ण वेबपेज में छिपे निर्देश पढ़ता है और browser subagent को बुलाकर डेटा भेज देता है
- Gemini डिफ़ॉल्ट सेटिंग में एक्सेस-प्रतिबंधित .env फ़ाइल सुरक्षा को बायपास करके credentials पढ़ता है और उन्हें webhook.site डोमेन पर भेज देता है
- डिफ़ॉल्ट allowlist में जोखिमपूर्ण डोमेन शामिल होने के कारण browser subagent दुर्भावनापूर्ण URL को सामान्य रूप से खोल देता है
- Google इस डेटा लीक जोखिम को पहचानता है और चेतावनी संदेश देता है, लेकिन यह भी बताया गया है कि डिफ़ॉल्ट सेटिंग संरचना में उपयोगकर्ता के लिए सभी agent गतिविधियों की निगरानी करना कठिन है
हमले का अवलोकन
- Antigravity, Google द्वारा विकसित agentic code editor है, जो Gemini मॉडल के माध्यम से code लिखने और चलाने में सहायता करता है
- शोध टीम ने Oracle ERP के AI Payer Agents integration उदाहरण का उपयोग करके हमला परिदृश्य तैयार किया
- उपयोगकर्ता ऑनलाइन मिला implementation guide Gemini को देता है
- उस वेबपेज में 1-पॉइंट फ़ॉन्ट में छिपा prompt injection शामिल होता है
- यह injection Gemini को निम्न काम करने के लिए उकसाता है
- उपयोगकर्ता का code और credentials इकट्ठा करना
- हमलावर-नियंत्रित URL बनाना
- browser subagent के माध्यम से उस URL पर जाना
हमले की श्रृंखला का विवरण
- Gemini injection को पढ़कर उसे tool execution request समझ लेता है
- वह codebase और .env फ़ाइल की सामग्री इकट्ठा करने की कोशिश करता है
- डिफ़ॉल्ट सेटिंग में
.gitignore में शामिल फ़ाइलों तक पहुंच रोकी जाती है, लेकिन Gemini इसे बायपास कर देता है
cat कमांड का उपयोग करके .env फ़ाइल की सामग्री terminal में प्रिंट करता है
- इसके बाद Gemini हमलावर के निर्देशों के अनुसार URL-encoded credentials और code snippets वाला दुर्भावनापूर्ण URL बनाता है
- URL में webhook.site डोमेन का उपयोग होता है, जहां हमलावर request logs को रियल-टाइम में देख सकता है
- Gemini browser subagent को बुलाकर वह URL खोलता है, और इस प्रक्रिया में डेटा बाहर भेज दिया जाता है
- डिफ़ॉल्ट सेटिंग में
Enable Browser Tools सक्रिय होने के कारण यह संभव है
Browser URL Allowlist में webhook.site डिफ़ॉल्ट रूप से शामिल होने के कारण इसे रोका नहीं जाता
- परिणामस्वरूप हमलावर webhook.site logs के माध्यम से AWS credentials और निजी code snippets प्राप्त कर लेता है
Antigravity की डिफ़ॉल्ट सेटिंग
- onboarding प्रक्रिया में उपयोगकर्ता को डिफ़ॉल्ट अनुशंसित सेटिंग्स उसी रूप में स्वीकार करने के लिए प्रेरित किया जाता है
- Artifact > Review Policy > Agent Decides: Gemini स्वयं तय करता है कि मानव समीक्षा की आवश्यकता है या नहीं
- Terminal Command Auto Execution Policy > Auto: कमांड चलाते समय स्वचालित निष्पादन
- ये सेटिंग्स Gemini को मानव हस्तक्षेप के बिना कमांड चलाने की अनुमति देती हैं
agent प्रबंधन संरचना
- Antigravity का Agent Manager interface कई agents को एक साथ चलाने और उपयोगकर्ता को बाद में उन्हें देखने देने के लिए डिज़ाइन किया गया है
- अधिकांश agents बैकग्राउंड में बिना निगरानी के चलते हैं
- इसके कारण prompt injection से संक्रमित agent के उपयोगकर्ता हस्तक्षेप के बिना दुर्भावनापूर्ण कार्य करने की संभावना रहती है
Google की जोखिम-समझ
- Google, Antigravity के शुरुआती रन पर डेटा लीक जोखिम के बारे में चेतावनी संदेश दिखाता है
- लेकिन शोध टीम का कहना है कि निम्न दो कारणों से उपयोगकर्ता सुरक्षा पर्याप्त नहीं है
- Agent Manager को कई agents एक साथ चलाने के लिए डिज़ाइन किया गया है, जिससे रियल-टाइम निगरानी कठिन हो जाती है
- डिफ़ॉल्ट सेटिंग्स मानव समीक्षा को छोड़ने के लिए बनी हुई हैं
- चूंकि यह पुष्टि हो गई कि Google पहले से इन जोखिमों से अवगत है, शोध टीम ने responsible disclosure प्रक्रिया नहीं अपनाई
सारांश
- Antigravity की अप्रत्यक्ष prompt injection भेद्यता Gemini और browser subagent के परस्पर इंटरैक्शन का दुरुपयोग करके संवेदनशील डेटा लीक कराती है
- डिफ़ॉल्ट सुरक्षा सेटिंग्स की खामियां और स्वचालित agent संरचना हमले की सफलता की संभावना बढ़ाती हैं
- Google जोखिम के बारे में चेतावनी देता है, लेकिन मूलभूत mitigation उपाय अभी तक प्रस्तुत नहीं किए गए हैं
1 टिप्पणियां
Hacker News राय
मुझे Simon Willison और Meta द्वारा प्रस्तावित “Rule of Two” तरीका पसंद है
यह एक ऐसा सिद्धांत है जिसमें तीन शर्तों में से केवल दो तक ही अनुमति दी जाती है:
A) अविश्वसनीय इनपुट को प्रोसेस करना, B) निजी डेटा तक पहुंच, C) बाहरी state बदलना या बाहरी संचार
यह परफेक्ट नहीं है, लेकिन जब ये तीनों एक साथ मौजूद हों तो टूल के जोखिम को management को समझाने में यह मददगार रहा
संबंधित लेख: Willison का लेख, Meta का security approach
उदाहरण के लिए, अगर output को पहले किसी monitoring LLM से भी गुजारा जाए, तब भी prompt injection quine के रूप में फैल सकता है
classification जैसे मामलों में जहां output validation संभव हो, वहां कुछ राहत मिलती है, लेकिन सामान्य text output को defend करना कठिन है
यह एक अच्छी शुरुआत है, लेकिन पर्याप्त नहीं
state और बाहरी संचार को साथ रखने पर बाद में समझ आया कि अंततः तीनों शर्तें पूरी हो जाती हैं
Johann Rehberger ने Antigravity में ऐसी ही कमजोरी की रिपोर्ट की थी
संबंधित ब्लॉग पोस्ट और Google bug hunter page के अनुसार,
browser agent पर data exfiltration attack को पहले से ही “known issue” माना गया है और उस पर इनाम नहीं मिलता
file access और command execution permissions होने से malicious commands चलाए जा सकते हैं
LLM security में रुचि रखने वाले लोग ‘lethal trifecta’ और data exfiltration के जोखिम को पहले से जानते हैं
लेकिन दुख की बात है कि ज्यादातर लोग केवल नई features को लेकर उत्साहित हैं और security के प्रति उदासीन हैं
यह केवल Gemini या Antigravity की समस्या नहीं, बल्कि CLI access वाले सभी agentic coding tools की साझा समस्या है
मैं खुद Cline का उपयोग करता हूं, लेकिन web search MCP access को सावधानी से सीमित रखता हूं
attacker ने इसका फायदा उठाया, और LLM ने system shell के जरिए file protection को bypass कर लिया
Antigravity की समस्या यह थी कि उसने ऐसी consent process के बिना open redirect की अनुमति दी
क्योंकि उसके पास search data बहुत है, और उम्मीद है कि यह prompt injection को रोकने में मदद करेगा
attackers की रचनात्मकता तो अभी बस शुरुआत है
automated agent AI और deployment systems बढ़ने के साथ जरूरत से ज्यादा trust बनता देखना डरावना लगता है
GPU firmware खुद भी attack vector बन सकता है
अगर मैं किसी nation-state attacker की जगह होता, तो शायद उसी दिशा में जाता
दशकों से इंसानों को भी secrets access नहीं दिया गया है
.envfile को git में डालना तो सोचा भी नहीं जा सकताहालांकि, हाल में firmware vulnerabilities और AI model के संयोजन वाले हमलों की संभावना बढ़ी है, इसलिए और सतर्क रहना होगा
TechCrunch लेख के अनुसार, insurance industry भी AI को बहुत जोखिमपूर्ण मान रही है
मैंने भी यही कमजोरी Google को responsible disclosure के तहत बताई थी
मैंने वही domain bypass (
webhook.site) इस्तेमाल किया था,और मेरी ब्लॉग पोस्ट में remote command execution जैसी अन्य सार्वजनिक समस्याओं को भी संकलित किया है
सच कहूं तो, ऐसे लेख मुझे बहुत बढ़ा-चढ़ाकर पेश किए हुए लगते हैं
हर LLM के लिए CVE खोलना और “यह command चला सकता है” कहकर चौंकना समय की बर्बादी जैसा लगता है
समझ नहीं आता कि ऐसे पोस्ट HN के मुख्य पृष्ठ पर क्यों आते हैं
LLM अपने आप code execute नहीं करता, लेकिन Antigravity की तरह लापरवाही से integrate करने पर vulnerability पैदा हो जाती है
अगर पूरे system तक पहुंच हो तो कृत्रिम checks को bypass किया जा सकता है
sandbox या chroot जैसे isolation tools मौजूद हैं, लेकिन go-to-market speed (GTM) के कारण इन्हें अक्सर छोड़ दिया जाता है
local models भी internet blocking या outbound firewall के बिना सुरक्षित नहीं हैं
ज्यादातर vulnerabilities की जड़ यह है कि LLM commands और data में फर्क नहीं कर सकता
यह एक शानदार लेख था
CVE-2002-1377 से लेकर CVE-2019-12735 तक वही इतिहास दोहराया गया
सोचता हूं कि क्या Antigravity को भी आखिरकार CVE मिलेगा
जो tools language model और बाहरी internet दोनों को साथ संभालते हैं, उन्हें sensitive data तक पहुंच नहीं मिलनी चाहिए
ACE, XSS, SQL injection जैसी समस्याओं की जड़ भी यही है
जैसे हमने पारंपरिक code में समाधान खोजे, वैसे ही LLM में भी अंततः समाधान मिल जाएगा, ऐसा मुझे विश्वास है
Cursor जैसे IDE हर दिन लाखों secrets तक पहुंचते हैं
ऐसी समस्याएं आगे भी बार-बार सामने आएंगी
prompt injection आधारित हमलों की पुनरुत्पादन क्षमता की कमी दिलचस्प है
statistical models में randomness होने के कारण वही input देने पर भी परिणाम बदल सकता है
Google जैसे cloud models इस तरह डिजाइन किए गए हैं कि researchers के लिए vulnerability को reproduce करना कठिन हो
ऊपर से लेखन शैली का Google Cloud documentation जैसी लगना अपने आप में विडंबनापूर्ण है
Antigravity Markdown image आधारित data exfiltration bug के लिए भी vulnerable था
कुछ दिन पहले इसकी रिपोर्ट की गई थी, लेकिन इसे “intended behavior” बताया गया
संबंधित ट्वीट
मेरे ब्लॉग में मैंने उनमें से कुछ को document किया है