آخرین اخبار:
17:40 19 / 08 /1405

نقص امنیتی کلود کد هزاران رمز عبور و کلید API را در گیت‌هاب فاش کرد

کلود کد
پژوهشگران امنیت سایبری از افشای هزاران اطلاعات محرمانه کاربران ابزار برنامه‌نویسی هوش مصنوعی کلود کد در مخازن عمومی گیت‌هاب خبر داده‌اند که شامل رمزهای عبور پایگاه‌های داده، کلیدهای API و اطلاعات دسترسی مدیران سیستم می‌شود. بررسی بیش از ۱۰۰ هزار فایل تنظیمات منتشرشده این ابزار نشان داده است که حدود ۱۱۰۰ مورد حاوی اطلاعات حساس بوده‌اند و انتخاب گزینه تأیید دائمی اجرای دستورات، یکی از عوامل اصلی ثبت ناخواسته این اطلاعات در فایل‌های قابل انتشار است.

به گزارش خبرگزاری آنا؛ ابزار برنامه‌نویسی مبتنی بر هوش مصنوعی کلود کد که توسط آنتروپیک توسعه یافته، با مشکلی در نحوه ذخیره‌سازی تنظیمات کاربران مواجه شده است که می‌تواند اطلاعات حساس رایانه‌ها و سرویس‌های متصل به آن‌ها را در معرض دسترسی عمومی قرار دهد. پژوهشگران شرکت امنیتی Apiiro با بررسی مخازن عمومی گیت‌هاب متوجه شده‌اند فایل‌هایی که کلود کد برای نگهداری مجوز‌های اجرای دستورات استفاده می‌کند، گاهی همراه با کد‌های پروژه در اینترنت منتشر می‌شوند. این فایل‌ها ممکن است شامل دستوراتی باشند که رمز‌های عبور، کلید‌های دسترسی به سرویس‌های آنلاین و سایر اطلاعات محرمانه مستقیماً در متن آن‌ها نوشته شده است. مشکل زمانی اهمیت بیشتری پیدا می‌کند که کاربران بدون اطلاع از محتوای این فایل‌ها، پروژه خود را در یک مخزن عمومی قرار می‌دهند و اطلاعاتی که قرار بوده فقط روی رایانه شخصی باقی بمانند، در اختیار سایر کاربران گیت‌هاب قرار می‌گیرند.

گزینه تأیید دائمی دستورات چگونه اطلاعات را افشا می‌کند؟

کلود کد برای انجام فعالیت‌های برنامه‌نویسی می‌تواند دستوراتی را در محیط خط فرمان رایانه اجرا کند؛ قابلیت مهمی که امکان نصب ابزارها، اجرای برنامه‌ها، بررسی فایل‌ها و انجام بسیاری از کار‌های تکراری توسعه نرم‌افزار را فراهم می‌کند. این ابزار پیش از اجرای برخی دستورات از کاربر اجازه می‌گیرد و گزینه‌ای با عنوان «Yes, and don’t ask again» در اختیار وی قرار می‌دهد که به معنای تأیید دستور و جلوگیری از نمایش دوباره درخواست مجوز برای دستورات مشابه است. هنگامی که کاربر این گزینه را انتخاب می‌کند، کلود کد مجوز مربوط به دستور را در فایلی با مسیر.claude/settings.local.json ذخیره می‌کند تا در دفعات بعد بتواند بدون درخواست تأیید مجدد، دستور مجاز را اجرا کند.

مشکل اصلی به نحوه ثبت این دستورات در فایل تنظیمات مربوط می‌شود. در بعضی موارد، کلود کد به‌جای ذخیره یک الگوی کلی برای تشخیص دستور‌های مجاز، متن کامل دستور را در فایل قرار می‌دهد. اگر دستور اولیه شامل رمز عبور پایگاه داده، توکن احراز هویت یا کلید API باشد، همان اطلاعات محرمانه نیز در فایل ذخیره می‌شوند. برای مثال، برنامه‌نویسی که دستوری را همراه با اطلاعات دسترسی به یک سرویس آنلاین اجرا می‌کند، ممکن است با انتخاب تأیید دائمی باعث شود کلود کد نسخه کامل آن دستور را برای استفاده‌های بعدی نگه دارد. این اطلاعات تا زمانی که فایل روی رایانه شخصی باقی بماند، لزوماً در معرض دسترسی عمومی نیستند، اما انتشار همان فایل در گیت‌هاب می‌تواند اطلاعات حساس را برای دیگران قابل مشاهده کند.

بیش از ۱۰۰ هزار فایل تنظیمات در گیت‌هاب منتشر شده‌اند

پژوهشگران Apiiro در بررسی مخازن عمومی گیت‌هاب بیش از ۱۰۰ هزار مورد انتشار فایل تنظیمات محلی کلود کد را شناسایی کرده‌اند. از میان این موارد، حدود ۱۱۰۰ فایل متعلق به ۶۳ سازمان مختلف حاوی اطلاعات محرمانه بوده‌اند. داده‌های کشف‌شده شامل رمز‌های عبور پایگاه‌های داده، توکن‌های API، کلید‌های خصوصی و اطلاعات دسترسی با سطح مدیریتی یا ریشه سیستم هستند. این آمار به معنای افشای اطلاعات در تمام فایل‌های منتشرشده نیست، زیرا بخش بزرگی از فایل‌های تنظیمات شناسایی‌شده ظاهراً اطلاعات حساس نداشته‌اند. با این حال، وجود بیش از هزار مورد حاوی داده‌های محرمانه، خطر انتشار ناخواسته اطلاعات دسترسی از طریق فایل‌های تنظیمات ابزار‌های برنامه‌نویسی را برجسته کرده است.

نکته مهم دیگر آن است که حذف فایل از مخزن عمومی لزوماً تمام آثار انتشار اطلاعات را از بین نمی‌برد. گیت‌هاب تاریخچه تغییرات پروژه‌ها را نگهداری می‌کند و ممکن است نسخه قبلی فایل همچنان در سوابق ثبت‌شده قابل دسترسی باشد. همچنین سایر کاربران می‌توانند نسخه‌ای مستقل از مخزن ایجاد کنند که در گیت‌هاب با نام Fork شناخته می‌شود. اگر اطلاعات محرمانه پیش از حذف شدن در چنین نسخه‌هایی کپی شده باشند، پاک کردن فایل اصلی برای جلوگیری از دسترسی به آن‌ها کافی نخواهد بود. به همین دلیل، در موارد افشای رمز عبور یا کلید API، تنها حذف فایل منتشرشده راهکار کاملی محسوب نمی‌شود و معمولاً لازم است اطلاعات دسترسی مربوط نیز باطل یا جایگزین شوند.

چرا گیت‌هاب جلوی انتشار فایل‌های محرمانه را نگرفته است؟

کلود کد برای جلوگیری از انتشار فایل تنظیمات محلی، مسیر آن را به فهرست سراسری فایل‌های نادیده‌گرفته‌شده گیت اضافه می‌کند. این فهرست که با عنوان.gitignore شناخته می‌شود، به ابزار مدیریت نسخه گیت مشخص می‌کند کدام فایل‌ها نباید هنگام ثبت تغییرات یا ارسال پروژه به مخزن، به‌صورت معمول در نظر گرفته شوند. با این حال، فهرست سراسری روی رایانه کاربر ذخیره می‌شود و برخلاف فایل تنظیمات مخصوص هر پروژه، لزوماً همراه با مخزن به دستگاه دیگری منتقل نمی‌شود. همین تفاوت می‌تواند شرایطی ایجاد کند که فایل محرمانه روی رایانه اصلی نادیده گرفته شود، اما پس از انتقال پروژه به دستگاه دیگر یا ایجاد مخزن جدید، بدون وجود تنظیمات محافظتی مناسب در میان فایل‌های قابل انتشار قرار بگیرد.

پژوهشگران همچنین مواردی را شناسایی کرده‌اند که خود کلود کد تغییرات فایل تنظیمات را بدون دخالت مستقیم کاربر در مخزن ثبت کرده است. در چنین شرایطی، برنامه‌نویس ممکن است تصور کند فایل‌های محلی حساس از فرایند انتشار کنار گذاشته شده‌اند، اما اجرای خودکار دستورات ثبت تغییرات باعث شود اطلاعات محرمانه وارد تاریخچه پروژه شوند. این مسئله به‌ویژه در ابزار‌های برنامه‌نویسی مبتنی بر ایجنت اهمیت دارد، زیرا آن‌ها می‌توانند علاوه بر تولید و اصلاح کد، برخی فعالیت‌های مربوط به مدیریت فایل‌ها و مخازن را نیز انجام دهند. در نتیجه، خطر افشای اطلاعات فقط به اشتباه دستی کاربر محدود نیست و نحوه عملکرد خودکار ابزار نیز می‌تواند در ایجاد آن نقش داشته باشد.

آنتروپیک در حال بررسی راهکار رفع مشکل است

گزارش‌های مربوط به این رفتار از مدت‌ها قبل مطرح شده بودند و دست‌کم در مردادماه سال گذشته، یکی از کاربران کلود کد مشکل ذخیره‌سازی و انتشار احتمالی اطلاعات حساس را در سامانه ثبت خطا‌های این پروژه گزارش کرده بود. گزارش‌های دیگری نیز به اضافه نشدن صحیح فایل تنظیمات به فهرست فایل‌های نادیده‌گرفته‌شده یا ذخیره اطلاعات محرمانه در فایل‌های دیگری اشاره داشتند که از انتشار در گیت محافظت نمی‌شدند. با این حال، این گزارش‌ها پس از گذشت ۶۰ روز بدون فعالیت تازه بسته شدند و اصلاح مشخصی برای آن‌ها ارائه نشد.

بوریس چرنی، یکی از اعضای تیم توسعه کلود کد، در واکنش به یافته‌های جدید گفته است که توسعه‌دهندگان در حال بررسی روش‌هایی برای جلوگیری از انتشار چنین اطلاعاتی هستند. وی تأکید کرده فایل‌های تنظیمات محلی اساساً نباید وارد مخازن مدیریت نسخه شوند و به نظر می‌رسد برخی موارد افشا با ایجاد یا ثبت دستی این فایل‌ها ارتباط داشته‌اند. چرنی استفاده از حالت خودکار یا Auto Mode را نیز پیشنهاد کرده است؛ قابلیتی که برای مدیریت درخواست‌های معمول مجوز از سامانه‌های تشخیص هوشمند استفاده می‌کند و نیاز به تعریف دستی تعداد زیادی از قوانین اجازه یا ممنوعیت اجرای دستورات را کاهش می‌دهد.

با این حال، یکی از کاربران در پاسخ به این پیشنهاد توضیح داده که حتی هنگام استفاده از حالت خودکار نیز ممکن است دستور‌های حاوی اطلاعات حساس در فایل‌های تنظیمات ذخیره شوند. چرنی این نکته را پذیرفته و گفته است تیم توسعه در حال بررسی راهکار‌های بهبود این رفتار است. به همین دلیل، فعال کردن حالت خودکار در شرایط فعلی تضمینی برای جلوگیری کامل از ذخیره اطلاعات محرمانه محسوب نمی‌شود و کاربران همچنان باید مراقب محتوای فایل‌هایی باشند که همراه با پروژه‌های خود منتشر می‌کنند.

ابزار‌های شناسایی اطلاعات محرمانه هم تمام موارد را پیدا نمی‌کنند

یکی از راهکار‌های پیشنهادی برای مقابله با این مشکل، استفاده از ابزار‌های اسکن اطلاعات محرمانه است که فایل‌های پروژه را برای شناسایی رمز‌های عبور، توکن‌ها و کلید‌های دسترسی بررسی می‌کنند. با این حال، یافته‌های Apiiro نشان می‌دهد این ابزار‌ها نیز همیشه قادر به تشخیص تمام موارد نیستند. از میان حدود ۱۱۰۰ مورد افشای شناسایی‌شده، ۲۱۵ مورد توسط ۲ ابزار شناخته‌شده Gitleaks و TruffleHog تشخیص داده نشده بودند. این مسئله اهمیت زیادی دارد، زیرا توسعه‌دهندگان ممکن است پس از اجرای چنین ابزار‌هایی تصور کنند مخزن آن‌ها هیچ اطلاعات حساسی ندارد، در حالی که برخی داده‌های محرمانه همچنان در فایل‌های تنظیمات باقی مانده باشند.

تیم کلود کد در حال بررسی امکان اضافه کردن قابلیت شناسایی اطلاعات محرمانه به خود ابزار است تا پیش از ثبت یا انتشار فایل‌ها، احتمال وجود رمز‌های عبور و سایر داده‌های حساس بررسی شود. با این حال، هنوز زمان مشخصی برای ارائه چنین قابلیتی اعلام نشده است. کاربران تا زمان ارائه اصلاحات می‌توانند فایل.claude/settings.local.json و سایر تنظیمات محلی را پیش از انتشار پروژه بررسی کنند، مسیر‌های حساس را در فایل.gitignore مخصوص همان پروژه قرار دهند و از ثبت مستقیم رمز‌های عبور و توکن‌ها در دستورات قابل ذخیره خودداری کنند. همچنین در صورت انتشار ناخواسته اطلاعات دسترسی، باطل کردن کلید‌ها و تغییر رمز‌های مربوط اهمیت بیشتری از حذف ساده فایل دارد.

افشای اطلاعات از طریق کلود کد تنها نمونه نگرانی‌های امنیتی مرتبط با ابزار‌های ایجنت‌محور نیست. ماه گذشته نیز متا پس از کشف مشکلی در قابلیت اشتراک‌گذاری ایجنت هوش مصنوعی میوز، این ویژگی را موقتاً غیرفعال کرد؛ زیرا پژوهشگران متوجه شده بودند آدرس لینک‌های اشتراک‌گذاری را می‌توان به‌آسانی حدس زد. در مورد کلود کد، هنوز شواهدی درباره سوءاستفاده گسترده از اطلاعات افشاشده منتشر نشده است، اما یافته‌های جدید اهمیت بررسی فایل‌های تنظیمات و محدود کردن دسترسی ابزار‌های هوش مصنوعی به اطلاعات محرمانه را برای توسعه‌دهندگان و سازمان‌ها افزایش داده است.

انتهای پیام/

ارسال نظر