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

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

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

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

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

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

تریاژ اشکال

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

انواع زمینه

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

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

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

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

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

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

شدت

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

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

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

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

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

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

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

حملات محلی قربانی را ملزم به اجرای یک برنامه، یا با نصب و اجرای یک برنامه یا با رضایت برای اجرای یک برنامه فوری می‌کند. دستگاه های همراه جفت شده به عنوان محلی در نظر گرفته می شوند. برای رتبه‌بندی شدت، تیم امنیتی اندروید بردارهای حمله فیزیکی را محلی در نظر می‌گیرد. اینها شامل اشکالاتی است که فقط توسط مهاجمی که به دستگاه دسترسی فیزیکی دارد می تواند مورد سوء استفاده قرار گیرد، به عنوان مثال اشکال در صفحه قفل یا اشکالی که نیاز به وصل کردن کابل 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 گزارش ها یا کاغذهای سفید منتشر می کند. برای جزئیات بیشتر به گزارش های امنیتی مراجعه کنید.