على مستوى نظام التشغيل، توفّر منصة Android أمانًا لنظام التشغيل Linux، بالإضافة إلى مرافق اتصالات آمنة بين العمليات (IPC) لتفعيل الاتصالات الآمنة بين التطبيقات التي تعمل في عمليات مختلفة. وتضمن ميزات الأمان هذه على مستوى نظام التشغيل أن يتم تقييد الرمز البرمجي الأصلي من خلال "وضع حماية التطبيقات". سواء كان هذا الرمز البرمجي نتيجة سلوك التطبيق المضمّن أو استغلال ثغرة أمنية في التطبيق، تم تصميم النظام لمنع التطبيق المخادع من إلحاق الضرر بالتطبيقات الأخرى أو نظام Android أو الجهاز نفسه. اطّلِع على إعدادات kernel لمعرفة الإجراءات التي يمكنك اتّخاذها لتعزيز kernel على أجهزتك. اطّلِع على مستند تعريف التوافق (CDD) لنظام التشغيل Android للاطّلاع على الإعدادات المطلوبة.
أمان Linux
نواة Linux هي أساس نظام Android الأساسي. تم استخدام ملف تعريف قاعدة Linux على نطاق واسع منذ سنوات، ويتم استخدامه في ملايين البيئات الحساسة من حيث الأمان. أصبح نظام Linux نواة ثابتة وآمنة وموثوقًا بها لدى العديد من الشركات والمتخصّصين في مجال الأمان، وذلك بفضل ما مرّ من محاولات البحث والهجوم والإصلاح المستمرة في Linux.
بصفتها الأساس لبيئة الحوسبة الجوّالة، توفّر نواة Linux لنظام Android العديد من ميزات الأمان الرئيسية، بما في ذلك:
- نموذج أذونات مستند إلى المستخدم
- عزل العمليات
- آلية قابلة للتوسّع لبروتوكول IPC الآمن
- إمكانية إزالة الأجزاء غير الضرورية والمحتملة أن تكون غير آمنة من kernel
بما أنّه نظام تشغيل متعدّد المستخدمين، فإنّ أحد أهداف الأمان الأساسية لقلب نظام التشغيل Linux هو عزل موارد المستخدمين عن بعضها. فلسفة أمان Linux هي حماية موارد المستخدمين من بعضها البعض، وتشمل ما يلي:
- منع المستخدم "أ" من قراءة ملفات المستخدم "ب"
- التأكّد من أنّ المستخدم "أ" لا يستنفد ذاكرة المستخدم "ب"
- يضمن أن المستخدم "أ" لا يستنزف موارد وحدة المعالجة المركزية للمستخدم "ب"
- التأكّد من أنّ المستخدم "أ" لا يستنفد أجهزة المستخدم "ب" (مثل خدمات الهاتف ونظام تحديد المواقع العالمي (GPS) والبلوتوث)
وضع الحماية للتطبيقات
يتم فرض أمان التطبيقات على نظام التشغيل Android من خلال "وضع حماية التطبيقات"، الذي يعزل التطبيقات عن بعضها ويحمي التطبيقات والنظام من التطبيقات الضارّة. لمزيد من التفاصيل، يُرجى الاطّلاع على مساحة التطبيق الرملية.
تقسيم النظام والوضع الآمن
تحتوي الأقسام المختلفة المحمية من الأنشطة غير المسموح بها على نواة Android بالإضافة إلى مكتبات نظام التشغيل ووقت تشغيل التطبيقات وإطار عمل التطبيقات والتطبيقات. تم ضبط هذا القسم على وضع القراءة فقط. عندما يشغِّل مستخدم الجهاز في الوضع الآمن، يمكنه بدء التطبيقات التابعة لجهات خارجية يدويًا من قِبل مالك الجهاز، ولكن لا يتم تشغيلها تلقائيًا.
أذونات نظام الملفات
في بيئة على غرار بيئة نظام التشغيل UNIX، تضمن أذونات نظام الملفات عدم تمكّن مستخدم واحد من تغيير ملفات مستخدم آخر أو قراءتها. في نظام التشغيل Android، يتم تشغيل كل تطبيق باسم مستخدمه الخاص. لا يمكن لتطبيق آخر قراءة أو تعديل الملفات التي أنشأها تطبيق آخر ما لم يشارك المطوّر تلك الملفات مع تطبيقات أخرى صراحةً.
نظام التشغيل Linux المحسَّن للأمان
يستخدم نظام التشغيل Android نظام التشغيل Linux المحسَّن للأمان (SELinux) لتطبيق سياسات التحكّم في الوصول وإنشاء عناصر التحكّم في الوصول الإلزامي (mac) على العمليات. لمعرفة التفاصيل، يُرجى الاطّلاع على مقالة Linux المُحسَّن للأمان في Android. .
التشغيل المتحقّق منه
يتيح نظام التشغيل Android 7.0 والإصدارات الأحدث ميزة "التمهيد التحقق منه" التي يتم فرضها بشكل صارم، ما يعني أنّه
لا يمكن تشغيل الأجهزة المُخترَقة. تضمن ميزة "التمهيد التحقق منه" سلامة
برنامج الجهاز بدءًا من جذر الثقة في الأجهزة ووصولاً إلى ملف التمهيد
للنظام. أثناء عملية التشغيل، تتحقّق كل مرحلة من مراحل التمهيد من سلامة
وموثوقية المرحلة التالية قبل تنفيذها.
راجِع التشغيل المُتحقّق منه للحصول على مزيد من التفاصيل.
التشفير
يقدّم Android مجموعة من واجهات برمجة التطبيقات لتشفير البيانات لاستخدامها في التطبيقات. وتشمل هذه الوظائف عمليات تنفيذ وظائف cryptographic الأساسية الشائعة الاستخدام، مثل AES وRSA وDSA وSHA. بالإضافة إلى ذلك، يتم توفير واجهات برمجة التطبيقات لبروتوكولات المستوى الأعلى، مثل بروتوكولَي SSL وHTTPS.
قدّم الإصدار Android 4.0 فئة KeyChain للسماح للتطبيقات باستخدام مساحة تخزين بيانات اعتماد النظام للمفاتيح الخاصة وسلاسل الشهادات.
الوصول إلى الجذر في الجهاز
وفقًا للإعدادات التلقائية، لا يتم منح أذونات الجذر إلا للنواة kernel ومجموعة فرعية صغيرة من الخدمات الأساسية على نظام التشغيل Android. لا يزال نظام SELinux يفرض قيودًا على عمليات مساحة المستخدم التي تعمل بصلاحيات الجذر. تمنع "التشغيل المتحقّق منه" المستخدم أو الخدمة التي لديها أذونات الجذر من تعديل نظام التشغيل بشكل دائم.
ومن المهم بالنسبة إلى المطوّرين الذين يعملون على نظام Android الأساسي أن يتمكّنوا من تعديل جهاز Android الذي يملكونه. على العديد من أجهزة Android، يمكن للمستخدمين فتح قفل أداة تحميل البرامج لسماحهم بتثبيت نظام تشغيل بديل. قد تسمح أنظمة التشغيل البديلة هذه للمالك بالحصول على إذن الوصول إلى الجذر لأغراض تصحيح أخطاء التطبيقات ومكونات النظام أو للوصول إلى ميزات لا تقدّمها واجهات برمجة تطبيقات Android للتطبيقات.
على بعض الأجهزة، يمكن لشخص لديه إمكانية التحكّم في الجهاز وسلك USB تثبيت نظام تشغيل جديد يمنح المستخدم امتيازات الجذر. لحماية أي بيانات حالية للمستخدمين من الاختراق، تتطلّب آلية فتح bootloader أن يحذف bootloader أي بيانات حالية للمستخدمين كجزء من خطوة الفتح. إنّ الوصول إلى الجذر الذي يتم الحصول عليه من خلال استغلال خطأ في النواة أو فجوة أمان يمكن أن يتجاوز هذه الحماية.
لا يؤدي تشفير البيانات باستخدام مفتاح مخزّن على الجهاز إلى حماية بيانات التطبيق من مستخدمي الجذر على الأجهزة المزوّدة بإذن الوصول إلى الجذر. يمكن للتطبيقات إضافة طبقة حماية للبيانات باستخدام التشفير مع مفتاح مخزَّن خارج الجهاز، مثل خادم أو كلمة مرور مستخدم. يمكن أن يوفّر هذا النهج حماية مؤقتة في حال عدم توفّر المفتاح، ولكن في مرحلة ما يجب تقديم المفتاح إلى التطبيق، ويصبح بإمكان مستخدمي الجذر الوصول إليه بعد ذلك.
إنّ اتّباع نهج أكثر فعالية لحماية البيانات من مستخدمي الجذر هو من خلال استخدام حلول الأجهزة. قد يختار المصنّعون الأصليون للأجهزة استخدام حلول الأجهزة التي تحدّ من الوصول إلى أنواع معيّنة من المحتوى، مثل إدارة الحقوق الرقمية لتشغيل الفيديو، أو مساحة التخزين الموثوق بها المرتبطة بتقنية NFC لتطبيق "محفظة Google". في حال فقدان جهاز أو سرقته، يضمن تشفير مساحة التخزين عدم إمكانية الوصول إلى بيانات المستخدم بدون معرفة بيانات اعتماد شاشة القفل للمستخدم.
ميزات أمان المستخدم
تشفير مساحة التخزين
تتطلّب سياسة CDD أن تكون ميزة تشفير التخزين مفعَّلة تلقائيًا في جميع الأجهزة التي تعمل بالإصدار 10 من نظام التشغيل Android أو الإصدارات الأحدث، ومعظم الأجهزة التي تعمل بالإصدار 6.0 من نظام التشغيل Android أو الإصدارات الأحدث.
يعتمد نظام التشغيل Android حاليًا على التشفير على مستوى الملفات مع التشفير على مستوى البيانات الوصفية لتشفير مساحة التخزين. يعمل التشفير المستنِد إلى الملفات على تشفير محتوى الملفات وأسماءها بشكل شفاف في قسم userdata، وذلك باستخدام مفاتيح مختلفة للملفات المختلفة. وتوفّر هذا الإصدار أدلة تخزين مشفَّرة ببيانات الاعتماد والأجهزة لكل مستخدم، بما في ذلك الملفات الشخصية للعمل.
يُكمّل تشفير البيانات الوصفية التشفير المستند إلى الملفات. ويعمل هذا الإجراء على تشفير كل وحدات التخزين في قسم userdata التي لم يتم تشفيرها من قبل باستخدام التشفير المستنِد إلى الملفات، وذلك باستخدام مفتاح غير مرتبط بمصادقة شاشة القفل لأي مستخدم، ولكنه لا يزال محميًا من خلال ميزة "التمهيد التحقق منه".
حماية بيانات الاعتماد على شاشة القفل
يمكن ضبط Android للتحقّق من بيانات اعتماد شاشة القفل التي يوفّرها المستخدم (رقم التعريف الشخصي أو كلمة المرور أو النقش) قبل إتاحة الوصول إلى الجهاز. بالإضافة إلى منع الاستخدام غير المصرَّح به للجهاز، تحمي بيانات الاعتماد في شاشة القفل مفتاح التشفير للبيانات المشفَّرة باستخدام بيانات الاعتماد. قد يطلب مشرف الجهاز استخدام بيانات اعتماد شاشة القفل و/أو قواعد تعقيد بيانات الاعتماد.
إدارة الجهاز
يقدّم نظام التشغيل Android 2.2 والإصدارات الأحدث واجهة برمجة التطبيقات Android Device Administration API التي تهدف إلى توفير ميزات إدارة الأجهزة على مستوى النظام. على سبيل المثال، يستخدم تطبيق البريد الإلكتروني المضمّن في Android واجهات برمجة التطبيقات لتحسين توافق Exchange. من خلال تطبيق البريد الإلكتروني، يمكن لمشرفي Exchange فرض سياسات بيانات الاعتماد لشاشة القفل، بما في ذلك كلمات المرور الأبجدية الرقمية أو أرقام التعريف الشخصية الرقمية على جميع الأجهزة. يمكن للمشرفين أيضًا محو بيانات الهواتف الجوّالة المفقودة أو المسروقة عن بُعد (أي استعادة الإعدادات الأصلية).
بالإضافة إلى استخدامها في التطبيقات المضمّنة في نظام Android، تتوفّر واجهات برمجة التطبيقات هذه لموفّري حلول إدارة الأجهزة التابعين لجهات خارجية. تتوفّر تفاصيل عن واجهة برمجة التطبيقات في إدارة الأجهزة.