به روز رسانی ها و منابع امنیتی

تیم امنیتی اندروید مسئول مدیریت آسیب پذیری های امنیتی کشف شده در پلتفرم اندروید و بسیاری از برنامه های اصلی اندروید همراه با دستگاه های اندرویدی است.

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

گزارش مسائل امنیتی

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

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

تریاژ اشکال

اولین کار در رسیدگی به یک آسیب پذیری امنیتی، شناسایی شدت باگ و اینکه کدام مؤلفه اندروید تحت تأثیر قرار گرفته است است. شدت نحوه اولویت بندی مشکل را تعیین می کند، و مؤلفه تعیین می کند که چه کسی باگ را برطرف می کند، چه کسی مطلع می شود و چگونه رفع مشکل برای کاربران مستقر می شود.

انواع زمینه

این جدول تعاریف زمینه های امنیتی سخت افزار و نرم افزار را پوشش می دهد. زمینه را می توان با حساسیت داده هایی که معمولا پردازش می کند یا ناحیه ای که در آن اجرا می شود، تعریف کرد. همه زمینه های امنیتی برای همه سیستم ها قابل اجرا نیستند. این جدول از حداقل تا ممتازترین مرتب شده است.

نوع زمینه تعریف تایپ
زمینه محدود یک محیط اجرای محدود که در آن فقط حداقل ترین مجوزها ارائه می شود.

به عنوان مثال، برنامه "sandboxes" برای پردازش داده های غیرقابل اعتماد بدون اجازه دسترسی به سیستم اصلی.
زمینه بی امتیاز یک محیط اجرای معمولی مورد انتظار کدهای غیرمجاز.

به عنوان مثال، یک برنامه اندرویدی که در دامنه SELinux با ویژگی untrusted_app_all اجرا می شود.
زمینه ممتاز یک محیط اجرای ممتاز که ممکن است به مجوزهای بالا دسترسی داشته باشد، PII چند کاربر را مدیریت کند، و/یا یکپارچگی سیستم را حفظ کند.

به عنوان مثال، یک برنامه Android با قابلیت هایی که توسط دامنه SELinux untrusted_app یا با دسترسی به privileged|signature ممنوع است.
پایگاه محاسباتی قابل اعتماد (TCB) عملکردی که بخشی از هسته است، در همان زمینه CPU با هسته اجرا می شود (مانند درایورهای دستگاه)، دسترسی مستقیم به حافظه هسته (مانند اجزای سخت افزاری روی دستگاه) دارد، قابلیت بارگذاری اسکریپت ها در یک جزء هسته را دارد. به عنوان مثال، eBPF)، پردازنده‌های ارتباطی، یا یکی از معدود خدمات کاربر است که معادل هسته در نظر گرفته می‌شود: apexd ، bpfloader ، init ، ueventd و vold .
زنجیره بوت لودر مؤلفه ای که دستگاه را در هنگام بوت پیکربندی می کند و سپس کنترل را به سیستم عامل اندروید منتقل می کند.
محیط اجرای مورد اعتماد (TEE) کامپوننتی که به گونه ای طراحی شده است که حتی از یک هسته متخاصم (مثلاً TrustZone و Hypervisor) محافظت شود.
محصور امن / عنصر امن (SE) یک جزء سخت افزاری اختیاری که برای محافظت از سایر اجزای دستگاه و در برابر حمله فیزیکی طراحی شده است، همانطور که در مقدمه ای بر عناصر امن تعریف شده است.

این شامل تراشه Titan-M موجود در برخی از دستگاه های پیکسل است.

شدت

شدت یک اشکال به طور کلی منعکس کننده آسیب بالقوه ای است که می تواند در صورت سوء استفاده موفقیت آمیز از یک اشکال رخ دهد. برای تعیین شدت از معیارهای زیر استفاده کنید.

رتبه بندی پیامد بهره برداری موفق
بحرانی
  • دسترسی غیرمجاز به داده های ایمن شده توسط SE
  • اجرای کد دلخواه در TEE یا SE
  • اجرای کد دلخواه از راه دور در یک زمینه ممتاز، زنجیره بوت لودر یا TCB
  • انکار مداوم سرویس از راه دور (دائمی یا نیاز به فلش مجدد کل سیستم عامل یا بازنشانی کارخانه)
  • دور زدن از راه دور الزامات تعامل کاربر در نصب بسته یا رفتار مشابه
  • دور زدن از راه دور الزامات تعامل کاربر برای هر برنامه‌نویس، تنظیمات امنیتی یا حریم خصوصی
  • دور زدن راه‌انداز ایمن از راه دور
  • دور زدن مکانیسم های طراحی شده برای جلوگیری از خرابی نرم افزار یا قطعات سخت افزاری مرتبط با ایمنی (به عنوان مثال، حفاظت های حرارتی)
  • دسترسی از راه دور به اطلاعات کاربری حساسی که برای احراز هویت سرویس از راه دور استفاده می شود (به عنوان مثال، رمزهای عبور حساب یا توکن های حامل)
بالا
  • دور زدن بوت امن محلی
  • دور زدن کامل یک ویژگی امنیتی اصلی (مانند SELinux، FDE، یا seccomp)
  • اجرای کد دلخواه از راه دور در یک زمینه غیرمجاز
  • اجرای کد دلخواه محلی در یک زمینه ممتاز، زنجیره بوت لودر یا TCB
  • دسترسی غیرمجاز به داده های ایمن شده توسط TEE
  • حملاتی علیه یک SE که منجر به تنزل رتبه به یک پیاده سازی کمتر امن می شود
  • دور زدن محلی الزامات تعامل کاربر در نصب بسته یا رفتار مشابه
  • دسترسی از راه دور به داده های محافظت شده (داده هایی که به یک زمینه ممتاز محدود می شوند)
  • محرومیت مداوم محلی از سرویس (دائمی یا نیاز به بازنشانی کل سیستم عامل یا بازنشانی کارخانه)
  • دور زدن از راه دور الزامات تعامل کاربر (دسترسی به عملکرد یا داده هایی که معمولاً به شروع کاربر یا اجازه کاربر نیاز دارد)
  • انتقال اطلاعات حساس از طریق یک پروتکل شبکه ناامن (به عنوان مثال، HTTP و بلوتوث رمزگذاری نشده) زمانی که درخواست کننده انتظار انتقال ایمن را دارد (توجه داشته باشید که این مورد در مورد رمزگذاری Wi-Fi، مانند WEP صدق نمی کند)
  • یک بای پس عمومی برای دفاع در عمق یا فناوری کاهش بهره برداری در زنجیره بوت لودر، TEE یا SE
  • یک دور زدن کلی برای محافظت از سیستم عامل که داده های برنامه یا نمایه های کاربر را از یکدیگر جدا می کند
  • دور زدن محلی الزامات تعامل کاربر برای هر برنامه‌نویس، تنظیمات امنیتی یا حریم خصوصی
  • آسیب‌پذیری رمزنگاری که امکان حملات علیه پروتکل‌های انتها به انتها، از جمله حملات علیه امنیت لایه انتقال (TLS) و بلوتوث (BT) را فراهم می‌کند.
  • دور زدن صفحه قفل
  • دور زدن حفاظت دستگاه/محافظت بازنشانی کارخانه/محدودیت های حامل
  • پیشگیری هدفمند از دسترسی به خدمات اضطراری
  • دور زدن الزامات تعامل کاربر که توسط TEE ایمن شده است
  • جلوگیری از دسترسی از راه دور به سرویس تلفن همراه بدون تعامل کاربر (به عنوان مثال، از کار افتادن سرویس رادیویی سلولی با بسته نادرست)
  • دسترسی محلی به اطلاعات کاربری حساس مورد استفاده برای احراز هویت سرویس از راه دور (به عنوان مثال، رمزهای عبور حساب یا توکن های حامل)
در حد متوسط
  • اجرای کد دلخواه از راه دور در یک زمینه محدود
  • رد سرویس موقت دستگاه از راه دور (قطع کردن یا راه اندازی مجدد از راه دور)
  • اجرای کد دلخواه محلی در یک زمینه غیرمجاز
  • یک دور زدن عمومی برای دفاع در عمق یا بهره برداری از فناوری کاهش در یک زمینه ممتاز یا TCB
  • دور زدن محدودیت ها در یک فرآیند محدود
  • دسترسی از راه دور به داده های محافظت نشده (داده هایی که معمولاً برای هر برنامه نصب شده محلی قابل دسترسی است)
  • دسترسی محلی به داده های محافظت شده (داده هایی که به یک زمینه ممتاز محدود می شوند)
  • دور زدن محلی الزامات تعامل کاربر (دسترسی به عملکرد یا داده هایی که معمولاً به شروع کاربر یا اجازه کاربر نیاز دارد)
  • آسیب‌پذیری رمزنگاری در رمزنگاری‌های ابتدایی استاندارد که امکان نشت متن ساده را فراهم می‌کند (نه موارد اولیه مورد استفاده در TLS)
  • دور زدن رمزگذاری وای فای یا احراز هویت
کم
  • اجرای کد دلخواه محلی در یک زمینه محدود
  • آسیب پذیری رمزنگاری در استفاده غیر استاندارد
  • یک دور زدن عمومی برای دفاع در سطح کاربر در عمق یا بهره برداری از فناوری کاهش در یک زمینه غیرمجاز
  • اسناد نادرست که ممکن است منجر به سوء تفاهم امنیتی با نقص کد بعدی شود
  • دور زدن عمومی ویژگی‌های شخصی‌سازی روی دستگاه مانند Voice Match یا Face Match
تأثیر ناچیز امنیتی (NSI)
  • آسیب‌پذیری که تأثیر آن توسط یک یا چند اصلاح‌کننده رتبه‌بندی یا تغییرات معماری خاص نسخه کاهش یافته است، به طوری که شدت مؤثر کمتر از Low است، اگرچه ممکن است مشکل کد اساسی باقی بماند.
  • هر آسیب‌پذیری که نیاز به یک سیستم فایل نادرست دارد، اگر آن فایل سیستم همیشه قبل از استفاده پذیرفته/رمزگذاری شود.

اصلاح کننده های رتبه بندی

در حالی که تشخیص شدت آسیب پذیری های امنیتی اغلب آسان است، رتبه بندی ممکن است بر اساس شرایط تغییر کند.

دلیل اثر
برای اجرای حمله به اجرا به عنوان یک زمینه ممتاز نیاز دارد -1 شدت
جزئیات خاص آسیب‌پذیری تأثیر این موضوع را محدود می‌کند -1 شدت
دور زدن احراز هویت بیومتریک که مستقیماً از صاحب دستگاه به اطلاعات بیومتریک نیاز دارد -1 شدت
پیکربندی‌های کامپایلر یا پلتفرم آسیب‌پذیری در کد منبع را کاهش می‌دهند اگر آسیب‌پذیری اساسی متوسط ​​یا بالاتر باشد، شدت متوسط
نیاز به دسترسی فیزیکی به قطعات داخلی دستگاه دارد و اگر دستگاه خاموش باشد یا از زمان روشن شدن قفل آن باز نشده باشد همچنان امکان پذیر است. -1 شدت
هنگامی که دستگاه روشن است و قبلاً قفل آن باز شده است، نیاز به دسترسی فیزیکی به قسمت‌های داخلی دستگاه دارد -2 شدت
یک حمله محلی که نیاز به باز کردن زنجیره بوت لودر دارد بالاتر از Low نیست
یک حمله محلی که نیاز به حالت برنامه‌نویس یا تنظیمات دائمی حالت توسعه‌دهنده دارد که در حال حاضر روی دستگاه فعال باشد (و در خود حالت برنامه‌نویس یک اشکال نیست). بالاتر از Low نیست
اگر هیچ دامنه SELinux نمی تواند عملیات را تحت سیاست SEPolicy ارائه شده توسط Google انجام دهد تاثیر ناچیز امنیتی

محلی در مقابل پروگزیمال در مقابل از راه دور

یک بردار حمله از راه دور نشان می دهد که باگ می تواند بدون نصب برنامه یا بدون دسترسی فیزیکی به دستگاه مورد سوء استفاده قرار گیرد. این شامل اشکالاتی است که می تواند با مرور در یک صفحه وب، خواندن ایمیل، دریافت پیام کوتاه یا اتصال به یک شبکه متخاصم ایجاد شود. به منظور درجه‌بندی شدت، بردارهای حمله "پرگزیمال" را نیز از راه دور در نظر می‌گیریم. اینها شامل اشکالاتی است که فقط توسط مهاجمی که از نظر فیزیکی نزدیک دستگاه مورد نظر است، قابل سوء استفاده است، برای مثال، اشکالی که نیاز به ارسال بسته های Wi-Fi یا بلوتوث ناقص دارد. ما حملات فوق‌باند (UWB) و مبتنی بر NFC را به‌عنوان پروگزیمال و در نتیجه از راه دور در نظر می‌گیریم.

حملات محلی قربانی را ملزم به اجرای یک برنامه، یا با نصب و اجرای یک برنامه یا با رضایت برای اجرای یک برنامه فوری می‌کند. به منظور درجه بندی شدت، بردارهای حمله فیزیکی را نیز محلی در نظر می گیریم. اینها شامل اشکالاتی است که فقط توسط مهاجمی که به دستگاه دسترسی فیزیکی دارد می تواند مورد سوء استفاده قرار گیرد، به عنوان مثال اشکال در صفحه قفل یا اشکالی که نیاز به وصل کردن کابل USB دارد. توجه داشته باشید که حملاتی که نیاز به اتصال USB دارند، بدون در نظر گرفتن اینکه آیا دستگاه نیاز به باز کردن قفل دارد یا نه، شدت یکسانی دارند. معمول است که دستگاه ها در حالی که به USB وصل هستند باز می شوند.

امنیت شبکه

اندروید فرض می‌کند که همه شبکه‌ها متخاصم هستند و می‌توانند حملات تزریقی یا جاسوسی از ترافیک را انجام دهند. در حالی که امنیت لایه پیوند (به عنوان مثال، رمزگذاری Wi-Fi) ارتباط بین دستگاه و نقطه دسترسی که به آن متصل است را ایمن می کند، هیچ کاری برای ایمن کردن پیوندهای باقی مانده در زنجیره بین دستگاه و سرورهایی که با آن در ارتباط است انجام نمی دهد.

در مقابل، HTTPS معمولاً از تمام ارتباطات محافظت می‌کند، داده‌ها را در منبع آن رمزگذاری می‌کند، سپس رمزگشایی و تأیید آن را تنها پس از رسیدن به مقصد نهایی خود انجام می‌دهد. به همین دلیل، آسیب‌پذیری‌هایی که امنیت شبکه لایه پیوند را به خطر می‌اندازند نسبت به آسیب‌پذیری‌های HTTPS/TLS درجه‌بندی کمتری دارند: رمزگذاری Wi-Fi به تنهایی برای بیشتر ارتباطات در اینترنت کافی نیست.

احراز هویت بیومتریک

احراز هویت بیومتریک فضای چالش برانگیزی است و حتی بهترین سیستم ها را می توان با یک مسابقه تقریباً فریب داد (به وبلاگ توسعه دهندگان اندروید مراجعه کنید: صفحه قفل و بهبودهای احراز هویت در اندروید 11 ). این رتبه‌بندی‌های شدت، بین دو دسته از حملات تمایز قائل می‌شوند و در نظر گرفته شده‌اند که خطر واقعی را برای کاربر نهایی منعکس کنند.

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

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

SYSTEM_ALERT_WINDOW و Tapjacking

برای کسب اطلاعات در مورد خط‌مشی‌های ما در مورد SYSTEM_ALERT_WINDOW و tapjacking، به بخش « آسیب‌پذیری Tapjacking/overlay SYSTEM_ALERT_WINDOW در صفحه‌ای غیرامنیتی حیاتی » در صفحه اشکالات دانشگاه BugHunter بدون تأثیر امنیتی مراجعه کنید.

جزء تحت تأثیر

تیم توسعه مسئول رفع اشکال بستگی به این دارد که باگ در کدام مؤلفه قرار دارد. این می تواند یک مؤلفه اصلی پلتفرم Android، یک درایور هسته ارائه شده توسط یک سازنده تجهیزات اصلی (OEM) یا یکی از برنامه های از پیش بارگذاری شده در دستگاه های Pixel باشد. .

باگ های کد AOSP توسط تیم مهندسی اندروید رفع می شود. اشکالات کم شدت، اشکالات در مؤلفه های خاص، یا اشکالاتی که قبلاً به طور عمومی شناخته شده اند ممکن است مستقیماً در شاخه اصلی AOSP در دسترس عموم برطرف شوند. در غیر این صورت آنها ابتدا در مخازن داخلی ما ثابت می شوند.

این مؤلفه همچنین عاملی در نحوه دریافت به روز رسانی توسط کاربران است. یک اشکال در چارچوب یا هسته نیاز به یک به‌روزرسانی میان‌افزار (OTA) دارد که هر OEM باید آن را فشار دهد. یک اشکال در یک برنامه یا کتابخانه منتشر شده در Google Play (به عنوان مثال، Gmail، خدمات Google Play یا WebView) می تواند به عنوان به روز رسانی از Google Play برای کاربران Android ارسال شود.

اطلاع رسانی به شرکا

هنگامی که یک آسیب‌پذیری امنیتی در AOSP در بولتن امنیتی Android برطرف شد، ما شرکای Android را از جزئیات مشکل مطلع می‌کنیم و وصله‌هایی را ارائه می‌کنیم. لیست نسخه های پشتیبانی شده از بکپورت با هر نسخه جدید اندروید تغییر می کند. برای دریافت لیست دستگاه های پشتیبانی شده با سازنده دستگاه خود تماس بگیرید.

انتشار کد به AOSP

اگر اشکال امنیتی در یک جزء AOSP باشد، پس از انتشار OTA برای کاربران، رفع مشکل به AOSP منتقل می‌شود. رفع مشکلات کم شدت ممکن است مستقیماً به شعبه اصلی AOSP ارسال شود قبل از اینکه رفع مشکل از طریق OTA در دسترس دستگاه‌ها باشد.

دریافت آپدیت اندروید

به‌روزرسانی‌های سیستم اندروید معمولاً از طریق بسته‌های به‌روزرسانی OTA به دستگاه‌ها ارائه می‌شوند. این به‌روزرسانی‌ها ممکن است از سوی OEM تولیدکننده دستگاه یا شرکت مخابراتی ارائه‌دهنده خدمات به دستگاه ارائه شوند. به‌روزرسانی‌های دستگاه Google Pixel پس از گذراندن مراحل آزمایش پذیرش فنی شرکت مخابراتی (TA) توسط تیم Google Pixel ارائه می‌شود. گوگل همچنین تصاویر کارخانه پیکسل را منتشر می کند که می توانند به صورت جانبی در دستگاه ها بارگذاری شوند.

به روز رسانی خدمات گوگل

تیم امنیتی اندروید علاوه بر ارائه وصله‌هایی برای باگ‌های امنیتی، باگ‌های امنیتی را بررسی می‌کند تا مشخص کند آیا راه‌های دیگری برای محافظت از کاربران وجود دارد یا خیر. به عنوان مثال، Google Play همه برنامه‌ها را اسکن می‌کند و هر برنامه‌ای را که می‌خواهد از یک باگ امنیتی سوء استفاده کند حذف می‌کند. برای برنامه‌های نصب‌شده خارج از Google Play، دستگاه‌های دارای سرویس‌های Google Play نیز ممکن است از ویژگی تأیید برنامه‌ها برای هشدار دادن به کاربران در مورد برنامه‌هایی که ممکن است بالقوه مضر باشند، استفاده کنند.

منابع دیگر

اطلاعات برای توسعه دهندگان برنامه اندروید: https://developer.android.com

اطلاعات امنیتی در سراسر سایت‌های منبع باز Android و برنامه‌نویس وجود دارد. مکان های خوب برای شروع:

گزارش ها

گاهی اوقات تیم امنیت Android گزارش ها یا کاغذهای سفید منتشر می کند. برای جزئیات بیشتر به گزارش های امنیتی مراجعه کنید.