دفترچه امنیتی.
ما یافتهها را پس از اصلاح و تأیید منتشر میکنیم — یک خلاصهی کوتاه، هرگز یک دستورِ اکسپلویت. زمانهای اصلاح کنار هر ورودی قرار دارند.
چه اتفاقی افتاده.
بازبینی داخلی پیش از راهاندازی برنامه
در ۱۵ ژوئیهٔ ۲۰۲۶ یک بازبینی امنیتی داخلی از CreateYourVPN را آغاز کردیم. اصلاحاتی که تکمیل و دوباره بررسی کردهایم در ادامه منتشر شدهاند؛ موارد دیگر نیز بهتدریج با استقرار و تأیید افزوده خواهند شد.
— تیم CreateYourVPNافزودن سازوکار محافظتی در برابر پیکربندی ناامن cross-origin
پیکربندی فعلی production مبداهای دلخواه را مجاز نمیکرد، اما کد در صورت پیکربندی نادرست توسط اپراتور، ترکیبی خطرناک از پارامترها را مجاز میساخت. اکنون این ترکیب هنگام راهاندازی رد میشود و یک آزمون خودکار آن را پوشش میدهد.
— تیم CreateYourVPNکاهش سطح عمومیِ production API
مستندات فنی تعاملی API بدون احراز هویت در دسترس بود. این کار دسترسی به دادههای محافظتشده را نمیداد، اما مطالعهٔ ساختار داخلی API را آسانتر میکرد. در production این مستندات اکنون غیرفعال شده، در حالی که برای توسعه در یک محیط ایزوله در دسترس باقی میماند.
— تیم CreateYourVPNجداسازی کلیدهای رمزنگاری پلتفرم بر پایهٔ کاربرد
یک بازبینی داخلی نشان داد که یک راز واحد برای دو کار رمزنگاریِ متفاوت استفاده میشد. این کار دور زدنِ مستقیمِ حفاظت ایجاد نمیکرد، اما دامنهٔ پیامدهای افشای کلید را گسترش میداد. دو کاربرد از هم جدا شدهاند و اکنون هرکدام بهطور مستقل چرخش (rotate) میشوند.
— تیم CreateYourVPNتضمین پاکسازی کلید مدیریت پس از حذف سرور
پاکسازی کلید مدیریتِ رمزگذاریشده پس از عملیات شبکهایِ پسزمینه اجرا میشد و در صورت شکست آن عملیات ممکن بود تکرار نشود. ما پاکسازی کلید را از زنجیرهٔ شبکه جدا کردیم و یک تلاش مجددِ تضمینشده افزودیم. سناریوهای سرورِ در دسترسنبودن و قطعشدن فرآیند با آزمونها پوشش داده شدهاند.
— تیم CreateYourVPNحذف یک مسیر احراز هویتِ بلااستفاده در API شرکا
این API از یک مسیر احراز هویتِ اضافیِ مبتنی بر cookie پشتیبانی میکرد که معماری فعلیِ server-side به آن نیازی نداشت. هیچ حملهٔ بینسایتیِ تأییدشدهای در production یافت نشد، اما مسیر اضافی، سطح خطاهای آینده را گسترش میداد. اکنون API از یک روش احراز هویتِ واحد و بهصراحت تعریفشده استفاده میکند و با آزمونهای منفی پوشش داده شده است.
— تیم CreateYourVPNدسترسی به پنل مدیریت زیرساخت محدود شد
یک پژوهشگر بیرونی گزارش داد که یکی از رابطهای مدیریتی زیرساخت از اینترنت عمومی پاسخ میدهد. این رابط با احراز هویت محافظت میشد و نشانهای از دسترسی غیرمجاز یافت نشد. گزارش پذیرفته و دسترسی محدود شد.
اکنون این رابط تنها از نشانیهای مجاز در دسترس است، الزامات احراز هویت سختگیرانهتر شده و اجزای مرتبط بهروزرسانی شدهاند. نتیجه از بیرون شبکه ما بررسی شد. همچنین سطح عمومی خود را بازبینی کردیم و بررسی دورهای برای آن افزودیم. پاداش در بالاترین سطح پرداخت شد.
— Gaurang Mahetaنشانی ایمیل کاربران ویترینها دیگر نگهداری نمیشود
کاربر نشانی ایمیل خود را وارد میکند تا به ویترین شریک وارد شود، اما این نشانی نزد ما نمیماند: ایمیل کد فرستاده میشود و نشانی بیدرنگ حذف میگردد. حساب با اثری بازگشتناپذیر شناخته میشود که نشانی از آن بازیابی نمیشود، و نام حساب هم آن را در بر ندارد.
— تیم CreateYourVPNکاربر میتواند پیوند اشتراک خود را خودش بازنشانی کند
پیوند اشتراک یک راز است: هر کس آن را داشته باشد همان دسترسی مالک را به دست میآورد. کاربر میتواند آن را خودش در حساب خود بازنشانی کند: پیوند پیشین از کار میافتد و اطلاعات دسترسی پشت آن دوباره صادر میشود. پیوندی که اینگونه بسته شود بسته میماند، حتی هنگام بازیابی دادهها از نسخهٔ پشتیبان.
— تیم CreateYourVPNسرایندهای امنیتی در صفحات ویترین
ویترینهای شرکا سرایندهای امنیتیای را که پنل و API از پیش ارسال میکردند نمیفرستادند؛ از جمله سرایندی که نمایش صفحه در قاب سایتهای دیگر را ممنوع میکند. از این راه خواندن دادههای حساب یا نشست ممکن نبود. اکنون مجموعهٔ کامل همراه هر پاسخ ویترین ارسال میشود و ادعای SR-15 نام هر رابط وبی را که میزبانی میکنیم میآورد.
— Abhinav Rajمدیریت نشستها و ارسال کد ورود
در پی گزارشهای یک پژوهشگر بیرونی، دو بخش همجوار را بازبینی کردیم: چرخهٔ عمر نشست شریک و مسیر ایمیل حاوی کد ورود. هیچکدام از این یافتهها دسترسی به حسابها، دادههای شرکا یا ترافیک کاربران نمیداد.
— Ganesh RKمحافظت قویتر از فرم عمومی پشتیبانی
پژوهشگر امنیتی 0xVicky کشف کرد که میشد از فرم عمومی پشتیبانی ما برای ارسال تعداد بیش از حد درخواست سوءاستفاده کرد. برای هر بازدیدکننده و کل ترافیک محدودیت گذاشتیم، کانال داخلی ارسال فرم را محافظت کردیم و بررسی پیوستها را تقویت کردیم. از گزارش مسئولانه سپاسگزاریم.
— 0xVickyEnabled DNSSEC
A researcher found that DNSSEC was not enabled for createyourvpn.com. We signed the DNS zone, published the DS record in .com, and verified the chain of trust.
— Waqar Jamalاکنون میتوان نشستهای همکاران را بهطور کامل لغو کرد
یک پژوهشگر امنیتی دریافت که اگر نسخهای از توکن نشست همکار بهطور جداگانه نوسازی شده باشد، ممکن است پس از خروج همچنان فعال بماند. نشستها را به یک شناسهٔ یکپارچه در سمت سرور منتقل کردیم: اکنون خروج عادی کل نشست فعلی را لغو میکند و گزینهٔ «خروج از همهٔ دستگاهها» همهٔ نشستهای فعال را پایان میدهد.
— A Sai VardhanMTA-STS و گزارشدهی TLS فعال شد
یک پژوهشگر امنیتی دریافت که MTA-STS و گزارشدهی TLS برای ایمیل ورودی createyourvpn.com پیکربندی نشده بودند. سیاست MTA-STS را منتشر و گزارشدهی TLS را فعال کردیم. این سیاست ابتدا در حالت آزمایشی اجرا میشود تا مسیر انتقال سرویس ثالث را بررسی کنیم؛ پس از دریافت گزارشهای بدون خطا، اجرای اجباری را فعال خواهیم کرد.
— A Sai Vardhanاجرای DMARC فعال شد
یک پژوهشگر امنیتی دریافت که سیاست DMARC دامنهٔ createyourvpn.com فقط در حالت پایش اجرا میشد و رد پیامهایی را که اعتبارسنجی را نمیگذراندند الزامی نمیکرد. p=reject را برای دامنهٔ اصلی و sp=reject را برای زیردامنههای بدون ارسال ایمیل فعال کردیم. ایمیلهای تراکنشی همچنان در زیردامنههای جداگانهٔ ارسال با سیاستهای SPF، DKIM و DMARC خودشان ایزوله هستند.
— A Sai Vardhanچه چیزی اینجا میآید.
خلاصهها و خطهایزمانی
چکیدهی یک یافته، ردهی آسیبپذیری، تاریخ گزارش و تاریخ اصلاح. اگر یک یافته یک ادعای SR را رد کرده باشد — یک اصلاحیهی عمومی بر گزارش.
دستورهای اکسپلویت
دستورالعملهای گامبهگام، کد PoC و جزئیاتی که پیش از بهروزرسانیِ همه، به حمله به سرورهای دیگر کمک میکنند.
چیزی پیدا کردید؟
با یک اثبات مفهومِ قابلبازتولید برای ما بنویسید. ظرف ۷۲ ساعت پاسخ میدهیم و دستهبندی را بهصورت داخلی انجام میدهیم.