Araç sistemi izolasyonu

Araç sisteminin bütünlüğünü sağlamak için Android Automotive, gelen verileri şu düzeylerde korur:

AGH Sistemi bileşenleri

Şekil 1. Sistem Hizmet Mimarisi

  • Uygulamalar. Sistem, bir uygulamanın Araba alt sistemleriyle konuşma iznine sahip olduğunu doğrular.
  • İyi tanımlanmış API'ler. Genel API'ler rastgele veri bloblarını kabul etmez (API'ler iyi tanımlanmalıdır).
  • Araba servisi. Güncellemelere yalnızca OTA (veya USB) aracılığıyla, tam disk şifrelemesi ve doğrulanmış önyüklemeyle izin verilir. Yandan yüklenemez.
  • Araç HAL'i. Belirli mesajlara izin verildiğini doğrular.

Uygulamalar ve API'ler

Android Automotive, Android üzerine kurulmuştur ve güvenliğin kritik olduğu çok sayıda alt sistemle doğrudan etkileşime girer. Ayrıca farklı araçlar, Android'e maruz kalan farklı işlevlere sahip farklı arayüzlere sahip olabilir. Bu işlevleri güvenli ve akıcı hale getirmek için, Android'in geri kalanından ayrı bir soyutlama katmanında izole edilmiştir. Yalnızca araç içi ağlar aracılığıyla gönderilen mesajlarda katı biçimlendirmeye sahip, iyi tanımlanmış API'ler Araç HAL'iyle iletişim kurabilir. Bu, Android geliştiricileri için öngörülebilir bir arayüz sağlar ve aracın geri kalanıyla güvenli bir etkileşim sağlar.

Araç HAL mesajları iki düzeyde filtrelenir:

  • Uygulama düzeyi. Sistem dışı uygulamalar, uygun izinlerle araç servisi aracılığıyla araç HAL'sine erişebilir.
  • Araç HAL seviyesi. Araç alt sistemlerine gönderilen mesajların meşru bir kaynaktan geldiğine dair ek bir koruma ve güvence katmanı sağlar. Ayrıca sınır mesajlarını derecelendirmek, kötü amaçlı uygulamaların CAN veriyolunu doldurmasını ve araç alt sistemlerine potansiyel olarak müdahale etmesini önlemek için de kullanılabilir.

Araç HAL'i

Araç HAL'i, sürücü giriş/çıkış kontrolü (ioctl) çağrıları aracılığıyla araç içi ağlar ve diğer araç donanımıyla iletişim kuran, araçla etkileşime giren bir alt katmandır.

Araç HAL'si, Android Automotive'de IVI sistemine doğrudan uygulama işlemcisi/MikroDenetleyici bağlantısı yoluyla veya bir VMCU üzerinden geçiş yoluyla bağlanan tek bileşendir. Araç HAL'sine erişim, SELinux kurallarını kullanan ve çekirdek arayüzlerinde uygun izinleri kullanan sistem uygulamalarıyla sınırlandırılmalıdır.

SELinux politikaları

Android Automotive, SELinux'u açma, kapatma, okuma, yazma ve ioctl çağrıları dahil olmak üzere sürücü erişimini filtreleyecek şekilde genişletiyor. Ioctl filtrelemenin kullanılması (diğer SELinux işlevleriyle birlikte), Araç HAL'inin izin verdiği ve kabul ettiği CAN mesajlarının türünü sınırlayarak saldırı yüzeyini büyük ölçüde azaltır. SELinux ile ilgili ayrıntılar için bkz. Android'de Güvenliği Geliştirilmiş Linux .

Ayrıca otomotiv kullanım durumları, izole edilmesi ve kontrol edilmesi gereken yeni türde hassas verileri içerir. Hassas verilerin ayrı izinleri vardır; HVAC kontrolleri ve pencere ayarı gibi diğer özellikler yalnızca sistem uygulamalarına verilmelidir. Otomotive özel SELinux politikası örneği:

<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” />

Otomotivle ilgili izinler için CAR_MONITORING izin grubu oluşturuldu. Mevcut hız hassas bir bilgi olarak kabul edilebilir. Bu nedenle, CAR_SPEED izinleri tehlikeli koruma düzeyiyle oluşturuldu. Bu seviye, bilginin özel ve hassas olduğu anlamına gelir. CAR_VENDOR_EXTENSION izni, sistem veya imza düzeyindeki izinle oluşturuldu ve bu izin, açıkça bu iznin verildiği sistem uygulamaları veya imzalı uygulamalar için kullanıldı.

Uygulama ve etkinlik engelleme

Dikkat dağınıklığını azaltmak amacıyla Android Automotive, yandan yüklenen uygulamaların araç hareket halindeyken kullanılamayacağını garanti altına almak için ek kontroller (izin verilenler listesi) sağlar. Bu uygulamalar bir araç park edildiğinde veya durdurulduğunda çalışmaya devam edebilir.

İzin verilenler listesi, araç hareket halindeyken kullanılabilecek uygulamaları belirtir. İzin verilenler listesini yalnızca güvenilir sistem uygulamaları güncelleyebilir. Güncellemeler ağ üzerinden gerçekleşebilir ancak güncellemelerin güvenilir olduğu düşünülmemelidir.