اطلاعات موبایل شما در دستان توسعه دهندگان؛ بررسی انواع مجوزهای دسترسی اپلیکیشن در هنگام نصب
در مقالات قبلی در حوزه امنیت برنامه های موبایلی، بیشتر موضوع امنیت موبایل را از منظر کسب و کارها، توسعه دهندگان و برنامه نویسان اپلیکیشن های موبایلی و چگونگی ایمن سازی این برنامه ها بررسی کردیم. در این خصوص مقالات ده آسیب پذیری خطرناک اپلیکیشن های موبایل منتشر شده از سوی بنیاد OWASP، بررسی آسیب پذیری های برنامه های موبایلی پرداخت و بانکی و همچنین معرفی ابزارهای ایمن سازی برنامه های موبایل نظیر Proguard و Dexguard در بستر اندروید و ابزار iXguard در بستر iOS موجود هستند. در این مطلب قصد داریم با بهره گیری از مطلب منتشر شده توسط مرکز ماهر به یکی از موضوعات مهم و محوری امنیت موبایلی از منظر کاربری بپردازیم. تعداد کاربرانی که هنگام نصب نرم افزارها و اپلیکیشن های موبایلی, مجوزهای دسترسی مورد درخواست از سوی برنامه را مطالعه میکنند انگشتشمار هستند و بیشتر افراد برخوردی عادی و بیتفاوت به این مجوزها دارند. حال آنکه ممکن است برخی برنامهها دسترسیهایی را درخواست کنند که اصلا به آنها نیاز نداشته باشند. در این مقاله به بررسی این مجوزها و پیامدهای بی توجهی به آنها میپردازیم.
تقسیم بندی دسترسی ها
در ابتدا باید عنوان کرد که مجوزهای اندروید یک درخواست نیستند بلکه یک اعلان یا اطلاعرسانی را به کاربران اعلام میدارند. هنگامیکه یک برنامه کاربردی را از Play Store دریافت و نصب میکنیم یک پنجره پاپ آپ ظاهر میشود که تمام مجوزهای درخواستی برنامه کاربردی موردنظر را به نمایش میگذارد که این مجوزها میتوانند دسترسی به حافظه گوشی موردنظر، تماسهای تلفنی، ارتباطات شبکه و غیره را داشته باشند.
در این خصوص تنها 235 مجوز انحصاری و خاص وجود دارد که بیشتر برنامههای کاربردی مجوزهای زیادی را طلب میکنند. بهطور ویژه مجوزهایی که نسبت به سایر مجوزها شایعتر هستند به دو دسته تقسیم میشوند:
1- مجوزهایی که به برنامه کاربردی این اجازه را میدهند تا به اطلاعات کاربر دسترسی داشته باشند.
2- مجوزهایی که به برنامه کاربردی اجازه میدهند تا بهصورت مستقیم با دستگاه تعامل داشته باشند.
از 235 مجوز انحصاری جمعآوریشده ، 165 نوع از آنها به برنامه کاربردی اجازه میدهند تا با اجزای سختافزاری یک دستگاه تعامل داشته باشند و به برنامه اجازه دسترسی دیگری ازجمله اطلاعات کاربر را نخواهد داد.
بهعنوان مثال دو نمونه از عمومیترین مجوزها به برنامه کاربردی اجازه اتصال به اینترنت را میدهند. مجوز “دسترسی کامل به شبکه” (که توسط 83% برنامههای کاربردی مورداستفاده قرار میگیرند.) به برنامه کاربردی این اجازه را میدهد تا با هر شبکهای که دستگاه به آن متصل است ارتباط برقرار نماید. درحالیکه مجوز “مشاهده ارتباطات شبکه” (که توسط 69% برنامههای کاربردی مورداستفاده قرار میگیرند.) به برنامه کاربردی این اجازه را میدهد تا هر شبکهای که دستگاه به آن دسترسی دارد را ببیند. هر برنامه کاربردی که درخواست دسترسی به اینترنت را داشته باشد، بهمنظور افزایش قابلیتهای خود ممکن است به هردو مجوز “اطلاعات کاربر” و “مجوز سختافزار” نیاز داشته باشد. درحالیکه این دو مجوز بهشدت فراگیر هستند اما اجازه دسترسی مستقیم به اطلاعات کاربر را به برنامه کاربردی نمیدهند.
نمونههایی از کارکردهای این دست از مجوزها
کنترل چراغقوه – این مجوز به برنامه کاربردی این اجازه را میدهد تا با چراغ(فلش) موجود در گوشی هوشمند و یا رایانک مالشی تعامل داشته باشد. عموماً این چراغ مربوط به دوربین عکاسی است اما یک برنامه کاربردی توانایی استفاده از چراغ دوربین با قابلیت روشن و یا خاموش نگاهداشتن ممتد برای ایجاد یک “چراغقوه” را خواهد داشت.
تنظیمات تصاویر زمینه – این مجوز به یک برنامه کاربردی این اجازه را خواهد داد تا یک تصویر را در پسزمینه صفحهنمایش خانگی یک دستگاه تنظیم نماید (معمولاً در دستگاههای مبتنی بر سیستمعامل اندروید آن را “تصویر زمینه” نیز مینامند).
کنترل لرزاننده – این مجوز به یک برنامه کاربردی اجازه کنترل لرزاننده که در بیشتر گوشیهای هوشمند وجود دارند را خواهد داد.
این نوع از مجوزها خیلی هم ساده و سطحی نیستند. اگر از این نوع از مجوزها بهدرستی استفاده نشوند (و یا بهصورت مخرب استفاده شوند) یک برنامه کاربردی با یکی از این مجوزها میتواند بهصورت بالقوه برای دستگاه کاربر خرابی و تهدید ایجاد نماید.
نمونههایی از این نوع مجوزها میتواند مجوزهایی باشند که به برنامه کاربردی اجازه میدهند تا تصاویر موجود در کتابخانه تصاویر کاربر را تغییر و یا حذف نماید. نمونه دیگر از این نوع مجوزها میتواند خواندن لیست مخاطبان کاربر نیز باشد.
اگر بخواهیم بهصورت موردی بررسی کنیم، مجوزی مثل مشاهده ارتباطات بیسیم ممکن است اطلاعات بسیار کمی را برای برنامه کاربردی افشا نماید اما یک برنامه کاربردی میتواند شبکههای بیسیم در دسترس را مشاهده نموده و اطلاعاتپایه در مورد آنها را جمعآوری نماید. در مورد نوع اطلاعات جمعآوریشده و منظور و هدف جمعآوری این دست از اطلاعات باید مشخص نمود که برنامه موردنظر به چه منظوری و با چه نیتی این اطلاعات را جمعآوری نموده است تا مشخص شود چه نوع اطلاعاتی ازنظر کاربر حساس و ضروری هستند؛ بنابراین هرگونه اطلاعات از کاربر میتواند بهصورت بالقوه حساس باشد و مورد تحلیل قرار گیرد.
5 مجوزی که باید نسبت به آنها محتاطتر باشید
تعداد اندکی از مجوزها هستند که باید در خصوص آنها احتیاط لازم را مبذول نمایید. البته نه به خاطر اینکه این نوع از مجوزها خطرناک هستند، بلکه به این دلیل که تفویض این نوع مجوزها ممکن است پیامدهای وسیعی را برای کاربر به همراه خواهد داشت، البته این پیامد زمانی حاصل خواهد شد که دادههای کاربر در دست شخص نادرستی قرار گیرند.
1- موقعیت مکانی
دو نمونه از مجوزهای موقعیت مکانی وجود دارند که برنامههای کاربردی اندرویدی به آن نیازمند هستند.
- موقعیت مکانی تقریبی (مبتنی بر شبکه)
- موقعیت مکانی دقیق مبتنی بر (GPS) و شبکه

سؤالی که وجود دارد این است که برنامه کاربردی برای چه منظوری نیازمند موقعیت مکانی دقیق شما است؟ بهعنوانمثال برنامه کاربردی موقعیتیاب Waze برای اجرا نیازمند چنین اطلاعاتی خواهد بود. مهمتر اینکه برخی از برنامههای کاربردی هدفشان ارسال آگهیهای بازرگانی بر اساس موقعیت مکانی کاربران است که این دست از برنامهها نیز خواهان دسترسی به اطلاعات مکانی کاربر خواهند بود. البته این دست از برنامههای کاربردی عموماً رایگان هستند که در زمان اجرا آگهیهای بازرگانی را نیز بر اساس موقعیت مکانی کاربر به نمایش میگذارند.
2- وضعیت گوشی و هویت آن
این نوع مجوز مشکلساز خواهد بود زیرا تمامی اطلاعات مربوط به نیازمندیهای یک تماس ورودی به گوشی همراه ازجمله شماره IMEI دستگاه موردنظر را به برنامه کاربردی خواهد داد.

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

این نوع از مجوزهایی که برنامه کاربردی نیازمند دسترسی به خواندن و تنظیم مخاطبان کاربر هستند میتواند مشکلساز شود، درواقع مجوز تنظیم مخاطبان زمانی خطرناک خواهد بود که برنامه کاربردی مجوز خواندن تمامی اطلاعات موجود روی گوشی شما را دریافت نماید.
برنامههای کاربردی مدیریت SMS، برنامههای کاربردی مدیریت مخاطبان، برنامه کاربردی که جایگزین شمارهگیر گوشی میشوند و حتی برخی از برنامههای کاربردی اجتماعی نیز نیازمند چنین مجوزهایی خواهند بود ولی نکتهای که وجود دارد این است که برنامههای کاربردی که جنبههای اجتماعی ندارند لزومی به تفویض چنین مجوزهایی را نخواهند داشت.
4- مجوزهای مربوط به SMS و MMS

این نوع از مجوزها میتوانند بهصورت بالقوه هزینههایی را برای کاربر ایجاد نمایند، اگر برنامه کاربردی مخربی ازاینگونه مجوزها استفاده کند هزینههایی را بهوسیله SMS های قانونی و یا اعمال یکسری هزینههای اضافی به ازای هر SMS و MMS ارسالی برای کاربر ایجاد خواهد کرد.
مجوزهای خواندن پیامهای متنی و دریافت پیامهای متنی توانایی نفوذ به حریم خصوصی شما را خواهند داشت اگر دلیل خاصی برای تفویض این نوع از مجوزها به برنامه کاربردی خود ندیدید از دادن این مجوزها جدا خودداری کنید.
5- مجوزهای مربوط به حسابهای کاربری
پیدا کردن حسابهای کاربری بر روی دستگاه به برنامه کاربردی این امکان را میدهد تا از طریق مدیریت حسابهای کاربری که سیستمعامل اندروید در خود جایداده است به بررسی حسابهای کاربری ازجمله سرویسهای google، Facebook و غیره نماید.
استفاده از حسابهای کاربری روی دستگاه اندرویدی به برنامه کاربردی اجازه میدهد تا برای استفاده از حساب کاربری درخواست مجوز نماید. هنگامیکه مجوز موردنیاز داده شد برنامه کاربردی موردنظر دیگر درخواست مجدد مجوز نخواهد کرد. نگرانی زمانی وجود خواهد داشت که برنامه کاربردی مخرب بدون هیچگونه نشان و رد پایی به کار خود ادامه میدهد و بهصورت مخفیانه از حساب کاربری شما استفاده خواهد کرد.

راهکارهای امنیتی
- باید به نوع کارکرد برنامه کاربردی نگاه کرد و علت درخواست مجوز با توجه به کاری که آن برنامه انجام میدهد را بررسی نمود تا در صورت صحیح بودن علت درخواست مجوز موردنیاز به آن داده شود.
- شما میتوانید با ارسال یک ایمیل به توسعهدهنده برنامه کاربردی موردنظر درباره مجوزهای درخواستی سؤال کنید. اگر پاسخ توسعهدهنده راضیکننده نبود یا پاسخی را در کل از توسعهدهنده دریافت نکردید باید به برنامه کاربردی مجوز موردنیاز را ندهید.
- اگر در مورد امنیت برنامه موردنظر اطمینان لازم را ندارید، شما باید از نقطه نظرات کاربران در خصوص استفاده از برنامه کاربردی استفاده کنید. (با بررسی فرومها و فروشگاههای برنامههای کاربردی به نظرات کاربران توجه ویژه داشته باشید.)
مدیریت مجوزهای برنامه کاربردی
شما میتوانید با رفتن به Settings>Apps و سپس کافی است برنامه کاربردی موردنظر را انتخاب کنید و از بخش App Permissions مجوزهای آن را مشاهده نمایید.
شما همچنین میتوانید از برنامههای کاربردی، همچون Permission Explorer برای مدیریت مجوزها استفاده کنید. این نوع از برنامهها به شما این امکان را میدهند تا با اعمال یکسری فیلترها بر اساس دستهبندی، برنامه کاربردی و مجوزها شما را در مدیریت بهتر مجوزهای تفویض شده به برنامه کاربردی با جزئیات بیشتر آگاه سازد. از دیگر برنامههای مشابه میتوان به Permissions Observatory و App Permissions اشاره نمود.