Android Q: Android 10'a gelen tüm yeni güvenlik ve gizlilik özellikleri

Google I/O'da Android Q'nun getirdiği iyileştirmeleri öğrendik. Yeni güvenlik ve gizlilik özellikleri ve iyileştirmeleri yeni Android işletim sisteminin her yerinde.

Android işletim sisteminin her yeni sürümü tasarım, özellikler, API'ler ve daha pek çok konuda neredeyse her açıdan iyileştirmeler getiriyor. Bu ayın başındaki Google I/O'da tüm bunları öğrendik. Android Q'daki iyileştirmeler getirecek ve tabii ki yeni gizlilik ve güvenlik duyuruları da konferansın dışında kalmadı. Platform güvenliği bir işletim sisteminin en önemli yönlerinden biridir, özellikle de her yere cebimizde taşıdığımız bir işletim sistemi için. Android güvenli olmasaydı, işlevlerin yarısı kadar bile ona güvenmezdik. NFC ödemeleri söz konusu olamaz, dosya paylaşımı en iyi ihtimalle şüpheli olur ve diğer cihazlara bağlanmak düpedüz delilik olur. Uzun süredir devam eden sürüm parçalanması sorununa rağmen Google, güvenlik sorunlarının sayısını minimumda tutma konusunda son derece başarılı bir performans sergiledi.

Android, hem zengin özelliklere sahip hem de son derece güvenli bir işletim sistemi haline geldi. Ancak elbette her zaman iyileştirmeye yer vardır. Bu güvenliğe katkıda bulunan birçok faktör var ve bunlardan birkaçı Android Q ile bir şekilde geliştiriliyor.


Şifreleme

En temel güvenlik yöntemlerinden biri olan her cihazın güçlü şifrelemeyi desteklemesi önemlidir. Bugünlerde pek çok OEM, cihazlarını özel şifreleme donanımıyla gönderiyor. Bu faydalı olmakla birlikte aynı zamanda pahalıdır. Bu nedenle, özel donanım genellikle orta ve yüksek seviyeli cihazlar için sınırlandırılmıştır. Bu, düşük kaliteli cihazların yapamamak şifrelemeyi destekler, ancak donanım hızlandırmalı şifreleme olmadığında, yavaş okuma/yazma süreleri nedeniyle genel kullanıcı deneyimi kötüleşir. Adiantum'un devreye girdiği yer burası.

Adiantum

Şubat ayında Google alternatif olarak Adiantum'u duyurdu alt seviye telefonlar için şifreleme algoritması normal AES komut setlerini desteklemeyen. Adiantum özel olarak herhangi bir özel donanıma ihtiyaç duymadan çalışacak şekilde tasarlanmıştır. Android'in normal AES şifrelemesine daha hafif bir alternatif olarak hizmet eder. Google'ın kıyaslamaları aslında AES'ten 5 kat daha hızlı olduğunu, dezavantajının ise güvenlikten biraz ödün vermesi olduğunu söyleyin. Bu, onu Android Go Edition tarafından desteklenenler gibi daha düşük seviye telefonlar için ideal bir aday haline getiriyor. Adiantum aynı zamanda akıllı saatler ve çeşitli Nesnelerin İnterneti cihazları gibi ürünler için de geçerlidir.

Şu ana kadar Adiantum isteğe bağlıydı; üreticiler bunu Android Pie ile başlayan cihazlarda etkinleştirebilirdi, ancak bu, varsayılan şifreleme algoritması değildi. Artık Adiantum yerel olarak Android Q'nun bir parçası olarak dahil ediliyor. Bu, Q ile başlatılan tüm cihazların istisnasız olarak kullanıcı verilerini şifrelemesinin gerekli olacağı anlamına gelir. Sonuç olarak, Android Q ile başlatılan cihazların, Adiantum aracılığıyla olsun veya olmasın, depolama şifrelemesine sahip olması garanti edilir.

Jetpack Güvenlik Kütüphanesi

Jetpack bir dizi Android destek kütüphanesidir ve en yeni eklemelerden biri alfa aşamasındadır: Jetpack Güvenlik Kitaplığı. Kitaplık, donanım destekli anahtar depolarının yönetimi ve anahtarların oluşturulması ve doğrulanması gibi işlemleri gerçekleştirerek uygulamanızın güvenliğini sağlama sürecini basitleştirir.

TLS1.3

Ancak şifrelemenin geliştirildiği tek alan depolama değildir. Diğer cihazlarla iletişim, kullanıma sunulmasıyla birlikte çok daha iyileştirildi. TLS 1.3 desteği varsayılan olarak. TLS 1.3, Ağustos 2018'de IETF tarafından son şekli verilen en son ağ şifreleme standardıdır. TLS 1.3, daha fazla müzakere anlaşmasını şifreleyerek veri alışverişi için daha fazla gizlilik sağlar. Üstelik bağlantı kurulumu el sıkışmasından tüm gidiş-dönüş yolculuğunun kısaltılması nedeniyle TLS 1.2'den daha hızlıdır. Daha verimli modern algoritmalarla birleştiğinde bu, hızda %40'a kadar bir artış sağlar.

Google Chrome'da TLS 1.3. Kaynak: Google.

TLS artık doğrudan Google Play'den güncellenebiliyor çünkü "Conscrypt" bileşeninin bir parçası. Bununla ilgili daha fazla bilgiyi ve Project Mainline'ı okuyabilirsiniz. Burada.

Cihazlarımızda her gün çok sayıda hassas işleme güvendiğimiz göz önüne alındığında, yükseltilmiş TLS her zamankinden daha önemli. Biniş kartlarının benzerlerini saklama ve hatta dijital sürücü lisansları gelecekte bir noktada - Android'de, tüm cihazların kullanıcı verilerini mümkün olan en iyi şekilde şifrelemesi gerektiği anlamına gelir. Adiantum ve zorunlu şifreleme, en hassas verilerin bile en ucuz cihazlarda saklanmasının yolunu açacaktır. Ancak Google'ın Q sürümünde Android'in güvenliğini artırmasının tek yolu şifreleme değil.


Android Q'daki İzinler ve Gizlilik değişiklikleri

Kapsamlı Depolama

Kapsamlı Depolama, uygulamaların kendi korumalı alanda uygulamaya özel dizinlerinde bulunmayan harici depolamadaki dosyaları okumasını/yazmasını kısıtlamak için kullanılan yeni bir korumadır. Google'ın hedefi üç yönlüdür: Hangi uygulamaların hangi dosyalar üzerinde kontrol sahibi olduğunun daha iyi ilişkilendirilmesi, uygulama verilerinin korunması ve kullanıcı verilerinin korunması.

Google, paylaşılan ses, video ve resim içeriği için MediaStore API'sini iki katına çıkarıyor. Varsayılan olarak tüm uygulamalar MediaStore'a kendi dosyalarını ekleyebilir, değiştirebilir veya silebilir. Görseller, MediaStore. Video ve MediaStore. Herhangi bir izne ihtiyaç duymadan ses koleksiyonları. Android Q ayrıca yeni bir özellik daha ekliyor MediaStore. İndirilenler MediaStore API'sini kullanan tüm uygulamaların katkıda bulunabileceği, kullanıcı tarafından indirilen içeriği depolamak için koleksiyon. Korumalı alanda uygulamaya özel dizinlerde saklanan dosyalar, kaldırma işlemi sonrasında silinirken, MediaStore koleksiyonlarına katkıda bulunan tüm dosyalar, kaldırma işleminden sonra da varlığını sürdürür.

Başka bir uygulama tarafından oluşturulan dosyalara (dosya MediaStore koleksiyonlarından birinde veya bunların dışında olsun) erişmek için uygulamanın Depolama Erişimi Çerçevesini kullanması gerekir. Ayrıca, uygulamanıza yeni ACCESS_MEDIA_LOCATION izni verilmediği sürece görsellerin EXIF ​​meta verileri çıkarılır. Android Q'da uygulamalar, getExternalVolume() işlevini kullanarak birim adını sorgulayarak medyanın hangi depolama cihazına aktarılacağını da kontrol edebilir.

Google başlangıçta hedef API seviyelerine bakılmaksızın Android Q'daki tüm uygulamalara Kapsamlı Depolama kısıtlamaları uyguladı, ancak geri bildirimlerden sonra şirket bu kısıtlamaları kaldırdı. geliştiricilere daha fazla zaman vermek ayarlamalar yapmak için. Kapsamlı Depolama değişikliklerine ilişkin tüm ayrıntıları burada bulabilirsiniz bu sayfadave Google'ın paylaşılan depolamaya yönelik en iyi uygulamalara ilişkin önerileri hakkında daha fazla bilgiyi şu adresten edinebilirsiniz: bu Google I/O'yu izliyorum konuşmak.

API düzeyi < 23'ü hedefleyen uygulamalar için uyarılar

Ancak izin kısıtlamaları burada bitmiyor. 23'ten düşük bir API düzeyini (Android Lollipop veya daha eski) hedefleyen bir uygulamanın yüklenmesi, söz konusu uygulamanın kurulum sırasında hassas izinler talep etmesi durumunda işletim sisteminin kullanıcıya bir uyarı görüntülemesine neden olacaktır. Kurulumdan önce kullanıcılar, devam etmeden önce uygulamaya hangi izinleri vermek istediklerini manuel olarak belirleme fırsatına sahip olacak. Bu nedenle, Android Q artık uygulamaların çalışma zamanı izinlerini aşmasına izin vermiyor.

CopperheadOS gibi, stok Android Q da artık kullanıcının bir uygulamayı ilk kez çalıştırmadan önce istenen tüm tehlikeli izinleri devre dışı bırakmasına olanak tanıyor. Bu yalnızca, çalışma zamanı izinlerinin sunulmasından önceki (Android Marshmallow'da) API düzeyi 22 veya altını hedefleyen uygulamalar için geçerlidir.

Sonunda Bubbles API'sinin lehine SYSTEM_ALERT_DEPRECATION

Bubbles API'si iş başında. Kaynak: Google.

Yer paylaşımı izni (SYSTEM_ALERT_WINDOW) artık Android Q (Go Edition) üzerinde çalışan uygulamalara verilemeyecektir. Go Edition olmayan cihazlar için Google, geliştiricileri yeni Bubbles API'ye yönlendiriyor. Bubbles API, şu tarihte tanıtılan bir özelliktir: Android Q Beta 2 bu da Facebook Messenger'ın sohbet başlıklarına benzer işlevlere olanak tanır. Uygulamalardan gelen bildirimler, ekranın kenarlarında, kullanıcı tarafından dokunulduğunda genişleyen küçük kabarcıklar olarak görünüyor. Balonun içinde bir uygulama bir Etkinlik görüntüleyebilir.

Bu değişiklik gerekliydi çünkü uygulamaların diğer uygulamaların üzerine serbestçe yer paylaşımı yapmasına izin vermek bariz güvenlik riskleri oluşturuyor. Rezil "Pelerin ve Hançer"exploit bu zayıflığı yoğun bir şekilde kullandı. Yer paylaşımı API'sinin işlevselliği Android Oreo kadar erken bir zamanda kısıtlanmıştı, ancak artık Android Q'nun Go sürümü, API'ye erişimi bir değişiklikle tamamen kaldırmıştır. tamamen kullanımdan kaldırmak için gelecekteki sürüm.

Arka Plan Etkinliği Başlatma Kısıtlamaları

Arka plandaki uygulamalar, hedef API düzeyleri ne olursa olsun, telefonun kilidi açıkken artık otomatik olarak bir Etkinlik başlatamaz. Uygulamaların artık etkinlikleri başlatabileceği koşulların tam bir listesi var; bunları okuyabilirsiniz Burada. Bu koşulları karşılamayan ve acilen etkinlik başlatmak isteyen arka plan uygulamalarının artık bunu kullanıcıya bildirim yoluyla bildirmesi gerekecek. Bildirim, bekleyen bir tam ekran amacı ile oluşturulduysa, ekran kapalıyken amaç hemen başlatılır; alarmlar veya gelen çağrılar için kullanışlıdır.

Arka Plan Panosuna Erişim Kısıtlaması

Arka planda pano erişimi artık mümkün değil. Ön planda olmayan veya varsayılan giriş yöntemi olarak ayarlanmayan hiçbir uygulama hiçbir şekilde panonuzu okuyamaz. Bu, özellikle pano yöneticileri gibi uygulamaları etkiliyor. Google, bu değişikliğin yalnızca Android Q'yu hedefleyen uygulamaları etkilediğini söylüyor ancak testlerimiz kısıtlamanın ayrımcılık yapmadığını gösteriyor; denediğimiz hiçbir uygulama panoyu göremedi.

Bu değişiklik elbette anlamlıdır. Sıklıkla hassas bilgileri (şifreler ve kredi kartı ayrıntıları gibi) panoya kopyalarız, ancak pano yöneticilerinin boşa gittiğini görmek yine de utanç verici.

Yalnızca uygulama kullanımdayken konum erişimi

Yeni konum izni seçenekleri

Kullanıcı tarafından etkinleştirilen yeni bir ayar, uygulamaların yalnızca uygulama kullanımdayken konumunuza erişmesine izin verir. En son Android Q beta sürümü, bir uygulamaya konuma kalıcı erişim izni verip vermediğinizi hatırlatan bir bildirim de ekledi.

Roller

Roller

Yeni bir "Roller" API'si eklendi. Roller esasen önceden ayarlanmış izinlere sahip gruplara erişim. Örneğin, galeri rolüne sahip uygulamalar medya klasörlerinize erişebilirken, çevirici rolüne sahip uygulamalar aramaları yönetebilir. Kullanıcı tarafından belirli bir rol verilen uygulamaların da gerekli bileşenlere sahip olması gerekir. Örneğin galeri rolüne sahip uygulamaların eylem amacı filtresine sahip olması gerekir android.niyet.aksiyon.ANA ve kategori amacı filtresi android.intent.category. APP_GALLERY ayarlarda galeri uygulaması olarak görünmek için.

Sensörler Kapalı Hızlı Ayarlar kutucuğu

Sensörler Hızlı Ayarlar kutucuğu

Okumaları kapatan yeni bir "Sensörler kapalı" hızlı ayarlar kutucuğu bulunmaktadır. Tümü Gerçek gizlilik için cihazınızda sensörler (ivmeölçer, jiroskop vb.) bulunur. Bu Hızlı Ayarlar kutucuğu varsayılan olarak gizlidir ancak Geliştirici seçeneklerindeki "hızlı ayarlar geliştirici kutucuklarına" giderek etkinleştirilebilir.

/proc/net ile ilgili kısıtlamalar

Uygulamalar artık erişim işlemi/netnetstat gibi hizmetleri artık geçerli hale getirmiyor. Bu, kullanıcıları hangi web sitelerine ve hizmetlere bağlandıklarını izleyen kötü amaçlı uygulamalardan korur. VPN'ler gibi sürekli erişime ihtiyaç duyan uygulamaların Ağ İstatistikleri Yöneticisi Ve Bağlantı Yöneticisi sınıflar.

Rastgele MAC Adresleri

MAC adresiniz, ağların hangi cihazın hangisi olduğunu hatırlamak için kullandığı benzersiz bir tanımlayıcıdır. Android Q'da, yeni bir ağa her bağlandığınızda cihazınız yeni, rastgele bir MAC adresi kullanacaktır. Sonuç olarak, ağlar konumunuzu izleyemiyor Bağlandığınız WiFi ağlarını telefonunuzun MAC adresiyle eşleştirerek. Cihazın gerçek fabrika MAC adresi yine de uygulamalar aracılığıyla edinilebilir. getWifiMacAddress() emretmek.


Android Q'da Platform Sağlamlaştırma

Android'deki tek bir hata, saldırganların artık işletim sistemine tam erişime sahip olduğu veya herhangi bir güvenlik sistemini atlayabilecekleri anlamına gelmiyor. Bunun nedeni kısmen süreç izolasyonu, saldırı yüzeyinin azaltılması, mimari ayrıştırma ve kötüye kullanımın azaltılması gibi bir dizi önlemdir. Bu korumalar, güvenlik açıklarından yararlanmayı daha zor, hatta imkansız hale getirir. Sonuç olarak saldırganların hedeflerine ulaşabilmeleri için genellikle çok sayıda güvenlik açığına ihtiyaçları vardır. Geçmişte saldırılar gördük. DRAMMER gibi birden fazla istismarı birbirine zincirleyerek çalışır.

Android Q, bunun gibi önlemleri alır ve bunları çekirdeğin yanı sıra medya ve Bluetooth bileşenleri gibi daha hassas alanlara da uygular. Bu, bazı belirgin iyileştirmeler getiriyor.

  • Yazılım codec bileşenleri için kısıtlı bir sanal alan.
  • Güvenilmeyen içeriği işleyen bileşenlerdeki tüm güvenlik açığı sınıflarını azaltmak için üretimde sanitizatörlerin kullanımının artması.
  • Geriye dönük Kontrol Akışı Bütünlüğü (CFI) sağlayan ve LLVM'nin CFI'sı tarafından sağlanan ileri kenar korumasını tamamlayan Gölge Çağrı Yığını.
  • eXecute-Only Memory (XOM) kullanarak Adres Alanı Düzeni Rastgeleleştirmesini (ASLR) sızıntılara karşı koruma.
  • Yığınla ilgili bir dizi güvenlik açığından yararlanmayı daha da zorlaştıran Scudo güçlendirilmiş ayırıcının tanıtılması.

Bu çok fazla yazılım jargonudur. Bunun özü, ilk olarak, yazılım codec bileşenlerinin artık daha az ayrıcalığa sahip olan sanal alanlarda çalıştırılmasıdır. Kötü amaçlı yazılımların cihazınıza zarar verebilecek komutları çalıştırma olasılığı daha düşüktür (örneğin, ile ilgili Sahne korkusu 2015'e çok geri döndük.

Yazılım codec bileşenleri için kısıtlı bir sanal alan. Kaynak: Google.

İkinci olarak, Android artık taşmaların yanı sıra daha fazla yerde sınır dışı dizi erişimini de kontrol ediyor. Taşmaların önlenmesi ve süreçlerin güvenli bir şekilde başarısız olması yönünde talimat verilmesi, kullanıcı alanındaki güvenlik açıklarının yüzdesini önemli ölçüde azaltır. Bunun anlamı, eğer kötü amaçlı bir program kasıtlı olarak bir şeyin çökmesine neden olmaya çalışırsa var olmayan verilere erişim elde ettiğinizde, Android artık bunu tanıyacak ve programdan çıkacak. çöküyor.

Üçüncüsü, Gölge Çağrı Yığını, dönüş adreslerini ayrı bir gölge yığında depolayarak korur ve normal programların erişemeyeceği hale getirir. Dönüş adresleri genellikle işlevlerin işaretçileridir; bu nedenle, bu adreslerin korunması, saldırganların erişmemeleri gereken işlevlere erişememesini sağlamak açısından önemlidir.

Dördüncüsü, ASLR, programların bellekte depolandığı yerleri rastgele seçen ve böylece programların bellekte saklanmasını sağlayan bir koruma yöntemidir. Diğer programların konumuna bağlı olarak programların bellekte nerede saklandığını anlamak daha zordur. programlar. Yalnızca eXecute belleği, kodu okunamaz hale getirerek bunu güçlendirir.

Son olarak Scudo, yığın tabanlı güvenlik açıklarından yararlanmayı çok daha zor hale getirecek şekilde belleği proaktif bir şekilde yöneten dinamik bir yığın ayırıcıdır. Bu konuda daha fazlasını okuyabilirsiniz Burada.


Kimlik doğrulama

Android Q'daki BiometricPrompt Güncellemeleri

Google, yeni BiometricPrompt API'sini bir yıldan fazla bir süre önce tanıttı. Android P Geliştirici Önizlemesi 2. Biyometrik kilit açma yöntemleri için genel bir Android istemi olması amaçlanmıştı. Buradaki fikir, parmak izi taramasından daha fazlasını destekleyen cihazların kullanılmasıdır; Samsung Galaxy S serisinde iris taraması yapan kullanıcılar, uygulamalar doğrulama istediğinde bu yöntemleri kullanabilecek.

Android Q, yüz ve parmak izi doğrulama için güçlü bir destek sağlamanın yanı sıra API'yi örtülü kimlik doğrulamayı destekleyecek şekilde genişletiyor. Açık kimlik doğrulama, devam etmeden önce kullanıcının bir şekilde kimlik doğrulaması yapmasını gerektirirken, örtülü kimlik doğrulama daha fazla kullanıcı etkileşimine ihtiyaç duymaz.

BiometricPrompt API'nin örtülü ve açık akışı. Kaynak: Google.

Üstelik uygulamalar artık basit bir işlemle bir cihazın biyometrik kimlik doğrulamayı destekleyip desteklemediğini kontrol edebiliyor. işlev çağrısı, bu özelliği kullanmayan cihazlarda BiometricPrompt'u çağırarak zaman kaybetmemelerini sağlar. destekleyin. Bunun ideal kullanımı, uygulamaların bir cihazın biyometrik kimlik doğrulamayı destekleyip desteklemediğine bağlı olarak "Biyometrik oturum açmayı etkinleştir" ayarı vermek istemesi olabilir.

Elektronik Kimlik desteğinin yapı taşları

Bu yılın başlarında Google'ın elektronik kimlik desteği üzerinde çalışıyoruz Android'de. I/O'da Google, özelliğin ilerleyişi hakkında bizi bilgilendirdi. Google, mobil sürücü lisanslarının uygulanmasını standartlaştırmak için ISO ile birlikte çalıştıklarını ve elektronik pasaportların da hazırlık aşamasında olduğunu söylüyor. Geliştiriciler için Google, kimlik uygulamalarının oluşturulmaya başlanabilmesi için bir Jetpack kitaplığı sağlayacak.


Android Q'da Project Mainline

Project Mainline, Google'ın belirli sistem modülleri ve uygulamalarının parçalanmasını azaltmaya yönelik büyük bir girişimidir. Google, Play Store aracılığıyla yaklaşık 12 sistem bileşeninin güncellemelerini kontrol edecek. Project Mainline'ı derinlemesine konuştuk önceki bir makalede daha fazlasını okumakla ilgileniyorsanız.


Çözüm

Güvenlik her zaman Android'in gelişiminin temel bir parçası olmuştur. Google, Android'i en son güvenlik özellikleriyle güncel tutmanın yanı sıra kendi başına bazı yenilikler yapma konusunda etkileyici bir iş çıkardı. Bu geliştirme sürecini, verilerinizin her zamankinden daha güvenli olmasını sağlamak için yapılan güvenlik özellikleriyle dolu Android Q ile sürdürüyorlar.


Kaynak 1: Android Q Güvenliğindeki Yenilikler [Google]

Kaynak 2: Android'de Güvenlik: Sırada Ne Var [Google]

Kaynak 3: Sertleştirme Geliştirmelerini Sıralayın [Google]

Mishaal Rahman ve Adam Conway'in katkılarıyla.