با یه ثبتنام ساده، پنل پخش زندهٔ جام جهانی ۲۰۲۶ باز شد
خلاصهٔ کاملتر
نویسندهٔ این پست تعریف میکنه که ماجرا از یه جای خیلی معمولی شروع شد: پرتال عمومی نمایندگی فیفا روی agents.fifa.org که هرکسی میتونه توش ثبتنام کنه تا نمایندهٔ رسمی فوتبال بشه. نکتهٔ اصلی اینجاست که وقتی ثبتنام میکنی، فیفا حسابت رو به تننت Microsoft Entra (همون Azure AD قدیم) اضافه میکنه؛ یعنی دقیقاً همون تننتی که همهٔ پلتفرمهای داخلی فیفا روش سوارن.
نویسنده میگه بعد از ثبتنام رفت سراغ fdp.fifa.org (پلتفرم دادهٔ فوتبال فیفا). اپ اون رو با همون تننت مشترک احراز هویت کرد، دید هیچ نقشی (role) نداره و صفحهٔ «دسترسی مجاز نیست» رو نشونش داد. مشکل اساسی همینجا بود: این بررسی کاملاً سمت کلاینت انجام میشد. اپ Angular فقط توکن JWT رو نگاه میکرد و اگه نشونهٔ بینقش بودن رو میدید، صفحهٔ منع دسترسی رو رندر میکرد. ولی APIهای بکاند اصلاً چیزی رو چک نمیکردن و هر چیزی که ازشون میخواستی رو تحویل میدادن.
با رد کردن همین محافظ سمت کلاینت، نویسنده به پنل مدیریت پخش (Streaming Management) رسید؛ اون هم نه محیط تست، بلکه پنل تولید و زندهٔ جام جهانی ۲۰۲۶. هر مسابقه، هر زاویهٔ دوربین، آدرسهای ورودی RTMP، کلیدهای استریم و لینک خروجی که به شبکههای پخش میرفت. نویسنده میگه یکی از منیفستهای پیشنمایش رو تو VLC باز کرد و دید فید تاکتیکی یه مسابقهٔ زنده واقعاً پخش میشه، بعد بلافاصله بستش.
بدتر از دیدن، کنترل داشتن بود. پنل دکمههای شروع، توقف و زمانبندی برای هر دوربین رو داشت؛ یعنی یه حساب بدون نقش میتونست فید دوربین یه مسابقهٔ زنده رو قطع کنه. چون کلید استریم بین هر پنج دوربین یه مسابقه مشترک بود، از نظر فنی یه مهاجم میتونست همهٔ زاویهها رو همزمان بگیره و تئوریک بهجای فید اصلی، هر ویدیویی رو رو آنتن جهانی بفرسته. نویسنده تأکید میکنه که هیچکدوم از این کنترلها رو دست نزده و چیزی به هیچ نقطهٔ ورودی نفرستاده.
همون حساب بینقش به بقیهٔ پلتفرم هم دسترسی داشت: داشبورد زندهٔ مسابقه، تب مدیریت با دسترسی نوشتن (ویرایش آمار، امتیاز، لحظهٔ شروع بازی و ترکیب تاکتیکی که به سامانهٔ گزارشگرها و تلویزیون میره)، سامانهٔ اطلاعات گزارشگرها روی cis.fifa.org و یه محیط توسعهٔ Azure Function که لینک مستقیم دانلود ۲۳ فایل داخلی فیفا (گزارشهای نقلوانتقال، دادهٔ درآمد و آمار داورها) رو برمیگردوند، همه بدون هیچ بررسی نقشی.
نویسنده میگه گزارش دادن این ماجرا استرسآورترین شب زندگیش بود، چون فیفا نه برنامهٔ باگبانتی داشت، نه فایل security.txt و نه یه راه تماس امنیتی مشخص. بعد از دهها ایمیل بیجواب و تماسهای شبانه، بالاخره از طریق MediaKind (شریک فناوری پخش فیفا)، آژانس CISA و تماسهای FBI کسی گوش داد. ریشهٔ کل ماجرا یه اشتباه معماری بود که نویسنده روش تأکید میکنه: کنترل دسترسی سمت کلاینت بهجای اعمال سمت سرور. فیفا صبح روز بعد باگ رو بست و حالا سرور به حساب بینقش پاسخ ۴۰۳ میده، ولی هیچوقت گزارش رو تأیید یا تشکری نکرد.
نکات کلیدی:
- ثبتنام تو پرتال عمومی نمایندگی، حساب رو به همون تننت Entra سامانههای داخلی اضافه میکرد
- کنترل دسترسی فقط سمت کلاینت بود؛ بکاند به هر عضو احراز هویتشدهٔ تننت داده میداد
- دسترسی به پنل پخش زندهٔ جام جهانی ۲۰۲۶ با امکان قطع فید دوربینها
- دسترسی نوشتن به آمار، امتیاز و دادهٔ گزارشگرها که رو تلویزیون نمایش داده میشه
- فیفا بعد از تماس با CISA و FBI باگ رو سریع بست ولی جواب پژوهشگر رو نداد




