#Bypassing ARM's #MTE with a #Side-Channel Attack
در موضوع بهره برداری از آسیب پذیری های باینری، همواره یکی از چالش ها دور زدن مکانیزم های دفاعی است که بعضا در سطح سیستم عامل توسعه داده شده و مامور بر کاری است.
مکانیزمی با نام MTE است که یک مکانیزم دفاعی سخت افزاری در مقابله با آسیب پذیری های باینری بر پایه پردازنده های ARM است، این مکانیزم برای هر obj یک Key ایجاد میکند و اشاره گر (Pointer) را نمی گذارد منحرف شود.
ساختار Tag ها بصورت 64 بایت بوده که 4 بیت اولیه آن در سمت اشاره گر، یک مقدار تصادفی که در جریان اشاره اشاره گر به obj، این مقدار تصدیق و در صورت درست بودن اجازه دسترسی داده میشود.
روش دور زدن، Leak شدن MTE tag در یک آدرس دیگه بواسطه ظرفیت حملات Cache Side-Channel این امکان رو خواهد داد تا مهاجم از حافظه Cache که امکان دسترسی سریع پردازنده به داده را بدهد.
مهاجم بواسطه تعریف یک Gadget Store-to-Load امکان اینو پیدا میکنه که در زمان ذخیره یک بازه آدرس افست و در زمان بارگزاری اون امکان دسترسی به Tag Valid دست پیدا کرده و اون رو برای اشاره گر دارای آسیب پذیری استفاده نماید.
@Unk9vvN
در موضوع بهره برداری از آسیب پذیری های باینری، همواره یکی از چالش ها دور زدن مکانیزم های دفاعی است که بعضا در سطح سیستم عامل توسعه داده شده و مامور بر کاری است.
مکانیزمی با نام MTE است که یک مکانیزم دفاعی سخت افزاری در مقابله با آسیب پذیری های باینری بر پایه پردازنده های ARM است، این مکانیزم برای هر obj یک Key ایجاد میکند و اشاره گر (Pointer) را نمی گذارد منحرف شود.
ساختار Tag ها بصورت 64 بایت بوده که 4 بیت اولیه آن در سمت اشاره گر، یک مقدار تصادفی که در جریان اشاره اشاره گر به obj، این مقدار تصدیق و در صورت درست بودن اجازه دسترسی داده میشود.
روش دور زدن، Leak شدن MTE tag در یک آدرس دیگه بواسطه ظرفیت حملات Cache Side-Channel این امکان رو خواهد داد تا مهاجم از حافظه Cache که امکان دسترسی سریع پردازنده به داده را بدهد.
مهاجم بواسطه تعریف یک Gadget Store-to-Load امکان اینو پیدا میکنه که در زمان ذخیره یک بازه آدرس افست و در زمان بارگزاری اون امکان دسترسی به Tag Valid دست پیدا کرده و اون رو برای اشاره گر دارای آسیب پذیری استفاده نماید.
@Unk9vvN