Android güvenlik ekibi, Android platformunda ve Android cihazlarla birlikte gelen birçok temel Android uygulamasında keşfedilen güvenlik açıklarını yönetmekten sorumludur.
Android güvenlik ekibi, güvenlik açıklarını dahili araştırmalarla bulur ve üçüncü tarafların bildirdiği hatalara yanıt verir. Harici hataların kaynakları arasında güvenlik açığı formu aracılığıyla bildirilen sorunlar, yayınlanmış ve yayınlanmamış akademik araştırmalar, yukarı akış açık kaynak proje bakımcıları, cihaz üreticisi iş ortaklarımızdan gelen bildirimler ve bloglarda veya sosyal medyada yayınlanan herkese açık sorunlar yer alır.
Güvenlik sorunlarını bildirme
Tüm geliştiriciler, Android kullanıcıları veya güvenlik araştırmacıları, güvenlik açığı formu aracılığıyla Android güvenlik ekibini olası güvenlik sorunları hakkında bilgilendirebilir.
Güvenlik sorunu olarak işaretlenen hatalar harici olarak görünmez ancak sorun değerlendirildikten veya çözüldükten sonra görünür hale gelebilir. Bir güvenlik sorununu çözmek için yama veya Compatibility Test Suite (CTS) testi göndermeyi planlıyorsanız lütfen bunu hata raporuna ekleyin ve kodu AOSP'ye yüklemeden önce yanıt bekleyin.
Hataları önceliklendirme
Güvenlik açığını ele alırken ilk görev, hatanın önem derecesini ve Android'in hangi bileşeninin etkilendiğini belirlemektir. Önem derecesi, soruna nasıl öncelik verileceğini belirler. Bileşen ise hatayı kimin düzelteceğini, kimin bilgilendirileceğini ve düzeltmenin kullanıcılara nasıl dağıtılacağını belirler.
Bağlam türleri
Bu tabloda, donanım ve yazılım güvenlik bağlamlarının tanımları yer almaktadır. Bağlam, genellikle işlediği verilerin hassasiyetine veya çalıştığı alana göre tanımlanabilir. Tüm güvenlik bağlamları tüm sistemler için geçerli değildir. Bu tablo, en az ayrıcalıklıdan en çok ayrıcalıklıya doğru sıralanır.
| Bağlam türü | Tür tanımı |
|---|---|
| Sınırlı bağlam |
Yalnızca en az sayıda iznin sağlandığı kısıtlı bir yürütme ortamı. Örneğin, güvenilmeyen verileri korumalı alan ortamında işleyen güvenilir uygulamalar. |
| Ayrıcalıklı olmayan bağlam |
Ayrıcalıksız kodun beklediği tipik bir yürütme ortamı. Örneğin, untrusted_app_all özelliğiyle bir SELinux alanında çalışan bir Android uygulaması.
|
| Ayrıcalıklı bağlam |
Yükseltilmiş izinlere erişimi olabilen, birden fazla kullanıcının kimliği tanımlayabilecek bilgilerini işleyen ve/veya sistem bütünlüğünü koruyan ayrıcalıklı bir yürütme ortamı. Örneğin, SELinux untrusted_app alanında yasaklanacak özelliklere sahip veya privileged|signature izinlerine erişen bir Android uygulaması.
|
| OS çekirdeği |
Aşağıdaki işlevler:
|
| Güvenilir Donanım Tabanı (THB) | Genellikle SoC'de bulunan ve cihazın temel kullanım alanları için kritik işlevler sağlayan ayrı donanım bileşenleri (ör. hücresel temel bantlar, DSP'ler, GPU'lar ve makine öğrenimi işlemcileri). |
| Bootloader Chain | Cihazı başlatma sırasında yapılandıran ve ardından kontrolü Android OS'e aktaran bir bileşen. |
| Güvenilir yürütme ortamı (TEE) | Düşmanca bir işletim sistemi çekirdeğinden bile korunacak şekilde tasarlanmış bir bileşen (ör. TrustZone ve sanal makineleri işletim sistemi çekirdeğinden koruyan pKVM gibi hipervizörler). |
| Güvenli Enclave / Güvenlik Unsuru (SE) |
Introduction to Secure Elements (Güvenli Öğelere Giriş) bölümünde tanımlandığı gibi, cihazdaki diğer tüm bileşenlerden ve fiziksel saldırılardan korunacak şekilde tasarlanmış isteğe bağlı bir donanım bileşeni. Bazı Android cihazlarda bulunan Titan-M çipi bu kapsamdadır. |
Önem derecesi
Bir hatanın ciddiyeti genellikle hatanın başarıyla kullanılması durumunda ortaya çıkabilecek potansiyel zararı yansıtır. Ciddiyet düzeyini belirlemek için aşağıdaki ölçütleri kullanın.
| Derecelendirme | Başarılı saldırının sonucu |
|---|---|
| Kritik |
|
| Yüksek |
|
| Orta |
|
| Düşük |
|
| Önemsiz Güvenlik Etkisi (NSI) |
|
Önem düzeyi değiştiricileri
Güvenlik açıklarının önem derecesini belirlemek genellikle kolay olsa da derecelendirmeler koşullara göre değişebilir.
| Neden | Efekt |
|---|---|
| Saldırıyı gerçekleştirmek için ayrıcalıklı bağlam olarak çalıştırılması gerekir (TEE, SE ve pKVM gibi hipervizörler için geçerli değildir). | -1 Önem Derecesi |
| Güvenlik açığına özgü ayrıntılar, sorunun etkisini sınırlar. | -1 Önem Derecesi |
| Doğrudan cihaz sahibinden biyometrik bilgi gerektiren biyometrik kimlik doğrulama atlama | -1 Önem Düzeyi |
| Derleyici veya platform yapılandırmaları, kaynak kodundaki bir güvenlik açığını azaltır. | Temel güvenlik açığı orta veya daha yüksek önem derecesine sahipse orta önem derecesi |
| Cihazın iç kısımlarına fiziksel erişim gerektirir ve cihaz kapalıyken veya açıldıktan sonra kilidi açılmamışken de mümkündür. | -1 Önem Düzeyi |
| Cihaz açıkken ve daha önce kilidi açılmışken cihazın iç kısımlarına fiziksel erişim gerektirir. | -2 Önem Düzeyi |
| Bootloader zincirinin kilidinin açılmasını gerektiren yerel saldırı | Düşükten yüksek olmamalıdır. |
| Cihazda Geliştirici Modu'nun veya kalıcı geliştirici modu ayarlarının etkinleştirilmesini gerektiren (ve Geliştirici Modu'nun kendisinde bir hata olmayan) yerel saldırılar. | Düşükten yüksek olmamalıdır. |
| Google tarafından sağlanan SEPolicy kapsamında hiçbir SELinux alanı işlemi gerçekleştiremiyorsa | Güvenlik Üzerindeki Etkisi Önemsiz |
Yerel, yakın ve uzak
Uzaktan saldırı vektörü, hatanın bir uygulama yüklenmeden veya cihaza fiziksel erişim olmadan kullanılabileceğini gösterir. Bu kapsamda, bir web sayfasına göz atarak, e-posta okuyarak, SMS mesajı alarak veya saldırgan bir ağa bağlanarak tetiklenebilen hatalar yer alır.
Yakın saldırı vektörleri uzaktan olarak kabul edilir. Bunlar arasında yalnızca hedef cihaza fiziksel olarak yakın olan bir saldırgan tarafından kullanılabilen hatalar (ör. hatalı biçimlendirilmiş kablosuz veya Bluetooth paketlerinin gönderilmesini gerektiren bir hata) yer alır. Ultra geniş bant (UWB) ve NFC tabanlı saldırıları yakın ve dolayısıyla uzaktan saldırı olarak değerlendiriyoruz.
Yerel saldırılar için saldırganın kurbana önceden erişmiş olması gerekir. Yalnızca yazılımla ilgili varsayımsal bir örnekte bu, mağdurun yüklediği kötü amaçlı bir uygulama veya çalıştırmayı kabul ettiği bir Hazır Uygulama aracılığıyla olabilir.
Başarıyla eşlenmiş cihazlar (ör. Bluetooth yardımcı cihazlar) yerel olarak kabul edilir. Eşlenen cihaz ile eşleme akışına katılan cihaz arasında ayrım yaparız.
- Kullanıcının eşleştirilen diğer cihazı tanımlama (ör. kimlik doğrulama) yeteneğini azaltan hatalar yakın olarak kabul edilir ve bu nedenle uzaktandır.
- Eşleme akışı sırasında ancak kullanıcı izni (ör. yetkilendirme) verilmeden önce oluşan hatalar yakınlık hatası olarak kabul edilir ve bu nedenle uzaktan düzeltilebilir.
- Kullanıcı izni alındıktan sonra oluşan hatalar, eşleme işlemi başarısız olsa bile yerel olarak kabul edilir.
Fiziksel saldırı vektörleri yerel olarak kabul edilir. Bunlar arasında yalnızca cihaza fiziksel erişimi olan bir saldırgan tarafından istismar edilebilecek hatalar (ör. kilit ekranındaki bir hata veya USB kablosunun takılmasını gerektiren bir hata) yer alır. Cihazların USB'ye takılıyken kilidinin açılması yaygın bir durum olduğundan, USB bağlantısı gerektiren saldırılar, cihazın kilidinin açılması gerekip gerekmediğine bakılmaksızın aynı ciddiyet derecesine sahiptir.
Ağ güvenliği
Android, tüm ağların saldırı enjekte edebileceğini veya trafiği gözetleyebileceğini varsayar. Bağlantı katmanı güvenliği (ör. kablosuz şifreleme), bir cihaz ile bağlı olduğu erişim noktası arasındaki iletişimin güvenliğini sağlasa da cihaz ile iletişim kurduğu sunucular arasındaki zincirde kalan bağlantıların güvenliğini sağlamaz.
Buna karşılık HTTPS genellikle iletişimin tamamını uçtan uca korur. Verileri kaynağında şifreler, ardından nihai hedefine ulaştığında yalnızca bir kez şifresini çözüp doğrular. Bu nedenle, bağlantı katmanı ağ güvenliğini tehlikeye atan güvenlik açıkları, HTTPS/TLS'deki güvenlik açıklarından daha az ciddi olarak değerlendirilir: İnternetteki çoğu iletişim için tek başına Wi-Fi şifrelemesi yeterli değildir.
Biyometrik kimlik doğrulama
Biyometrik kimlik doğrulama zorlu bir alandır ve en iyi sistemler bile neredeyse eşleşen bir biyometriyle kandırılabilir (bkz. Android Geliştiricileri Blogu: Android 11'de kilit ekranı ve kimlik doğrulama iyileştirmeleri). Bu önem derecesi puanları, iki saldırı sınıfı arasında ayrım yapar ve son kullanıcıya yönelik gerçek riski yansıtmayı amaçlar.
İlk saldırı sınıfı, sahibinden alınan yüksek kaliteli biyometrik veriler olmadan biyometrik kimlik doğrulamanın genel olarak atlanmasına olanak tanır. Örneğin, bir saldırgan parmak izi sensörüne sakız yapıştırabilir ve sensörde kalan kalıntıya göre cihaza erişim izni verilebilir. Bu, herhangi bir savunmasız cihazda gerçekleştirilebilecek basit bir saldırıdır. Cihazın sahibi hakkında bilgi sahibi olmanız gerekmez. Genelleştirilebilir olması ve daha fazla sayıda kullanıcıyı etkileme potansiyeli nedeniyle bu saldırı, tam önem derecesi puanını alır (örneğin, kilit ekranını atlama için Yüksek).
Diğer saldırı türü ise genellikle cihaz sahibine dayalı bir sunum saldırısı aracı (sahtecilik) içerir. Bazen bu biyometrik bilgileri elde etmek nispeten kolaydır (örneğin, bir kullanıcının sosyal medyadaki profil resmi, biyometrik kimlik doğrulama sistemini kandırmak için yeterliyse biyometrik atlama, tam şiddet derecesi alır). Ancak bir saldırganın biyometrik verileri doğrudan cihaz sahibinden (ör. yüzünün kızılötesi taraması) alması gerekiyorsa bu, saldırıdan etkilenen kişi sayısını sınırlayacak kadar önemli bir engeldir. Bu nedenle, -1 değiştiricisi kullanılır.
SYSTEM_ALERT_WINDOW ve tapjacking
SYSTEM_ALERT_WINDOW ve dokunma hırsızlığı ile ilgili politikalarımız hakkında bilgi edinmek için BugHunter Üniversitesi'nin
Güvenlik üzerinde etkisi olmayan hatalar
sayfasındaki"Güvenlik açısından kritik olmayan bir ekranda dokunma hırsızlığı/SYSTEM_ALERT_WINDOW yer paylaşımı güvenlik açığı" bölümüne bakın.
Android Automotive OS'te çok kullanıcılı güvenlik
Android Automotive OS, diğer form faktörlerinden farklı bir çok kullanıcılı güvenlik modeli kullanır. Her Android kullanıcısı farklı bir gerçek kişi tarafından kullanılmak üzere tasarlanmıştır. Örneğin, aracı sahibinden ödünç alan bir arkadaşınıza geçici misafir kullanıcısı atanabilir. Bu gibi kullanım alanlarını desteklemek için kullanıcılar varsayılan olarak aracı kullanmak için gereken bileşenlere (ör. kablosuz ve hücresel ağ ayarları) erişebilir.
Etkilenen bileşen
Hatayı düzeltmekten sorumlu geliştirme ekibi, hatanın hangi bileşende olduğuna bağlıdır. Android platformunun temel bir bileşeni, özgün donanım üreticisi (OEM) tarafından sağlanan bir çekirdek sürücüsü veya Pixel cihazlarda önceden yüklenmiş uygulamalardan biri olabilir.
AOSP kodundaki hatalar, dahili depolarımızda Android mühendislik ekibi tarafından düzeltilir.
Bu bileşen, kullanıcıların güncellemeleri nasıl alacağını da etkiler. Çerçevedeki veya çekirdekteki bir hata, her OEM'in göndermesi gereken kablosuz (OTA) donanım yazılımı güncellemesi gerektirir. Google Play'de yayınlanan bir uygulamada veya kitaplıkta (ör. Gmail, Google Play Hizmetleri ya da WebView) bulunan bir hata, Google Play'den güncelleme olarak Android kullanıcılarına gönderilebilir.
İş ortaklarını bilgilendirme
AOSP'deki bir güvenlik açığı Android Güvenlik Bülteni'nde düzeltildiğinde Android iş ortaklarını sorun ayrıntıları hakkında bilgilendirir ve yamalar sağlarız. Geriye dönük olarak desteklenen sürümlerin listesi, her yeni Android sürümünde değişir. Desteklenen cihazların listesi için cihazınızın üreticisiyle iletişime geçin.
Kodu AOSP'ye yayınlama
Güvenlik hatası bir AOSP bileşenindeyse düzeltme, OTA kullanıcılara sunulduktan sonra AOSP'ye gönderilir.
Android güncellemelerini alma
Android sistem güncellemeleri genellikle OTA güncelleme paketleri aracılığıyla cihazlara gönderilir. Bu güncellemeler, cihazı üreten OEM'den veya cihaza hizmet sağlayan operatörden gelebilir. Google Pixel cihaz güncellemeleri, operatör teknik kabul (TA) test prosedüründen geçtikten sonra Google Pixel ekibi tarafından sağlanır. Google ayrıca cihazlara yan yükleme yapılabilecek Pixel fabrika görüntüleri de yayınlar.
Google hizmetlerini güncelleme
Android güvenlik ekibi, güvenlik hataları için yamalar sağlamanın yanı sıra kullanıcıları korumanın başka yolları olup olmadığını belirlemek için güvenlik hatalarını inceler. Örneğin, Google Play tüm uygulamaları tarar ve güvenlik hatasından yararlanmaya çalışan uygulamaları kaldırır. Google Play dışından yüklenen uygulamalar için Google Play Hizmetleri'nin yüklü olduğu cihazlar, Uygulamaları Doğrula özelliğini kullanarak kullanıcıları zararlı olabilecek uygulamalar konusunda uyarabilir.
Diğer kaynaklar
Android uygulama geliştiricileri için bilgiler: https://developer.android.com
Güvenlik bilgileri, Android Açık Kaynak ve Geliştirici sitelerinde yer alır. Başlamak için iyi yerler:
Raporlar
Android güvenlik ekibi bazen raporlar veya teknik incelemeler yayınlar. Daha fazla bilgi için Güvenlik Raporları'na bakın.