برای گذشته چهار ماه است که دستگاههای iOS و iPadOS اپل و مرورگر سافاری یکی از مقدسترین سیاستهای امنیتی اینترنت را نقض کردهاند. این نقض ناشی از اشکالی است که هویت کاربر و فعالیت مرور را در زمان واقعی فاش می کند.
خطمشی همان مبدأ یک مکانیسم امنیتی اساسی است که اسناد، اسکریپتها یا سایر محتوای بارگیری شده از یک مبدا – به معنای پروتکل، نام دامنه، و پورت یک صفحه وب یا برنامه معین – را از تعامل با منابعی از منابع دیگر منع میکند. بدون این خطمشی، سایتهای مخرب (مثلا badguy.example.com) میتوانند به اعتبار ورود به سیستم Google یا سایر سایتهای مورد اعتماد هنگامی که در پنجره یا برگه مرورگر دیگری باز میشود دسترسی داشته باشند.
نقض آشکار حریم خصوصی
تحقیقات منتشر شده در اواخر هفته گذشته نشان داد از زمان انتشار Safari 15 و iOS و iPadOS 15 در سپتامبر، این سیاست کاملاً باز شده است. همانطور که یک سایت نمایشی به صورت گرافیکی نشان می دهد، یادگیری دامنه سایت های باز شده در برگه ها یا پنجره های دیگر و همچنین شناسه های کاربر و سایر اطلاعات شناسایی مرتبط با سایت های دیگر برای یک سایت امری بی اهمیت است.
مارتین باجانیک، محقق در شرکت امنیتی FingerprintJS، میگوید: «این واقعیت که نام پایگاههای داده در منابع مختلف درز میکند، نقض آشکار حریم خصوصی است. او ادامه داد:
این به وبسایتهای دلخواه امکان میدهد یاد بگیرند که کاربر از چه وبسایتی در تبها یا پنجرههای مختلف بازدید میکند. این امکان پذیر است زیرا نام های پایگاه داده معمولاً منحصر به فرد و مختص وب سایت هستند. علاوه بر این، مشاهده کردیم که در برخی موارد، وب سایت ها از شناسه های منحصر به فرد کاربر در نام پایگاه داده استفاده می کنند. این بدان معناست که کاربران احراز هویت شده را می توان به طور منحصر به فرد و دقیق شناسایی کرد.
حملات روی مکهای دارای Safari 15 و روی هر مرورگری که روی iOS یا iPadOS 15 اجرا میشود کار میکند. همانطور که نسخه آزمایشی نشان میدهد، safarileaks.com میتواند حضور بیش از 20 وبسایت از جمله Google Calendar، YouTube، Twitter و Bloomberg را شناسایی کند. در برگه ها یا پنجره های دیگر باز کنید. با کار بیشتر، یک مهاجم دنیای واقعی احتمالاً صدها یا هزاران سایت یا صفحه وب را میتواند شناسایی کند.
وقتی کاربران به یکی از این سایتها وارد میشوند، میتوان از این آسیبپذیری برای افشای بازدید و در بسیاری از موارد شناسایی اطلاعات در زمان واقعی سوء استفاده کرد. به عنوان مثال، هنگامی که به یک حساب Google باز شده در جای دیگری وارد شوید، سایت آزمایشی می تواند شناسه داخلی را که Google برای شناسایی هر حساب استفاده می کند، دریافت کند. معمولاً می توان از آن شناسه ها برای شناسایی صاحب حساب استفاده کرد.
آگاهی بالا بردن
این نشت نتیجه روشی است که موتور مرورگر Webkit IndexedDB را پیاده سازی می کند، یک رابط برنامه نویسی که توسط همه مرورگرهای اصلی پشتیبانی می شود. حجم زیادی از داده ها را در خود نگه می دارد و با ایجاد پایگاه داده در هنگام بازدید از یک سایت جدید کار می کند. برگهها یا پنجرههایی که در پسزمینه اجرا میشوند میتوانند به طور مداوم از IndexedDB API برای پایگاههای داده موجود پرس و جو کنند. این به یک سایت اجازه می دهد تا در زمان واقعی یاد بگیرد که کاربر از چه وب سایت های دیگری بازدید می کند.
وبسایتها همچنین میتوانند هر وبسایتی را در یک پنجره iframe یا پاپ آپ باز کنند تا نشت مبتنی بر IndexedDB برای آن سایت خاص ایجاد کنند. با قرار دادن iframe یا پاپ آپ در کد HTML خود، یک سایت می تواند سایت دیگری را به منظور ایجاد نشت مبتنی بر IndexedDB برای سایت باز کند.
باجانیک نوشت: “هر بار که یک وب سایت با یک پایگاه داده تعامل می کند، یک پایگاه داده جدید (خالی) با همین نام در تمام فریم ها، برگه ها و پنجره های فعال دیگر در همان جلسه مرورگر ایجاد می شود. «ویندوزها و برگهها معمولاً جلسه یکسانی را به اشتراک میگذارند، مگر اینکه به نمایه دیگری، مثلاً در Chrome، تغییر دهید یا یک پنجره خصوصی باز کنید».