تصور کنید تمام کد منبع پروژه و حساسترین کلیدهای دسترسی شما، بدون هیچ اطلاعی، از دستگاهتان خارج و به یک فضای ابری منتقل شوند. کالبدشکافی فنی ابزار Grok Build (نسخه ۰.۲.۹۳) که در ۱۲ جولای ۲۰۲۶ منتشر شد، ثابت میکند این سناریوی تکاندهنده را تجربه میکنید؛ چرا که این ابزار فایلهای .env بدون سانسور و snapshots کامل مخازن کد را به زیرساختهای مدیریتشده توسط xAI ارسال میکند.
بسیاری از توسعهدهندگان تصور میکنند عاملهای (Agents) کدنویس ابری تنها فایلهایی را میخوانند که کاربر بهطور مشخص درخواست داده است. اما طبق تحلیلهای منتشرشده، باینری Grok Build یک کانال آپلود مجزا و حجیم را پیاده کرده است که کاملاً مستقل از فرآیند استدلال فعال مدل عمل میکند. این یعنی ابزار دادههایی را جمعآوری میکند که کاربر صراحتاً دستور نادیده گرفتن آنها را داده بود.
افشای اسرار (Secrets Leak)
بر اساس مستندات این تحلیل، وقتی Grok فایلی را میخواند، محتوای آن از دو مسیر مجزا منتقل میشود. اول، دادهها برای ایجاد زمینه (Context) جهت ارائه پاسخ توسط مدل به نقطه پایانی POST /v1/responses ارسال میشوند. دوم، این اطلاعات در قالب یک آرشیو session_state بستهبندی شده و به مسیر POST /v1/storage آپلود میشوند.
در یک آزمایش تکرارپذیر، پژوهشگر از یک فایل اسرار «قناری» (Canary) شامل کلیدهای API و رمزهای عبور جعلی استفاده کرد تا رفتار ابزار را رصد کند. یافتههای تحلیل نشان داد این اسرار بهصورت کلمه-به-کلمه و بدون هیچگونه سانسور یا حذف (Redaction) منتقل شدهاند. شواهد موجود نشان میدهد که این اطلاعات حساس هم در چرخه زنده مدل (Model Turn) و هم در آرشیو ذخیره شدهی نشست (Session Archive) ظاهر میشوند.
عکسبرداری کامل از مخزن کد
فراتر از فایلهایی که عامل میخواند، xAI از مکانیزم تهاجمیتری برای جمعآوری داده استفاده میکند. این CLI یک snapshot از کل فضای کاری ایجاد میکند که شامل تاریخچه git و حتی فایلهایی است که عامل هرگز به آنها دسترسی پیدا نمیکند. سپس این حجم از دادهها بهصورت یک git bundle آپلود میشوند.
برای اثبات این ادعا، پژوهشگر از یک مخزن ۱۲ گیگابایتی پر از فایلهای تصادفی استفاده کرد که مدل هرگز دستور باز کردن یا خواندن آنها را نداشت. نتایج بهدستآمده صریح و تکاندهنده بود:
- کانال چرخه مدل (Model Turn Channel): تنها ۱۹۲ کیلوبایت داده (که مربوط به پاسخها بود) منتقل شد.
- کانال ذخیرهسازی (Storage Channel): ۵.۱۰ گیگابایت داده پیش از آنکه عملیات کپچر قطع شود، با موفقیت از طریق
POST /v1/storageآپلود شد.
این نسبت حجم ۲۷,۸۰۰ برابری تأیید میکند که CLI صرفاً در حال ارسال زمینه برای پاسخ نیست، بلکه در واقع در حال Mirror کردن (کپی کامل) کل کد منبع است. در آزمایشی دیگر، پژوهشگر صراحتاً به ابزار دستور داد: «دقیقاً عبارت OK را پاسخ بده. هیچ فایلی را نخوان و باز نکن.» با وجود این دستور صریح، Grok همچنان کل مخزن را بهصورت یک git bundle آپلود کرد و پژوهشگر توانست فایل قناری «هرگز خواندهنشده» را از ترافیک کپچرشده بازیابی کند.
همانطور که در تحلیلهای پیشین ما دربارهی امنیت مدلهای بازمتن و حریم خصوصی دادهها اشاره کردیم، مرز بین دسترسی به فایل و کپیبرداری از کل سیستم در ابزارهای جدید در حال محو شدن است.
زیرساخت و تلهمتری
تحلیل باینری نشان میدهد مقصد نهایی این حجم از دادهها، یک bucket در سرویس Google Cloud Storage (GCS) با نام grok-code-session-traces است. مدیریت این منطق و عملیات انتقال بر عهده یک crate (کتابخانه) توسعهیافته با زبان Rust است که شامل ماژولهای تخصصی مانند xai-data-collector و file_access_tracker میشود.
علاوه بر انتقال کدها، این ابزار تلهمتریهای سیستمی را نیز به سرویسهای شخص ثالث ارسال میکند. بهطور مشخص، دادههای تلهمتری از طریق api.mixpanel.com به سرویس Mixpanel و همچنین به ردیابهای رویداد داخلی شرکت xAI ارسال میگردند.
شکست کنترلهای Opt-Out
یکی از بحرانیترین یافتههای این گزارش این است که دکمه «Improve the model» (بهبود مدل) در بخش تنظیمات کاربر، در متوقف کردن این آپلودها هیچ تأثیری ندارد. پژوهشگر هر دو وضعیت «روشن» (ON) و «خاموش» (OFF) را تست کرد؛ در هر دو حالت، کل مخزن کد بدون توجه به تنظیم کاربر آپلود شد.
بررسی پاسخ سرور در نقطه پایانی /v1/settings نشان داد که پارامترهای trace_upload_enabled و upload_enabled حتی پس از اینکه کاربر گزینه بهبود مدل را غیرفعال کرد، همچنان True باقی میمانند. این موضوع نشان میدهد که در حالی که Opt-out ممکن است بر اینکه آیا دادهها برای «آموزش» مدل استفاده شوند یا خیر اثر بگذارد، اما بههیچوجه جلوی انتقال فیزیکی کد از دستگاه محلی کاربر به ذخیرهسازهای xAI را نمیگیرد. این رویکرد تهاجمی در جمعآوری دادهها، با استراتژی کلی xAI برای تبدیل Grok به قطبی بدون سانسور همراستا است که در آن دسترسی حداکثری به دادهها اولویت دارد.
باگهای فنی و شکافهای مستنداتی
علاوه بر پیامدهای حریم خصوصی، یک باگ در قابلیت اطمینان سیستم (Reliability Bug) نیز شناسایی شد. مسیر ~/.grok/upload_queue ابتدا snapshotها را بهصورت محلی مرحلهبندی (Stage) میکند تا سپس ارسال شوند. تحت بار کاری زیاد، این صف میتواند به دهها گیگابایت برسد و پتانسیل این را دارد که فضای دیسک کاربر را بهطور کامل مصرف کرده و باعث اتمام فضای ذخیرهسازی شود.
از سوی دیگر، این مکانیزمهای خاص آپلود — شامل snapshotهای repo_state و خط لوله انتقال به GCS — در هیچیک از اسکریپتهای نصب CLI یا مستندات راهنمای سریع (Quickstart) ذکر نشدهاند. کاربران بهطور صریح مطلع نمیشوند که فضای کاری آنها بهصورت پیشفرض در ابر Mirror میشود.
تحلیل: استاندارد جدید حریم خصوصی
برای جامعه فنی، این تحلیل پیشفرضهای مربوط به «پنجرههای زمینه» (Context Windows) را تغییر میدهد. ما از عصری که عاملها فایلها را بنا به درخواست و نیاز میخواندند، به عصری میرویم که عاملها با سیستم فایل محلی مانند یک mirror راه دور برخورد میکنند.
وقتی ابزاری فارغ از پرامپت کاربر، کل مخزن را mirror میکند، سطح ریسک از «فایلی که در حال ویرایش آن هستم» به «هر سری از اسراری که تا به حال در این دایرکتوری کامیت شدهاند» گسترش مییابد. عدم اثرگذاری کلید «بهبود مدل» در توقف آپلود، نشاندهنده شکاف بنیادین میان کنترلهای حریم خصوصی در لایه رابط کاربری و مهندسی دادههای زیرساختی است.
گام بعدی شما
تیمهای حساس به امنیت باید اقدامات زیر را سریعاً اجرا کنند:
- استراتژیهای
.gitignoreو.envخود را بازبینی کنید تا مطمئن شوید اسرار حساس در دایرکتوریهای پروژه نیستند. - برای استفاده از CLI، محیطهای کانتینرمحور (Containerized) با دسترسی شبکه محدود را به کار ببرید تا خروجیهای شبکه کنترل شوند.
- دسترسی به دامنههای
cli-chat-proxy.grok.comوstorage.googleapis.comرا در سطح Firewall مانیتور یا مسدود کنید تا از خروج غیرمجاز دادهها جلوگیری شود.
اما داستان سختافزاری و زیرساختی این تحولات حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو