Google Ürün Uygulaması Şeffaflığı

Google uygulamalarına duyulan güveni artırmak için artık her Google ürün uygulamasını şeffaflık günlüğümüzde listelemeyi taahhüt ediyoruz. Bu APK'larla ilgili iddialarımızı herkese açık olarak doğrulamak için şeffaflık günlüğünü yayınladık.

Tehdit Modeli

Şeffaflık sistemleri, tedarik zinciri saldırılarını tespit etmek ve böylece önlemek için kullanılabilir. Bazı örneklerle açıklayalım.

Bir saldırganın, kötü amaçlı olarak bir Google uygulamasını değiştirdiğini ve hatta Google Play üzerinden dağıtım için kullanılan imzalama anahtarıyla imzalamayı başardığını varsayalım. İkili şeffaflık günlüğü sayesinde, şüpheli bir APK alan herkes, APK'nın orijinalliğini doğrulamak için bunu doğrulanabilir bir gerçek doğru kaynağı olarak kullanabilir. Google'ın ilgili APK meta verilerini günlük dosyasına eklemediğini görecekleri için güvenliği ihlal edilmiş APK'ya güvenmemeleri gerektiğini anlayacaklar.

Günlüğe yayınlama, imzalama içeren yayınlama sürecinden ayrı bir işlem olduğundan (Ekosistem Şeması'nda gösterildiği gibi), bu durum saldırganın yalnızca anahtarı tehlikeye atmanın ötesine geçmesi için çıtayı yükseltir.

Bu günlüğü standart bir tanık protokolü kullanarak herkese açık bir tanık ağına da entegre etmeyi planlıyoruz. Bu nedenle, harici ve bağımsız tarafları bu herkese açık günlüğün bütünlüğünü izlemeye teşvik ediyoruz. Bu taraflar, günlüğün yalnızca ekleme özelliğini onaylayabilir ve herhangi bir kurcalamayı bildirebilir.

Bu tür bir şeffaflık sisteminin varlığı ve saldırıların daha kolay tespit edilebilmesi, kötü amaçlı faaliyetleri engeller. Bir APK'nın güvenliği ihlal edilmişse ancak kullanıcılar yalnızca günlükteki APK'lara güveniyorsa güvenliği ihlal edilmiş APK'nın herkese açık olarak gösterilmesi gerekir. Bu sayede, güvenliği ihlal edilmiş APK'nın varlığının keşfedilme olasılığı artar ve dağıtımının kaldırılması için işlem yapılabilir.

Hak Talebinde Bulunan Taraf Modeli

Hak Sahibi Modeli, doğrulanabilir bir sistemdeki rolleri ve yapıları tanımlamak için kullanılan bir çerçevedir. Google 1. Taraf Uygulama Şeffaflığı söz konusu olduğunda, bu günlükte kayıtlı bir APK dosyasının karmasının, kamuya açık kullanım için tasarlanmış resmi bir Google uygulamasının belirli bir sürümünü temsil ettiği iddia edilir.

  • ClaimGoogleApp: (I, Google, claim that $hashApp is for $googleApp), where:
    • $hashApp, $googleApp uygulamasının belirli bir sürümünün APK dosyasının (bölünmüş APK'lar dahil) kriptografik karmasıdır (ör. SHA256).
    • $googleApp, Google'ın oluşturup dağıttığı bir uygulamayı oluşturan bir Android paketidir (APK).

$googleApp kopyası olan herkes bu iddiayı doğrulayabilir ve bu süreci doğrulama sayfasında ayrıntılı olarak açıklıyoruz.

Günlük İçeriği

Google bir APK'nın yeni sürümünü yayınladığında Google 1. Taraf APK Şeffaflık Günlüğü'ne ilgili bir giriş ekler.

Bu günlükteki her giriş dört meta veri parçası içerir:

  1. Google tarafından imzalanmış bir uygulamanın APK dosyasının karması. Bu, dosyanın tamamının SHA256 özetinin onaltılık dizesidir.
  2. Önceki karma türünün açıklaması. Bu bir dizedir.
  3. APK'nın paket adı. Bu bir dizedir.
  4. APK'nın sürüm numarası (versionCode). Bu, sıfır olmayan bir tam sayıdır.

Bir günlük girişinin biçimi, aşağıdaki örnekte gösterildiği gibi, dört bilgi parçasının yeni satır (\n) karakteriyle birleştirilmesidir:

hash\nSHA256(APK)\npackage_name\npackage_version\n

APK dosyasının tamamını ölçtüğümüz için karma açıklaması SHA256(APK) olarak ayarlanır. Bu sayede her dosyanın içeriği kapsamlı bir şekilde ele alınır ve kullanıcıların bu ölçümü elde etmesi kolaylaşır.

Ekosistem Diyagramı

Doğrulanabilir Günlük Ekosistemi Şeması