Uygulama Veri Deposunda Saklanan Dosyaların Analizi – 1

Bir önceki yazıda GoatDroid kurulumunu ve yapılandırma ayarlarını tamamlamıştık. Şimdi teste başlayalım. Öncelikle FourGoats uygulamasının depolama yöntemini inceleyelim.

Güvensiz Veri Depolama

Android uygulama geliştiriciler, uygulama verilerini saklamak için bazı depolama yöntemleri kullanırlar.

  • Shared Preferences

Geliştiriciler Shared Preferences klasörü altında uygulamanın ayarlarını veya verileri tutulabilmektedirler. Veriler genellikle XML formatında dosya içerisinde tutulmaktadır. Bu güvensiz bir  veri  depolama yöntemi olduğu için saldırganların ilk bakacağı yerlerden birisidir.

  • SQLite Database

SQLite kullanımı ve kurulumu oldukça basit olan bir veritabanı kütüphanesidir. Her veritabanı için sadece bir dosya vardır. Böylece veritabanı kolay yedeklenebilir ve kopyalanabilir. Dosyalar genellikle .db veya .sqlite uzantılıdır. Güvenli  herhangi bir şifreleme uygulanmadığı taktirde saldırganlar tarafından da erişimi kolay olduğu için güvenli bir veri depolama yöntemi değildir.

  • Dahili Depolama

Dahili depolama, dosyaları doğrudan cihaza kaydedebileceğimiz başka bir yöntemdir. Kaydedilen dosyalar uygulama için özeldir ve diğer uygulamalar bunlara erişemez. Kullanıcı uygulamayı kaldırdığında ise bu dosyalar kaldırılır.

  • Harici Depolama

Dosyaların belirli bir konuma kaydedildiği depolama yöntemidir. Bu taşınabilir bir depolama ortamı olan  SD kart alanı veya taşınabilir olmayan bir depolama alanı olabilir.

Emulator e kurduğumuz FourGoats uygulamasının veri depolama yöntemini incelemek için Android Studio -> Tools -> Android -> Android Device Monitor açtığımızda cihaz içerisindeki tüm paketleri ve dosyaları görüntüleyebiliriz. Android işletim sisteminde kurulu uygulamaların paketleri  /data/data altında bulunmaktadır.

goat5

FourGoats içerisine daha yakından bakacak olursak;

goat6

Burada databases ve shared preferences klasörleri dikkatimizi çekecek olacak ki uygulama içerisindeki bazı veriler burada kaydediliyor olabilir. Klasörler içerisindeki .db ve .xml uzantılı dosyaların içindeki verileri incelemek için uygulama paketimi makinemize çekelim. 

adb pull /data/data/com.owasp.goatdroid.fourgoats C:\Users\meryem\Desktop\goatdroid

databases klasörü içerisinde userinfo.db adında bir sqlite var bunu sqlite browser ile açıyoruz. Info tablosu içerisinde oturum bilgisi, kullanıcı adı, admin kontrolü gibi veriler tuttuğunu görüyoruz. Saldırgan bu tablodaki alanlardan isAdmin bölümünü true yaparsa admin olarak uygulamayı başlatabilir. Bu kontrollerin sqlite olarak cihaz içerisinde yapılması zafiyetleri doğuran sebeptir.

goatdb

shared_prefs klasörü içerisinde bulunan credentials.xml dosyasını açtığımızda görüyoruz ki uygulama kullanıcı adı ve şifreyi xml formatında içerisinde tutuyor. Hiçbir şifreleme kullanmadan dosya içerisinde uygulamanın verilerini tutmak önemli bir zafiyettir.

goat7

Uygulamların veri depolama yöntemleri önemli zafiyetler doğurabilmektedir. Bu nedenle mobil uygulama geliştiricilerin, uygulama verilerini depolamada hassas verilerin gizli kalması için kullanılabilecekleri en güvenli yöntem asimetrik şifreleme olarak göze çarpmaktadır. Android, KeyStore sistemi ile uygulamalara ait verilerin güvenli bir şekilde depolanabilmesine olanak sağlamaktadır.

595 total views, 1 views today

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir