چکیده
محبوبیت فزآینده استفاده از گوشیهای هوشمند اندرویدی باعث جلب توجه به توزیع برنامههای مخرب ساخته شده توسط مهاجمان گردید که لزوم به بکارگیری تکنیکهای پیچیده شناسایی بدافزار را در پی داشت. تکنیکهای مختلفی پیشنهاد شدهاند که در آنها از ویژگیهای ایستا و یا پویای استخراجی از برنامه کاربردی اندروید برای شناسایی بدافزار استفاده میشود. استفاده از یادگیری ماشین با تکنیکهای مختلف شناسایی بدافزار جهت کنترل هزینه های ثابت فرآیند بهروز رسانی دستی متناسب شده است. دسته بندهای یادگیری ماشین در مدلسازی الگوهای بدافزار اندروید که مبتنی بر ویژگی های ایستا و رفتار پویای آنها است، در ابعاد وسیعی مورد استفاده قرار میگیرند.
در این مقاله، یک سیستم شناسایی بدافزار مبتنی بر یادگیری ماشین را برای پلتفرم (سکو) اندروید ارائه کردهایم تا بتوانیم به مسئله شناسایی بدافزار بپردازیم. ما در سیستم پیشنهادی خود از ویژگیهای نمونههای تصادفی جمعآوریشده از برنامههای نیک افزار و بدافزار برای آموزش دسته بندها استفاده کرده ایم. این سیستم، سطوح دسترسیی درخواستی، تماسهای آسیب پذیر رابط برنامه نویسی نرم افزار (API) به همراه وجود اطلاعات مهم برنامه کاربردی نظیر کد پویا، کد انعکاسی، کد اصلی، کد رمزنگاری شده و پایگاه داده های برنامههای کاربردی که در راهکارهای ارائه شده قبلی گم شده بود، را استخراج کرده و از آنها به عنوان ویژگی در دسته بندهای مختلف یادگیری ماشین برای ساخت مدل دسته بندی استفاده میکند. برای اعتبار سنجی عملکرد سیستم پیشنهادی، آزمایشهای مختلف رندروید (RanDroid) انجام شده است که نشان میدهد رندروید قادر است به صحت دسته بندی بالایی به میزان 7/97 درصد دست یابد.
1.مقدمه
گوشی های هوشمند به سرعت به یک پلتفرم محاسبه بسیار رایج تبدیل شدهاند و امروزه به دلیل ویژگی حمل، سهولت استفاده، نوآوری در فناوریهای شبکه (نسل 4 و نسل 5)، پایگاه بزرگ برنامههای کاربردی و ویژگیهای متنوع به انتخابی ایده آل در ابزارهای الکترونیکی بدل میشوند. در سال ۲۰۱۶، نزدیک به 5/1 میلیارد دستگاه گوشی هوشمند به کاربران هدف فروخته شده است و اندروید گوگل با اشغال حدود ۸۲ درصد کل بازار در سال ۲۰۱۶ به پیشتازی خود در بازار سیستم عامل گوشی های هوشمند ادامه میدهد [۱]. اتخاذ و تغییرات سریع صورت گرفته در سیستم عامل اندروید، برنامههای کاربردی و پیادهسازی واقعی به استفاده گسترده منجر شده است، ولی در بسیاری از موارد فاقد محافظت در برابر بدافزار و یا با حفاظت جزئی بوده است. محبوبیت سیستمهای اندروید و نواقص پیادهسازی به دلیل تغییرات سریع از دید نویسندگان بدافزار پنهان نمانده است. بنابر گزارش آواست (Avast)، [2] حملات سایبری به سیستم عامل اندروید از سال ۲۰۱۶ تاکنون سالانه ۴۰ درصد افزایش داشته است. برای متوقفکردن انتشار بدافزار در پلتفرم اندروید، نیاز مبرمی به سیستم و تکنیکهای مؤثر و دقیق شناسایی بدافزار احساس می شود.
6.نتیجهگیری
در این مقاله، سیستم شناسایی بدافزار اندروید ارائه شده است که از سطح دسترسی، رابطهای برنامه نویسی نرم افزار و وجود سایر اطلاعات مهم برنامههای کاربردی نظیر کد پویا، کد انعکاسی، کد اصلی، کد رمزنگاری شده، پایگاه داده و . . . به عنوان ویژگی برای آموزش و ساخت مدل دسته بندی با کمک تکنیکهای یادگیری ماشین مختلف بهره میگیرد. این سیستم قادر است برنامه های کاربردی مخرب (بدافزار) را از نمونه های قانونی به صورت خودکار تشخیص دهد. نتیجه آزمایش حاکی از آن است که سیستم پیشنهادی قادر است بدافزار را به درستی شناسایی کند؛ هم چنین این حقیقت را اثبات میکند که استفاده از اطلاعات مذکور در مجموعه ویژگی به دستیابی به نتایج بهتر کمک میکند.
ما ویژگی های متعددی را در این سیستم ارائه شده از دست دادیم که میتوانست برای تصمیم گیری در مورد مخرب یا بی خطر بودن رفتار هر برنامه کاربردی مشخص سودمند باشد. گیرنده های پخش، مقصود پالوده، تحلیل نمودار جریان کنترل (CFG)، تحلیل دقیق کد اصلی و همین طور تحلیل پویا، موضوعات اصلی درخور توجه برای انجام کارهای پژوهشی آینده هستند که به ما در دستیابی به صحت بهتر کمک میکنند. یکی دیگر از حوزههایی که نیاز است در آینده مورد توجه قرار گیرد، درک عمیق الگوریتم های یادگیری ماشین و مهندسی ویژگی است تا بتوان به کمک آنها یک مدل دسته بندی کارآمد درست کرد.
Abstract
The growing polularity of Android based smartphone attracted the distribution of malicious applications developed by attackers which resulted the need for sophisticated malware detection techniques. Several techniques are proposed which use static and/or dynamic features extracted from android application to detect malware. The use of machine learning is adapted in various malware detection techniques to overcome the mannual updation overhead. Machine learning classifiers are widely used to model Android malware patterns based on their static features and dynamic behaviour. To address the problem of malware detection, in this paper we have proposed a machine learning-based malware detection system for Android platform. Our proposed system utilizes the features of collected random samples of goodware and malware apps to train the classifiers. The system extracts requested permissions, vulnerable API calls along with the existence of app's key information such as; dynamic code, reflection code, native code, cryptographic code and database from applications, which was missing in previous proposed solutions and uses them as features in various machine learning classifiers to build classification model. To validate the performance of proposed system, "RanDroid" various experiments have been carriedout, which show that the RanDroid is capable to achieve a high classification accuracy of 97.7 percent.
I. INTRODUCTION
The smartphone has rapidly become an extremely prevalent computing platform and they are becoming the preferred choice in electronic gadgets due to their portability, ease of use, innovation in network technologies(4G and 5G), large applications base and rich functionalities. Nearly 1.5 billion unit of smartphones had been sold to end users in 2016 and Google’s Android extends its leads in smartphone OS market by occupying approx 82% of total market in 2016 [1]. The swift adoption and changes in the Android operationg system, apps, and real-world implementation have resulted in widespread use with little or no malware protection in many cases. The popularity of Android and implementation flaws due to rapid change has not gone unnoticed by malware authors. Avast reported [2] that cyberattacks against android operationg system are increasing by 40% year-over-year since 2016. To stop the propagation of malware in Android platform there is an urgent need for effective and precise malware detection system and techniques.
VI. CONCLUSION
In this paper, Android malware detection system is proposed which uses permission, APIs, and presence of others key apps information such as, dynamic code, reflection code, native code, cryptographic code, database etc. as features to train and build classification model by using various machine learning techniques which can automatically distinguish malicious Android apps (malware) from legitimate ones. Experiment result shows that the proposed system is able to identify malware in accurate manner. It also verify the fact that the use of mentioned informations in feature set helps to achieve better result.
In the presented system we missed out many features which can be useful for deciding behavior of any given application as malicious or benign. Broadcast receivers, Filtered Intend, Control flow graph (CFG) analysis, deep native code analysis, and dynamic analysis are main topic of concern for future work which will help us to achieve better accuracy. Another area which require focus in future is in-depth understating of machine learning algorithms and feature engineering so that an efficient classification model can be built.
چکیده
1. مقدمه
2. آثار پژوهشی مرتبط
3. بررسی اجمالی سیستم
4. آزمایش
5. ارزیابی و بحث
6. نتیجهگیری
Abstract
1. INTRODUCTION
2. RELATED WORK
3. SYSTEM OVERVIEW
4. EXPERIMENT
5. EVALUATION AND DISCUSSION
REFERENCES