Güvenlik

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Bir pVM içinde rastgele yüklerin çalıştırılmasını önlemek için Android Sanallaştırma Çerçevesi (AVF), her katmanın ek zorlamalar eklediği katmanlı bir güvenlik yaklaşımı kullanır. AVF güvenlik katmanlarının listesi aşağıdadır:

  • Android – Android, yalnızca pVM izinlerine sahip uygulamaların pVM oluşturmasına veya incelemesine izin verilmesini sağlar.

  • Önyükleyici – Önyükleyici, yalnızca Google veya cihaz satıcıları tarafından imzalanmış pVM görüntülerinin önyüklenmesine izin verilmesini sağlar ve Android Doğrulanmış Önyükleme prosedürüne uyar. Bu mimari, pVM'leri çalıştıran uygulamaların kendi çekirdeklerini paketleyemeyeceği anlamına gelir.

  • pVM – pVM, pVM'de çalıştırılan yükler için SELinux ile olduğu gibi derinlemesine savunma sağlar. Derinlemesine savunma, verilerin yürütülebilir olarak eşlenmesine izin vermez ( neverallow execmem ) ve W^X'in tüm dosya türleri için geçerli olmasını sağlar.

Güvenlik modeli

CIA üçlüsü olarak da bilinen gizlilik, bütünlük ve kullanılabilirlik, bilgi güvenliği politikalarına rehberlik etmek için tasarlanmış bir modeldir:

  • Gizlilik, bilgiye erişimi sınırlayan bir dizi kuraldır.
  • Bütünlük, bilgilerin güvenilir ve doğru olduğunun güvencesidir.
  • Kullanılabilirlik, yetkili kuruluşlar tarafından bilgiye güvenilir erişim garantisidir.

pKVM'nin konukların gizliliğini ve bütünlüğünü korumak için tasarlandığını, ancak konukların müsaitliğini korumak için tasarlanmadığını unutmayın. Bu ilkeler, hipervizörden kullanıcı alanı bileşenlerine kadar mimarinin tüm yönlerini kapsayan tasarım kararlarını etkiler.

Gizlilik ve bütünlük

Gizlilik, pKVM hipervizörü tarafından zorlanan bellek izolasyon özelliklerinden kaynaklanır. pKVM, bireysel fiziksel bellek sayfalarının bellek sahipliğini ve paylaşılacak sayfalar için sahiplerden gelen tüm istekleri izler. pKVM, yalnızca yetkili pVM'lerin (ev sahibi ve misafirler) hipervizör tarafından kontrol edilen 2. aşama sayfa tablolarında verilen sayfanın eşlenmesini sağlar. Bu mimari, bir pVM'nin sahip olduğu bellek içeriğinin, sahibi açıkça başka bir pVM ile paylaşmadığı sürece özel kalmasını sağlar.

Gizliliği korumaya yönelik kısıtlamalar, sistemdeki pVM'ler adına bellek erişimi gerçekleştiren tüm varlıkları, yani DMA özellikli cihazlar ve daha ayrıcalıklı katmanlarda çalışan hizmetler için de geçerlidir. SoC satıcıları, pKVM'yi desteklemeden önce yeni bir dizi gereksinimi karşılamalıdır, aksi takdirde gizlilik sağlanamaz.

Bütünlük hem bellekteki hem de hesaplamadaki veriler için geçerlidir:

  • pVM'ler birbirlerinin hafızasını izinsiz değiştiremezler.
  • pVM'ler birbirlerinin CPU durumunu etkileyemez.

Bu gereksinimler hiper yönetici tarafından uygulanır. Ancak, dm-verity veya AuthFS gibi diğer çözümlerin uygulanması gereken sanal veri depolamada da veri bütünlüğü ile ilgili sorunlar ortaya çıkar.

Bu ilkeler, bellek sayfalarına erişimin aşama 1 sayfa tablolarıyla kontrol edildiği ve işlemler arasında çekirdek bağlam geçişlerinin yapıldığı Linux tarafından sunulan işlem izolasyonundan farklı değildir. Bununla birlikte, pKVM'nin bu özellikleri zorlayan EL2 kısmı, tüm Linux çekirdeğine kıyasla kabaca yarı saldırı yüzeyine sahiptir (yaklaşık 10 bin kod satırına karşı 20 milyon satır) ve bu nedenle güvenilemeyecek kadar hassas vakaları kullanmak için daha güçlü bir güvence sunar. süreç izolasyonu hakkında.

Boyutu göz önüne alındığında, bir pKVM kendisini resmi doğrulamaya borçludur. Bu özellikleri gerçek pKVM ikili dosyasında resmi olarak kanıtlamayı amaçlayan akademik araştırmaları aktif olarak destekliyoruz.

Bu belgenin geri kalanı, bir pKVM etrafındaki her bir bileşenin sağladığı gizlilik ve bütünlük garantilerini kapsar.

hiper yönetici

pKVM, pVM'leri ve Android'i karşılıklı olarak güvenilmeyen yürütme ortamlarında izole eden KVM tabanlı bir hiper yöneticidir. Bu özellikler, ana bilgisayar da dahil olmak üzere herhangi bir pVM içinde bir uzlaşma olması durumunda geçerlidir. AVF ile uyumlu alternatif hipervizörlerin benzer özellikler sağlaması gerekir.

  • Bir pVM, sayfa sahibi tarafından açıkça paylaşılmadığı sürece, pVM veya hiper yönetici gibi başka bir varlığa ait bir sayfaya erişemez. Bu kural, ana bilgisayar pVM'sini içerir ve hem CPU hem de DMA erişimleri için geçerlidir.
  • Bir pVM tarafından kullanılan bir sayfa ana bilgisayara döndürülmeden önce, örneğin pVM yok edildiğinde, silinir.
  • Bir aygıt önyüklemesinden gelen tüm pVM'lerin belleği ve pVM sabit yazılımı, sonraki aygıt önyüklemesinde OS önyükleyici çalıştırılmadan önce silinir.
  • SJTAG gibi bir donanım hata ayıklayıcı eklendiğinde, bir pVM önceden basılmış anahtarlarına erişemez.
  • pVM sabit yazılımı, ilk görüntüyü doğrulayamazsa önyükleme yapmaz.
  • instance.img bütünlüğü tehlikeye girerse pVM sabit yazılımı önyükleme yapmaz.
  • Bir pVM örneğine sağlanan Önyükleme Sertifika Zinciri (BCC) ve Bileşik Aygıt Tanımlayıcıları (CDI'lar), yalnızca o belirli örnek tarafından türetilebilir.

Konuk İşletim Sistemi

Microdroid , bir pVM içinde çalışan bir işletim sistemi örneğidir. Microdroid, U-önyükleme tabanlı bir önyükleyiciden, GKI'den ve bir Android kullanıcı alanı alt kümesinden ve bir yük başlatıcısından oluşur. Bu özellikler, ana bilgisayar da dahil olmak üzere herhangi bir pVM içinde bir uzlaşma olması durumunda geçerlidir. Bir pVM'de çalışan alternatif işletim sistemleri benzer özellikler sağlamalıdır.

  • boot.img , super.img , vbmeta.img veya vbmeta\_system.img doğrulanamazsa Microdroid önyükleme yapmaz.
  • APK doğrulaması başarısız olursa Microdroid başlatılmaz.
  • APK güncellenmiş olsa bile aynı Microdroid örneği başlatılmayacak.
  • APEX'lerden herhangi biri doğrulamada başarısız olursa, Microdroid önyükleme yapmayacaktır.
  • instance.img konuk pVM'nin dışında değiştirilirse, Microdroid önyükleme yapmaz (veya temiz bir başlangıç ​​durumuyla önyükleme yapmaz).
  • Microdroid, önyükleme zincirine onay sağlar.
  • Konuk pVM ile paylaşılan disk görüntülerinde yapılan herhangi bir (imzasız) değişiklik, pVM tarafında bir G/Ç hatasına neden olur.
  • Bir pVM örneğine sağlanan BCC ve CDI'lar yalnızca o belirli örnek tarafından türetilebilir.

Android

Bunlar, ana bilgisayar olarak Android tarafından sağlanan özelliklerdir, ancak ana bilgisayardan ödün verilmesi durumunda geçerli değildir:

  • Bir konuk pVM, diğer konuk pVM'lerle doğrudan etkileşim kuramaz (örneğin, bir vsock bağlantısı kuramaz).
  • Yalnızca ana bilgisayar pVM'sindeki VirtualizationService Hizmeti, bir pVM'ye iletişim kanalı yapabilir (Not: Kurulan kanalı başkalarına aktarabilir).
  • Yalnızca platform anahtarıyla imzalanmış uygulamalar pVM'ler oluşturmak, sahip olmak veya bunlarla etkileşim kurmak için izin isteyebilir.
  • Ana bilgisayar ve pVM arasında vsock bağlantılarının kurulmasında kullanılan bağlam tanımlayıcısı (CID) olarak adlandırılan tanımlayıcı, ana bilgisayar pVM'si çalışırken yeniden kullanılmaz. Örneğin, çalışan bir pVM'yi bir başkasıyla değiştirmek mümkün değildir.

kullanılabilirlik

pVM'ler bağlamında uygunluk, konukların yapmak üzere tasarlandıkları görevleri yerine getirebilmeleri için konuklara yeterli kaynak tahsis eden ev sahibi anlamına gelir.

Ana bilgisayarın sorumlulukları, pVM'nin sanal CPU'larını programlamayı içerir. KVM, Xen gibi geleneksel Tip-1 hipervizörlerin aksine, iş yükü planlamasını ana bilgisayar çekirdeğine devretmek için açık tasarım kararı verir. Günümüzün zamanlayıcılarının boyutu ve karmaşıklığı göz önüne alındığında, bu tasarım kararı, güvenilir bilgi işlem tabanının (TCB) boyutunu önemli ölçüde azaltır ve ana bilgisayarın performansı optimize etmek için daha bilinçli zamanlama kararları vermesini sağlar. Ancak, kötü niyetli bir ev sahibi hiçbir zaman misafir planlamamayı seçebilir.

Benzer şekilde, pKVM ayrıca hipervizörün karmaşıklığını azaltmak ve ana bilgisayarı zamanlamadan sorumlu tutmak için ana bilgisayar çekirdeğine fiziksel kesme işleme yetkisi verir. Konuk kesintilerinin iletilmesinin yalnızca hizmet reddi (çok az, çok fazla veya yanlış yönlendirilmiş kesinti) ile sonuçlanmasını sağlamak için çaba gösterilir.

Son olarak, ana bilgisayarın sanal makine izleme (VMM) işlemi, bellek ayırmaktan ve ağ kartı gibi sanal aygıtlar sağlamaktan sorumludur. Kötü niyetli bir VMM, konuktan kaynakları alıkoyabilir.

pKVM misafirlere müsaitlik sağlamasa da, ev sahibi her zaman bir misafiri önceden ayırabilir veya sonlandırabilir ve kaynaklarını geri talep edebileceğinden, tasarım ev sahibinin müsaitlik durumunu kötü niyetli misafirlerden korur.

Güvenli Önyükleme

Veriler bir pVM'nin örneklerine bağlıdır ve güvenli önyükleme, bir örneğin verilerine erişimin kontrol edilebilmesini sağlar. Bir örneğin ilk önyüklemesi, pVM için rastgele bir gizli tuz oluşturarak ve yüklenen görüntülerden doğrulama ortak anahtarları ve karmaları gibi ayrıntıları çıkararak onu sağlar. Bu bilgi, pVM örneğinin sonraki önyüklemelerini doğrulamak ve örneğin sırlarının yalnızca doğrulamayı geçen görüntülere bırakılmasını sağlamak için kullanılır. Bu işlem pVM içindeki her yükleme aşaması için gerçekleşir: pVM sabit yazılımı, pVM ABL, Microdroid vb.

DICE, her yükleme aşamasına bir onay anahtarı çifti sağlar; bu çiftin halka açık kısmı, o aşama için BCC girişinde onaylanmıştır. Bu anahtar çifti, önyüklemeler arasında değişebilir, bu nedenle, yeniden başlatmalar boyunca sanal makine örneği için kararlı olan ve bu nedenle kalıcı durumu korumak için uygun olan bir sızdırmazlık sırrı da türetilir. Sızdırmazlık sırrı, VM için oldukça değerlidir, bu nedenle doğrudan kullanılmamalıdır. Bunun yerine, mühürleme anahtarları mühürleme sırrından türetilmeli ve mühürleme sırrı mümkün olduğu kadar erken yok edilmelidir.

Her aşama, bir sonraki aşamaya deterministik olarak kodlanmış bir CBOR nesnesi verir. Bu nesne, sırları ve son aşamanın güvenli bir şekilde yüklenip yüklenmediği gibi birikmiş durum bilgilerini içeren BCC'yi içerir.

Kilidi açılmış cihazlar

fastboot oem unlock ile bir cihazın kilidi açıldığında, kullanıcı verileri silinir. Bu işlem, kullanıcı verilerini yetkisiz erişime karşı korur. Bir pVM'ye özel olan veriler, bir cihaz kilidinin açılması gerçekleştiğinde de geçersiz kılınır.

Kilidi açıldıktan sonra, cihazın sahibi, pKVM uygulamasını içeren bölümler de dahil olmak üzere, genellikle doğrulanmış önyükleme tarafından korunan bölümleri yeniden başlatmakta serbesttir. Bu nedenle, kilidi açılmış bir cihazdaki pKVM'ye güvenlik modelini destekleme konusunda güvenilmez.

Uzak taraflar, bir anahtar doğrulama sertifikasında aygıtın doğrulanmış önyükleme durumunu inceleyerek bu potansiyel olarak güvenli olmayan durumu gözlemleyebilir.