İş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şim 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 sınırlandırılmasını sağlar. Bu kod ister dahil edilen uygulama davranışının sonucu isterse bir uygulama 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 önlemek için 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 milyonlarca güvenlik açısından hassas ortamda kullanılmaktadır. Binlerce geliştirici tarafından sürekli araştırılan, saldırıya uğrayan ve düzeltilen geçmişi boyunca Linux, birçok şirket ve güvenlik uzmanı tarafından güvenilen istikrarlı ve güvenli bir çekirdek haline geldi.
Bir mobil bilgi işlem ortamının temeli olarak Linux çekirdeği, Android'e aşağıdakiler de dahil olmak üzere birkaç temel güvenlik özelliği sağlar:
- Kullanıcı tabanlı bir izin modeli
- Proses 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 amacı, kullanıcı kaynaklarını birbirinden izole etmektir. Linux güvenlik felsefesi, kullanıcı kaynaklarını birbirinden korumaktır. Böylece, Linux:
- 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ı tüketmemesini sağlar (örneğin, telefon, GPS ve Bluetooth)
Uygulama Korumalı Alanı
Android'in uygulama güvenliği, uygulamaları birbirinden ayıran ve uygulamaları ve sistemi kötü amaçlı uygulamalardan koruyan uygulama sanal alanı tarafından sağlanır. Daha fazla ayrıntı için bkz. Uygulama Korumalı Alanı .
Sistem Bölmesi ve Güvenli Mod
Sistem bölümü, Android'in ç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 Modda 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 okumamasını sağlar. Android durumunda, her uygulama kendi kullanıcısı olarak çalışır. Geliştirici, dosyaları diğer uygulamalarla açıkça paylaşmadıkça, bir uygulama tarafından oluşturulan dosyalar başka bir uygulama tarafından okunamaz veya değiştirilemez.
Gelişmiş Güvenlikli Linux
Android, erişim denetimi ilkelerini uygulamak ve süreçler üzerinde zorunlu erişim denetimi (mac) oluşturmak için Gelişmiş Güvenlikli Linux (SELinux) kullanır. Ayrıntılar için Android'de Güvenliği Geliştirilmiş Linux'a bakın.
Doğrulanmış önyükleme
Android 6.0 ve sonraki sürümleri, doğrulanmış önyüklemeyi ve cihaz eşleyici-verity'yi destekler. Doğrulanmış önyükleme, bir donanım güven kökünden sistem bölümüne kadar aygıt yazılımının bütünlüğünü garanti eder. Önyükleme sırasında, her aşama, yürütmeden önce bir sonraki aşamanın bütünlüğünü ve orijinalliğini kriptografik olarak doğrular.
Android 7.0 ve sonraki sürümleri, 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.
Daha fazla ayrıntı için Doğrulanmış önyükleme bölümüne bakın.
kriptografi
Android, uygulamalar tarafından kullanılmak üzere bir dizi şifreleme API'si sağlar. Bunlar, AES, RSA, DSA ve SHA gibi standart ve yaygın olarak kullanılan kriptografik temellerin uygulamalarını içerir. Ek olarak, SSL ve HTTPS gibi daha yüksek seviyeli protokoller için API'ler sağlanır.
Android 4.0, uygulamaların özel anahtarlar ve sertifika zincirleri için sistem kimlik bilgisi deposunu kullanmasına izin vermek için KeyChain sınıfını tanıttı.
Cihazların Köklenmesi
Varsayılan olarak, Android'de yalnızca çekirdek ve çekirdek uygulamaların küçük bir alt kümesi kök izinleriyle çalışır. Android, kök izinlerine sahip bir kullanıcının veya uygulamanın işletim sistemini, çekirdeği veya başka herhangi bir uygulamayı değiştirmesini engellemez. Genel olarak, kök tüm uygulamalara ve tüm uygulama verilerine tam erişime sahiptir. Uygulamalara root erişimi vermek için bir Android cihazındaki izinleri değiştiren kullanıcılar, kötü amaçlı uygulamalara ve olası uygulama kusurlarına karşı güvenlik açığını artırır.
Sahip oldukları bir Android cihazını değiştirme yeteneği, Android platformuyla çalışan geliştiriciler için önemlidir. Birçok Android cihazında kullanıcılar, alternatif bir işletim sisteminin yüklenmesine izin vermek için önyükleyicinin kilidini açma olanağına sahiptir. Bu alternatif işletim sistemleri, bir sahibin uygulamalarda ve sistem bileşenlerinde hata ayıklama amacıyla kök erişimi kazanmasına veya Android API'leri tarafından uygulamalara sunulmayan özelliklere erişmesine izin verebilir.
Bazı cihazlarda, bir cihazın fiziksel kontrolüne ve bir USB kablosuna sahip olan bir kişi, kullanıcıya kök ayrıcalıkları sağlayan yeni bir işletim sistemi kurabilir. Önyükleyici kilit açma mekanizması, herhangi bir mevcut kullanıcı verisinin güvenliğinin ihlal edilmesini önlemek için, kilit açma adımının bir parçası olarak önyükleyicinin tüm mevcut kullanıcı verilerini silmesini gerektirir. Bir çekirdek hatasından veya güvenlik açığından yararlanarak elde edilen kök erişimi, bu korumayı atlayabilir.
Verileri cihazda depolanan bir anahtarla şifrelemek, uygulama verilerini kök kullanıcılardan korumaz. Uygulamalar, sunucu veya kullanıcı parolası gibi cihaz dışında depolanan bir anahtarla şifreleme kullanarak bir veri koruma katmanı ekleyebilir. Bu yaklaşım, anahtar yokken geçici koruma sağlayabilir, ancak bir noktada anahtarın uygulamaya sağlanması gerekir ve ardından 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, Android cihazlarda tam dosya sistemi şifrelemesi, şifreleme anahtarını korumak için cihaz şifresini kullanır, bu nedenle önyükleyiciyi veya işletim sistemini değiştirmek, kullanıcının cihaz şifresi olmadan kullanıcı verilerine erişmek için yeterli değildir.
Kullanıcı Güvenliği Özellikleri
Dosya Sistemi Şifrelemesi
Android 3.0 ve sonraki sürümleri, tam dosya sistemi şifrelemesi sağlar, böylece tüm kullanıcı verileri çekirdekte şifrelenebilir.
Android 5.0 ve sonraki sürümleri, tam disk şifrelemeyi destekler. Tam disk şifreleme, bir cihazın kullanıcı verileri bölümünün tamamını korumak için kullanıcının cihaz parolasıyla korunan tek bir anahtar kullanır. Önyükleme sırasında, diskin herhangi bir bölümüne erişilebilir olmadan önce kullanıcıların kimlik bilgilerini sağlamaları gerekir.
Android 7.0 ve sonraki sürümleri, dosya tabanlı şifrelemeyi destekler. Dosya tabanlı şifreleme, farklı dosyaların bağımsız olarak açılabilen farklı anahtarlarla şifrelenmesine olanak tanır.
Dosya sistemi şifrelemesinin uygulanması hakkında daha fazla ayrıntı Şifreleme bölümünde mevcuttur.
Şifre Koruması
Android, bir cihaza erişim sağlamadan önce kullanıcı tarafından sağlanan bir şifreyi doğrulayacak şekilde yapılandırılabilir. Bu parola, aygıtın yetkisiz kullanımını önlemenin yanı sıra, tam dosya sistemi şifrelemesi için şifreleme anahtarını korur.
Bir aygıt yöneticisi tarafından parola kullanımı ve/veya parola karmaşıklığı kuralları gerekebilir.
Cihaz Yönetimi
Android 2.2 ve sonraki sürümleri, 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 iyileştirmek için API'leri kullanır. Exchange yöneticileri, E-posta uygulaması aracılığıyla, cihazlar arasında alfasayısal parolalar veya sayısal PIN'ler dahil parola ilkelerini uygulayabilir. Yöneticiler ayrıca kaybolan veya çalınan el cihazlarını uzaktan silebilir (yani fabrika varsayılanlarını geri yükleyebilir).
Android sistemine dahil olan uygulamalarda kullanıma ek olarak, bu API'ler, Cihaz Yönetimi çözümlerinin üçüncü taraf sağlayıcıları tarafından kullanılabilir. API ile ilgili ayrıntılar, Cihaz Yönetimi'nde sağlanır.