IOHIDFamily

یک محقق امنیتی در آستانه سال نو جزئیات یک آسیب‌پذیری امنیتی ناخواسته در سیستم‌عامل macOS شرکت اپل را منتشر کرد که می‌تواند برای کنترل کامل یک سیستم مورد بهره‌برداری قرار گیرد.

در روز اول سال ۲۰۱۸ یک محقق با استفاده از سربرگ آنلاین Siguza اطلاعاتی را از یک آسیب‌پذیری روز صفر وصله نشده در macOS منتشر کرد[۱]  که حداقل ۱۵ سال سن دارد و کد بهره‌بردار اثبات ادعای آن در GitHub قرار دارد[۲].

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

با بررسی منبع آن، Siguza معتقد است که این آسیب‌پذیری از ابتدای سال ۲۰۰۲ تاکنون وجود داشته است اما برخی از سرنخ‌ها نشان می‌دهد که این نقص می‌تواند درواقع ده سال قدیمی‌تر از آن باشد.

این نقص افزایش سطح دسترسی محلی که در IOHIDFamily قرار دارد یک افزونه از هسته macOS است که برای دستگاه‌های رابط انسان(۲)، مانند صفحه‌نمایش لمسی یا دکمه‌ها طراحی شده است و اجازه می‌دهد مهاجم یک root shell را نصب کند یا یک کد دلخواه را در سیستم اجرا کند.

این محقق این‌گونه توضیح می‌دهد: “IOHIDFamily درگذشته نیز برای بسیاری از شرایط مسابقه‌ای(۳) که شامل آن‌ها بود، بدنام بود، که درنهایت منجر به بازنویسی بخش بزرگی از آن شد تا از دروازه‌های فرمان(۴) استفاده کند. من در ابتدا از طریق منبع آن به امید پیدا کردن یک سرنخ بودم که به من اجازه می‌داد که هسته iOS را به خطر بیندازم، اما آنچه من آن را نمی‌دانستم این بود که برخی از قطعات IOHIDFamily که تنها در macOS وجود دارند و به‌طور خاص در IOHIDSystem، شامل این آسیب‌پذیری هستند.”

بهره‌بردار ایجادشده توسط Siguza، که آن را IOHIDeous نامیده است، بر روی تمام نسخه‌های macOS تأثیر می‌گذارد و اشکال خواندن و نوشتن دلخواه را در هسته ایجاد می‌کند.

علاوه بر این، IOHIDeous نیز ویژگی‌های امنیتی SIP(5) و (۶)AMFI را غیرفعال می‌کند. این ویژگی‌های امنیتی سیستم‌ حفاظت در برابر بدافزارها را ارائه می‌دهند.

این کد اثبات ادعا که توسط Siguza در دسترس قرار داده شده است به دلایلی بر روی macOS High Sierra نسخه ۱۰٫۱۳٫۲ کار نمی‌کند و بر روی macOS High Sierra نسخه ۱۰٫۱۳٫۱ و قبل از آن کار می‌کند، اما او معتقد است که می‌توان از کدهای بهره‌بردار اصلاح‌شده نیز بر روی آخرین نسخه از این سیستم‌عامل استفاده کرد.

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

ازآنجایی‌که این آسیب‌پذیری فقط بر macOS تأثیر می‌گذارد و از راه دور قابل بهره‌برداری نیست، این محقق تصمیم گرفت تا یافته‌های خود را به‌جای آنکه به اپل گزارش دهد، به‌طور آنلاین منتشر کند. برای کسانی که بی‌اطلاع هستند این نکته حائز اهمیت است که برنامه bug bounty اپل، اشکالات macOS را پوشش نمی‌دهد.

برای جزئیات عمیق فنی در مورد این آسیب‌پذیری، شما می‌توانید به نوشته‌های این محقق در GitHub مراجعه کنید.

منابع

[۱] https://twitter.com/s1guza/status/947603265700601856

[۲] https://siguza.github.io/IOHIDeous

[۳] https://thehackernews.com/2018/01/macos-kernel-exploit.html


(۱) local privilege escalation (LPE)
(۲) human interface devices (HID)
(۳) race
(۴) command gates
(۵) System Integrity Protection
(۶) Apple Mobile File Integrity