کمیته رکن چهارم – سیستم عامل اندروید دارای یک حافظه بیرونی به نام “External Storage” است که در صورت اتمام فضای حافظه داخلی، برنامه ها را در آن ذخیره می کند. برنامه های مخرب هم ممکن است از این موضوع سوءاستفاده کرده و مخاطراتی را برای کاربران به وجود آورند.
از آنجا که در سال های اخیر شاهد وقوع انواع مختلف نفوذهای امنیتی در سیستم عامل اندروید بوده ایم، پس چنین به نظر می رسد که این سیستم عامل دارای نقص های امنیتی متفاوتی است که می تواند کاربران و توسعه دهندگان را در معرض حمله های سایبری جدید و مبتکرانه قرار دهد.
در چند ماه گذشته نیز محققان امنیتی حملاتی موسوم به Man-In-The-Disk یا MITD را شناسایی کرده اند که با تزریق کدهای مخرب در برنامه های کاربردی موجود در حافظه بیرونی، پیامدهای فاجعه باری را برای کاربران اندروید رقم زده اند. حمله MITD شباهت بسیار زیادی به حملات Man-In-The-Middle یا MITM دارند. در هر دو این حملات، نفوذگر مابین فرستنده و گیرنده معتبر قرار گرفته و اقدام به شنود و دستکاری داده ها می کند. در حملات MITM، هکر توانایی برقراری ارتباط مستقیم با قربانی را از طریق شنود هم دارد.
بر اساس نتایج منتشر شده توسط محققان امنیت سایبری، برنامه های کاربردی بسیار زیادی وجود دارند که در برابر حمله های MITD آسیب پذیر هستند. این حملات از آنجا که قدرت ایجاد آسیب های جدی در سیستم عامل های اندرویدی را دارند نیازمند توجه بیشتری می باشند.
حمله MITD چیست؟
حمله MITD در واقع نوعی از حملات MITM است. در حمله MITM ارتباطات بین دو نقطه انتهایی شنود شده و گاهی نیز عملیات تغییر ترافیک عبوری مابین آنها صورت می گیرد. حملات MITD توانایی انجام همین کار را البته در مقیاس کوچکتر دارند. به عبارت دیگر، این حمله شامل تفسیر و تغییر داده هایی است که بین حافظه بیرونی اندروید و برنامه کاربردی ذخیره شده در حافظه بیرونی این سیستم عامل مبادله می شوند.
به منظور آشنایی با روش کار حملات MITD ابتدا باید با نحوه عملکرد حافظه های داخلی و بیرونی سیستم عامل اندروید آشنا شوید. حافظه داخلی در سیستم عامل اندروید، حالت Sandbox یا جعبه شنی دارد. یعنی این که از برنامه های کاربردی و سایر فرایندهای این سیستم عامل مجزا است و امکان دسترسی یا تغییر این حافظه توسط آنها وجود ندارد.
اما حافظه بیرونی بین تمام برنامه های کاربردی که بر روی سیستم عامل اندروید نصب شده اند، به اشتراک گذاشته می شود. در واقع فضای حافظه خارجی مکانی برای بارگذاری دانلودها، ذخیره عکس ها، فایل ها و رسانه هایی است که تنها به یک برنامه کاربردی خاص متعلق نیستند. بنابراین تمام برنامه های کاربری به آنها دسترسی دارند.
نکته مهمی که وجود دارد این است که برنامه های کاربردی، اختیار ذخیره داده هایی که با سایر برنامه های کاربردی دیگر به اشتراک گذاشته نشده اند را در حافظه بیرونی دارند. از آن جا که فضای حافظه داخلی محدود است، پس برنامه های کاربردی که دارای داده های بزرگی هستند به منظور ذخیره فایل های اضافی، به روز رسانی ها و … نیازمند استفاده از حافظه بیرونی می باشند. به همین خاطر درخواست استفاده از حافظه بیرونی توسط برنامههای کاربردی در سیستم عامل اندروید کاری متداول است و مشکل نیز از هین جا شروع می شود.
بر اساس یافته های محققان، یک برنامه مخرب توانایی خواندن داده های برنامه های کاربردی در حافظه بیرونی را داشته و همچنین می تواند اطلاعاتی را که از این حافظه به یک برنامه کاربردی ارسال می شود را تغییر دهد. همچنین برنامه های کاربردی مخرب می توانند با اجرای اکسپویلت ها یا همان کدهای مخرب، داده های شخصی کاربران را سرقت کرده یا با نصب برنامه های کاربردی مخرب بر روی حافظه داخلی، عملکرد برنامه های عادی را متوقف نموده و با تغییر کدها و تزریق کدهای مخرب جدید، سطح دسترسی خودشان به حافظه داخلی را افزایش دهند.
چرا حملههای MITD خطرناک هستند؟
با توجه به این که بیشتر برنامه های کاربردی درخواست دسترسی به حافظه بیرونی را دارند، نحوه انجام حملات MITD و میزان دسترسی آنها به حافظه بیرونی، نگرانی های زیادی را ایجاد کرده است. به دلیل این که درخواست دسترسی به حافظه بیرونی توسط برنامه های کاربردی یک کار متدوال است، زمانی که یک برنامه مخرب درخواست دسترسی به حافظه بیرونی را دارد شک چندانی ایجاد نمی شود.
همچنین با توجه به این که معمولاً چنانچه کاربران به درخواست های یک برنامه کاربردی مشکوک باشند آنها را نادیده می گیرند، بنابراین هنگامی که کاربر گزینه Allow را فعال می کند، در واقع مجوز مشاهده محتوای حافظه بیرونی و تغییر آن و نیز نصب سایر برنامه های کاربردی مخرب توسط آن برنامه مخرب را صادر کرده است.
چه افرادی تحت تأثیر حملات MITD هستند؟
در حالت کلی، کاربران و توسعه دهندگان برنامه های کاربردی اندرویدی در معرض خطر حملات MITD می باشند. از آن جا که این حملات فقط مخصوص سیستم عامل اندروید و حافظه بیرونی آن هستند پس اگر شما دستگاهی اندرویدی ندارید، برنامه کاربردی برای اندروید طراحی نمی کنید یا در محل کارتان از محصولاتی که سیستم عامل آنها اندروید است، استفاده ای نمی کنید، پس نیازی نیست که درباره حملات MITD نگران باشید. با این وجود، همواره توجه داشته باشید بدافزارهای مشابهی هستند که تلاش می کنند تا به نواحی از سیستم عامل که برای آنها مجاز نیست، دسترسی پیدا کنند؛ بدافزارهایی که شاید حملات آنها از نوع MITD هم نباشد.
محافظت از برنامه های کاربردی در برابر حملات MITD
حافظه بیرونی یکی از اجزای مهم در سیستم عامل اندروید محسوب می شود که امکان حذف آن وجود ندارد. بنابراین متوقف کردن حملات MITD آن هم به صورت کامل، امری غیرممکن است. به همین دلیل توسعه دهندگان برنامه های کاربردی اندروید باید از روش های امنی برای استفاده از حافظه بیرونی بهره بگیرند به نحوی که امکان استخراج اطلاعات، دستکاری برنامه ها و همچنین بارگذاری بدافزار بر روی آنها وجود نداشته باشد.
شرکت گوگل توصیه هایی را به کاربران به منظور پیشگیری از وقوع حملات MITD مطرح کرده است که عبارتند از:
- با توجه به قابلیت خواندن و نوشتن بر روی فایل های ذخیره شده در حافظه بیرونی مثل کارت های حافظه SD و این که کاربران امکان دسترسی به حافظه بیرونی و تغییر داده های آن را دارند، پس به آنها توصیه می شود اطلاعات حساس را بر روی این حافظه ذخیره نکنند.
- همان گونه که برای استفاده از داده های یک منبع غیرقابل اعتماد، اعتبارسنجی های لازم را انجام می دهید برای کار با داده های حافظه بیرونی نیز اعتبارسنجی ورودی را انجام دهید.
- هرگز فایلهای اجرایی را قبل از بارگذاری، بر روی حافظه بیرونی ذخیره نکنید.
- اگر قصد بازیابی فایل های اجرایی از حافظه بیرونی را دارید، ابتدا آنها را با روش های رمزنگاری اعتبارسنجی کنید.
همچنین توصیههایی نیز برای محافظت از دادههای ذخیره شده در حافظه داخلی مطرح شدهاند که شامل موارد زیر هستند:
- از فعال کردن گزینه های MODE_WORLD_WRITEABLE یا MODE_WORLD_READABLE خودداری کنید، چون در این حالتها امکان محدودیت در دسترسی به دادهها یا کنترل آنها وجود ندارد.
- فایل های محلی را با استفاده از کلیدی که در دسترس برنامه های کاربردی قرار ندارد، رمزنگاری کنید. به عنوان مثال، کلید را در KeyStore قرار دهید و آن را با کلمه عبور کاربر که بر روی دستگاه ذخیره نشده است، محافظت کنید.
- به منظور ایجاد امکان مجوز خواندن یا نوشتن توسط برنامههای کاربردی بر روی حافظه داخلی، برای هر کدام از آنها به صورت مجزا از یک سیستم ارایه محتوا استفاده کنید.
لازم به ذکر است بسیاری از آسیب پذیری های ناشی از حملات MITD به دلیل برنامه نویسی های غیرحرفه ای به وجود می آیند. معمولاً توسعه دهندگان به جای تلاش برای طراحی برنامه های کاربردی امن، داده های حساس را در حافظه بیرونی قرار داده و همچنین امکان بارگذاری داده های تأیید نشده در برنامه های کاربردی خودشان را فراهم می کنند.
توسعه دهندگان همواره باید به خاطر داشته باشند که استفاده از روش های امن برای کدنویسی، تأثیر چشمگیری در محافظت از امنیت کاربران، قابلیت اعتماد برنامه های کاربردی و همچنین شهرت و اعتبار برنامه نویسان دارد. همچنین از آنجا که طراحی مجدد سیستم عامل اندروید توسط شرکت گوگل بعید است، پس حفظ امنیت این برنامه ها کماکان بر عهده کاربران می باشد.
محافظت از کاربران در برابر حملات MITD
همان طور که در بالا به آن اشاره شد، با توجه به امکان دستکاری برنامه های کاربردی توسط حملات MITD از طریق دانلودهای آلوده و مخرب، پس امنیت کاربران نیز که در گرو برنامه های کاربردی می باشد، با خطر مواجه است.
بر اساس تحقیق های انجام شده، هکرها پس از حمله به برنامه های کاربردی و از کار انداختن سازوکارهای دفاعی آنها کدهای مخرب را تزریق کرده و به این ترتیب برنامه را تحت اختیار خود می گیرند تا در نهایت بتوانند به سایر بخش های دستگاه از جمله دوربین، میکروفون، لیست مخاطبان و … دسترسی یابند.
کاربران سیستم عامل اندروید برای حفاظت از دستگاه های مورد استفاده خود باید اصول امنیتی که برخی از آنها به شرح زیر است را رعایت کنند:
- نصب یک برنامه کاربردی مخصوص برای مقابله با بدافزار و همچنین به روز نگهداشتن آن
- عدم دانلود برنامه های کاربردی از منابعی به جز Google Play. هر چند بدافزارها در فروشگاه Google Play نیز وجود دارند اما برنامه هایی که از سایر فروشگاه ها دانلود می شوند فاقد سازوکارهای امنیتی که توسط گوگل در نظر گرفته شده اند، هستند. بنابراین احتمال دانلود برنامه های کاربردی مخرب از این منابع بیشتر است.
- مطالعه و توجه به نظرهای سایر کاربران، پیش از دانلود یک برنامه کاربردی. نظرهای منفی، کم بودن تعداد نظرها یا درج نظرهای تکراری می تواند به عنوان هشدار جدی در نظر گرفته شود.
- در بخش توضیحات برنامه کاربردی مورد نظر، با مراجعه به قسمت Read More و پیدا کردن بخش App Permission مجوزهای مورد درخواست آن برنامه را بررسی کنید. اگر به مورد غیرطبیعی و مشکوکی برخورد کردید (به عنوان مثال وقتی برنامه چراغ قوه مجوز دسترسی به حافظه بیرونی را درخواست می کند) به هیچ وجه آن برنامه را نصب نکرده و به دنبال یک برنامه کاربردی جایگزین باشید.
اگر چه توسعه دهندگان در خط مقدم محافظت از حریم خصوصی کاربران هستند اما خود افراد نیز فاقد مسئولیت در این زمینه نیستند. کاربران تنها با رعایت اصول امنیتی و پیروی از روش های توصیه شده توسط کارشناسان امنیتی می توانند از دستگاه های خود در مقابل آلوده شدن توسط بدافزارها مقابله کنند.
منبع: techrepublic