دور زدن سیستم امنیتی microsoft edge با حمله به سرور JIT

با به روز رسانی ویندوز 10 نسخه 1703 موسوم به creators update، مایکروسافت یک سیستم امنیتی جدید به نام Arbitrary Code Guard (ACG) را معرفی کرد

 دور زدن سیستم امنیتی microsoft edge با حمله به سرور JIT

با به روز رسانی ویندوز 10 نسخه 1703 موسوم به creators update، مایکروسافت یک سیستم امنیتی جدید به نام (Arbitrary Code Guard (ACG را معرفی کرد که باعث می‌شود که درخواست حافظه به صورت اجرایی امکان پذیر نباشد و همچنین محتوی حافظه های اجرایی موجود غیر قابل تغییر باشد. هدف از ACG این است که کار مهاجمی که یک آسیب پذیری در مرورگر پیدا کرده است برای اجرای کد مخرب بسیار سخت شود. 

 

از آنجایی که مرورگرهای امروزی برای به دست آوردن کارایی و سرعت بیشتر در اجرای جاوا اسکریپت به کامپایل (Just-In-Time (JIT متکی هستند و JIT با ACG ناسازگار است، مایکروسافت تصمیم گرفت که موتور JIT را از پردازش محتوای Edge جدا کند و در پروسه‌ی دیگری قرار دهد.

 

تیم project zero گوگل این پیاده سازی را مورد ارزیابی قرار داد و توانست چندین آسیب پذیری در این سیستم پیدا کند. آنها همچنین نشان دادند که به طور کلی جدا کردن پروسه ی JIT باعث مشکلات مشابهی می‌شود.

 

این آسیب پذیری 16 آبان 1396 توسط گوگل فاش شد و 5 اردیبهشت 1397 گوگل کدها و ابزار مورد نیاز برای استفاده از این آسیب پذیری را منتشر کرد.

 

دو ابزار منتشر شده عبارتند از:

1- cfgtool.cpp : ابزاری برای پیدا کردن راه های دور زدن (Control Flow Guard (CFG است.

 

 

2- cfgtool.py: یک افزونه برای IDA pro است که صدا کردن توابع دلخواه را راحت تر می کند بدون آن که مجبور به دور زدن CFG باشد. به این صورت که توابعی که دارای مجوز CFG هستند و تابع مورد نظر ما را فراخوانی می کنند را پیدا می‌کند.

 

 

گوگل همچنین کدهای اکسپلویتی به نام های acgpoc1.html و acgpoc2.html  برای اثبات منتشر کرده است که اولی از یک باگ از JIT server استفاده می‌کند و دومی از طریق فراخوانی توابعی که دارای مجوز CFG هستند، اقدام به اجرای کد دلخواه می‌کند.

 

 

منبع 1

منبع 2

منبع 3

 

کلمات کلیدی