Android Uygulamaları İçin Statik Analiz Yöntem ve Araçları

BGA Security Wiki sitesinden
Şuraya atla: kullan, ara


Adımlar:

  • Android uygulamalar üzerinde statik testleri gerçekleştirmek için uygulamaya ait veritabanı dosyaları, cookie dosyaları, kaynak kodlar vs. gibi tüm local kaynaklar, teste tabi tutulmalıdır. Uygulamalara ait tüm dosya ve dizinler /data/data/appname/ dizininde bulunur. Buradaki tüm dizin ve alt dizinlerdeki dosyalar detaylı gözden geçirilmelidir.
  • Bir mobil uygulamada, öncelikle adb shell komutu kullanılarak, emulatördeki mobile aygıtımız üzerinde shell elde ediyoruz. Ardından cd /data/data/ dizinine girip uygulamamıza ait dizine giriyoruz. Daha sonra buradan da databases isimli dizine gidiyoruz. Burada uygulamaya ait veritabanlarını, ls komutu ile listeleyebiliriz. Bu veritabanlarından herhangi birine bağlanmak için sqlite3 veritabanıadı şeklinde bir komut koşturulması gerekir. Ön tanımlı olarak, android uygulamaların veritabanları, parola korumasız olduğu için bu şekilde mobile uygulamalara ait veritabanları ele geçirilebilir, aksi durumda kaba kuvvet(brute force) saldırısı veya deneme yanılma ile sık kullanılan parolalar ile test yapılabilir.
  • Uygulama hassas verileri cache ‘ inde tutuyor olabilir, bu sebeple /data/data/appname/cache dizini takip edilerek, mevcut dosyalar irdelenmelidir.
  • Kaynak kod gözden geçirilmelidir. Decompile işlemi öncesinde, .apk formatındaki dosyaların oluşturulma sürecine bakılacak olursa, ilk olarak java kodları bytecode’lara (.class dosyaları) dönüştürülür. Ardından dx aracı kullanılarak, dalvik formatına (.dex) dönüştürülür, ardından bunlar birleştirilerek .apk dosyaları elde edilir. Android uygulamaları olan .apk dosyalarını decompile etmek için d2j-dex2jar.bat uygulaması kullanılabilir.

İlgili bat dosyasına aşağıdaki gibi .apk dosyası verilir.

C:\> d2j-dex2jar.bat db.apk

d2j-dex2jar.bat aracı ile decompile edilen .apk uzantılı uygulama, .jar uzantılı bir dosya oluşturacaktır. Bu dosya zip uygulaması ile veya java decompiler uygulaması ile açılırsa ilgili class dosyalarındaki kaynak kodlara erişim sağlanabilir ve güvenlik testlerine buradan devam edilebilir.