یک دستگاه اندرویدی را ایمن کنید

اندروید از ویژگی‌های امنیتی پیشرو در صنعت بهره می‌برد و با توسعه‌دهندگان و مجریان دستگاه‌ها همکاری می‌کند تا پلتفرم و اکوسیستم اندروید را ایمن نگه دارد. یک مدل امنیتی قوی برای فعال کردن یک اکوسیستم قوی از برنامه‌ها و دستگاه‌های ساخته شده بر روی پلتفرم اندروید و اطراف آن و پشتیبانی شده توسط سرویس‌های ابری ضروری است. در نتیجه، اندروید در کل چرخه عمر توسعه خود، تحت یک برنامه امنیتی سختگیرانه قرار داشته است.

اندروید به گونه‌ای طراحی شده است که متن‌باز باشد. برنامه‌های اندروید از سخت‌افزار و نرم‌افزار پیشرفته و همچنین داده‌های محلی و سرویس‌دهی شده استفاده می‌کنند که از طریق پلتفرم در معرض دید قرار می‌گیرند تا نوآوری و ارزش را برای مصرف‌کنندگان به ارمغان بیاورند. برای تحقق این ارزش، این پلتفرم یک محیط برنامه ارائه می‌دهد که از محرمانگی، یکپارچگی و در دسترس بودن کاربران، داده‌ها، برنامه‌ها، دستگاه و شبکه محافظت می‌کند.

ایمن‌سازی یک پلتفرم باز نیازمند یک معماری امنیتی قوی و برنامه‌های امنیتی دقیق است. اندروید با امنیت چندلایه طراحی شده است که به اندازه کافی انعطاف‌پذیر است تا از یک پلتفرم باز پشتیبانی کند و در عین حال از همه کاربران پلتفرم محافظت کند. برای کسب اطلاعات در مورد گزارش مشکلات امنیتی و فرآیند به‌روزرسانی، به به‌روزرسانی‌ها و منابع امنیتی مراجعه کنید.

اندروید برای توسعه‌دهندگان طراحی شده است. کنترل‌های امنیتی برای کاهش بار توسعه‌دهندگان طراحی شده‌اند. توسعه‌دهندگانی که در زمینه امنیت مهارت دارند می‌توانند به راحتی با کنترل‌های امنیتی انعطاف‌پذیر کار کنند و به آنها تکیه کنند. توسعه‌دهندگانی که با امنیت آشنایی کمتری دارند، توسط پیش‌فرض‌های ایمن محافظت می‌شوند.

اندروید علاوه بر ارائه یک پلتفرم پایدار برای توسعه، از چندین طریق پشتیبانی بیشتری به توسعه‌دهندگان ارائه می‌دهد. تیم امنیتی اندروید به دنبال آسیب‌پذیری‌های بالقوه در برنامه‌ها می‌گردد و راه‌هایی برای رفع این مشکلات پیشنهاد می‌دهد. برای دستگاه‌هایی که از گوگل پلی استفاده می‌کنند، سرویس‌های پلی به‌روزرسانی‌های امنیتی را برای کتابخانه‌های نرم‌افزاری حیاتی، مانند OpenSSL که برای ایمن‌سازی ارتباطات برنامه‌ها استفاده می‌شود، ارائه می‌دهد. اندروید سکیوریتی ابزاری برای آزمایش SSL ( nogotofail ) منتشر کرده است که به توسعه‌دهندگان کمک می‌کند تا مشکلات امنیتی بالقوه را در هر پلتفرمی که در حال توسعه آن هستند، پیدا کنند.

اندروید همچنین از پشتیبانی سخت‌افزاری زیربنایی برای امنیت استفاده می‌کند. به عنوان مثال، فناوری ARM TrustZone برای فراهم کردن فضای ذخیره‌سازی امن برای کلیدهای رمزنگاری و همچنین تأیید صحت بوت استفاده می‌شود. DICE برای اندازه‌گیری میان‌افزار بارگذاری شده قبل از بوت شدن اندروید استفاده می‌شود. این امر امکان تأیید از راه دور را فراهم می‌کند تا اطمینان حاصل شود که میان‌افزار تحت تأثیر آسیب‌پذیری‌های شناخته شده و حیاتی که می‌توانند برای آسیب رساندن به توسعه‌دهندگان و کاربران مورد سوءاستفاده قرار گیرند، قرار نگرفته است.

اطلاعات بیشتر برای توسعه‌دهندگان برنامه‌های اندروید را می‌توانید در developer.android.com بیابید.

اندروید برای کاربران طراحی شده است. کاربران می‌توانند مجوزهای درخواستی هر برنامه را مشاهده کرده و بر آن مجوزها کنترل داشته باشند. این طراحی شامل این انتظار است که مهاجمان سعی در انجام حملات رایج، مانند حملات مهندسی اجتماعی برای متقاعد کردن کاربران دستگاه به نصب بدافزار و حمله به برنامه‌های شخص ثالث در اندروید، داشته باشند. اندروید به گونه‌ای طراحی شده است که هم احتمال این حملات را کاهش دهد و هم تأثیر حمله را در صورت موفقیت‌آمیز بودن، تا حد زیادی محدود کند. امنیت اندروید پس از اینکه دستگاه در دست کاربر قرار گرفت، همچنان در حال پیشرفت است. اندروید با شرکا و عموم مردم همکاری می‌کند تا برای هر دستگاه اندرویدی که همچنان به‌روزرسانی‌های امنیتی را دریافت می‌کند، وصله‌هایی ارائه دهد.

اطلاعات بیشتر برای کاربران نهایی را می‌توانید در مرکز راهنمای Nexus ، مرکز راهنمای Pixel یا مرکز راهنمای سازنده دستگاه خود بیابید.

این صفحه اهداف برنامه امنیتی اندروید را تشریح می‌کند، اصول معماری امنیتی اندروید را شرح می‌دهد و به مرتبط‌ترین سوالات معماران سیستم و تحلیلگران امنیتی پاسخ می‌دهد. این صفحه بر ویژگی‌های امنیتی پلتفرم اصلی اندروید تمرکز دارد و مسائل امنیتی منحصر به برنامه‌های خاص، مانند موارد مرتبط با مرورگر یا برنامه پیامک، را مورد بحث قرار نمی‌دهد.

پیشینه

اندروید یک پلتفرم و محیط برنامه متن‌باز برای دستگاه‌های تلفن همراه فراهم می‌کند.

بخش‌ها و صفحات زیر ویژگی‌های امنیتی پلتفرم اندروید را شرح می‌دهند. شکل ۱، مؤلفه‌ها و ملاحظات امنیتی سطوح مختلف پشته نرم‌افزار اندروید را نشان می‌دهد. هر مؤلفه فرض می‌کند که مؤلفه‌های زیر به درستی ایمن شده‌اند. به استثنای مقدار کمی از کد سیستم عامل اندروید که به عنوان ریشه اجرا می‌شود، تمام کدهای بالای هسته لینوکس توسط Application Sandbox محدود شده‌اند.

شکل 1: پشته نرم‌افزار اندروید

شکل 1. پشته نرم‌افزاری اندروید

بلوک‌های اصلی سازنده پلتفرم اندروید عبارتند از:

  • سخت‌افزار دستگاه: اندروید روی طیف وسیعی از پیکربندی‌های سخت‌افزاری از جمله تلفن‌های همراه، تبلت‌ها، ساعت‌ها، خودروها، تلویزیون‌های هوشمند، دستگاه‌های بازی OTT و گیرنده‌های دیجیتال اجرا می‌شود. اندروید به پردازنده وابسته نیست، اما از برخی قابلیت‌های امنیتی خاص سخت‌افزار مانند ARM eXecute-Never بهره می‌برد.
  • سیستم عامل اندروید: هسته سیستم عامل بر روی هسته لینوکس ساخته شده است. تمام منابع دستگاه، مانند عملکردهای دوربین، داده‌های GPS، عملکردهای بلوتوث، عملکردهای تلفن و اتصالات شبکه از طریق سیستم عامل قابل دسترسی هستند.
  • زمان اجرای برنامه اندروید: برنامه‌های اندروید اغلب با زبان برنامه‌نویسی جاوا نوشته می‌شوند و در زمان اجرای اندروید (ART) اجرا می‌شوند. با این حال، بسیاری از برنامه‌ها، از جمله سرویس‌ها و برنامه‌های اصلی اندروید، برنامه‌های بومی هستند یا شامل کتابخانه‌های بومی می‌شوند. هم برنامه‌های ART و هم برنامه‌های بومی در یک محیط امنیتی مشابه، که در Application Sandbox قرار دارد، اجرا می‌شوند. برنامه‌ها بخش اختصاصی از سیستم فایل را دریافت می‌کنند که در آن می‌توانند داده‌های خصوصی، از جمله پایگاه‌های داده و فایل‌های خام را بنویسند.

برنامه‌های اندروید، هسته سیستم عامل اندروید را گسترش می‌دهند. دو منبع اصلی برای برنامه‌ها وجود دارد:

  • برنامه‌های از پیش نصب‌شده: اندروید شامل مجموعه‌ای از برنامه‌های از پیش نصب‌شده از جمله تلفن، ایمیل، تقویم، مرورگر وب و مخاطبین است. این برنامه‌ها به عنوان برنامه‌های کاربر عمل می‌کنند و قابلیت‌های کلیدی دستگاه را فراهم می‌کنند که توسط سایر برنامه‌ها قابل دسترسی هستند. برنامه‌های از پیش نصب‌شده ممکن است بخشی از پلتفرم اندروید متن‌باز باشند، یا ممکن است توسط سازنده دستگاه برای یک دستگاه خاص توسعه داده شده باشند.
  • برنامه‌های نصب‌شده توسط کاربر: اندروید یک محیط توسعه باز ارائه می‌دهد که از هر برنامه شخص ثالثی پشتیبانی می‌کند. گوگل پلی صدها هزار برنامه را در اختیار کاربران قرار می‌دهد.

سرویس‌های امنیتی گوگل

گوگل مجموعه‌ای از سرویس‌های مبتنی بر ابر را ارائه می‌دهد که برای دستگاه‌های اندروید سازگار با سرویس‌های موبایل گوگل در دسترس هستند. اگرچه این سرویس‌ها بخشی از پروژه متن‌باز اندروید (AOSP) نیستند، اما در بسیاری از دستگاه‌های اندروید گنجانده شده‌اند. برای اطلاعات بیشتر در مورد برخی از این سرویس‌ها، به بررسی سال ۲۰۱۸ اندروید سکیوریتی مراجعه کنید.

سرویس‌های امنیتی اصلی گوگل عبارتند از:

  • گوگل پلی: گوگل پلی مجموعه‌ای از سرویس‌ها است که به کاربران امکان می‌دهد برنامه‌ها را از دستگاه اندروید یا وب خود کشف، نصب و خریداری کنند. گوگل پلی دسترسی توسعه‌دهندگان به کاربران اندروید و مشتریان بالقوه را آسان می‌کند. گوگل پلی همچنین بررسی انجمن، تأیید مجوز برنامه، اسکن امنیتی برنامه و سایر سرویس‌های امنیتی را ارائه می‌دهد.
  • به‌روزرسانی‌های اندروید: سرویس به‌روزرسانی اندروید، قابلیت‌های جدید و به‌روزرسانی‌های امنیتی را برای دستگاه‌های منتخب اندروید ارائه می‌دهد، از جمله به‌روزرسانی‌ها از طریق وب یا از طریق بی‌سیم (OTA).
  • سرویس‌های برنامه: چارچوب‌هایی که به برنامه‌های اندروید اجازه می‌دهند از قابلیت‌های ابری مانند ( پشتیبان‌گیری ) داده‌ها و تنظیمات برنامه و پیام‌رسانی ابری به دستگاه ( C2DM ) برای پیام‌رسانی فوری استفاده کنند.
  • تأیید برنامه‌ها: نصب برنامه‌های مضر را هشدار می‌دهد یا به‌طور خودکار مسدود می‌کند، و به‌طور مداوم برنامه‌های روی دستگاه را اسکن می‌کند، در مورد برنامه‌های مضر هشدار می‌دهد یا آنها را حذف می‌کند.
  • SafetyNet: یک سیستم تشخیص نفوذ با حفظ حریم خصوصی برای کمک به ردیابی گوگل، کاهش تهدیدات امنیتی شناخته شده و شناسایی تهدیدات امنیتی جدید.
  • SafetyNet Attestation: یک API شخص ثالث برای تعیین سازگاری دستگاه با CTS. Attestation همچنین می‌تواند برنامه اندروید در حال ارتباط با سرور برنامه را شناسایی کند.
  • مدیریت دستگاه اندروید: یک برنامه تحت وب و برنامه اندروید برای یافتن دستگاه گم شده یا دزدیده شده.

نمای کلی برنامه امنیتی

اجزای کلیدی برنامه امنیتی اندروید عبارتند از:

  • بررسی طراحی: فرآیند امنیت اندروید در اوایل چرخه حیات توسعه با ایجاد یک مدل و طراحی امنیتی غنی و قابل پیکربندی آغاز می‌شود. هر ویژگی اصلی پلتفرم توسط منابع مهندسی و امنیتی بررسی می‌شود و کنترل‌های امنیتی مناسب در معماری سیستم ادغام می‌شوند.
  • تست نفوذ و بررسی کد: در طول توسعه پلتفرم، اجزای ایجاد شده توسط اندروید و متن‌باز تحت بررسی‌های امنیتی شدیدی قرار می‌گیرند. این بررسی‌ها توسط تیم امنیت اندروید، تیم مهندسی امنیت اطلاعات گوگل و مشاوران امنیتی مستقل انجام می‌شود. هدف از این بررسی‌ها، شناسایی نقاط ضعف و آسیب‌پذیری‌های احتمالی قبل از انتشار نسخه‌های اصلی و شبیه‌سازی انواع تحلیل‌هایی است که توسط کارشناسان امنیتی خارجی پس از انتشار انجام می‌شود.
  • متن‌باز و بررسی توسط جامعه: AOSP امکان بررسی امنیتی گسترده توسط هر شخص علاقه‌مند را فراهم می‌کند. اندروید همچنین از فناوری‌های متن‌بازی استفاده می‌کند که تحت بررسی امنیتی خارجی قابل توجهی قرار گرفته‌اند، مانند هسته لینوکس. گوگل پلی انجمنی را برای کاربران و شرکت‌ها فراهم می‌کند تا اطلاعات مربوط به برنامه‌های خاص را مستقیماً در اختیار کاربران قرار دهند.
  • واکنش به حادثه: حتی با وجود این اقدامات احتیاطی، ممکن است مشکلات امنیتی پس از عرضه رخ دهد، به همین دلیل است که پروژه اندروید یک فرآیند جامع واکنش امنیتی ایجاد کرده است. اعضای تمام وقت تیم امنیتی اندروید، جامعه امنیتی خاص اندروید و عمومی را برای بحث در مورد آسیب‌پذیری‌های احتمالی رصد می‌کنند و اشکالات امنیتی ثبت شده در پایگاه داده اشکالات اندروید را بررسی می‌کنند. پس از کشف مشکلات قانونی، تیم اندروید یک فرآیند واکنش دارد که امکان کاهش سریع آسیب‌پذیری‌ها را فراهم می‌کند تا اطمینان حاصل شود که خطر بالقوه برای همه کاربران اندروید به حداقل می‌رسد. این واکنش‌های پشتیبانی شده توسط ابر می‌تواند شامل به‌روزرسانی پلتفرم اندروید (به‌روزرسانی‌های AOSP)، حذف برنامه‌ها از گوگل پلی و حذف برنامه‌ها از دستگاه‌های موجود در محل باشد.
  • به‌روزرسانی‌های امنیتی ماهانه: تیم امنیتی اندروید، به‌روزرسانی‌های ماهانه را برای دستگاه‌های اندروید گوگل و تمام شرکای تولیدکننده دستگاه‌های ما ارائه می‌دهد.

معماری امنیتی پلتفرم

اندروید با تغییر کاربری کنترل‌های امنیتی سنتی سیستم عامل، به دنبال تبدیل شدن به امن‌ترین و کاربردی‌ترین سیستم عامل برای پلتفرم‌های موبایل است:

  • محافظت از داده‌های برنامه و کاربر
  • محافظت از منابع سیستم (از جمله شبکه)
  • جداسازی برنامه از سیستم، سایر برنامه‌ها و از کاربر را فراهم کنید

برای دستیابی به این اهداف، اندروید این ویژگی‌های امنیتی کلیدی را ارائه می‌دهد:

  • امنیت قوی در سطح سیستم عامل از طریق هسته لینوکس
  • اجباری بودن محیط سندباکس اپلیکیشن برای همه اپلیکیشن‌ها
  • ارتباط بین فرآیندی امن
  • امضای برنامه
  • مجوزهای تعریف‌شده توسط برنامه و مجوزهای اعطا شده توسط کاربر