عزل نظام السيارة

لضمان سلامة نظام السيارة، يقوم Android Automotive بحماية البيانات الواردة على هذه المستويات:

مكونات نظام EVS

الشكل 1. بنية خدمة النظام

  • تطبيقات. يتحقق النظام من أن التطبيق لديه إذن بالتحدث إلى أنظمة السيارة الفرعية.
  • واجهات برمجة التطبيقات (APIs) المحددة جيدًا. لا تقبل واجهات برمجة التطبيقات العامة نقاط البيانات العشوائية (يجب أن تكون واجهات برمجة التطبيقات محددة جيدًا).
  • خدمة السيارات. لا يُسمح بالتحديثات إلا من خلال OTA (أو USB)، مع تشفير القرص بالكامل والتمهيد الذي تم التحقق منه. لا يمكن التحميل الجانبي.
  • مركبة هال. التحقق من السماح برسائل محددة.

التطبيقات وواجهات برمجة التطبيقات

تم تصميم Android Automotive على نظام Android ويتفاعل مباشرة مع العديد من الأنظمة الفرعية المهمة للسلامة. بالإضافة إلى ذلك، قد تحتوي المركبات المختلفة على واجهات مختلفة مع وظائف مختلفة مكشوفة لنظام Android. ولجعل هذه الوظائف آمنة ومبسطة، تم عزلها في طبقة مجردة، منفصلة عن بقية أجهزة Android. يمكن فقط لواجهات برمجة التطبيقات (APIs) المحددة جيدًا ذات التنسيق الصارم للرسائل المرسلة عبر الشبكات داخل السيارة الاتصال بـ HAL للمركبة. يوفر هذا واجهة يمكن التنبؤ بها لمطوري Android ويوفر تفاعلًا آمنًا مع بقية السيارة.

تتم تصفية رسائل HAL للمركبة على مستويين:

  • مستوى التطبيق. يمكن للتطبيقات غير التابعة للنظام الوصول إلى HAL للمركبة من خلال خدمة السيارة بالأذونات المناسبة.
  • مستوى HAL للمركبة يسمح بطبقة إضافية من الحماية والتأكيد على أن الرسائل المرسلة إلى الأنظمة الفرعية للمركبة تنشأ من مصدر شرعي. يمكن استخدامه أيضًا لتقييم رسائل الحد، ومنع التطبيقات الضارة من إغراق ناقل CAN واحتمال التدخل في الأنظمة الفرعية للمركبة.

مركبة هال

تعد طبقة HAL الخاصة بالمركبة طبقة سفلية تتفاعل مع السيارة وتتواصل مع الشبكات الموجودة داخل السيارة وأجهزة السيارة الأخرى من خلال مكالمات التحكم في الإدخال/الإخراج للسائق (ioctl).

إن HAL للمركبة هو المكون الوحيد في Android Automotive المتصل بنظام IVI، إما من خلال اتصال معالج التطبيق المباشر/وحدة التحكم الدقيقة أو عبر بوابة VMCU. يجب أن يقتصر الوصول إلى HAL للمركبة على تطبيقات النظام التي تستخدم قواعد SELinux والأذونات المناسبة على واجهات kernel.

سياسات SELinux

يقوم Android Automotive بتوسيع SELinux لتصفية وصول السائق بما في ذلك مكالمات الفتح والإغلاق والقراءة والكتابة ومكالمات ioctl. يؤدي استخدام تصفية ioctl (مع وظائف SELinux الأخرى) إلى الحد من نوع رسائل CAN المسموح بها والمقبولة من قبل HAL للمركبة، مما يقلل بشكل كبير من سطح الهجوم. للحصول على تفاصيل حول SELinux، راجع Linux المحسّن للأمان في Android .

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

<permission-group
 android:name=”android.support.car.permission.CAR_MONITORING />

<permission
 android:name=”android.support.car.permission.CAR_MILEAGE”
 android:protectionLevel=”signature|privileged” />
<permission
 android:name=”android.support.car.permission.CAR_SPEED”
 android:permissionGroup=”android.permission-group.LOCATION”
 android:protectionLevel=”dangerous” />
<permission
 android:name=”android.support.car.permission.CAR_VENDOR_EXTENSION”
 android:permissionGroup=”android.support.car.permission.CAR_INFORMATION”
 android:protectionLevel=”signature|privileged” />

تم إنشاء مجموعة أذونات CAR_MONITORING للأذونات المتعلقة بالسيارات. يمكن اعتبار السرعة الحالية بمثابة معلومات حساسة. ولذلك، تم إنشاء أذونات CAR_SPEED بمستوى حماية خطير . هذا المستوى يعني أن المعلومات خاصة وحساسة. تم إنشاء الإذن CAR_VENDOR_EXTENSION بإذن على مستوى النظام أو التوقيع، والذي يُستخدم لتطبيقات النظام أو التطبيقات الموقعة التي تم منحها هذا الإذن بشكل صريح.

حظر التطبيقات والأنشطة

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

تحدد القائمة المسموح بها التطبيقات التي يمكن استخدامها أثناء تحرك السيارة. يمكن لتطبيقات النظام الموثوقة فقط تحديث القائمة المسموح بها. على الرغم من إمكانية إجراء التحديثات عبر الشبكة، إلا أنه لا ينبغي اعتبار التحديثات موثوقة.