Loading...
Information-flow Analysis in Android Apps for Protecting User Privacy
Barkhordari, Alireza | 2016
753
Viewed
- Type of Document: M.Sc. Thesis
- Language: Farsi
- Document No: 48790 (19)
- University: Sharif University of Technology
- Department: Computer Engineering
- Advisor(s): Amini, Morteza
- Abstract:
- The rapid growth of Android operating system alongside its open-source nature has made it as the most popular operating system of mobile devices. On the other hand, regarding the increasing computational power of mobile devices, a wide variety of applications are coming to this type of devices. Meanwhile unfortunately many malicious softwares trying to keep up with other applications, are targeting this popular operating system. Therefore with regard to the fact that this type of devices usually store private and sensitive information of their users, security of mobile operating systems is considered very important. Having this matter in mind, the goal of this research work has been dedicated to identifying information-flows in Android applications. Currently in the area of information-flow analysis of Android applications, there is a pernicious gap which pertains to taking into account the information-flows of native parts. In this research, using a path-sensitive approach with focus on information-flow analysis of native parts, it has been attempted to bridge this gap. To accomplish this purpose, by having translated assembly code of native parts into an anstract model consisting of REIL instructions and their repective SMT problem, it has been tried to indentify flow points. In addition, in order to track sensitive data, a simple taint tracking appraoch on REIL instructions has been adopted. In this document, after surveying the background, the proposed approach is investigated and subsequently considerations on evaluating it are discussed. Evaluation results show that the proposed appraoch is able to identify explicit flows inside native parts of Android applications, with high level of precision and inference. At the end, some of notable achievements and shortcomings of the proposed appraoch are enumerated
- Keywords:
- Static Analysis ; Android Operating System ; Information Flow ; Privacy Preserving ; Android Security
-
محتواي کتاب
- view
- 1 سرآغاز
- 1.1 اهمیت دستگاههای موبایل
- 1.2 نشت اطلاعات خصوصی و اهمیت آن
- 1.3 راهکار پیشنهادی برای شناسایی جریانهای اطلاعات
- 1.4 نگاهی به فصلهای پیش رو
- 2 مفاهیم پایه
- 2.1 نگاهی به سیستمعامل اندروید
- 2.1.1 ویژگیها
- 2.1.2 معماری پردازنده
- 2.2 ساختار برنامههای اندروید
- 2.2.1 دیدگاه یک: ماهیت کدها
- 2.2.2 دیدگاه دو: ماهیت مؤلفهها
- 2.3 زبان میانی مهندسی معکوس
- 2.3.1 معرفی زبان میانی مهندسی معکوس
- 2.3.2 دستورالعملهای زبان میانی مهندسی معکوس
- 2.3.3 معماری زبان میانی مهندسی معکوس
- 2.4 نگاهی به معماری آرم
- 2.4.1 معرفی معماری آرم
- 2.4.2 ثباتها و پرچمهای حالت کاربر
- 2.4.3 ساختار پشته
- 2.4.4 آداب فراخوانی توابع
- 2.5 مساله اسامتی
- 2.5.1 معرفی اسامتی
- 2.5.2 مدلسازی برنامه در قالب اسامتی
- 2.5.3 گسترههای مختلف مسایل اسامتی
- 2.5.4 حلکنندههای مسایل اسامتی
- 2.1 نگاهی به سیستمعامل اندروید
- 3 جریانهای اطلاعات
- 3.1 تعریف
- 3.2 مفاهیم پایه
- 3.3 راهکارهایی برای کشف جریانهای اطلاعات
- 3.4 جریانهای اطلاعات در اندروید
- 3.4.1 تحلیل جریان اطلاعات درون مؤلفهای
- 3.4.2 تحلیل جریان اطلاعات بین مؤلفهای
- 3.5 پژوهشهای انجام گرفته مرتبط
- 3.5.1 روشهای مبتنی بر تحلیل پویا
- 3.5.2 روشهای مبتنی بر تحلیل ایستا
- 4 روش پیشنهادی برای کشف جریانهای اطلاعات
- 4.1 هدف
- 4.1.1 روند کار ماژول پیشنهادی
- 4.2 ساختار فایلهای اجرایی بومی
- 4.3 نقاط جریان
- 4.4 مدل انتزاعی برنامه
- 4.4.1 گراف جریان کنترل
- 4.4.2 مدلسازی اسامتی
- 4.5 پیمایش گراف جریان کنترل
- 4.5.1 هرس کردن مسیرهای امکان ناپذیر
- 4.5.2 الگوریتم پیمایش مسیرها
- 4.6 شناسایی نقاط جریان
- 4.6.1 نقاط جریان مربوط به پارامترهای ورودی و خروجی
- 4.6.2 نقاط جریان مربوط به اشیاء و کلاسهای جاوا
- 4.6.3 نقاط جریان مربوط به کتابخانه بایونیک
- 4.7 ردیابی جریانها
- 4.7.1 ردیابی در سطح ثباتها
- 4.7.2 ردیابی در سطح حافظه
- 4.8 گزارش جریانهای غیرمجاز
- 4.1 هدف
- 5 ارزیابی روش پیشنهادی
- 5.1 پیادهسازی
- 5.1.1 معماری پیادهسازی
- 5.2 مقیاسپذیری برای برنامههای واقعی
- 5.3 ارزیابی در جهت تشخیص جریانها
- 5.3.1 دقت روش پیشنهادی
- 5.3.2 آزمونهای موردی روش پیشنهادی
- 5.4 دستاوردها
- 5.5 کاستیها
- 5.6 مقایسه با پژوهشهای مرتبط
- 5.1 پیادهسازی
- 6 جمعبندی و کارهای پیش رو
- 6.1 دستاوردها و کاستیها
- 6.2 کارهای پیش رو
- منابع و مراجع
- واژهنامهی فارسی به انگلیسی
- واژهنامهی انگلیسی به فارسی