Sistem ve çekirdek güvenliği

İşletim sistemi düzeyinde, Android platformu, Linux çekirdeğinin güvenliğinin yanı sıra, farklı süreçlerde çalışan uygulamalar arasında güvenli iletişimi sağlamak için güvenli bir süreçler arası iletişim (IPC) olanağı sağlar. İşletim sistemi düzeyindeki bu güvenlik özellikleri, yerel kodun bile Uygulama Korumalı Alanı tarafından kısıtlanmasını sağlar. Bu kod ister dahil edilen uygulama davranışının ister uygulamadaki bir güvenlik açığından yararlanılmasının sonucu olsun, sistem, hileli uygulamanın diğer uygulamalara, Android sistemine veya cihazın kendisine zarar vermesini önleyecek şekilde tasarlanmıştır. Cihazlarınızdaki çekirdeği güçlendirmek için alabileceğiniz önlemler için Çekirdek Yapılandırması'na bakın. Gerekli ayarlar için Android Uyumluluk Tanımı Belgesine (CDD) bakın.

Linux Güvenliği

Android platformunun temeli Linux çekirdeğidir. Linux çekirdeği yıllardır yaygın olarak kullanılmaktadır ve güvenliğe duyarlı milyonlarca ortamda kullanılmaktadır. Binlerce geliştirici tarafından sürekli olarak araştırılan, saldırıya uğrayan ve düzeltilen geçmişi boyunca Linux, birçok şirket ve güvenlik uzmanının güvendiği istikrarlı ve güvenli bir çekirdek haline geldi.

Mobil bilgi işlem ortamının temeli olan Linux çekirdeği, Android'e aşağıdakiler de dahil olmak üzere çeşitli temel güvenlik özellikleri sağlar:

  • Kullanıcı tabanlı izin modeli
  • Süreç izolasyonu
  • Güvenli IPC için genişletilebilir mekanizma
  • Çekirdeğin gereksiz ve potansiyel olarak güvenli olmayan kısımlarını kaldırma yeteneği

Çok kullanıcılı bir işletim sistemi olarak Linux çekirdeğinin temel güvenlik hedefi, kullanıcı kaynaklarını birbirinden izole etmektir. Linux güvenlik felsefesi, kullanıcı kaynaklarını birbirlerinden, yani Linux'tan korumaktır:

  • A kullanıcısının B kullanıcısının dosyalarını okumasını engeller
  • A kullanıcısının B kullanıcısının belleğini tüketmemesini sağlar
  • A kullanıcısının B kullanıcısının CPU kaynaklarını tüketmemesini sağlar
  • A kullanıcısının B kullanıcısının cihazlarını (örneğin telefon, GPS ve Bluetooth) tüketmemesini sağlar

Uygulama Korumalı Alanı

Android'in uygulama güvenliği, uygulamaları birbirinden izole eden ve uygulamaları ve sistemi kötü amaçlı uygulamalardan koruyan uygulama sanal alanı tarafından sağlanır. Daha fazla ayrıntı için Uygulama Korumalı Alanı'na bakın.

Sistem Bölümü ve Güvenli Mod

Bütünlük korumalı çeşitli bölümler, Android çekirdeğinin yanı sıra işletim sistemi kitaplıklarını, uygulama çalışma zamanını, uygulama çerçevesini ve uygulamaları içerir. Bu bölüm salt okunur olarak ayarlanmıştır. Bir kullanıcı cihazı Güvenli Mod'da başlattığında, üçüncü taraf uygulamalar cihaz sahibi tarafından manuel olarak başlatılabilir ancak varsayılan olarak başlatılmaz.

Dosya Sistemi İzinleri

UNIX tarzı bir ortamda, dosya sistemi izinleri bir kullanıcının başka bir kullanıcının dosyalarını değiştirememesini veya okuyamamasını sağlar. Android durumunda her uygulama kendi kullanıcısı olarak çalışır. Geliştirici açıkça diğer uygulamalarla dosya paylaşmadığı sürece, bir uygulama tarafından oluşturulan dosyalar başka bir uygulama tarafından okunamaz veya değiştirilemez.

Güvenliği Geliştirilmiş Linux

Android, erişim kontrolü politikalarını uygulamak ve işlemlerde zorunlu erişim kontrolü (mac) oluşturmak için Güvenliği Geliştirilmiş Linux'u (SELinux) kullanır. Ayrıntılar için Android'de Güvenliği Geliştirilmiş Linux'a bakın.

Doğrulanmış önyükleme

Android 7.0 ve üzeri, sıkı bir şekilde zorunlu kılınan doğrulanmış önyüklemeyi destekler; bu, güvenliği ihlal edilmiş cihazların önyükleme yapamayacağı anlamına gelir. Doğrulanmış önyükleme, donanım güven kökünden başlayarak sistem bölümüne kadar cihaz yazılımının bütünlüğünü garanti eder. Önyükleme sırasında her aşama, yürütülmeden önce bir sonraki aşamanın bütünlüğünü ve orijinalliğini kriptografik olarak doğrular.
Daha fazla ayrıntı için Doğrulanmış önyükleme konusuna bakın.

Kriptografi

Android, uygulamaların kullanması için bir dizi şifreleme API'si sağlar. Bunlar, AES, RSA, DSA ve SHA gibi standart ve yaygın olarak kullanılan şifreleme temellerinin uygulamalarını içerir. Ayrıca SSL ve HTTPS gibi daha üst düzey protokoller için API'ler sağlanır.

Android 4.0, uygulamaların özel anahtarlar ve sertifika zincirleri için sistem kimlik bilgileri deposunu kullanmasına olanak tanıyan KeyChain sınıfını tanıttı.

Cihazların Rootlanması

Varsayılan olarak, Android'de yalnızca çekirdek ve çekirdek hizmetlerin küçük bir alt kümesi kök izinleriyle çalışır. SELinux hala root olarak çalışan kullanıcı alanı işlemlerini kısıtlıyor. Doğrulanmış önyükleme, root izinlerine sahip bir kullanıcının veya hizmetin işletim sistemini kalıcı olarak değiştirmesini engeller.

Sahip oldukları bir Android cihazı değiştirebilme yeteneği, Android platformuyla çalışan geliştiriciler için önemlidir. Birçok Android cihazında kullanıcılar, alternatif bir işletim sisteminin kurulmasına izin vermek için önyükleyicinin kilidini açma olanağına sahiptir. Bu alternatif işletim sistemleri, bir sahibinin uygulamalarda ve sistem bileşenlerinde hata ayıklama amacıyla kök erişimi elde etmesine veya Android API'leri tarafından uygulamalara sunulmayan özelliklere erişmesine olanak tanıyabilir.

Bazı cihazlarda, bir cihazın fiziksel kontrolüne ve USB kablosuna sahip olan bir kişi, kullanıcıya root ayrıcalıkları sağlayan yeni bir işletim sistemi kurabilir. Mevcut kullanıcı verilerinin tehlikeye atılmasını önlemek için önyükleyici kilit açma mekanizması, kilit açma adımının bir parçası olarak önyükleyicinin mevcut tüm kullanıcı verilerini silmesini gerektirir. Bir çekirdek hatasından veya güvenlik açığından yararlanılarak elde edilen kök erişimi bu korumayı atlayabilir.

Verilerin cihazda depolanan bir anahtarla şifrelenmesi, uygulama verilerini root erişimli cihazlardaki root kullanıcılarından korumaz. Uygulamalar, sunucu veya kullanıcı parolası gibi cihaz dışında saklanan bir anahtarla şifreleme kullanarak bir veri koruma katmanı ekleyebilir. Bu yaklaşım, anahtar mevcut olmadığında geçici koruma sağlayabilir, ancak bir noktada anahtarın uygulamaya sağlanması gerekir ve daha sonra kök kullanıcılar tarafından erişilebilir hale gelir.

Verileri kök kullanıcılardan korumaya yönelik daha sağlam bir yaklaşım, donanım çözümlerinin kullanılmasıdır. OEM'ler, video oynatma için DRM veya Google cüzdanı için NFC ile ilgili güvenilir depolama gibi belirli içerik türlerine erişimi sınırlayan donanım çözümleri uygulamayı seçebilir. Cihazın kaybolması veya çalınması durumunda, depolama şifrelemesi, kullanıcının kilit ekranı kimlik bilgileri bilinmeden kullanıcı verilerine erişilememesini sağlar.

Kullanıcı Güvenliği Özellikleri

Depolama Şifreleme

CDD, Android 10 veya üzeri sürümle başlatılan tüm cihazların ve Android 6.0 veya üzeri sürümle başlatılan çoğu cihazın kutudan çıktığı anda depolama şifrelemesini etkinleştirmesini gerektirir.

Android'in mevcut depolama şifreleme uygulaması , meta veri şifrelemeyle birlikte dosya tabanlı şifrelemedir . Dosya tabanlı şifreleme, farklı dizinler için farklı anahtarlar kullanarak kullanıcı verileri bölümündeki dosya içeriklerini ve adlarını şeffaf bir şekilde şifreler. İş profilleri de dahil olmak üzere her kullanıcı için kimlik bilgileri şifreli ve cihaz şifreli depolama dizinleri sağlar.

Meta veri şifrelemesi, dosya tabanlı şifrelemeyi tamamlar. Herhangi bir kullanıcının kilit ekranı kimlik bilgisine bağlı olmayan ancak yine de Doğrulanmış Önyükleme tarafından korunan bir anahtar kullanarak, kullanıcı verisi bölümündeki dosya tabanlı şifrelemeyle şifrelenmemiş tüm blokları şifreler.

Kilit Ekranı Kimlik Bilgisi Koruması

Android, bir cihaza erişim sağlamadan önce kullanıcı tarafından sağlanan kilit ekranı kimlik bilgilerini (PIN, şifre veya desen) doğrulayacak şekilde yapılandırılabilir. Kilit ekranı kimlik bilgileri, cihazın yetkisiz kullanımını önlemenin yanı sıra, kimlik bilgileri ile şifrelenmiş veriler için şifreleme anahtarını da korur. Kilit ekranı kimlik bilgisi ve/veya kimlik bilgisi karmaşıklık kurallarının kullanılması, cihaz yöneticisi tarafından gerekli olabilir.

Cihaz Yönetimi

Android 2.2 ve üzeri, sistem düzeyinde cihaz yönetimi özellikleri sağlayan Android Cihaz Yönetimi API'sini sağlar. Örneğin, yerleşik Android E-posta uygulaması, Exchange desteğini geliştirmek için API'leri kullanır. Exchange yöneticileri, E-posta uygulaması aracılığıyla, cihazlar arasında alfasayısal şifreler veya sayısal PIN'ler dahil olmak üzere kilit ekranı kimlik bilgisi politikalarını uygulayabilir. Yöneticiler ayrıca kaybolan veya çalınan telefonları uzaktan silebilir (yani fabrika varsayılanlarını geri yükleyebilir).

Android sistemindeki uygulamalarda kullanıma ek olarak, bu API'ler üçüncü taraf Cihaz Yönetimi çözümleri sağlayıcıları tarafından da kullanılabilir. API ile ilgili ayrıntılar Cihaz Yönetimi'nde sağlanmaktadır.