امروزه با توجه به تولید انبوه برنامههای کاربردی اندرویدی و ارائه آنها در بازارهای ایرانی و خارجی و همچنین دانش اندک بیشتر کاربران سیستمعامل اندروید، باید در مورد خطرات احتمالی آن دست از برنامههایی که تهدیداتی را برای کاربران دستگاههای اندرویدی ایجاد میکنند اطلاعرسانی شود. بسیاری از برنامههای کاربردی چه ایرانی و چه خارجی با دریافت یکسری مجوزهای حساس با استفاده از مهندسی اجتماعی و یا عدم آگاهی کافی کاربران اقدام به سرقت اطلاعات کاربران میکنند. ولی سؤالی که باید پرسیده شود این است که آیا تابهحال مجوزهای درخواستی برنامه کاربردی اندرویدی شما قبل از نصب را مطالعه کردهاید؟ تعداد افرادی که این مجوزها را مطالعه میکنند انگشتشمار هستند و بیشتر افراد برخوردی عادی و بیتفاوت به این مجوزها دارند. از عدم آگاهی و نیز بیتوجهی بیشتر کاربران، توسعهدهندگان برنامههای کاربردی مجوزهایی را از کاربران میخواهند که راه را برای نفوذ به دستگاههای اندرویدی باز میکند. هدف از این گزارش آگاهسازی کاربران در مورد مجوزهایی است که برنامههای کاربردی اندرویدی درخواست میکنند.
در ابتدا باید عنوان کرد که مجوزهای اندروید درخواست نیستند بلکه یک اعلان یا اطلاعرسانی را به کاربران اعلام میدارند. هنگامیکه یک برنامه کاربردی را از Play Store دریافت و نصب میکنیم یک پنجره پاپ آپ ظاهر میشود که تمام مجوزهای درخواستی برنامه کاربردی موردنظر را به نمایش میگذارد که این مجوزها میتوانند دسترسی به حافظه گوشی موردنظر، تماسهای تلفنی، ارتباطات شبکه و غیره را داشته باشند.
شاید رد کردن یا تفویض مجوزهای درخواستی برنامه کاربردی در حال نصب سادهترین کاری باشد که یک کاربر میتواند انجام دهد اما نکته مهم این است که تا چه اندازه میتوان تفاوت بین حفاظت و تأمین امنیت داده کاربر و نیز در اختیار قرار دادن تمام داراییهای شخص در دست توسعهدهنده برنامه کاربردی را درک نمود.
بیشتر شرکتهای اینترنتی از متدهای عمومی مشابهی برای آگاهسازی کاربران در خصوص دادههایی که قرار است مورداستفاده قرار گیرند بهره میبرند. در سیستمعامل اندروید یک ارتباط سه سویه بین کاربر، گوگل (طراح و ارائهدهنده سیستمعامل اندروید) و توسعهدهندگان برنامه کاربردی شخص سوم وجود دارد. گوگل درواقع ارتباط بین کاربر و توسعهدهندگان شخص سوم را با استفاده از مجموعهای از مجوزها برای هر برنامه کاربردی دانلود شده توسط کاربر، مدیریت میکند. مجوزها درواقع نیازمندیهای توسعهدهندگان را برای چگونگی تعامل برنامه کاربردی تولیدشده با دستگاه کاربر مشخص کرده و دسترسی به نوع اطلاعات درخواستی برنامه کاربردی را نیز تعیین خواهد کرد.
در اکوسیستم اندروید بیشترین فشار بر روی توسعهدهندگان است تا مجوزهایی که به کاربر نشان داده میشوند، نحوه کار برنامه کاربردی را بهدرستی انتخاب و به نمایش بگذارند. پسازاینکه توسعهدهنده برنامه کاربردی یک برنامه را ایجاد کرد، مجوزهای صحیح را بهدرستی انتخاب نمود و لیستی از کاربران هدفی که درنهایت با این مجوزها موافقت نمودهاند را تهیه کرد، گوگل برنامه کاربردی تولیدی را بهمنظور شناسایی بدافزار و تشخیص کدهای مخرب مورد ارزیابی قرار خواهد داد. محدوده مجوزها برای تعامل برنامه کاربردی از اجازه دسترسی به بخش ویژهای از سختافزار دستگاه (بهعنوانمثال فلش دوربین عکاسی) آغاز میشود و تا دسترسی به لیست مخاطبان کاربر ادامه مییابد. کاربر نیز باید با تمام مجوزهای لیست شده قبل از نصب برنامه کاربردی موافقت نماید.
اصول مجوزهای برنامههای کاربردی گوگل
مستندسازی مجوزها آنهم با وجود تنوع زیاد مجوزها و نیازمندیهای متفاوت برنامههای کاربردی از کاربران بسیار سخت است. در این بخش گزارشی از بررسی مجوزهای برنامههای موجود در فروشگاه Google Play با تمرکز ویژه روی مجوزهایی که بهصورت بالقوه به برنامه کاربردی این اجازه را میدهند تا اطلاعات شخصی کاربر را جمعآوری و یا به اشتراک بگذارند ارائه شده است.
درمجموع با بررسی 1041336 برنامه کاربردی در این آزمایش باید عنوان کرد که تنها 235 مجوز انحصاری و خاص وجود داشته است. بیشتر برنامههای کاربردی مجوزهای زیادی را طلب میکنند و بیشترین تعداد مجوزهای درخواستی از برنامههای کاربردی این آزمون تعداد 127 مجوز بوده است که برای یک برنامه کاربردی مقدار بسیار زیادی است. برنامههای کاربردی دیگری هم هستند که تعداد انگشتشماری مجوز درخواست میکنند که میانگین مجوزهای درخواستی از یک برنامه کاربردی تنها 5 مجوز بوده است. در این گزارش تحلیلی باید اشاره کرد که 100000 برنامه نیز مجوزی را درخواست نکردهاند.
بیشترین مجوزهای برنامههای کاربردی در فروشگاه Google Play |
||||
مجوز |
کاری که مجوز انجام میدهد "به برنامه کاربردی اجازه میدهد تا ..." |
تعداد برنامههای کاربردی |
% از برنامههای کاربردی |
مجوز سختافزاری یا اطلاعات کاربر |
دسترسی کامل به شبکه (Full network access) |
... یک درگاه شبکه ایجاد کرده و از پروتکلهای معمول شبکه استفاده میکند. مرورگر و دیگر برنامههای کاربردی داده را از طریق اینترنت ارسال میکنند که این بدان معنا است که مجوز نیازی به ارسال داده از طریق اینترنت را نباید داشته باشد. |
855873 |
83% |
سختافزار |
مشاهده ارتباطات شبکه (View network connections) |
... مشاهده اطلاعات درباره ارتباطات شبکه، بهعنوانمثال تشخیص اینکه کدام شبکه وجود دارد و متصل است. |
714607 |
69% |
سختافزار |
آزمون دسترسی به حافظه حفاظتشده (Test access to protected storage) |
... آزمون مجوز مربوط به حافظه USB که بر روی دستگاههای آینده قابلدسترس خواهند بود. به برنامه کاربردی اجازه میدهد تا مجوز را برای SD card آزمایش نماید. |
562442 |
54% |
سختافزار |
تنظیم یا حذف محتوای موجود بر روی حافظه USB (Modify or delete the contents of your USB storage) |
... نوشتن بر روی حافظه USB. به برنامه کاربردی اجازه نوشتن بر روی SD card را میدهد. |
559941 |
54% |
اطلاعات کاربر |
خواندن وضعیت تلفن و هویت (Read phone status and identity) |
... دسترسی به ویژگیهای تلفن. این مجوز به برنامه کاربردی اجازه میدهد تا شمارههای تلفن و ID را به هنگام برقراری تماس تشخیص دهد. |
361616 |
35% |
اطلاعات کاربر |
جلوگیری از به خواب رفتن گوشی (Prevent device from sleeping) |
... ممانعت از به خواب رفتن گوشی. به برنامه کاربردی اجازه میدهد تا مانع به خواب رفتن گوشی شود. |
279775 |
27% |
سختافزار |
موقعیت مکانی دقیق(مبتنی بر GPS و شبکه) (Precise location(GPS and network-based) |
... دریافت موقعیت مکانی دقیق با استفاده از سیستم موقعیتیاب جهانی (GPS) یا موقعیت مکانی دکلهای مخابراتی و Wi-Fi. این سرویسهای موقعیت مکانی باید برای دستگاه موردنظر فعال و قابلدسترس باشند تا برنامه کاربردی قابلیت استفاده از آن را داشته باشد. برنامههای کاربردی توانایی تشخیص موقعیت مکانی شما را با استفاده از این مجوز دارند و به سبب آن مصرف انرژی بیشتری را برای دستگاه به همراه خواهند داشت. |
246750 |
24% |
اطلاعات کاربر |
مشاهده ارتباطات بیسیم Wi-Fi (View Wi-Fi connections) |
... مشاهده اطلاعاتی درباره شبکههای Wi-Fi، ازجمله تشخیص فعال بودن Wi-Fi و اسامی دستگاههای Wi-Fi متصل شده. |
235093 |
23% |
اطلاعات کاربر |
کنترل لرزاننده (Control vibration) |
... کنترلکننده لرزاننده |
220594 |
21% |
سختافزار |
موقعیت تقریبی(مبتنی بر شبکه) (Approximate location (network-based) |
... دریافت موقعیت مکانی تقریبی. این موقعیت مکانی از طریق سرویسهای موقعیت مکانی بهویژه دکلهای سلولی و Wi-Fi بهدست میآیند. این سرویسهای موقعیت مکانی باید برای دستگاه موردنظر فعال و قابلدسترس باشند تا برنامه کاربردی قابلیت استفاده از آن را داشته باشد. برنامههای کاربردی توانایی تشخیص تقریبی موقعیت مکانی شما را با استفاده از این مجوز خواهند داشت. |
216770 |
21% |
اطلاعات کاربر |
از مجموع 235 مجوز که در این گزارش تحلیلی شناسایی شدهاند تنها 10 مجوز توسط 20% برنامههای کاربردی موجود در Google Play مورداستفاده قرارگرفته است و تعداد زیادی از مجوزها تنها توسط بخش اندکی از برنامههای کاربردی درخواست شدهاند. اگر بخواهیم بهصورت آماری نگاه کنیم تعداد 1000 برنامه از مجموع 1041336 که 0.09% از تعداد کل برنامههای کاربردی مورد تحلیل را شامل میشوند، مقدار 147 مجوز از مجموع 235 مجوز را درخواست کردهاند که با توجه به کل برنامههای مورد ارزیابی، مقدار زیادی از مجوزها را پوشش میدهند. البته باید این نکته را نیز اضافه نمود که مجموع مجوزهای درخواستی از یک برنامه کاربردی بهصراحت نمیتواند مشخص کند برنامه مورد نظر توانایی دسترسی به چه مقدار از اطلاعات کاربر را خواهد داشت. تناقضی که وجود دارد این است که یک برنامه کاربردی تنها با یک مجوز توانایی دسترسی بهتمامی اطلاعات کاربر را میتواند داشته باشد درحالیکه یک برنامه کاربردی با تعداد مجوزهای درخواستی فراوان تنها قابلیت تعامل با اجزای سختافزاری دستگاه موردنظر را خواهد داشت! تحلیل ذکرشده به بررسی عمیقتر بر روی برنامه کاربردی بهویژه نوع مجوزهای درخواستی آنها در فروشگاه Google Play میپردازد.
بهطور ویژه مجوزهایی که نسبت به سایر مجوزها شایعتر هستند به دو دسته تقسیم میشوند:
توجه
تعریف "اطلاعات کاربر" یک تعریف عام از اطلاعات کاربر است. مجوزهایی که جهت دریافت "اطلاعات کاربر" صادر میشوند، فرض شدهاند که هر نوع اطلاعات مربوط به کاربر را پوشش خواهند داد. به همین ترتیب مجوزهای صادرشده مبتنی بر دسترسی به سختافزار دستگاه نیز الزاماً بخش مشخصی از سختافزار نخواهد بود.
مجوزهایی که سختافزار دستگاه را تحت کنترل قرار میدهند
از 235 مجوز انحصاری جمعآوریشده در این تحلیل، 165 نوع از آنها به برنامه کاربردی اجازه میدهند تا با اجزای سختافزاری یک دستگاه تعامل داشته باشند و به برنامه اجازه دسترسی دیگری ازجمله اطلاعات کاربر را نخواهد داد.
بهعنوانمثال دو نمونه از عمومیترین مجوزها به برنامه کاربردی اجازه اتصال به اینترنت را میدهند. مجوز "دسترسی کامل به شبکه" (که توسط 83% برنامههای کاربردی مورداستفاده قرار میگیرند.) به برنامه کاربردی این اجازه را میدهد تا با هر شبکهای که دستگاه به آن متصل است ارتباط برقرار نماید. درحالیکه مجوز "مشاهده ارتباطات شبکه" (که توسط 69% برنامههای کاربردی مورداستفاده قرار میگیرند.) به برنامه کاربردی این اجازه را میدهد تا هر شبکهای که دستگاه به آن دسترسی دارد را ببیند. هر برنامه کاربردی که درخواست دسترسی به اینترنت را داشته باشد، بهمنظور افزایش قابلیتهای خود ممکن است به هردو مجوز "اطلاعات کاربر" و "مجوز سختافزار" نیاز داشته باشد. درحالیکه این دو مجوز بهشدت فراگیر هستند اما اجازه دسترسی مستقیم به اطلاعات کاربر را به برنامه کاربردی نمیدهند.
دانلود متن کامل در پیوست
نظرات