Uygulama Kan Aranıyor - sosyal sorumluluk projesi

  • Konbuyu başlatan dgkgn
  • Başlangıç tarihi
  • Cevaplar 10
  • Görüntüleme 491

dgkgn

Yeni Üye
Yeni Üye
MIUI Sever
Adım
kagan
Cihazım
redmi 4x
Yaş
46
Konum
istanbul
Katılım
21 Mayıs 2017
Konular
2
Mesajlar
40
Tepkime puanı
26
Puanları
18
Anladığım k......
Bu konulara meraklı ve arka plandaki mantığı irdeleyen insanlarla sohbet etmek inanın çok güzel. Polemikten ziyade, hem sizin hem de forumu okuyan diğer insanların merakını gidermeye çalışayım. Öncelikle ben aslında web programcısıyım, mobil uygulama tarafına yeni geçtim. Belki de benden çok daha bilgili, ileri seviye bir programcısınızdır bilemiyorum, eğer öyleyse şimdiden sürçülisan edersem affola. Herkesin daha kolay anlayabileceği bir şekilde, analojiler kullanarak durumu anlatmak isterim.

Öncelikle açık kaynak ve kod sızıntısı meselesini aradan çıkaralım. Android dünyasında uygulamanın kapalı kaynak olmasının güvenliğe tek başına bir faydası yoktur. Çünkü bir Android uygulaması decompile (tersine mühendislik) edilip kodların tamamına yakını okunabilir, üzerinde değişiklik yapılıp yeniden derlenebilir. Bizim uygulamayı açık kaynak yapmama sebebimiz, kullandığımız güvenlik katmanlarından dolayı başka insanların kodları derlese bile uygulamanın sunucuyla iletişim kuramayacak olmasıdır aslında.

Gelelim işin veri ve sunucu boyutuna. Sizin de çok doğru bir şekilde söylediğiniz gibi asıl güvenlik sunucu tarafında alınır ve isimleri "Ahmet A." şeklinde anonimleştirmek iyi bir fikirdir. Ancak buradaki tehlike sadece verilerin okunması değil, veritabanına sahte veri basılması veya veritabanındaki tüm verilerin çekilip cihaza kaydedilebilmesi ve sonrasında sunucudan silinmesi vs. Kötü niyetli biri uygulamayı modifiye edip kendi sunucularımıza saniyede binlerce "sahte kan ihtiyacı" gönderebilir ve sistemi çökertebilir.

Bizim uygulamamızın veritabanı, endüstride altın standartları belirleyen Google'ın kendi Firebase sunucularında tutuluyor. Önceki mesajımda belirttiğim bootloader açık cihazları kabul etmeme durumunu tam da bu noktada Google Play Integrity ve Firebase App Check ayarlıyor.

Çalışma mantığı ise kabaca şöyle: Veritabanımızın kapısında bir güvenlik görevlisi var. Bu görevli, veritabanına gelen istekleri detaylıca kontrol ediyor. İsteği yapan uygulama, Play Store'dan indirilmiş ve cihaza müdahale edilmemiş orijinal uygulamanın birebir aynısı ise erişime izin veriyor. Eğer kodunda tek bir harf bile değişmiş bir uygulama veya root/bootloader kilidi açık bir sistem tespit ederse erişimi anında kesiyor. Hatta şöyle örnek vereyim; uygulamamızı Play Store'dan orijinal haliyle indirmiş birisi, arka planda Play Store uygulamasını devre dışı bıraktığı anda bile bizim uygulamamız çalışmayı durdurur ve veritabanı veri vermez. Çünkü güvenlik görevlisi o andan itibaren doğrulama yapamaz.

Tekrar söylemekte fayda görüyorum, bu mekanizmaların kurallarını ben yazmadım; Google mühendislerinin standartları bunlar. Elbette cihazda root ve bootloader gizleme (spoofing) yöntemleri var. Zamanla yeni yöntemler çıkıyor, sonra Google güncellemeyle o açıkları kapatıyor. Bu tam bir kedi-fare oyunu; radara yakalanmayan uçağı yakalayan radar geliştirme meselesi... Bankalar gibi devasa kurumlar bile kendi özel güvenlik yazılımlarına milyarlar dökmesine rağmen, son dönemde onlar bile bootloader açık cihazları tamamen engellemek zorunda kalmaya başladılar.

(Küçük bir not: Android 16 yüklü cihazınızda uyarı almanızın sebebi Android 16'nın henüz çok yeni/geliştirici aşamasında olması ve Google'ın güvenlik API'lerinin ya da bizim hedef SDK'mızın henüz bu sürümle tam optimize olmaması da olabilir..)

Önemi var mı bilmiyorum ama ben çocukluğumdan beri açık kaynak ve özgür yazılım sevdalısıyım. Laptopumda Linux kurulu, kullandığım programların yüzde 90'ı açık kaynaktır. O yüzden inanın, kendi geliştirdiğim uygulamanın bootloader'ı açık cihazlarda çalışmaması en çok beni üzüyor. Ama günün sonunda, sağlık ve aciliyet bildiren bir platformda sistemin kötüye kullanılmasını engellemek için Google'ın bu katı standartlarına uymak zorundayız.

Yapıcı eleştirileriniz ve bu güzel beyin fırtınası için tekrar teşekkür ederim.
 
Üst Alt