رخنه امنیتی در OpenCode؛ هکرها اعتبار هوش مصنوعی کاربران را برای سرقت مدلها مصرف کردند
سامانه قدیمیای که OpenCode قصد داشت آن را از رده خارج کند، به همان روزنهای تبدیل شد که هکرها برای نفوذ به آن نیاز داشتند. کلیدهای API سرقتشده به مهاجمان اجازه دادند هزاران دلار درخواست هوش مصنوعی را با حساب دیگران اجرا کنند؛ اما هدف اصلی آنها پول نبود.
OpenCode این هفته تأیید کرد که فرد یا گروهی غیرمجاز به نسخهای قدیمی از کنسول این شرکت نفوذ کرده است؛ کنسولی که داشبورد میزبانیشدهای بود و برخی کاربران کلیدهای API خود برای دسترسی به OpenAI، Anthropic و Google را در آن ذخیره میکردند. عامل کدنویسی متنباز OpenCode از همین کلیدها برای ارسال درخواست به این مدلها به نمایندگی از کاربران استفاده میکرد. شرکت اعلام کرد ۱.۴ درصد از کاربران کنسول تحت تأثیر این رخنه قرار گرفتهاند؛ رقمی که در نگاه اول اندک به نظر میرسد، اما هزینههای تحمیلشده به قربانیان تصویر متفاوتی ارائه میدهد. یکی از کاربران از ۲۸۱ دلار هزینه غیرمنتظره برای کلید OpenAI و ۱۶۸ دلار برای کلید Anthropic خود خبر داد. کاربر دیگری گفت طی یک شب بیش از ۷۰۰ دلار از حسابش هزینه شده است. کاربر سوم نیز رقم خسارت را بیش از ۱۷۰۰ دلار اعلام کرد.
انگیزه مهاجمان صرفاً سرقت پول نبود. OpenCode فعالیتهای مشکوک را به حملهای نسبت داد که پژوهشگران امنیت سایبری آن را «حمله تقطیر» مینامند. در این نوع حمله، مهاجمان بهجای آنکه حسابها را برای کسب منفعت مالی خالی کنند، با استفاده از کلیدهای سرقتشده حجم عظیمی درخواست برای مدلهای اصلی ارسال میکنند و پاسخهای آنها را جمعآوری میکنند تا مدلی ارزانتر بسازند که عملکرد مدل اصلی را تقلید کند. Anthropic پیشتر بهصورت عمومی درباره شناسایی و جلوگیری از همین نوع رفتار در پلتفرم خود نوشته بود؛ بنابراین، این روش تازه نیست.
OpenAI نیز پیشتر مورد مشابهی را شناسایی کرده بود. این شرکت در ژوئیه ۲۰۲۶ حدود ۱۶ هزار درخواست را در بیش از ۴۰۰۰ حساب ردیابی کرد که به کاربرانی مرتبط با Moonshot AI نسبت داده شده بودند. این کاربران خروجیهای رمزگذاریشده مدل را از یک مکالمه کپی میکردند و در جلسهای جداگانه از مدل میخواستند آنها را رمزگشایی و رونویسی کند؛ تلاشی برای استخراج استدلال پنهان مدل. نفوذ به OpenCode نیز از منطق مشابهی پیروی میکند: سامانهای قدیمی که دیگر نظارت دقیقی بر آن صورت نمیگرفت، صدها کلید ذخیرهشده و سیلی از درخواستهای API که در ظاهر شبیه فعالیت عادی توسعهدهندگان بودند.
OpenAI، Anthropic و Google از آن زمان کلیدهای بهخطرافتاده را باطل کردهاند و OpenCode میگوید روند بازپرداخت هزینههای غیرمجاز آغاز شده است. به گفته این شرکت، خود برنامه مستقل OpenCode و ابزار خط فرمان آن (CLI) هک نشدهاند؛ آسیبپذیری در کنسول قرار داشت، سامانهای که شرکت از پیش در حال کنار گذاشتن آن بود. اهمیت این نکته بیش از آن چیزی است که شاید در ابتدا به نظر برسد. منشأ رخنه نه نقصی در استدلال عامل هوش مصنوعی بود و نه تزریق هوشمندانه دستوری مخرب در توضیحات کد. مشکل از زیرساختی قدیمی ناشی شد که اطلاعات احراز هویت فعال را بیش از مدت لازم نگه داشته بود.
OpenCode تنها نمونه از این دست حوادث در سال جاری نیست. پژوهشگران امنیت سایبری جداگانه از آسیبپذیریهای تزریق فرمان و اسکریپتنویسی میانسایتی (XSS) در خود OpenCode خبر دادهاند که در نسخههای 1.0.216 و 1.1.10 برطرف شدهاند. در حوزه ابزارهای کدنویسی مبتنی بر عاملهای هوش مصنوعی نیز موجی از حوادث مشابه رخ داده است؛ از جمله آسیبپذیریهای تزریق دستور که به مهاجمان اجازه میداد با استفاده از عنوانها و دیدگاههای مخرب در درخواستهای ادغام گیتهاب (GitHub Pull Requests)، کلیدهای API و توکنها را از Claude Code، Codex CLI و ابزارهای دیگر استخراج کنند.
الگوی مشترک تقریباً در همه این موارد یکسان است: این ابزارها برای انجام خودکار وظایف به اطلاعات احراز هویتی دسترسی دارند که میتوانند هزینه ایجاد کنند و منابع مالی قابلتوجهی مصرف کنند؛ همین ویژگی باعث میشود یک رخنه امنیتی بهتنهایی خسارت سنگینی به بار آورد. سرقت یک گذرواژه به مهاجم امکان ورود به یک حساب را میدهد، اما سرقت کلید API مربوط به Anthropic یا OpenAI مانند دسترسی به یک خط اعتباری متصل به کیف پول فرد دیگری است؛ اعتباری که مهاجم میتواند فوراً و از هر مکانی مصرف کند، تا زمانی که صاحب حساب متوجه صورتحساب شود.
واقعیت ناخوشایند برای بنیانگذاران شرکتها این است که بسیاری از تیمهایی که اکنون از ابزارهای کدنویسی مبتنی بر عامل استفاده میکنند، سرعت را در اولویت قرار میدهند، نه اتفاقی را که ممکن است پس از افشای یک کلید رخ دهد. کلیدها در داشبوردها وارد میشوند، میان چند ابزار به اشتراک گذاشته میشوند و بدون تعیین سقف هزینه رها میشوند؛ زیرا کسی انتظار ندارد کنسول به نقطهضعف اصلی تبدیل شود. حادثه OpenCode نشان میدهد که آسیبپذیری لزوماً در بخش پیچیده و هوشمند سامانه هوش مصنوعی نیست؛ ممکن است در همان سرویس میزبانیشده و بهظاهر معمولی باشد که در کنار آن فعالیت میکند.
راهکار در دسترس تیمهایی که امروز از این ابزارها استفاده میکنند، پیچیده نیست؛ هرچند بهندرت بهدرستی اجرا میشود. Anthropic و OpenAI هر دو امکان تعیین سقف هزینه برای هر کلید را فراهم کردهاند. همچنین، اختصاص کلیدی جداگانه با دسترسی محدود به هر ابزار یا یکپارچهسازی، بهجای استفاده از یک اعتبار مشترک، باعث میشود در صورت افشای یک کلید، خسارت محدود بماند و کل حساب در معرض خطر قرار نگیرد.
محدودیتهای سخت هزینه در OpenAI در سطح سازمان یا پروژه اعمال میشوند و پس از عبور از سقف تعیینشده، خطای ۴۲۹ برمیگردانند. بااینحال، اجرای این محدودیتها آنی نیست؛ بنابراین، مهاجم مصمم ممکن است برای مدت کوتاهی از سقف دقیق هزینه عبور کند، پیش از آنکه محدودیت فعال شود. با وجود این، چنین محدودیتی بیفایده نیست. اگر برای کاربری که طی یک شب ۱۷۰۰ دلار ضرر کرده بود، سقف هزینه پروژه در حد کسری از این مبلغ تعیین میشد، حمله احتمالاً ظرف چند دقیقه متوقف میشد، نه پس از چند ساعت.
هیچیک از این موارد به معنای بیاعتمادی به همه عاملهای کدنویسی هوش مصنوعی نیست. مسئله این است که باید با اطلاعات احراز هویت و کلیدهای مورد استفاده این ابزارها همانطور برخورد کرد که با کارت اعتباری شرکت رفتار میکنیم: هر کلید باید برای هدفی مشخص و محدود تعریف شود و سقف هزینه آن بهاندازهای باشد که مصرف غیرعادیاش سریع به چشم بیاید. همچنین، این اعتبارها باید در سامانهای بازبینی شوند که فراموش کردهایم همچنان فعال است.
