macOS

یک محقق امنیت سایبری در بخش پروژه Zero گوگل جزئیات و بهره‌بردار اثبات ادعای یک آسیب‌پذیری امنیتی شدید را در سیستم‌عامل macOS پس‌ازآنکه اپل موفق به انتشار یک وصله برای آن در ظرف مدت ۹۰ روز نشد؛ افشا کرده است.

این آسیب‌پذیری که توسط Jann Horn، پژوهشگر پروژه Zero کشف ‌شده و توسط Ian Beer اثبات شده است، در روشی قرار دارد که کرنل XNU در سیستم‌عامل macOS  به یک مهاجم اجازه می‌دهد تا تصاویر فایل سیستم را بدون اطلاع سیستم‌عامل دست‌کاری کند.

این نقص در نهایت به یک مهاجم یا یک برنامه موذی اجازه می‌دهد تا قابلیت copy-on-write یا COW را دور بزند تا منجر به تغییرات غیرمنتظره در حافظه به اشتراک گذاشته در بین فرآیندها شود و در نهایت منجر به حملات فیزیکی حافظه می‌شود.

Copy-On-Write که همچنان با COW نیز شناخته می‌شود، یک استراتژی بهینه‌سازی مدریت منابع است که در برنامه‌نویسی کامپیوتر استفاده می‌شود.

به‌طورکلی، اگر هر فرایندی (مقصد) نیاز به یک فایل یا داده داشته باشد که در حال حاضر در حافظه است اما توسط یک فرایند دیگر (منبع) ایجاد شده است، هر دو فرایند می‌توانند یک منبع مشابه را به‌جای ایجاد یک کپی جدید از آن به اشتراک بگذارند و به‌طور قابل‌توجهی استفاده از نسخه‌های غیر اصلاح‌شده کاهش می‌یابد.

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

با توجه به گفته‌های این محقق پروژه Zero، در سیستم‌عامل macOS اپل، این رفتار Copy-On-Write نه‌تنها با حافظه ناشناس عمل می‌کند، بلکه به‌طور کارآمد جدول‌های صفحه و نقشه‌های حافظه را نیز مدیریت می‌کند.

در یک گزارش در ارتباط با جزئیات این آسیب‌پذیری آمده است[۱]: “این بدان معنی است که پس‌ازاینکه فرایند مقصد شروع به خواندن از ناحیه حافظه منتقل‌شده می‌کند، فشار حافظه باعث می‌شود که صفحات، حافظه منتقل‌شده را نگه ‌دارند و نگذارند از cache صفحه موردنظر خارج شود.”

“بعدها، زمانی که صفحات خارج‌شده مجدداً موردنیاز بودند، می‌توان آن‌ها را از سیستم فایل پشتیبان بارگیری کرد.”

این محقق گوگل فهمید که هنگامی‌که یک تصویر فایل سیستم mount شده مستقیماً تغییر داده شده است (به‌عنوان‌مثال، با فراخوانی pwrite در تصویر سیستم فایل)، این اطلاعات در سیستم فایل mount شده منتشر نمی‌شود.

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

“این موضوع مهم است که حافظه کپی شده در برابر تغییرات بعد از فرایند منبع محافظت شود؛ در غیر این صورت، فرایند منبع ممکن است قادر به بهره‌برداری double-reads در روند مقصد باشد.”

علاوه بر این آسیب‌پذیری، این محقق پروژه Zero با استفاده از سوءاستفاده از یک تابع دیگر در سیستم‌عامل MacOS، یک فرآیند دور زدن رفتار copy-on-write مشابه (CVE-2019-6208) را نیز پیدا کرد[۲].

این محقق، اپل را از هر دوی این آسیب‌پذیری‌ها در ماه نوامبر سال ۲۰۱۸ مطلع ساخت و این شرکت به‌صورت خصوصی اعلام کرد که این نقص‌ها وجود دارند. درحالی‌که اپل آسیب‌پذیری اخیر را در به‌روزرسانی ژانویه ۲۰۱۹ برطرف کرد، نقص پیشین حتی بعد از آخرین ‌مهلت ۹۰ روزه که توسط پروژه Zero در اختیار شرکت‌های آسیب‌دیده قرار می‌گیرد، همچنان با مشکل مواجه شده است.

بنابراین، محققان این آسیب‌پذیری را با قرار دادن آن در دسته‌بندی آسیب‌پذیری‌های با شدت بالا به‌طور عمومی منتشر کرده است و همچنین کد اثبات ادعای آن را نیز در اختیار عموم قرار داده است که این اشکال را اثبات می‌کند و هنوز وصله نشده است.

اپل در حال حاضر با تیم Project Zero برای اصلاح این آسیب‌پذیری مشغول به کار است، که برای انتشار MacOS در آینده در نظر گرفته است.

منابع

[۱] https://bugs.chromium.org/p/project-zero/issues/detail?id=1726&q

[۲] https://bugs.chromium.org/p/project-zero/issues/detail?id=1725

[۳] https://thehackernews.com/2019/03/cybersecurity-macos-hacking.html