تلتزم Google بتعزيز المساواة العرقية للمجتمعات السوداء. أنظر كيف.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

أفضل ممارسات أمان التطبيق

يحتوي هذا القسم على توصيات لضمان أمان التطبيقات على أجهزة Android.

مراجعة شفرة المصدر

يمكن أن تكشف مراجعة شفرة المصدر مجموعة واسعة من مشكلات الأمان ، بما في ذلك تلك المحددة في هذا المستند. يشجع Android بشدة كل من مراجعة شفرة المصدر اليدوية والآلية.

  • اتبع الإرشادات الأمنية الشاملة عند إجراء المراجعات لضمان التغطية. استخدم المعايير الداخلية أو الخارجية ذات الصلة لضمان مراجعات متسقة وكاملة.
  • قم بتشغيل linter ، مثل Android Studio linter ، على جميع رموز التطبيقات باستخدام Android SDK وتصحيح أي مشكلات محددة.
  • تحليل الشفرة الأصلية باستخدام أداة تلقائية يمكنها اكتشاف مشكلات إدارة الذاكرة ، مثل تجاوزات المخزن المؤقت والأخطاء الفردية.
  • يدعم نظام بناء Android العديد من مطهرات LLVM ، مثل AddressSanitizer و UndefinedBehaviorSanitizer ، والتي يمكن استخدامها لتحليل وقت التشغيل للمشكلات المتعلقة بالذاكرة. إلى جانب التشويش ، المدعوم في Android من خلال libFuzzer ، يمكن أن تكشف المطهرات عن حالات حافة غير عادية تتطلب مزيدًا من التحقيق.
  • يجب على مُقيِّم الأمان المطّلع مراجعة رمز المخاطر الأعلى ، مثل التشفير ومعالجة الدفع ومعالجة معلومات تحديد الهوية الشخصية.

الاختبار الآلي

يمكن أن يساعد الاختبار الآلي في الكشف عن مجموعة واسعة من مشكلات الأمان ويجب إجراؤه بانتظام.

  • قم بتشغيل أحدث إصدار من CTS بانتظام خلال عملية التطوير لاكتشاف المشكلات مبكرًا وتقليل الوقت اللازم للتصحيح. يستخدم Android CTS كجزء من التكامل المستمر في عملية الإنشاء التلقائي ، والتي يتم بناؤها عدة مرات يوميًا.
  • أتمتة اختبار الأمان للواجهات ، بما في ذلك الاختبار مع المدخلات المشوهة (اختبار الزغب). يدعم نظام بناء Android libFuzzer لكتابة اختبارات الزغب.

مسح الضعف

يمكن أن يساعد فحص الثغرات الأمنية في ضمان خلو التطبيقات المثبتة مسبقًا من الثغرات الأمنية المعروفة. يمكن أن يقلل الاكتشاف المتقدم من الوقت والتكلفة المطلوبين لمعالجة هذه الثغرات ومنع المخاطر التي يتعرض لها المستخدمون والأجهزة.

  • امسح جميع التطبيقات المثبتة مسبقًا باستخدام أداة فحص ثغرات التطبيقات المعترف بها في المجال ومعالجة الثغرات المكتشفة.

التطبيقات التي يحتمل أن تكون ضارة

من المهم التأكد من أن التطبيقات المثبتة مسبقًا على جهازك ليست تطبيقات ضارة محتملة (PHAs). أنت مسؤول عن سلوك جميع التطبيقات المضمنة في أجهزتك. قبل تشغيل الجهاز ، افحص جميع التطبيقات المحملة مسبقًا بحثًا عن الثغرات الأمنية.

لمزيد من المعلومات حول PHAs وكيف تقوم Google بمكافحتها في متجر Play ، راجع وثائق مطور حماية Google Play .

تثبيت التطبيق والأذونات

يمكن أن تؤدي الأذونات الزائدة للتطبيقات المثبتة مسبقًا إلى مخاطر أمنية. قصر التطبيقات المثبتة مسبقًا على الحد الأدنى من الأذونات الضرورية وتأكد من عدم وصولها إلى الأذونات أو الامتيازات غير الضرورية. يتم وصف أذونات التطبيق في AndroidManifest.xml .

  • لا تمنح أذونات أو امتيازات غير ضرورية للتطبيقات المثبتة مسبقًا. قم بمراجعة التطبيقات بامتيازات النظام تمامًا حيث قد يكون لديها أذونات حساسة للغاية.
  • تأكد من أن جميع الأذونات المطلوبة ذات صلة وضرورية لوظيفة هذا التطبيق المحدد.
  • تأكد من وجود إفشاء المستخدم لجميع التطبيقات المثبتة مسبقًا التي تستخدم إذن INSTALL_PACKAGES .
  • تأكد من أن المطور ملزم بموجب العقد بعدم تثبيت أي تطبيقات مثل UID 0.
  • تقييم الأذونات المعلنة في بيان جميع التطبيقات المراد تثبيتها من خلال شبكة المطور.
  • تأكد من أن المطور ملزم بموجب العقد بفحص جميع عناوين URL التي تم تنزيلها لتطبيقات التحديث التلقائي والتثبيت باستخدام واجهة برمجة تطبيقات التصفح الآمن من Google قبل عرض التطبيقات على الجهاز.

توقيع التطبيق

تلعب توقيعات التطبيق دورًا مهمًا في أمان الجهاز وتستخدم لفحص الأذونات وتحديثات البرامج. عند تحديد مفتاح لاستخدامه لتوقيع التطبيقات ، من المهم مراعاة ما إذا كان التطبيق سيكون متاحًا فقط على جهاز واحد أو مشترك عبر أجهزة متعددة.

  • تأكد من أن التطبيقات ليست موقعة بمفتاح معروف للجميع ، مثل مفتاح مطور AOSP.
  • تأكد من إدارة المفاتيح المستخدمة لتوقيع التطبيقات بطريقة تتوافق مع الممارسات المتوافقة مع معايير الصناعة للتعامل مع المفاتيح الحساسة ، بما في ذلك وحدة أمان الأجهزة (HSM) التي توفر وصولاً محدودًا وقابل للتدوين.
  • تأكد من عدم توقيع التطبيقات باستخدام مفتاح النظام الأساسي. يؤدي ذلك إلى منح التطبيق حق الوصول إلى أذونات توقيع النظام الأساسي ، والتي تعتبر قوية جدًا ومخصصة فقط لاستخدامها من قبل مكونات نظام التشغيل. يجب أن تستخدم تطبيقات النظام أذونات مميزة.
  • تأكد من أن التطبيقات التي تحمل اسم الحزمة نفسه لم يتم توقيعها بمفاتيح مختلفة. يحدث هذا غالبًا عند إنشاء تطبيق لأجهزة مختلفة ، خاصة عند استخدام مفتاح النظام الأساسي. إذا كان التطبيق مستقلاً عن الجهاز ، فاستخدم نفس المفتاح عبر الأجهزة. إذا كان التطبيق خاصًا بالجهاز ، فأنشئ أسماء حزم فريدة لكل جهاز ومفتاح.

عزل التطبيقات والعمليات

يوفر نموذج وضع الحماية لنظام Android أمانًا إضافيًا حول التطبيقات والعمليات عند استخدامه بشكل صحيح.

عزل عمليات الجذر

عمليات الجذر هي الهدف الأكثر تكرارًا لهجمات تصعيد الامتيازات ؛ تقليل عدد عمليات الجذر يقلل من خطر تصعيد الامتيازات.

  • تأكد من أن الأجهزة تعمل على الحد الأدنى من التعليمات البرمجية الضرورية كجذر. حيثما أمكن ، استخدم عملية Android منتظمة بدلاً من عملية الجذر. إذا كان يجب تشغيل العملية كجذر على جهاز ، فقم بتوثيق العملية في طلب ميزة AOSP حتى يمكن مراجعتها علنًا.
  • حيثما أمكن ، يجب عزل شفرة الجذر من البيانات غير الموثوق بها والوصول إليها عبر الاتصال بين العمليات (IPC). على سبيل المثال ، قم بتقليل وظائف الجذر إلى خدمة صغيرة يمكن الوصول إليها عبر Binder وكشف الخدمة بإذن توقيع لتطبيق ذي امتيازات منخفضة أو معدومة للتعامل مع حركة مرور الشبكة.
  • يجب ألا تستمع عمليات الجذر على مقبس الشبكة.
  • يجب ألا تتضمن عمليات الجذر وقت تشغيل للأغراض العامة ، مثل Java VM).

عزل تطبيقات النظام

بشكل عام ، يجب ألا تعمل التطبيقات المثبتة مسبقًا باستخدام المعرف الفريد للنظام المشترك (UID). إذا كان من الضروري أن يستخدم التطبيق UID المشترك للنظام أو خدمة أخرى مميزة (مثل الهاتف) ، فيجب ألا يقوم التطبيق بتصدير أي خدمات أو أجهزة استقبال البث أو موفري المحتوى التي يمكن الوصول إليها من خلال تطبيقات الطرف الثالث المثبتة بواسطة المستخدمين .

  • تأكد من أن الأجهزة تقوم بتشغيل الحد الأدنى من التعليمات البرمجية الضرورية كنظام. حيثما أمكن ، استخدم عملية Android باستخدام UID الخاص بها بدلاً من إعادة استخدام UID الخاص بالنظام.
  • حيثما أمكن ، يجب عزل رمز النظام عن البيانات غير الموثوق بها وتعريض IPC للعمليات الموثوقة الأخرى فقط.
  • يجب ألا تستمع عمليات النظام على مقبس الشبكة. هذا هو أحد متطلبات CTS.

عمليات العزل

يوفر تطبيق Sandbox Sandbox للتطبيقات توقعًا للعزلة عن العمليات الأخرى على النظام ، بما في ذلك عمليات الجذر وتصحيح الأخطاء. ما لم يتم تمكين تصحيح الأخطاء على وجه التحديد بواسطة التطبيق والمستخدم ، فلا ينبغي لأي تطبيق أن ينتهك هذا التوقع.

  • تأكد من أن عمليات الجذر لا تصل إلى البيانات داخل مجلدات بيانات التطبيق الفردية ، ما لم تستخدم طريقة تصحيح أخطاء Android موثقة.
  • تأكد من عدم وصول عمليات الجذر إلى ذاكرة التطبيقات ، ما لم تستخدم طريقة تصحيح أخطاء Android موثقة.
  • تأكد من أن الأجهزة لا تتضمن أي تطبيق يصل إلى بيانات أو ذاكرة التطبيقات أو العمليات الأخرى.