Android Mobil Platformunda Kullanıcı Kişisel Veri Güvenliği Zana iLHAN Fen Bilimleri Enstitüsü Okan Üniversitesi
Yol Haritası Mobil Platformlar Android Mobil Platformu Problem Tanımı Güvenlik Açıkları Kullanıcı Verileri Android Mobil Platformu Problem Tanımı PIPSU Çözüm Önerisi PIPSU Bileşenleri PIPSU Mimarisi PIPSU Katmanları PIPSU’nun Gerçeklenmesi Tezin katkısı & Tartışma İleride Yapılabilecekler
Taşınabilir Hesaplama PC Dizüstü Tablet PDA & Akıllı Telefon Kişisel Bilgisayar Tayfının Evrimi Eskinin berrak kategorizayonu: Sabit Hesaplama(PC) Taşınabilir Hesaplama (Dizüstü) Yeni dönemin özellikleri Taşınabilir hesaplama donanımı Çeşitlendi Satılan donanımın çoğu taşınabilir donanımdan Bunlar son kullanıcı tarafından beraberce kullanılıyor (tablet + ebook reader + Android cep telefonu) 2008’de dünya genelinde dizüstü satışları PC satışlarını geçti. Yeni Kategoriler Ultra Mobile PC Netbook Subnotebook
Ekim - 2011 Mobil Platform Pazar Payları Büyük pazar payına sahip 6 mobil platform bulunmaktadır.
Güvenlik Açıkları SMS, E-Posta istemcileri Wi/Fi, Bluetooth, Infra-red, USB Web tarayıcılar 3. Parti uygulamalar SDK tasarım yanlışlıkları Platform tasarım yanlışlıkları
Kullanıcı Verileri PIM(Personel Information Management) aracılığı ile yönetilen veriler: Kontaklar Takvim verileri Notlar SMS verileri ve E-Posta verileri Multi-Medya Verileri: Döküman Resim Müzik ve Video verileri
Android Nedir? Android bir Linux dağıtımımıdır? Açık kaynak kodlu mudur? Mobil cihaz sağlayıcıları tarafından çıkan Android tabanlı işletim sistemleri ile Google Android arasında bir fark varmıdır? Buraya HTC g,ibi android logo ve tablet launcher snapshot
Android Katmanlı Mimari Desktop OS ile karsilastirarak
Dalvik Nedir? Diğer standart “Stack” tabanlı Sanal makinelerin tersine “Registry” tabanlıdır. Sun JVM ve OpenJVM den farklı olarak Just- in-debugger a sahiptir. Java bytecodelarını dx aracı ile .dex (dalvik executable) a dönüştürür.
Uçtan Uca Örnek Sistem İstek Hiyerarşisi
Android Mobil Platformunda bir Uygulamanın yapabildikleri -1 GPS lokasyon bilgisini edinebilme IP adres, Wi/Fi vb internet erişim bilgilerine erişebilme E-Mail, Kontak vb bilgilere erişebilme SMS ve Telefon rehber bilgilerine erişebilme Bir uygulamanin ilk yuklenmesinde isteyebildigi izin listesinin tumu. Ve sonraki slayt ta Flash lite snapshot http://en-erteam.nprotect.com/2011/08/warning-repackaged-androids-malicious.html http://en-erteam.nprotect.com/2011/10/warningandroid-malicious-application.html
Android Mobil Platformunda bir Uygulamanın yapabildikleri -2 Kurulu uygulama listesi, kullanılan izinler(application permission), kullanılan ortak UID ler ve versiyon bilgilerini edinebilme RAM, CPU, bootloder ve kernel gibi çalışılan sisteme dair bilgiler uygulamalar tarafından edinilebilmektedir.
Android Uygulama Veri Kullanım Modeli Android Veri Manipülasyonu API 1 Uygulama Sistem İsteği 2 2 1 Android Framework Uygulama Verisi Uygulama Verisi Uygulama Verisi Dosya Sistemi
Android Uygulama Verileri için Aday Konumlar Kavramsal Konum: Uygulamanın kendi veritabanı(SQLite DB) Android Shared Preference PIM veritabanı(Telefon Rehberi, SMS, Takvim vb.) Fiziksel Konum: Dahili Veri Alanları Flash Memory (SSD) EMMC Anakartın içsel ROM’u Harici Veri Alanları SD Card Ağ Bağlatısı Erişimli Veri Alanı(NAS: Network Attached Storage)
Uygulama Verilerinin Maruz Kaldığı Açıklar Yanlış API kullanımı (Örnek: Shared Preref’in amaç dışı kritik bilgi için kullanılması) ADB (Android Debug Bridge) erişim kanalı PC üzerinden Linux Terminali benzeri bir kabuk arayüzü açılıyor. İşletim sistemi hiyerarşisinin standart olmaması: Dizin ve dosya erişim hakları iyi ayarlanmamış olması Kötü niyetli ve/veya yanlış çalışan uygulamalardan kaynaklı veri hırsızlığı olmakta
Problem Tanımı: Henüz yeterince olgunlaşamamış ve standartlaşamamış olan mobil platformlar, iş ve gündelik hayatımızda ürettiğimiz verilerin çoğuna sahiptirler. Hayatımızda büyük yere sahip olan mobil aygıtları, büyük oranda kullanıcı kişisel verileri barındırmaktadır. Mevcut kullanılmakta olan mobil platformların kullanıcı kişisel verilerine dair bir çok güvenlik açığına sahiptirler. Yeni nesil mobil platformlarda kullanıcı kişisel verilerinin güvenliğinin sağlanması
Yapılan Akademik Çalışmalar Yetki Etiket Modeli Kirin [15] Saint [17] Language based security on Android[13] SCanDroid [14] Çalışma Zamanı Uygulama Takibi Tezdeki referansla Ağ Tabanlı Virtualized In-Cloud Security Services for Mobile Devices [18]
Önerilen Çözüm: PIPSU İngilizce : Platform Isolated Private Security for User. Anlamına gelmekte olup, İngilizce anlam cümlesinin kelimelerinin baş harflerinin birleşiminden oluşmaktadır. Türkçe : Kullanıcı Kişisel Verilerinde Platform Bağımsız Güvenlik
PIPSU Özellikleri Kullanıcı kişisel verileri için güvenlik çözümü Mobil platform bağımsız Bulut bilişim uyumlu(Cloud Computing Compatible) Sunum, servis ve depolama katmanlarını bir arada barındıran çözüm. SyncML protokol standart’ı ile farklı bulut sistemleriyle çalışabilme. Aynı hesap altında çoklu cihaz desteği
PIPSU Üst Düzey Mimari SyncML Destekli Bulut Veri Servisi PIPSU-C Internet PIPSU-C Android İşletim Sistemi PIPSU-L Uygulamasına Sahip Mobil Cihaz
Android Platformunda PIPSU-L Uygulama A Uygulama B İçsel Uygulama C İçsel Uygulama D İçsel Uygulama E Android Framework(Uygulama Çatısı) Dalvik PIPSU-L Dalvik A Dalvik B Dalvik C Dalvik D Dalvik E Android Çekirdek Katmanı
PIPSU-L Katmanlı Mimari Kullanıcı Tabanlı Olay Tetiklenmesi Launcher ve GUI Bileşenleri Sunum GUI Kontrol Bileşenleri İletişim ve Sistem Takip Bileşeni Kullanıcı Kişisel Veri Takip Modülleri Kontrol SyncML Kullanıcı Kişisel Veri Modülleri Sapi Soyut İstemci İletişim Kütüphanesi Depolama Kullanıcı Kişisel Veri Depolama Modülü Konfigurasyon Saklama Modülü Platform Tabanlı Olay Tetiklenmesi
Launcher ve GUI Bileşenleri Sunum GUI Kontrol Bileşenleri İletişim ve Sistem Takip Bileşeni Kullanıcı Kişisel Veri Takip Modülleri Kontrol SyncML Kullanıcı Kişisel Veri Modülleri Sapi Soyut İstemci İletişim Kütüphanesi Depolama Kullanıcı Kişisel Veri Depolama Modülü Konfigurasyon Saklama Modülü
PIPSU-L Soyutlama Katmanı PIPSU bir kullanıcı bilgisini soyutlamak için iki ana aktör ile anlamlılandırmaya çalışır. Veri Yönetim Veri Kaynağı(Source) Veri Takipcisi(Tracker) Soyut Veri
PIPSU-L Soyutlama Veri Türleri PIPSU Mobil Platformda bulunan kullanıcı verilerini 2 ana tipte soyutlar. Kişisel Veri Yönetimi(PIM) Multi Medya Verileri PIPSU-L Kullanıcı Verileri
Kişisel Veri Yönetimi(PIM- Personel Information Management) Rehber Verileri(Kontak, vCard vb.) Takvim Verileri SMS Notlar(Text Veri)
Multi Medya Tipi Kullanici Verileri Resimler Muzikler Videolar Binary Veri(Dökümanlar)
Launcher ve GUI Bileşenleri Sunum GUI Kontrol Bileşenleri İletişim ve Sistem Takip Bileşeni Kullanıcı Kişisel Veri Takip Modülleri Kontrol SyncML Kullanıcı Kişisel Veri Modülleri Sapi Soyut İstemci İletişim Kütüphanesi Depolama Kullanıcı Kişisel Veri Depolama Modülü Konfigurasyon Saklama Modülü
PIPSU-L Depolama Modülü Anahtar – Deger (Key Value) Depolama Modülü İndeks Değer Anahtar Değer Değişim Anahtar = hash(değer) Anahtar Değer Değişim Anahtar Değer Değişim . . . Tracker Anahtarlar Content://pipsu/pim/sms?anahtar=XYGVG67X
PIPSU-L Kullanıcı Kişisel Veri Depolama Modülü İndeks Değer 56HJ7987 PNG,364x26 345987866454354343 67KLHG8 MIME:Text,ASDFGDFG, From, To 45678879865954 454HJK0 Değer Değişim . . .
Launcher ve GUI Bileşenleri Sunum GUI Kontrol Bileşenleri İletişim ve Sistem Takip Bileşeni Kullanıcı Kişisel Veri Takip Modülleri Kontrol SyncML Kullanıcı Kişisel Veri Modülleri Sapi Soyut İstemci İletişim Kütüphanesi Depolama Kullanıcı Kişisel Veri Depolama Modülü Konfigurasyon Saklama Modülü
PIPSU-L Launcher Bileşenleri Launcherlar Android platformu için özel yetenekler ve göreve sahip Android uygulamalarıdır. Launcher ve GUI Bileşenleri Launcher Widget Bileşenleri Activity Bileşenleri
Launcher ve GUI Bileşenleri Sunum GUI Kontrol Bileşenleri İletişim ve Sistem Takip Bileşeni Kullanıcı Kişisel Veri Takip Modülleri Kontrol SyncML Kullanıcı Kişisel Veri Modülleri Sapi Soyut İstemci İletişim Kütüphanesi Depolama Kullanıcı Kişisel Veri Depolama Modülü Konfigurasyon Saklama Modülü
PIPSU-L Kontrol Katmanı Bu katman, PIPSU-L’nin çalıştığı platformda bulunan kullanıcı kişisel bilgilerinin, PIPSU tarafından sağlanan güvenli depolama alanlarına taşınmasını sağlamaktadır.
PIPSU-L nin Android Uygulama Modeli Kendi UID’si ile iş yapıyor. Kendi dizinlerine sadece kendisi erişebiliyor. Üç katmanlı uçtan uca bir çözüm, verilerin yaratılması, değiştirilmesi, silinmesi, yedeklenmesi hep aynı süreç (process) tarafından yönlendiriliyor. Kullanıcı kişisel bilgilerini, sahip olduğu dahili soyutlama kütüphanelerini kullanarak mobil platform bağımsız formlarda saklıyor/kullanıyor.
PIPSU-L Uygulama – Veri Güvenlik Modeli Uygulama ve Sistem Arayüzleri PIPSU API(Tek Yönlü) PIPSU Olay Değiş tokuşu (User Event Exchange) Android Framework Dalvik Tek sistem kullanıcısı PIPSU Uid Dosya Sistemi (Linux Çekirdek) PIPSU Verileri Diğer Uygulama Verileri
Diğer Uygulama Verileri PIPSU Zararlı Uygulama Android Framework Dalvik X Tek sistem kullanıcısı PIPSU Uid Dosya Sistemi PIPSU Verileri Diğer Uygulama Verileri Öntanımlı olarak tüm 3. parti uygulamalar aynı Uid’yi alır. Zararlı uygulama sistemden PIPSU’nun UiD’sini alamaz PIPSU verilerine ulaşması çekirdekçe engellenir Bu durum kurulum esnasında kullanıcının vereceği yetkilerin genişliği ile değişmez.
PIPSU-C Üst Seviye Mimari SyncML Destekli Bulut Servisleri SyncML Destekli Bulut Servisleri Yük Dağıtımı Lokasyon 1 Lokasyon 2 Internet Yüksek Devamlılık (HA) Yüksek Devamlılık (HA) Servis Haberleşmesi Servis Haberleşmesi PIPSU-L PIPSU-L LB
PIPSU-C’nin Gerçeklenmesi: Funambol Temel Servis Bileşenleri Üst Düzey Bileşenler İstek Yönetimi DM Veri Kaynak Yönetimi H A IBB LB Sapi Servlet Container EJB3 PUSH SyncML İletişim Kütüphaneleri HTTP/S CTP STP TCP UDP Sunucu Modülleri
PIPSU Mimarisinin Gerçeklenmesi Launcher + PIPSU Mimari tasarım Funambol apk uzantılı, yüklenebilir Android Uygulaması
Çalışmanın Katkısı ve Tartışma -1 Mobil platformlarda bulunan güvenlik probleminin analizi “Kişisel veri güvenliği” problem tanımı Platform seçimi ve Android’in güvenlik boyutuyla mimarisel incelenmesi Platform bağımsız kişisel veri güvenliği çözüm mimarisinin geliştirilmesi(PIPSU) PIPSU implementasyonu için gerekli analiz Açık kaynak kodlu projelerin incelenmesi Lancher+ ve Funambol mimarilerinin detaylı incelenmesi PIPSU Android platform uygulamasının geliştirilmesi.
Çalışmanın Katkısı ve Tartışma -2 PIPSU, Kullanıcı kişisel verilerini, yabancı uygulamalardan izole eder. Kullanıcı kişisel veri devamlılığını sağlar. Linux çekirdek seviyesindeki güvenlik modelini uygulama seviyesine taşır. Kullanıcının günlük alışkanlıklarını değiştirmeden veri güvenliği sağlar.
İlerde Yapılabilecekler PIPSU uygulaması mobil marketlere sunulması PIPSU projesine özel SyncML tabanlı bulut servislerinin gerçeklenmesi PIPSU-L içerisinde yerel olarak tutulan PIM kategorilerini arttırmak PIPSU akranları arasında(P2P) DLNA veri paylaşımı Literatür taraması kısmının genişletilip “Android platformlarda kişisel veri güvenliği yaklaşımları” başlıklı derleme(Survey) yayınının oluşturulması. PIPSUnun diğer önemli mobil platformlara taşınması. 3. parti uygulamaların PIPSU altyapısını kullanabilmesi