هنگامی که ChatGPT برای اولین بار در نوامبر 2022 منتشر شد، نگرانی هایی وجود داشت که ربات چت پیشرفته، که بر روی متن خراشیده شده از اینترنت آموزش داده شده بود، برای نوشتن بدافزار استفاده شود. مدل تهدید این بود که بازیگران بد دیگر نیازی به مهارت های برنامه نویسی پیشرفته برای نوشتن کدی که قادر به فریب قربانیان برای تحویل اطلاعات شناسایی شخصی (PII) باشد، ندارند. در عوض، دشمنان میتوانند به سادگی ChatGPT را با کلمات کلیدی مناسب درخواست کنند و خروجی را کپی و جایگذاری کنند، نه اینکه برنامهنویسی را از ابتدا معما کنند. اما به نظر می رسد که یک اشکال ChatGPT جمع آوری PII را آسان تر کرده است.
همه کارشناسان امنیت سایبری نگرانی های مشابهی در مورد خطرات استفاده از ChatGPT توسط بازیگران بد برای نوشتن بدافزار ندارند. بازیگران تهدید قبلاً کد توزیع میکنند و حملات سایبری را در ازای پرداخت انجام میدهند – فعالیتی که Malware-as-a-service (MaaS) نامیده میشود. و بنابراین، خطر اضافی امنیت سایبری ChatGPT قابل بحث است. اما این بدان معنا نیست که کد OpenAI بدون خطر است، همانطور که CVE-2023-28858 و CVE-2023-28859 برجسته می شوند.
در اوایل این ماه، کاربران ChatGPT گزارش دادند که جزئیاتی که در نوار تاریخچه چت آنها نشان داده شده است، متعلق به آنها نیست. هوش مصنوعی مولد همه چیز در مورد ایجاد متن و تصاویر بر اساس دستورات است، اما این خلاقیت نباید به داده های مشترکین سرایت کند. این رفتار غیرمعمول به نمایش نام، آدرس ایمیل، آدرس پستی و حتی شماره کارت اعتباری جزئی سایر مشترکین در مکانهای صفحه حساب کاربری گسترش یافت.
شماره من نیست
کاربرانی که از پیشنمایش تحقیقاتی رایگان OpenAI ChatGPT به نسخه پولی ChatGPT Plus ارتقاء میدادند، گزارش دادند که درخواستهای کد اعتبارسنجی حاوی شمارههای تلفن و آدرسهای ایمیلی هستند که آنها را نمیشناسند. و دلیل این سردرگمی؟ یک خطای برنامهنویسی که به عنوان شرایط مسابقه شناخته میشود، که در آن به جای ارائه دادهها به شیوهای منطقی و قابل پیشبینی، فرآیندها برای منابع به روشی ناهماهنگ و غیرقابل پیشبینی رقابت میکنند.
شرایط مسابقه می تواند باعث از کار افتادن برنامه ها شود زیرا کد با نتایج غیرمنتظره یا نادرست تغذیه می شود. اما بسته به رسیدگی به خطا، برنامهها ممکن است به کار خود ادامه دهند و خروجیهای اشتباه را واقعی تلقی کنند. و به نظر می رسد که این مورد برای اجرای OpenAI از رابط کاربری وب ChatGPT خود باشد.
OpenAI در یک پست وبلاگی در توضیح قطعی ChatGPT که در 20 مارس 2023 رخ داد، نوشت: «ما ChatGPT را اوایل این هفته به دلیل وجود اشکال در یک کتابخانه منبع باز که به برخی از کاربران اجازه می داد عناوین تاریخچه چت کاربر فعال دیگری را ببینند، آفلاین کردیم. “همچنین ممکن است اولین پیام یک مکالمه ایجاد شده در تاریخچه چت شخص دیگری قابل مشاهده باشد، اگر هر دو کاربر در یک زمان فعال باشند.”
تیم فناوری OpenAI شرایط مسابقه را در استقرار Redis – یک فروشگاه داده منبع باز در حافظه محبوب – که ChatGPT برای ذخیره اطلاعات کاربران استفاده میکند، ردیابی کرد. Redis به توسعه دهندگان اجازه می دهد تا به طور چشمگیری سرعت جستجوهای پایگاه داده، تماس های API و سایر تراکنش های رایج بین گره ها را افزایش دهند. و بسیار مقیاس پذیر است. OpenAI از Redis Cluster برای توزیع جزئیات جلسه بر روی چندین نمونه Redis استفاده می کند و سپس اطلاعات منبع ذخیره شده در پایگاه داده اصلی خود را با استفاده از کتابخانه redis-py هماهنگ می کند.
اشکال چند پردازشی
اطلاعات نگهداری شده در پایگاه داده OpenAI در محیط Redis منتشر می شود. و درخواستها و پاسخها به لطف Async IO – یک طراحی برنامهنویسی همزمان که در پایتون پشتیبانی میشود، به روش چندوظیفهای مشترک مدیریت میشوند. اتصالات بین سرور پایگاه داده و خوشه Redis به صورت یک استخر مشترک با صف های ورودی و خروجی وجود دارد. به طور معمول، سیستم به خوبی کار می کند، اما در صورت لغو درخواست ممکن است مشکلی رخ دهد بعد از به صف ورودی فشار داده شده است، اما قبل از پاسخ به عنوان بخشی از توالی خروجی اطلاعات باقی مانده است.
به طور معمول، این درخواست های لغو شده منجر به “خطای سرور غیرقابل بازیابی” می شود و کاربران باید درخواست خود را مجددا ارسال کنند. اما نه همیشه. در صورتی که مقدار خراب شده از همان نوع درخواست ورودی باشد – حتی اگر متعلق به کاربر دیگری باشد – همانطور که سازندگان ChatGPT کشف کردند، روال، داده های برگشتی را معتبر در نظر می گیرد. علاوه بر این درام، کدنویسان OpenAI تغییری را (در 20 مارس 2023) ارائه کردند که باعث شد لغو درخواست Redis افزایش یابد. و با لغو بیشتر، شانس بیشتری برای مطابقت انواع داده وجود داشت.
OpenAI معتقد است که 1.2٪ از مشترکین ChatGPT Plus خود که در یک بازه زمانی 9 ساعته فعال بودند – بین ساعت 01:00 تا 10:00 به وقت اقیانوس آرام در روزی که لغو درخواست Redis افزایش یافت – ممکن است تحت تأثیر قرار گرفته باشند. OpenAI خاطرنشان می کند که این اشکال فقط در کلاینت Async IO redis-py برای Redis Cluster ظاهر می شود، که می تواند توضیح دهد که چرا توسعه دهندگانی که دیگر طرح های پردازش موازی را پیاده سازی کرده اند ممکن است آسیب پذیری مشابهی را مشاهده نکرده باشند.
طبق این پست وبلاگ، OpenAI برای حل این مشکل با نگهدارندههای Redis تماس گرفته است، اگرچه نوشتهای توسط محقق امنیتی Sonatype، Axe Sharma، در مورد این موضوع میگوید که آزمایشکنندگان توانستهاند این نقص را پس از اصلاح دوباره تولید کنند. . با این حال، کاربران ChatGPT میتوانند کمی راحتتر بخوابند، زیرا OpenAI بررسیهای اضافی را اضافه کرده است تا اطمینان حاصل شود که دادههای بازگردانده شده توسط حافظه پنهان Redis با کاربر درخواستکننده اطلاعات مطابقت دارد.
از قضا، زمانی که ChatGPT برای اولین بار در زمان پخش زنده، توسعه دهندگان از توانایی چت بات پیشرفته برای یافتن اشکالات در کد تجلیل می کردند. و در حالی که تعدادی از ابزارهای تجزیه و تحلیل کد استاتیک وجود دارد که میتواند به شناسایی برنامههای بالقوه پرخطر کمک کند، شرایط مسابقه به زمان حساس هستند و ممکن است فقط در آزمایشهای دینامیکی ظاهر شوند. مایکروسافت تعدادی از ابزارها و تکنیکها را برای شناسایی مشکلات همزمان فهرست میکند، اما در حالت ایدهآل، برنامهها به گونهای طراحی میشوند که از احتمال وقوع رویدادهای متناقض به طور همزمان جلوگیری کنند، حتی اگر این شانس بسیار کم باشد.