نقص امنیتی شدید در اپل؛ افشای کد منبع اپاستور وب موجی از نگرانی در دنیای دیجیتال ۲۰۲۵ ایجاد کرد
وقتی اعتبار اپل زیر سایهی یک اشتباه ساده لرزید
در اولین روز از هفتهی معرفی نسخهی تازهی اپ استور وب، کاربران منتظر بودند ظاهر و ساختار جدید پورتال بزرگ اپلیکیشنهای اپل را تجربه کنند. اما تنها چند ساعت بعد، خبری در فضای گیتهاب منتشر شد که همچون شوک به دنیای فناوری ضربه زد: افشای کد منبع رابطکاربری اپ استور وب؛ رخدادی که نه به دست هکرها، بلکه بر اثر یک پیکربندی اشتباه در محیط تولید (Production) اتفاق افتاد.
کاربری با شناسهی Rxliuli در گیتهاب اعلام کرد توانسته است بهکمک ابزارهای مرورگر و بدون هیچ نفوذ پیچیدهای، ساختار کامل پیشنمایش فرانتاند اپ استور را استخراج کند. تنها چیزی که لازم داشت، فایلهای SourceMap بودند – و اپل، در اقدامی غیرمنتظره، این فایلها را در محیط نهایی غیرفعال نکرده بود.
چگونه یک SourceMap میتواند فاجعه بیافریند؟
برای درک اهمیت آنچه روی داد، باید بدانیم فایلهای SourceMap در پروژههای وب مدرن مثل پلی هستند میان کدهای مینیفایشدهی جاوااسکریپت و کد منبع اصلی توسعه. توسعهدهندگان از آنها در محیط Development استفاده میکنند تا هنگام Debug بتوانند خط کد دقیق را در فایل TypeScript یا Svelte اصلی دنبال کنند.
اما در محیط Production قرار نیست چنین فایلی در دسترس عموم باشد. اگر این فایل روی سرور نهایی باقی بماند، هر کاربری میتواند با چند کلیک ساده ساختار دقیق، نام توابع، مسیرها و حتی منطق وضعیت داخلی برنامه را بازسازی کند.
در این حادثه، دقیقا همین اتفاق افتاد. Rxliuli با استفاده از یک افزونهی کروم مخصوص توسعهی فرانتاند، مسیر SourceMap ها را شناسایی کرد و سپس نسخهی کامل فایلهای .ts و .svelte را استخراج نمود. نتیجه چیزی بود که کارشناسان از آن با عنوان «باز شدن درِ پشتی مهندسی معکوس» یاد میکنند.
جزئیات کدهای نشت یافته: از Svelte تا معماری وضعیت جهانی
بر اساس بررسیهایی که در انجمنهای فنی، بهویژه Reddit، صورت گرفته، محتوای ریپازیتوری Rxliuli شامل فایلهایی است که نشان میدهند اپل در نسخهی جدید اپ استور وب خود از فریمورک Svelte Kit در کنار زبان TypeScript و ساختار Reactive Store برای وضعیت استفاده کرده است.
کدها به وضوح قابلیتهای زیر را فاش میکنند:
- الگوی Route‑based Loading برای رندر سریع صفحات جزئیات هر اپ؛
- اجزای قابل استفاده مجدد (Reusable Components) برای نمایش رتبهها، اسکرینشاتها و توضیحات؛
- استفاده از ماژول Animations API برای افکتهای روان در مرور بین تبها؛
- ماژول Session Manager که نشان میدهد اپل برای بخش وب نیز سیستم اعتبارسنجی توکن محور (Token Based Auth) پیاده کرده است.
افشای چنین جزئیاتی نهتنها نگاه تازهای به رویکرد فنی اپل در طراحی پلتفرمهای وب میدهد، بلکه نشان میدهد شرکت حتی در محصولات سطحوب نیز به سمت ساختارهای تمامجاوااسکریپتی و سبکتر حرکت میکند – چیزی که تا امروز عمدتاً در اکوسیستم گوگل یا مایکروسافت دیده میشد.
اشتباه انسانی یا ضعف در فرآیند CI/CD؟
کارشناسان امنیت نرمافزار اتفاق اخیر را نمونهی بارز اشتباه در زنجیرهی استقرار (Deployment Pipeline) میدانند. بهگفتهی «آندریاس شولتز»، محقق امنیت وب از گروه OWASP، چنین خطایی زمانی رخ میدهد که تیم بین Build و Release همگام نیستند و فرآیند حذف فایلهای توسعه در اسکریپت نهایی Build لحاظ نمیشود.
به احتمال زیاد، اپل از سیستم خودکار CI/CD بر بستر Jenkins یا GitHub Actions استفاده میکرده و نسخهای از فایل .map درون پوشهی Distribution باقی مانده است. در نتیجه، وقتی وبسایت آپلود شد، مرورگر کاربران میتوانست مسیر دقیق SourceMap را حدس بزند:
https://store.apple.com/_next/static/js/[hash].js.map
همین مسیر کافی بود تا Rxliuli به گنجینهای از دادههای خام دست یابد.
در درجهی اول، این اتفاق تهدید امنیتی مستقیمی برای حسابهای کاربران ایجاد نمیکند، چون فایلهای SourceMap شامل هیچ کلید، توکن یا رمز عبور نیستند. اما آنچه نگرانکننده است، آشکار شدن ساختار داخلی و منطق لایهی کاربری اپ استور است – دانشی که میتواند راه را برای حملات مهندسی معکوس یا Phishing های هدفمند باز کند.
واکنش جامعهی فنی و سکوت محتاطانهی اپل
چند ساعت پس از انتشار مخزن، کارشناسان امنیتی در X (توییتر سابق) و Hacker News دربارهی موضوع بحث کردند. بسیاری از آنان با لحنی طنزآمیز نوشتند:
«حتی اپل هم گاهی دکمهی production=true را فراموش میکند!»
اپل اما در واکنش رسمی خود سکوت اختیار کرده است. بر اساس گزارشهایی از بلاگ 9to5Mac، تیم حقوقی شرکت بهصورت داخلی درحال بررسی ماجراست و احتمالاً با ارسال DMCA به گیتهاب خواستار حذف فوری مخزن خواهد شد.
این سکوت، بخشی از الگوی همیشگی اپل است: تا زمانی که حادثه تهدید مستقیمی برای کاربر ایجاد نکند، واکنش عمومی نشان نمیدهد تا از دامن زدن به موج رسانهای جلوگیری کند. با این حال، ناظران بر این باورند که اعتماد مهندسان وب به استانداردهای اپل در امنیت فرانتاند کمی آسیب دیده است.
زاویهی آموزشی یا جرقهای برای بحث دربارهی شفافیت؟
خود Rxliuli در توضیحات مخزن آورده است:
«هدف از انتشار، بررسی شیوهی طراحی ماژولار در پروژهای در مقیاس اپل است و هیچ تغییر یا نفوذی در سرورها انجام نشده است.»
او حتی در توضیح فایل README خود نوشته:
«اگر فایلهای .map را حذف نکنید، به کاربران کنجکاو هدیهای ناخواسته میدهید.»
چند استاد دانشگاه حوزه نرمافزار از این ماجرا بهعنوان نمونهای شفاف برای تدریس مفهوم DevSecOps استفاده کردند. درواقع، افشای کنترلنشدهی فایلهای SourceMap میتواند تبدیل به یک کیس استادی رسمی در ارزیابیهای امنیتی شود.
در بسیاری از کنفرانسهای بعدی ۲۰۲۵، احتمال دارد این مورد بهعنوان « درس طلایی در امنیت فرانتاند » مطرح گردد؛ نمونهای که ثابت میکند حتی کمپانیهای میلیارددلاری هم میتوانند با یک تنظیم اشتباه، دانش فنی خود را در معرض دید عموم قرار دهند.
نگاه عمیقتر به ساختار اپ استور وب جدید
اگر از زاویهی فنیتر به موضوع نگاه کنیم، نسخهی جدید اپ استور وب در واقع بازنگری کاملی در طراحی تجربهی کاربر بهشمار میآید. اپل از سال ۲۰۱۸ تا امروز چندین بار ظاهر سایت را بازطراحی کرده، اما نسخهی اخیر بیش از هر زمان دیگری به اپلیکیشن بومی App Store در macOS و iOS شباهت دارد.
کدهای نشتیافته نشان میدهند اپل:
- از سیستم Dynamic Module Loader برای بارگیری مؤلفههای مستقل استفاده کرده؛
- ساختار Server‑Side Rendering (SSR) را در کنار Client‑Side Hydration به کار برده؛
- و احتمالا برای تعامل با دادههای بکاند از GraphQL endpoint داخلی بهره گرفته است.
این موارد برای توسعهدهندگان وب ارزش زیادی دارند، چرا که نحوهی پیادهسازی معماری Partial Rendering در مقیاس اپل را نشان میدهد.
در حقیقت، آنچه از زاویهی امنیت یک گاف بزرگ بود، برای جامعهی فرانتاند فرصتی شد تا از نزدیک – بدون هک – نگاهی به DNA کدنویسی اپل بیندازند.
نگاهی به سابقهی افشاهای مشابه در صنعت فناوری
اپل تنها قربانی چنین اشتباهی نیست. در سالهای گذشته، شرکتهایی مانند Microsoft, Slack, و Spotify نیز فایلهای SourceMap یا config را در محیط نهایی رها کردهاند. در برخی موارد حتی کلیدهای API هم در همین فایلها کشف شد.
در ۲۰۲۳، استارتاپی به نام Cerebro در بخش هوش مصنوعی، فایلهای map را برای مدل نامکونی خود در اختیار عموم قرار داد که منجر شد سایر تیمها معماری UI آن را کپی کنند.
بنابراین، هرچند اتفاق اپل جنجالیتر است، اما در جامعهٔ فنی معادل هشداری تکرارشونده است:
امنیت از جزئیات شروع میشود، نه از دیوارهی آتش.
پیامدهای کوتاهمدت و بلندمدت برای اپل
در کوتاهمدت، اپل احتمالاً با حذف سریع دادهها از گیتهاب و بهروزرسانی Build Scriptها این شکاف را میبندد. اما پیامد بلندمدت پیچیدهتر است:
- تیمهای توسعه باید فرآیند جدیدی برای بررسی نهایی قبل از استقرار تعریف کنند.
- احتمال دارد اپل سیاست Security Review post‑release را در کل پروژههای web خود اجباری کند.
- از طرف دیگر، تحلیلگران بازار میگویند هرچند این حادثه ارزش سهام اپل را تغییر نخواهد داد، اما برند «بینقص بودن» که سالها با دقت حفظ شده بود، ترک کوچکی برداشته است.
در عصر AI‑DevOps و CI/CD های خودکار، خطاهای انسانی مثل خاموش نکردن SourceMap یادآور واقعیتی مهماند:
نمیتوان به اتوماسیون کامل اعتماد کرد؛ انسانی باید پیچ آخر را سفت کند.
فاجعه یا فرصت؟ برداشت Farcoland Digital
از دیدگاه تحلیلی، این اتفاق بیش از آنکه فاجعه باشد، فرصتی است برای بازاندیشی دربارهی شفافیت و مسئولیت در توسعهی نرمافزارهای عظیم. وقتی کاربران میتوانند بخشی از کد واقعی را ببینند، اعتمادشان به ساختار مهندسی شرکت بیشتر میشود – البته اگر شرکت با صداقت برخورد کند.
در نهایت، ماجرای Rxliuli به اپل نشان داد که مرز میان «کد امن» و «کد عمومی» تنها یک گزینه در فایل build.config.js است. گاهی تمام اقتدار یک برند جهانی میتواند به تیک خوردن اشتباه همان گزینه بستگی داشته باشد.
نتیجهگیری: درس بزرگ از گافی کوچک
در دنیای دیجیتالِ ۲۰۲۵ که هر روز شرکتها برای حفظ دادهها میلیاردها دلار هزینه میکنند، دیدن خطایی چنین ساده اما چشمگیر از اپل، یادآور این نکته است که امنیت هیچگاه مطلق نیست.
هر پروژه، صرفنظر از عظمتش، اگر تنها یک مرحلهی کنترل کیفیت را نادیده بگیرد، میتواند ناخواسته بخشی از پشتصحنهی خود را به نمایش بگذارد.
افشای کد اپ استور وب شاید تهدید مستقیمی برای کاربران نباشد، اما از منظر فرهنگی، پیامی روشن برای مهندسان دارد:
تمرین دقت، ثبات در مستندسازی و حذف لایههای غیرضروری، همان دیوارهی واقعی امنیت در قرن ۲۱ است.
🔸 سؤالات متداول (FAQ)
۱. آیا انتشار فایلهای SourceMap تهدیدی برای اطلاعات کاربران اپل است؟
خیر. SourceMap فقط به کد رابطکاربری و منطق فرانتاند مربوط میشود و شامل اطلاعات حسابکاربری، رمزعبور یا پرداخت نیست. اما میتواند مسیر حملات Phishing را هموارتر کند.
۲. کاربر Rxliuli چگونه توانست کدها را استخراج کند؟
او به کمک افزونهای در مرورگر Chrome مسیر فایلهای .js.map را پیدا کرده و سپس با ابزار SourceMap Decoder کدهای TypeScript و Svelte را بازیابی کرده است.
۳. آیا اپل مخزن مربوطه را از گیتهاب حذف کرده است؟
در زمان انتشار خبر، مخزن هنوز فعال بود؛ اما با توجه به سیاست حقوقی اپل، احتمال حذف آن با دریافت دستور DMCA بسیار زیاد است.
۴. چرا فایلهای SourceMap باید در محیط تولید غیرفعال شوند؟
زیرا این فایلها نقشهای از کد اصلی هستند و اگر عمومی باقی بمانند، هرکس میتواند ساختار دقیق پروژه را مشاهده کند؛ عملی برخلاف استانداردهای DevSecOps.
۵. ماجرای رخداده چقدر مشابه سایر نشتهای کد در شرکتهاست؟
بسیار مشابه. شرکتهایی مانند Microsoft و Slack در گذشته اشتباهات مشابهی داشتهاند، اما مورد اپل بهدلیل مقیاس سرویس و برندش پر سروصدا تر شد.
۶. فریمورک و تکنولوژیهای بهکاررفته در اپ استور وب چه بود؟
طبق بررسی فایلها، اپل از SvelteKit، TypeScript، GraphQL و ساختار Reactivity منحصربهفردی در مدیریت وضعیت بهره میبرد.
۷. آیا این نقص میتواند به نسخههای موبایل اپ استور هم سرایت کند؟
خیر. اپ استور iOS و macOS ساختار بومی دارند و از کد وب جدا هستند؛ بنابراین نشت فعلی محدود به رابط وب است.
۸. مهمترین درسی که از این اتفاق میتوان گرفت چیست؟
اینکه حتی غولهایی چون اپل نیز باید بررسی پس از استقرار (Post‑deployment Review) را جدی بگیرند. امنیت نه در رمزنگاریهای بزرگ، بلکه در خاموش کردن یک گزینهی کوچک خلاصه میشود.
کلام آخر:
در جهانی که سرعت انتشار نرمافزار از سرعت تفکر فراتر رفته است، حادثهی SourceMap اپل یک یادآوری شاعرانه بود از ارزش دقت انسانی در عصر هوش مصنوعی – جایی که حتی بزرگترینها هم با یک تیک اشتباه میتوانند رازهای خود را فاش کنند.

