در روزهای اخیر کمپانی ESET ، سوءاستفاده از آسیب پذیری افزایش دسترسی محلی در مایکروسافت ویندوز، به ویژه یک اشاره گر NULL در component component win32k.sys است. هنگامی که این آسیب پذیری کشف و تجزیه و تحلیل شد، آن را به مرکز امنیتی مایکروسافت ارسال کردند که به سرعت آسیب پذیری را رفع و پچ آن را منتشر کردند ، سپس در قالب یک داکیومنت گزارش آن ارسال شد.
این آسیب پذیری بر نسخه های ویندوز که در زیر آمده است تاثیر گذار خواهد بود :
- Windows 7 for 32-bit Systems Service Pack 1
- Windows 7 for x64-based Systems Service Pack 1
- Windows Server 2008 for 32-bit Systems Service Pack 2
- Windows Server 2008 for Itanium-Based Systems Service Pack 2
- Windows Server 2008 for x64-based Systems Service Pack 2
- Windows Server 2008 R2 for Itanium-Based Systems Service Pack 1
-
Windows Server 2008 R2 for x64-based Systems Service Pack 1
حملات روز صفرم یک حمله یا تهدید رایانهای است که از یک آسیبپذیری در یک نرمافزار کاربردی که تا پیش از آن ناشناخته بودهاست بهرهجویی میکند. همانطور که با تعدادی از آسیب پذیری های دیگر ویندوز مایکروسافت win32k.sys که در سال های اخیر منتشر شده آشنا هستید، این exploit از منو پنجره استفاده می کند وسبب بهره برداری های لازمه کار خود می شود .این سوء استفاده دو پنجره ایجاد می کند. یکی برای مرحله اول و دیگری برای مرحله دوم بهره برداری.از نظر مفهومی، وقتی یک رخداد توسط حمله روز صفرم اتفاق می افتد، کاربرانی که بهبود لازم را برای پوشش نقاط آسیبپذیر اعمال میکنند و به صورت مؤثر پنجره آسیب را پوشش میدهند بطوریکه می توان گفت برای پنجره اول، اشیای منوی popup را ایجاد می کند و آیتم های منو را با استفاده از عملکردهای CreatePopupMenu و AppendMenu می افزاید. علاوه بر این، بهره برداری WH_CALLWNDPROC و EVENT_SYSTEM_MENUPOPUPSTART را نیز تنظیم می کند.
سپس سوءاستفاده از منو با استفاده از تابع TrackPopupMenu را نمایش می دهد. در این مرحله کد EVENT_SYSTEM_MENUPOPUPSTART جهت اجرا متصل می شود. این کد تلاش می کند به عنوان اولین مورد موجود در منو، با ارسال دنباله MN_SELECTITEM، MN_SELECTFIRSTVALIDITEM و پیام MN_OPENHIERARCHY به منو باز شود.
گام بعدی برای راه اندازی این آسیب پذیری بسیار مهم است. بهره برداری باید در زمانی صورت بگیرد که منوی اولیه در حال ایجاد شدن است. این بهره برداری دارای کد است که پیام WM_NCCREATE را در WH_CALLWNDPROC مدیریت می کند. هنگامی که کد سیستم را در این حالت تشخیص می دهد، پیام (MN_CANCELMENUS (0x1E6 را به اولین منو ارسال می کند که این منو را لغو می کند. با این حال، زیر منو آن هنوز در حال ایجاد شدن است.
حالا اگر ما این زیر منو را در حالت هسته بررسی کنیم، می بینیم که tagPOPUPMENU-> ppopupmenuRoot برابر با صفر است . این حالت به مهاجم اجازه می دهد که از این عنصر در این ساختار هسته به عنوان یک ارجاع اشاره گر NULL استفاده کند. بهره برداری یک صفحه جدید را در آدرس 0x0 اختصاص می دهد و این آدرس به عنوان یک (object tagPOPUPMENU (see Figure 1 توسط هسته پردازش می شود.