1-1. مقدمه
استفاده از دستگاههای تلفنهمراه هوشمند در سالهای اخیر بطور چشمگیری افزایش پیدا کرده است. کاربران، برخی از فعالیتها را که تاکنون با رایانههای خود انجام میدادند، با تلفنهمراه انجام میدهند. از جنبههای منفی این توسعه سریع میتوان به نبود امنیت کافی، بوجود آمدن راههای جدید سوء استفاده برای نفوذگران و عدم آگاهی کاربران اشاره کرد. کاربران برای انجام کارهای روزمره خود از برنامههای زیادی استفاده میکنند و از طرفی برنامهها به اطلاعات کاربران دسترسی دارند و ممکن است برخی از این اطلاعات مانند اطلاعات کارت اعتباری، خصوصی، محرمانه و حساس باشند.
اندروید یکی از محبوبترین سیستمهایعامل برای تلفنهایهمراه هوشمند است و همچنان تعداد کاربران این سیستمعامل در حال افزایش است، بطوری که تا سال 2017 دارای 2 میلیارد دستگاه فعال بوده است. از طرفی، اندروید بعلت دارا بودن بازارهای برنامه مناسب، متنباز بودن و رابطهای برنامهنویسی کاربردی گسترده، یک سکوی محبوب برای توسعهدهندگان برنامههای تلفنهمراه است. محبوبیت اندروید در میان توسعهدهندگان برنامه و کاربران سبب جذب توسعهدهندگان بدافزار به سمت خود شده است و همین امر باعث افزایش گسترده بدافزارهای اندرویدی در سالهای 2017-2010 شده است. براساس گزارش موسسه گارتنر، 75 درصد برنامههای کاربردی تلفنهمراه در سال 2015، نمیتوانند تستهای امنیتی اولیه را با موفقیت بگذرانند.
1-2. بیان مسئله
برنامههای اندرویدی که از فروشگاه برنامههای تلفنهمراه دانلود میشود، ممکن است خواسته یا ناخواسته اطلاعات محرمانه کاربران را انتشار دهند. یک راه عملی برای جلوگیری از انتشار اطلاعات، تحلیل برنامهها جهت شناسایی هرگونه نشت اطلاعات است. راهحلهای امنیتی اندروید مثل تحلیل بدافزارها و تکنیکهای شناسایی به سه دسته تقسیم میشوند: 1) ایستا، 2) پویا و 3) ترکیبی. در روش تحلیل امنیتی ایستا، کد منبع و یا زبان ماشین بدون اینکه اجرا شوند مورد تحلیل قرار میگیرند، در روش تحلیل پویا ، برنامه اجرا شده و رفتار آن مورد تحلیل قرار میگیرد. در برخی موارد بهتر است، روش ترکیبی که از ترکیب روشهای تحلیل امنیتی ایستا و پویا برای شناسایی رفتارهای مخرب برنامههای اندروید استفاده میکند، بهکار گرفته شود. در این پژوهش، چارچوبی ارائه میشود که با ترکیب روشهای تحلیل امنیتی ایستا و یادگیری ماشین، برنامههای مخرب و بدافزار اندرویدی شناسایی میشود و آسیبپذیریهای امنیتی سایر برنامهها نیز گزارش میشود.
1-3. اهداف پژوهش
روشهای موجود برای ارزیابی امنیتی برنامههای اندروید مورد مطالعه قرار گرفت و راهکارهای افزایش دقت تحلیل برنامههای اندروید ارزیابی شد، تا چارچوبی جهت تحلیل امنیتی برنامههای اندروید مبتنی بر جاوا با بهکارگیری روشهای یادگیری ماشین و تحلیل مبتنی بر گواهی محتوایی که خود نوعی تحلیل امنیتی ایستا است، ارائه شود. همچنین روشهایی را بررسی کردیم که بار محاسباتی سمت فروشگاه برنامههای تلفنهمراه را کاهش دهد به این صورت که عمدهی پردازشها در سمت توسعهدهنده انجام شود و علاوه بر ارائه چارچوب تحلیل برنامههای اندروید با دقت بالاتر، امکان تشخیص آسیبپذیریهای امنیتی برنامههای اندروید و رفع تهدید مربوط به برنامههای یک توسعهدهنده یکسان نیز به چارچوب اضافه شد.
1-4. پرسشهای پژوهش
- آیا میتوان گواهی امنیتی مبتنی بر محتوای برنامههای کاربردی اندروید ایجاد نمود؟
- آیا میتوان با بهکارگیری روشهای یادگیریماشین، امکان شناسایی برنامههای مخرب ناشناخته را به چارچوب اضافه کرد؟
- آیا جهت هوشمندسازی تحلیل امنیتی، استفاده ترکیبی از روشهای یادگیریماشین و روشهای تحلیل امنیتی ایستا میتواند به افزایش دقت تشخیص برنامههای مخرب اندرویدی کمک کند؟
- چگونه میتوان با کمک برنامهنویسان تلفنهمراه جلوی سوء استفاده کنندگان از برنامههای تلفنهمراه را گرفت؟
- آیا میتوان جلوی تبانی برنامههای یک توسعهدهنده را گرفت؟
1-5. اهمیت و ضرورت پژوهش
روشهای متفاوتی برای تحلیل برنامههای اندروید ارائه شده است. با این وجود، همچنان برخی از این روشها دارای نقاط ضعف میباشند. ارائه روشی که بتواند با در نظر گرفتن این محدودیتها و تهدیدات جدید، به بهبود قدرت تشخیص برنامههای مخرب اندرویدی کمک کند، ضروی است. از طرفی در کشور ما کاربرد دستگاههای تلفنهمراه هوشمند و برنامههای تلفنهمراه روز به روز بیشتر افزایش مییابد. به همین خاطر تحلیل امنیتی برنامههای اندروید قبل از بارگذاری در فروشگاه برنامههای تلفنهمراه و استفاده توسط کاربران ضروری به نظر میرسد. از دیگر ضروریتها، کشف آسیبپذیریهای امنیتی برنامه در کنار تشخیص مخرب یا بی خطر بودن برنامه است. همچنین از آنجایی که برخی از روشهای موجود برای ارزیابی امنیتی برنامههای اندروید در برابر برنامههای مخرب ناشناخته مقاوم نیستند، استفاده ترکیبی از روشهای تحلیل امنیتی ایستا و یادگیری ماشین به منظور شناسایی برنامههای مخرب ناشناخته، ضروری میباشد. از دیگر ضرورتهای این روش پیشنهادی در معرفی یک روش جدید تحلیل برنامههای اندروید میباشد که سعی در به حداقل رساندن بار محاسباتی در سمت فروشگاه برنامههای تلفنهمراه و در عوض انتقال بار محاسباتی به سمت توسعهدهنده و همچنین به حداکثر رساندن دقت در تحلیل میباشد. دیگر ضرورت این روش پیشنهادی، ایجاد دانش بومی و زمینهسازی تولید ابزارهای تحلیل امنیتی برنامههای تلفنهمراه میباشد.
1-6. نوآوری پژوهش
پژوهشهای بسیاری در دنیا بر روی ارزیابی امنیتی برنامههای اندروید انجام شده است. روشهای تحلیل برنامههای اندروید رایج تا حدودی خطرات مربوط به بدافزارهای اندرویدی را برطرف کرده است. در این پژوهش، با بهکارگیری روش تحلیل مبتنی بر گواهی محتوایی، دقت تحلیل افزایش و بار محاسباتی سمت فروشگاههای برنامههای تلفنهمراه کاهش پیدا کرد و همچنین امکان تشخیص آسیبپذیریهای امنیتی برنامه نیز به روش اضافه شد.
نوآوری این پژوهش از شش منظر بوده:
- اول، استفاده از روش تحلیل مبتنی بر گواهی محتوایی که خود نوعی تحلیل امنیتی ایستا است و تولید گواهی محتوایی برای برنامه در سمت توسعهدهنده که باعث کاهش بار محاسباتی در سمت فروشگاه برنامههای تلفنهمراه میشود.
- دوم، استفاده از تمامی رابطهای برنامهنویسی کاربردی فراخوانی شده مرتبط، فیلترهای هدف و مجوزهای مجموعهداده برنامههای مخرب AMD [1] و بیخطر Play Store [2] در تولید بردار ویژگی که باعث افزایش دقت تشخیص برنامههای مخرب اندروید میشود.
- سوم، افزودن امکان ارزیابی امنیتی برنامههای یک توسعهدهنده در کنار یکدیگر، به این خاطر که برنامههای یک توسعهدهنده میتوانند برخی از تواناییها و مجوزهایشان را بین یکدیگر به اشتراک بگذارند.
- چهارم، تشخیص مجوزهای تعریف شده بیش از نیاز در برنامهها که حذف این مجوزهای اضافی بدون اثر سوء در کارکرد برنامه، باعث کاهش سطح حملات یک برنامه میشود.
- پنجم، افزودن امکان انجام ارزیابی امنیتی بر روی برنامههای اندروید و کشف آسیبپذیریهای امنیتی برنامهها، به این صورت که چارچوب پیشنهادی علاوه بر امکان تشخیص برنامههای مخرب، امکان کشف آسیبپذیریهای امنیتی برنامهها را نیز دارا میباشد.
- ششم، پیادهسازی عملیاتی چارچوب پیشنهادی با استفاده از زبان برنامهنویسی پایتون، به این صورت که ویژگیهای کلیدی برنامههای مجموعهداده برنامههای مخرب AMD [1] و بیخطر Play Store [2] با استفاده از اسکریپت پیادهسازی شده با زبان برنامهنویسی پایتون استخراج میشود و یک فایل بردار ویژگی دودویی از برنامههای مجموعهداده جهت استفاده در ابزار WEKA [6] بهمنظور ایجاد مدل دستهبندی برای تخشیص برنامههای مخرب، تولید میشود و همچنین اسکریپتی جهت تشخیص آسیبپذیریهای امنیتی برنامههای اندروید نیز پیادهسازی میشود.
1-7. مروری بر فصلهای آتی
در فصل دوم، ابتدا ساختار برنامهها و سیستمعامل اندروید معرفی میشود، سپس بدافزارهای اندرویدی و انواع روشهای تحلیل برنامههای اندروید ارائه میگردد و در پایان روشهای یادگیریماشین معرفی میشود. در فصل سوم به مرور برخی مقالات در سه حوزه تحلیل امنیتی ایستا، تحلیل امنیتی پویا و تحلیل ترکیبی پرداخته میشود. در فصل چهارم چارچوب پیشنهادی در دو بخش تشخیص برنامههای مخرب اندروید و تحلیل آسیبپذیریهای امنیتی برنامههای اندروید ارائه میگردد. سپس در فصل پنجم به ارزیابی و تحلیل چارچوب پیشنهادی پرداخته و در نهایت در فصل ششم نتیجهگیری و پیشنهادها ارائه خواهد شد.
