Android از ویژگیهای امنیتی پیشرو در صنعت استفاده میکند و با توسعهدهندگان و پیادهکنندههای دستگاه همکاری میکند تا پلتفرم و اکوسیستم Android را ایمن نگه دارد. یک مدل امنیتی قوی برای فعال کردن اکوسیستم قوی از برنامهها و دستگاههای ساخته شده بر روی پلتفرم اندروید و اطراف آن و پشتیبانی از سرویسهای ابری ضروری است. در نتیجه، در تمام چرخه عمر توسعه، اندروید تحت یک برنامه امنیتی سختگیرانه قرار گرفته است.
اندروید برای باز بودن طراحی شده است. برنامههای اندروید از سختافزار و نرمافزار پیشرفته و همچنین دادههای محلی و ارائهشده استفاده میکنند که از طریق این پلتفرم در معرض دید قرار میگیرند تا نوآوری و ارزش را برای مصرفکنندگان به ارمغان بیاورند. برای درک این ارزش، پلت فرم یک محیط برنامه ارائه می دهد که از محرمانه بودن، یکپارچگی و در دسترس بودن کاربران، داده ها، برنامه ها، دستگاه و شبکه محافظت می کند.
ایمن سازی یک پلت فرم باز نیازمند یک معماری امنیتی قوی و برنامه های امنیتی دقیق است. اندروید با امنیت چند لایه طراحی شده است که به اندازه کافی انعطاف پذیر است تا از یک پلتفرم باز پشتیبانی کند و در عین حال از همه کاربران پلتفرم محافظت کند. برای اطلاعات در مورد گزارش مشکلات امنیتی و فرآیند بهروزرسانی، بهروزرسانیها و منابع امنیتی را ببینید.
اندروید برای توسعه دهندگان طراحی شده است. کنترل های امنیتی برای کاهش بار روی توسعه دهندگان طراحی شده اند. توسعه دهندگان آگاه به امنیت می توانند به راحتی با کنترل های امنیتی انعطاف پذیر کار کنند و به آنها تکیه کنند. توسعه دهندگانی که کمتر با امنیت آشنا هستند با پیش فرض های ایمن محافظت می شوند.
علاوه بر ارائه یک پلتفرم پایدار برای ساخت، اندروید به روشهای مختلفی از توسعهدهندگان پشتیبانی میکند. تیم امنیتی اندروید به دنبال آسیبپذیریهای احتمالی در برنامهها میگردد و راههایی را برای رفع این مشکلات پیشنهاد میکند. برای دستگاههای دارای Google Play، Play Services بهروزرسانیهای امنیتی را برای کتابخانههای نرمافزار مهم، مانند OpenSSL، که برای ایمن کردن ارتباطات برنامه استفاده میشود، ارائه میکند. امنیت اندروید ابزاری را برای آزمایش SSL ( nogotofail ) منتشر کرد که به توسعهدهندگان کمک میکند مسائل امنیتی احتمالی را در هر پلتفرمی که در حال توسعه هستند پیدا کنند.
اندروید همچنین از پشتیبانی سخت افزاری اساسی برای امنیت استفاده می کند. به عنوان مثال، فناوری ARM TrustZone برای ارائه ذخیره سازی امن برای کلیدهای رمزنگاری و همچنین تأیید یکپارچگی بوت استفاده می شود. DICE برای اندازه گیری سیستم عاملی که قبل از بوت شدن اندروید بارگذاری شده است استفاده می شود. این امکان تأیید از راه دور را فراهم می کند که سیستم عامل تحت تأثیر آسیب پذیری های شناخته شده و مهم قرار نگرفته است که می تواند برای آسیب رساندن به توسعه دهندگان و کاربران مورد سوء استفاده قرار گیرد.
اطلاعات بیشتر برای توسعه دهندگان برنامه Android را می توانید در developer.android.com بیابید.
اندروید برای کاربران طراحی شده است. دسترسی کاربران به مجوزهای درخواست شده توسط هر برنامه و کنترل بر روی آن مجوزها ارائه می شود. این طراحی شامل این انتظار است که مهاجمان سعی کنند حملات رایجی را انجام دهند، مانند حملات مهندسی اجتماعی برای متقاعد کردن کاربران دستگاه برای نصب بدافزار، و حملات به برنامه های شخص ثالث در Android. اندروید به گونه ای طراحی شده است که هم احتمال این حملات را کاهش می دهد و هم تأثیر حمله را در صورت موفقیت آمیز بودن تا حد زیادی محدود می کند. بعد از اینکه دستگاه در دست کاربر قرار گرفت، امنیت اندروید همچنان به پیشرفت خود ادامه می دهد. Android با شرکا و مردم کار می کند تا برای هر دستگاه Android که به دریافت به روز رسانی های امنیتی ادامه می دهد وصله هایی ارائه کند.
اطلاعات بیشتر برای کاربران نهایی را میتوانید در مرکز راهنمایی Nexus ، مرکز راهنمایی Pixel یا مرکز راهنمایی سازنده دستگاهتان بیابید.
این صفحه اهداف برنامه امنیتی اندروید را تشریح میکند، مبانی معماری امنیتی اندروید را شرح میدهد و به مرتبطترین سؤالات برای معماران سیستم و تحلیلگران امنیتی پاسخ میدهد. این برنامه بر روی ویژگیهای امنیتی پلتفرم اصلی اندروید تمرکز میکند و در مورد مسائل امنیتی که منحصر به برنامههای خاص هستند، مانند برنامههای مربوط به مرورگر یا برنامه پیام کوتاه، بحث نمیکند.
زمینه
اندروید یک پلتفرم منبع باز و محیط برنامه برای دستگاه های تلفن همراه فراهم می کند.
بخش ها و صفحات زیر ویژگی های امنیتی پلتفرم اندروید را شرح می دهند. شکل 1 مولفه های امنیتی و ملاحظات سطوح مختلف پشته نرم افزار اندروید را نشان می دهد. هر جزء فرض می کند که اجزای زیر به درستی ایمن شده اند. به استثنای مقدار کمی از کدهای سیستم عامل اندروید که به صورت روت اجرا می شوند، همه کدهای بالای هسته لینوکس توسط Application Sandbox محدود می شوند.
بلوک های اصلی پلتفرم اندروید عبارتند از:
- سختافزار دستگاه: اندروید روی طیف گستردهای از پیکربندیهای سختافزاری از جمله تلفنهای همراه، تبلتها، ساعتها، خودروها، تلویزیونهای هوشمند، جعبههای بازی OTT و ستتاپباکس اجرا میشود. آندروید نسبت به پردازنده آگنوستیک است، اما از برخی قابلیتهای امنیتی خاص سختافزار مانند ARM eXecute-Never بهره میبرد.
- سیستم عامل اندروید: سیستم عامل اصلی بر روی هسته لینوکس ساخته شده است. همه منابع دستگاه مانند عملکردهای دوربین، داده های GPS، عملکردهای بلوتوث، عملکردهای تلفن و اتصالات شبکه از طریق سیستم عامل قابل دسترسی هستند.
- Android Application Runtime: برنامه های اندروید اغلب به زبان برنامه نویسی جاوا نوشته می شوند و در زمان اجرا اندروید (ART) اجرا می شوند. با این حال، بسیاری از برنامهها، از جمله سرویسها و برنامههای اصلی Android، برنامههای بومی هستند یا شامل کتابخانههای بومی هستند. هر دو برنامه ART و بومی در محیط امنیتی یکسانی اجرا میشوند که در Application Sandbox موجود است. برنامه ها بخشی اختصاصی از سیستم فایل را دریافت می کنند که در آن می توانند داده های خصوصی، از جمله پایگاه های داده و فایل های خام را بنویسند.
برنامه های اندروید سیستم عامل اصلی اندروید را گسترش می دهند. دو منبع اصلی برای برنامه ها وجود دارد:
- برنامه های از پیش نصب شده: اندروید شامل مجموعه ای از برنامه های از پیش نصب شده شامل تلفن، ایمیل، تقویم، مرورگر وب و مخاطبین است. اینها به عنوان برنامه های کاربر عمل می کنند و قابلیت های کلیدی دستگاه را ارائه می دهند که می تواند توسط سایر برنامه ها قابل دسترسی باشد. برنامههای از پیش نصبشده ممکن است بخشی از پلتفرم منبع باز Android باشند، یا ممکن است توسط سازنده دستگاه برای یک دستگاه خاص توسعه یافته باشند.
- برنامه های نصب شده توسط کاربر: اندروید یک محیط توسعه باز ارائه می دهد که از هر برنامه شخص ثالثی پشتیبانی می کند. گوگل پلی صدها هزار برنامه را به کاربران ارائه می دهد.
خدمات امنیتی گوگل
Google مجموعهای از خدمات مبتنی بر ابر را ارائه میکند که برای دستگاههای Android سازگار با سرویسهای تلفن همراه Google در دسترس هستند. در حالی که این خدمات بخشی از پروژه منبع باز اندروید (AOSP) نیستند، در بسیاری از دستگاه های اندرویدی گنجانده شده اند. برای کسب اطلاعات بیشتر در مورد برخی از این خدمات، به بررسی سال ۲۰۱۸ Android Security مراجعه کنید.
خدمات امنیتی اولیه گوگل عبارتند از:
- Google Play: Google Play مجموعهای از خدمات است که به کاربران امکان میدهد برنامهها را از دستگاه Android یا وب خود کشف، نصب و خریداری کنند. Google Play دسترسی توسعه دهندگان به کاربران اندروید و مشتریان بالقوه را آسان می کند. Google Play همچنین بررسی انجمن، تأیید مجوز برنامه، اسکن امنیتی برنامه و سایر خدمات امنیتی را ارائه میکند.
- بهروزرسانیهای Android: سرویس بهروزرسانی اندروید قابلیتها و بهروزرسانیهای امنیتی جدید را به دستگاههای منتخب Android، از جمله بهروزرسانیها از طریق وب یا از طریق هوا (OTA) ارائه میکند.
- سرویسهای برنامه: چارچوبهایی که به برنامههای Android اجازه میدهند از قابلیتهای ابری مانند ( پشتیبانگیری ) دادهها و تنظیمات برنامه و پیامرسانی ابر به دستگاه ( C2DM ) برای پیامرسانی فشاری استفاده کنند.
- تأیید برنامهها: نصب برنامههای مضر را بهطور خودکار اخطار میدهد یا مسدود میکند، و به طور مداوم برنامهها را در دستگاه اسکن میکند و درباره برنامههای مضر هشدار میدهد یا حذف میکند.
- SafetyNet: یک سیستم تشخیص نفوذ حفظ حریم خصوصی برای کمک به ردیابی Google، کاهش تهدیدات امنیتی شناخته شده، و شناسایی تهدیدات امنیتی جدید.
- گواهی SafetyNet: API شخص ثالث برای تعیین اینکه آیا دستگاه با CTS سازگار است یا خیر. گواهی همچنین می تواند برنامه Android را که با سرور برنامه در ارتباط است شناسایی کند.
- Android Device Manager: یک برنامه وب و برنامه Android برای مکان یابی دستگاه گم شده یا دزدیده شده.
نمای کلی برنامه امنیتی
اجزای اصلی برنامه امنیتی اندروید عبارتند از:
- بررسی طراحی: فرآیند امنیتی اندروید در اوایل چرخه عمر توسعه با ایجاد یک مدل و طراحی امنیتی غنی و قابل تنظیم آغاز می شود. هر یک از ویژگی های اصلی پلت فرم توسط منابع مهندسی و امنیتی، با کنترل های امنیتی مناسب که در معماری سیستم یکپارچه شده اند، بررسی می شود.
- تست نفوذ و بررسی کد: در طول توسعه پلتفرم، اجزای سازنده اندروید و منبع باز تحت بررسی های امنیتی شدید قرار می گیرند. این بررسی ها توسط تیم امنیتی اندروید، تیم مهندسی امنیت اطلاعات گوگل و مشاوران امنیتی مستقل انجام می شود. هدف این بررسیها شناسایی نقاط ضعف و آسیبپذیریهای احتمالی قبل از انتشار اصلی و شبیهسازی انواع تحلیلهایی است که پس از انتشار توسط کارشناسان امنیتی خارجی انجام میشود.
- بررسی منبع باز و جامعه: AOSP بررسی امنیتی گسترده ای را توسط هر شخص علاقه مند امکان پذیر می کند. اندروید همچنین از فناوریهای منبع باز استفاده میکند که تحت بررسی امنیتی خارجی قابل توجهی قرار گرفتهاند، مانند هسته لینوکس. Google Play یک انجمن برای کاربران و شرکتها فراهم میکند تا اطلاعات مربوط به برنامههای خاص را مستقیماً در اختیار کاربران قرار دهند.
- پاسخ به حادثه: حتی با وجود این اقدامات احتیاطی، ممکن است مشکلات امنیتی پس از حمل و نقل رخ دهد، به همین دلیل است که پروژه اندروید یک فرآیند پاسخ امنیتی جامع ایجاد کرده است. اعضای تیم امنیتی اندروید تمام وقت، جامعه امنیتی خاص اندروید و جامعه امنیتی عمومی را برای بحث در مورد آسیبپذیریهای بالقوه نظارت میکنند و باگهای امنیتی ثبتشده در پایگاه داده باگ اندروید را بررسی میکنند. پس از کشف مسائل قانونی، تیم اندروید یک فرآیند پاسخگویی دارد که کاهش سریع آسیبپذیریها را ممکن میسازد تا اطمینان حاصل شود که خطرات احتمالی برای همه کاربران اندروید به حداقل رسیده است. این پاسخهای ابری میتواند شامل بهروزرسانی پلتفرم اندروید (بهروزرسانیهای AOSP)، حذف برنامهها از Google Play و حذف برنامهها از دستگاههای موجود در این زمینه باشد.
- بهروزرسانیهای امنیتی ماهانه: تیم امنیتی Android بهروزرسانیهای ماهانه را برای دستگاههای Android Google و همه شرکای تولید دستگاه ما ارائه میکند.
معماری امنیتی پلتفرم
اندروید با استفاده مجدد از کنترل های امنیتی سنتی سیستم عامل به دنبال ایمن ترین و قابل استفاده ترین سیستم عامل برای پلتفرم های تلفن همراه است:
- از داده های برنامه و کاربر محافظت کنید
- حفاظت از منابع سیستم (از جمله شبکه)
- جداسازی برنامه را از سیستم، سایر برنامهها و از کاربر ارائه دهید
برای دستیابی به این اهداف، Android این ویژگی های امنیتی کلیدی را ارائه می دهد:
- امنیت قوی در سطح سیستم عامل از طریق هسته لینوکس
- سندباکس برنامه اجباری برای همه برنامه ها
- ارتباط بین فرآیندی امن
- امضای برنامه
- مجوزهای تعریف شده توسط برنامه و اعطا شده توسط کاربر