کشف آسیب‌پذیری در حساب‌های ChatGPT

چرا مهم است

اگر در حال توسعه اپلیکیشن‌های وب هستی، باید به امنیت iframe‌ها و نحوه تعامل آنها با صفحه والد توجه کنی. این موضوع می‌تواند از دسترسی غیرمجاز به داده‌های کاربران جلوگیری کند.

قبل از خواندن، این‌ها را بدان۳ مفهوم
Sandbox

محیطی ایزوله برای اجرای کد که از تعامل کدهای غیرقابل اعتماد با سیستم اصلی جلوگیری می‌کند.

بیشتر درباره این مفهوم

closed

وضعیتی که در آن یک آسیب‌پذیری یا حفره امنیتی توسط توسعه‌دهندگان برطرف شده است.

بیشتر درباره این مفهوم

Content Security Policy (CSP)

مجموعه‌ای از قوانین امنیتی که بارگذاری منابع در یک صفحه وب را کنترل می‌کند.

بیشتر درباره این مفهوم

Parameter Labs یک آسیب‌پذیری در پیاده‌سازی الگوی artifacts در ChatGPT کشف کرده است. این الگو که اکنون به عنوان HTML previews شناخته می‌شود، به نمایش اپلیکیشن‌های HTML تعاملی در یک iframe sandboxed می‌پردازد. هدف از این کار، جلوگیری از تعامل کدهای غیرقابل اعتماد با API‌های OpenAI و دسترسی به داده‌های خصوصی است.

این حمله از کتابخانه MathLive JavaScript که شامل یک کیبورد مجازی است، بهره‌برداری می‌کند. این کیبورد می‌تواند از طریق postMessage() از iframe sandboxed در صفحه والد فعال شود. کد دریافت‌کننده پیام از innerHTML استفاده می‌کند که به هر پیامی اجازه می‌دهد HTML سفارشی به صفحه والد اضافه کند. هیچ مکانیزمی برای جلوگیری از فراخوانی این متد توسط دیگر iframe‌های sandboxed وجود نداشت.

این امر به کدهای غیرقابل اعتماد در یک iframe اجازه می‌داد HTML وارد کنند و با اینکه innerHTML مستقیماً اسکریپت‌ها را اجرا نمی‌کند، می‌توانست یک iframe جدید بدون محدودیت‌های sandbox ایجاد کند. قوانین CSP OpenAI اسکریپت‌های inline را مسدود کرده و تنها بارگذاری اسکریپت از چند دامنه خاص را مجاز می‌دانست که یکی از آنها YouTube بود. endpoint oEmbed یوتیوب می‌توانست برای بازتاب جاوااسکریپت به شکلی که اجرا شود، استفاده شود.

پس از اجرای جاوااسکریپت در ChatGPT، مهاجم می‌توانست به راحتی داده‌های خصوصی کاربران را از API‌ها دریافت کرده و از طریق یک مرجع تصویر آنها را خارج کند. نتیجه نهایی این بود که می‌توانستی یک URL اشتراک‌گذاری ChatGPT ایجاد کنی که وقتی توسط کاربر دیگری بازدید می‌شد، داده‌های خصوصی او را سرقت کرده یا به نمایندگی از او اقداماتی انجام دهد. OpenAI این حفره را بست و یک جایزه bug ۵۰۰۰ دلاری پرداخت کرد که به نظر من برای چنین آسیب‌پذیری جدی‌ای کمی ارزان بود.

نکته کلیدی

مهم است که در طراحی اپلیکیشن‌های وب، به امنیت و محدودیت‌های sandbox در iframe‌ها توجه کنی. این کار می‌تواند از سوءاستفاده‌های احتمالی و دسترسی غیرمجاز به داده‌های کاربران جلوگیری کند.

خواندن مقاله اصلی (در زبانه‌ی جدید باز می‌شود)