هکر سامسونگ اطلاعات عجیبی از Knox را فاش کرد

هکرهای پروژه Zero گوگل چندین رخنه امنیتی بسیار مهم در هسته ی پلت فرم ناکس (Knox) سامسونگ کشف کرده اند که محافظت از گوشی های گلکسی را در هاله ای از ابهام فرو برده است.

به گزارش کلیک، از زمان راه اندازی ناکس در سال ۲۰۱۳، این پلت فرم برای استفاده داخلی ادارات دولتی بریتانیا و ایالات متحده، از جمله وزارت دفاع آمریکا و آژانس امنیت گواهی دریافت کرده است. با توجه به این گواهی نامه، مکانیسم های دفاعی عمیق باید با دقت بسیار بالایی تنظیم و تدبیر شوند.

اما با توجه به هکر پروژه Zero گوگل که سال پیش رمزنگاری کامل دیسک ذخیره سازی اندروید را با مشکل مواجه کرد، ناکس طراحی شده برای محافظت از کرنل لینوکس در هنگام اجرا را می توان از طریق روش های مختلف از کار انداخت یا در کار آن خللی وارد کرد.

این هکر که نام او بنیامینی است، جزئیات چهار خطای کلیدی و مهمی را فاش کرد که او برای دور زدن حفاظت هسته ناکس درGalaxy S7 edge بهره مند از چیپ اگزینوس سامسونگ استفاده کرد. می توان با قاطعیت گفت که به خطر انداختن هسته (کرنل) به یک یک هکر اجازه می دهد تا به داده های سیستم دسترسی پیدا کند، نرم افزارهای مخرب را در سیستم پنهان کند، رفتار سیستم را تغییر دهد و یا تمامی فعالیت های سیستم را در اختیار خود بگیرد.

در حالی که قابلیت Trusted Boot اندروید از یکپارچگی هسته در مدت زمان راه اندازی محافظت می کند، اما درست بعد از اتمام راه اندازی و در زمان اجرای هسته به هیچ وجه از آن محافظت نمی کند. به خاطر همین نقص بود که سامسونگ، هایپروایزر ناکس را معرفی کرد که با عنوان محافظت یکپارچه از کرنل( Real-time Kernel Protection یا RKP) شناخته می شود و با استفاده از ARM Trust Zone امنیت را به ارمغان می آورد.

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

آن طور که بنیامینی توضیح می دهد، از زمان انتشار ناکس ورژن ۲٫۶، دستگاه های سامسونگ به ویژگی های محدودکننده دسترسی به نام Kernel Address Space Layout Randomization مجهز شده اند که دست هکرها و خرابکاران را از پیش بینی آدرس بارگذاری کرنل کوتاه می کند. با این حال، یک خطای ساده برنامه نویسی توسط سامسونگ تمام نقشه ها را نقش برآب کرد و عملا محاسبه فضای کرنل امکان پذیر شد!

او در ادامه خاطر نشان کرد: این ویژگی امنیتی یک قابلیت انحرافی تصادفی را معرفی می کند که درهر بار بوت شدن دستگاه تولید می شود و توسط آن آدرس محل هسته یا کرنل مرتبا تغییر می باید. به طور معمول، هسته در یک آدرس فیزیکی ثابت بارگذاری می شود که مربوط به یک آدرس مجازی ثابت در VAS  هسته است. با معرفی KASLR، تمام حافظه هسته از جمله کد آن توسط این قابلیت تصادفی و یا “اسلاید” جا به جا می شود.

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

بنیامینی می گوید اکثر دستگاه های اندرویدی در حال حاضر مجهز به یک قابلیت به عنوان ktpr_restrict برای مخفی کردن مقدار یک اشاره گر با استفاده از فرمت PK هستند که به طور خاص با حرف K بزرگ نمایش داده می شود. آن چنان که او قبلا اشاره کرده است، تمام اشاره گر های چاپ شده هسته با استفاده از٪ PK پنهان هستند. با این حال، سامسونگ به طرز عجیب و شاید حتی خنده داری از حرف k کوچک استفاده کرده است.

او بر این باور است که این به ما اجازه می دهد تا به سادگی محتویات pm_qos را بخوانیم و مقدار اشاره گر را از مقدار انحرافی شناخته شده در آدرس کرنل کم کنیم  تا در نتیجه مقدار اسلاید KASLR به دست آید.

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



یک دیدگاه

علی رنجبر

باسلام متشکرم