Android güvenlik modeli: korumalı alan, izinler, imza ve SELinux
Uygulamaların birbirinden nasıl ayrıldığını, izinlerin koruma düzeylerini, özel erişimleri, APK imza şemalarını, doğrulanmış önyüklemeyi ve şifrelemeyi güvenlikçi gözüyle öğrenirsin.
Seviye 201 · 22 ders · 18 pratik lab
Dersler
Yalıtım
- Uygulama başına UID ve dosya sahipliği
- Android'de SELinux: alanlar ve ilkeler
- seccomp ve yalıtılmış süreçler
- Çok kullanıcı ve profiller: kullanıcı 0, iş profili, özel alan
- Kısa görev: paket listesinden iki uygulamanın UID'sini ve veri dizinini eşle
İzin modeli
- Koruma düzeyleri: normal, dangerous, signature ve privileged
- İzin grupları ve AppOps
- Özel erişimler: erişilebilirlik, bildirim erişimi, cihaz yöneticisi, üstte gösterme
- Özel izin tanımlamak ve imza düzeyinde korumak
- Kapsamlı depolama ve medya izinleri
- Kısa görev: simüle cihazda özel erişimi olan uygulamaları listele ve gereksizleri işaretle
İmza ve güven zinciri
- APK imza şemaları: v1, v2, v3 ve v4
- Anahtar döndürme ve mağaza tarafında imzalama
- Doğrulanmış önyükleme ve önyükleyici kilidi
- Dosya tabanlı şifreleme ve doğrudan önyükleme
- Android Keystore ve donanım destekli anahtarlar
- Kısa görev: apksigner ile bir APK'nın imza şemasını ve sertifika özetini doğrula
Güncel sürümlerin getirdiği korumalar
- targetSdk ve davranış değişiklikleri: eski hedefin riski
- Arka plan başlatma, ön plan hizmeti türleri ve konum sınırları
- Paket görünürlüğü ve queries bildirimi
- Kısa görev: beş APK'nın targetSdk değerini çıkar ve eski kalanları işaretle
Bitirme
- Bitirme görevi: bir cihazın güvenlik duruşunu katman katman belgeleyen bir rapor yaz
Pratik lablar
- İki uygulamanın UID'sini ve veri dizinini eşle: Paket listesinden iki uygulamanın UID değerini ve veri dizini sahipliğini bul.
- Aynı UID'yi paylaşan paketleri bul: Simüle cihazda ortak UID kullanan paketleri bul ve bunun yalıtım açısından ne anlama geldiğini yaz.
- Veri dizininde yanlış izinli dosyayı bul: Bir uygulamanın veri dizini dökümünde herkesçe okunabilir bırakılmış dosyayı bul ve doğru kip değerini yaz.
- Bir sürecin SELinux alanını oku: Süreç listesinden üç sürecin SELinux etiketini çıkar ve hangisinin uygulama alanında çalıştığını yaz.
- Günlükte SELinux reddini yorumla: Verilen günlükteki ret satırını oku; hangi alanın hangi kaynağa hangi işlemi yapamadığını açıkla.
- SELinux kipini ve ret örüntüsünü raporla: Cihazın SELinux kipini doğrula, bir saatlik günlükteki retleri alana göre say ve olağan dışı olanı işaretle.
- Bir izin listesini koruma düzeyine göre ayır: On izinlik listeyi normal, tehlikeli ve imza düzeyi olarak sınıflandır.
- Zayıf korunan özel izni bul: Bir manifestte tanımlı özel izinlerin koruma düzeyini incele, normal düzeyde bırakılanı bul ve düzelt.
- AppOps ile izin durumunu karşılaştır: Bir uygulamanın verilmiş izinleriyle AppOps kayıtlarını karşılaştır ve izin verilmiş ama işlem düzeyinde engellenmiş olanı açıkla.
- İmza şemasını ve sertifika özetini doğrula: apksigner ile bir APK'nın hangi şemalarla imzalandığını ve sertifika özetini çıkar.
- Güncellemenin aynı anahtarla imzalandığını doğrula: Bir uygulamanın eski ve yeni APK'sının imzacısını karşılaştır ve güncellemenin kurulabilir olup olmadığını yaz.
- Anahtar yenileme kaydını oku: v3 imzalı bir APK'daki anahtar geçmişini çıkar ve eski ile yeni sertifika arasındaki zinciri belgeleyerek açıkla.
- Doğrulanmış önyükleme durumunu oku: Simüle cihazın önyükleme durumu rengini ve önyükleyici kilidini özelliklerden bul.
- Üç cihazın güven durumunu karşılaştır: Üç cihaz dökümünü önyükleme durumu, şifreleme ve yama açısından karşılaştır ve kurumsal veriye uygun olmayanı işaretle.
- Cihaz güvenlik duruşunu katman katman raporla: Yakamoz Telekom'un bir saha telefonunda yalıtım, izin, imza, önyükleme ve şifreleme katmanlarını denetle ve iki sayfalık rapor yaz.
- Bir APK'nın hedef SDK değerini bul: aapt2 ile bir APK'nın hedef SDK değerini çıkar ve hangi Android sürümüne denk geldiğini yaz.
- Eski hedefli uygulamaları işaretle: Beş APK'nın hedef SDK değerlerini tabloya dök ve mağaza eşiğinin altında kalanları işaretle.
- Eski hedefin kaçırdığı korumaları listele: Hedef SDK'sı beş sürüm geride kalan bir uygulamanın hangi davranış değişikliklerinden muaf kaldığını bul ve yükseltme için yapılacakları yaz.
Kurs hakkında
Uygulamaların birbirinden nasıl ayrıldığını, izinlerin koruma düzeylerini, özel erişimleri, APK imza şemalarını, doğrulanmış önyüklemeyi ve şifrelemeyi güvenlikçi gözüyle öğrenirsin.
Ne öğreneceksin
- Yalıtım
- İzin modeli
- İmza ve güven zinciri
- Güncel sürümlerin getirdiği korumalar
- 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.