Android'de veri depolama incelemesi: tercihler, veritabanları ve yedekler
Bir uygulamanın telefonda bıraktığı izleri hazır veri dışa aktarımları üzerinde incelersin: tercih dosyaları, SQLite veritabanları, önbellek, harici depolama ve yedeklerde hassas veri arar, düzeltmesini önerirsin.
Seviye 201 · 22 ders · 18 pratik lab
Dersler
Uygulama veri dizini
- Veri dizininin yapısı: shared_prefs, databases, files, cache
- Dosya izinleri ve sahiplik: kim neyi okuyabilir
- Hassas veri nedir: belirteç, kişisel veri, sağlık ve ödeme verisi
- Dışa aktarım üzerinde çalışmak: kanıtı bozmadan incelemek
- Kısa görev: bir uygulamanın veri dışa aktarımındaki dosyaları türüne göre sınıflandır
Tercihler ve veritabanları
- SharedPreferences dosyalarını incelemek
- DataStore ve protobuf dosyalarını okumak
- SQLite veritabanını incelemek: tablolar, şema ve silinmiş kayıt izleri
- Şifreli veritabanı gerçekten şifreli mi: başlık ve anahtar yönetimi
- Diğer depolar: Realm, dosya tabanlı önbellekler, WebView verisi
- Kısa görev: tercih dosyasında ve veritabanında düz metin tutulan kişisel veriyi bul
Sızıntı kanalları
- Harici ve paylaşılan depolamada kalan dosyalar
- Önbellek, geçici dosyalar ve küçük resimler
- logcat dışa aktarımında hassas veri aramak
- Klavye önbelleği, pano ve son uygulamalar görüntüsü
- Kısa görev: bir günlük dışa aktarımında ve önbellekte sızan belirteci bul
Yedekler ve anahtarlar
- Yedek arşivleri: allowBackup açıkken dışarı ne çıkar
- Veri çıkarma kurallarını denetlemek
- Keystore kullanımını koddan ve veriden doğrulamak
- Depolama bulgusunu yazmak ve düzeltmeyi doğrulamak
- Kısa görev: bir yedek arşivini aç ve içinden çıkmaması gereken dosyaları listele
Bitirme
- Bitirme görevi: bir klinik randevu uygulamasının depolama denetimini yap ve raporla
Pratik lablar
- Veri dışa aktarımındaki klasörleri tanı: Bir uygulamanın veri dizini dökümünde tercih, veritabanı, dosya ve önbellek klasörlerini eşle.
- Dosyaları türüne ve hassasiyetine göre sınıflandır: Dışa aktarımdaki dosyaları türüne göre listele ve kişisel veri içerenleri işaretle.
- Dosya izinlerinden yanlış yapılandırmayı bul: İzin ve sahiplik dökümünde başka uygulamalarca okunabilen dosyayı bul ve kanıtı bozmadan belgeleyip raporla.
- Tercih dosyasında düz metin parolayı bul: shared_prefs klasöründeki XML dosyalarında parola tutan anahtarı bul.
- Şifreli görünen tercih değerini değerlendir: Base64 ile yalnızca kodlanmış değeri çöz ve bunun şifreleme olmadığını kanıtla.
- DataStore dosyasındaki alanları çıkar: Bir protobuf DataStore dosyasını şemasız çözümle, hassas alanları bul ve düzeltme öner.
- Veritabanındaki tabloları ve satır sayılarını listele: sqlite3 ile bir uygulama veritabanının şemasını ve her tablonun satır sayısını çıkar.
- Veritabanında düz metin tutulan kişisel veriyi bul: Lavinya Klinikleri uygulamasının veritabanında kimlik numarası ve tanı bilgisinin düz saklandığı sütunları göster.
- Şifreli denen veritabanını doğrula ve WAL izlerini incele: Dosya başlığından veritabanının gerçekten şifreli olup olmadığını belirle ve WAL dosyasında kalan silinmiş kayıtları raporla.
- logcat dışa aktarımında belirteci bul: Günlük dökümünde Bearer belirteci yazan satırı ve hangi sınıftan geldiğini bul.
- Önbellekte kalan kimlik görüntüsünü bul: Önbellek klasöründe silinmemiş kimlik fotoğrafı küçük resimlerini bul ve düzeltme öner.
- Harici depolamadaki dışa aktarım dosyalarını denetle: Paylaşılan depolama dökümünde uygulamanın bıraktığı raporları bul, içeriklerini sınıflandır ve üç sızıntı kanalını tek bulguda birleştir.
- Manifestten yedekleme ayarını oku: allowBackup ve veri çıkarma kuralı ayarlarını bul.
- Yedek arşivini aç ve içini listele: Hazır yedek arşivini aç ve içinden çıkmaması gereken dosyaları listele.
- Veri çıkarma kurallarını yaz ve arşivle doğrula: Kural dosyasını yaz, düzeltilmiş sürümün yedek arşivinde oturum ve veritabanı dosyalarının bulunmadığını göster.
- Koddan Keystore kullanımını doğrula: jadx çıktısında anahtarın Keystore'da üretilip üretilmediğini bul.
- Anahtarı dosyada tutan uygulamayı kanıtla: Şifreli veritabanı kullanan ama anahtarı tercih dosyasında saklayan uygulamayı kod ve veriyle birlikte belgeleyip raporla.
- Klinik randevu uygulamasının depolama denetimini yap: Tercih, veritabanı, önbellek ve yedek bulgularını tek raporda topla ve her biri için doğrulanabilir düzeltme yaz.
Kurs hakkında
Bir uygulamanın telefonda bıraktığı izleri hazır veri dışa aktarımları üzerinde incelersin: tercih dosyaları, SQLite veritabanları, önbellek, harici depolama ve yedeklerde hassas veri arar, düzeltmesini önerirsin.
Ne öğreneceksin
- Uygulama veri dizini
- Tercihler ve veritabanları
- Sızıntı kanalları
- Yedekler ve anahtarlar
- Bitirme
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.