Android Uygulamalarında APK Analizi ve OWASP MASVS
Mobil Uygulama Güvenliğini Değerlendirmede Temel Yaklaşımlar
APK analizi, Android uygulamalarının güvenliğini değerlendirmek için kullanılan önemli bir yöntemdir. Statik ve dinamik analiz teknikleri sayesinde uygulamaların davranışları incelenebilir. OWASP MASVS ise mobil uygulamaların güvenlik gereksinimlerini değerlendirmek için kullanılan uluslararası bir standarttır.
Giriş
Günümüzde birçok kişi mobil uygulamaları aktif olarak kullanmaktadır. Sosyal medya, bankacılık ve alışveriş uygulamaları gibi uygulamalar kişisel bilgilerimizi işlediği için güvenlik konusu büyük önem taşımaktadır. Android işletim sisteminde uygulamalar APK dosyaları şeklinde dağıtılır ve bu dosyaların incelenmesi APK analizi olarak adlandırılır.
APK, Android Package Kit ifadesinin kısaltmasıdır. Bir Android uygulamasının çalışabilmesi için gerekli olan dosyaları içerir. Telefonumuza bir uygulama yüklediğimizde aslında APK dosyası yüklenmiş olur. Güvenlik uzmanları ve araştırmacılar bu dosyaları inceleyerek uygulamanın güvenlik açısından risk taşıyıp taşımadığını değerlendirebilir.
APK Analizi Nedir?
APK analizi, Android uygulamalarının yapısını ve davranışlarını inceleyerek olası güvenlik risklerini belirlemeyi amaçlayan bir süreçtir. Bu analizler sayesinde uygulamaların gereksiz izinler isteyip istemediği, hassas verileri nasıl işlediği ve güvenlik standartlarına uyup uymadığı değerlendirilebilir.
APK analizi temel olarak iki farklı yöntemle gerçekleştirilir:
1. Statik Analiz
Statik analizde uygulama çalıştırılmadan incelenir. Uygulamanın kullandığı izinler, AndroidManifest.xml dosyası, yapılandırmalar ve bazı kaynak kodları analiz edilir. Bu süreç var olan zafiyetlerin kod tabanından hızlıca taranmasını sağlar.
Bu süreçte yaygın olarak kullanılan araçlardan bazıları şunlardır:
| Araç | Görevi ve Fonksiyonu |
|---|---|
| Jadx | APK içerisindeki derlenmiş kodları (Dex) okunabilir ve analiz edilebilir Java kaynak koduna dönüştürür. |
| MobSF | Mobil Güvenlik Çerçevesi (Mobile Security Framework), otomatik statik ve dinamik güvenlik analizi gerçekleştirir ve detaylı rapor oluşturur. |
Örnek Senaryo: Basit bir hesap makinesi uygulamasının kullanıcı rehberine, SMS’lere veya konum bilgilerine erişim istemesi olağan bir durum değildir. Statik analiz aşamasında tespit edilen bu tür sıra dışı izin talepleri, güvenlik açısından doğrudan ciddi bir risk veya casus yazılım (spyware) belirtisi olarak değerlendirilebilir.
2. Dinamik Analiz
Dinamik analizde uygulama izole bir ortamda (emülatör veya gerçek cihaz üzerinde) çalıştırılarak gerçek zamanlı davranışları gözlemlenir. Bu yöntem sayesinde uygulamanın çalışma zamanında hangi sunucularla iletişim kurduğu (ağ trafiği), hangi yerel verilere eriştiği ve kullanıcı bilgilerini hafızada nasıl işlediği incelenebilir.
Dinamik analizde ve tersine mühendislik süreçlerinde sık kullanılan en popüler araçlardan biri Frida‘dır. Frida, çalışan uygulamaların süreçlerine sızarak (injection) davranışlarını izlemeye, bellek analizine ve belirli fonksiyonları manipüle etmeye (hooking) olanak sağlar.
Örneğin, aşağıdaki basit Frida betiği uygulamanın çalışma zamanında takibe alındığını ve başarıyla enjekte olunduğunu gözlemlemek amacıyla kullanılabilir:
Java.perform(function () {
console.log("Uygulama izleniyor...");
});
Bu örnek oldukça temel seviyede olsa da, dinamik analiz sırasında şifreleme fonksiyonlarının devre dışı bırakılması veya biyometrik doğrulama (parmak izi) adımlarının atlatılması gibi gelişmiş süreçlerin mantığını anlamak açısından kritik bir temel oluşturur.
OWASP MASVS ve Mobil Güvenlik Standartları
Mobil uygulamaların güvenliğini değerlendirirken yalnızca rastgele güvenlik açıklarını bulmak yeterli değildir. Aynı zamanda uygulamanın küresel olarak kabul görmüş belirli güvenlik standartlarını karşılayıp karşılamadığı da sistemli olarak incelenmelidir. Bu noktada OWASP MASVS en önemli rehber ve denetim standardı olarak kullanılmaktadır.
OWASP (Open Worldwide Application Security Project), uygulama güvenliği alanında dünya çapında çalışmalar yürüten kar amacı gütmeyen uluslararası bir topluluktur. MASVS ise “Mobile Application Security Verification Standard” (Mobil Uygulama Güvenlik Doğrulama Standardı) ifadesinin kısaltmasıdır ve mobil uygulamaların güvenlik mimarisini ölçülebilir seviyelerde değerlendirmek amacıyla geliştirilmiştir.
MASVS kapsamında mobil güvenlik mimarisi temel olarak şu ana alanlarda ele alınmaktadır:
- Veri Depolama Güvenliği (MASVS-STORAGE): Hassas verilerin cihaz üzerinde güvenli saklanması.
- Ağ İletişimi Güvenliği (MASVS-NETWORK): Veri iletim kanallarının şifrelenmesi ve korunması.
- Kimlik Doğrulama ve Oturum Yönetimi (MASVS-AUTH): Kullanıcı doğrulamalarının güvenliği.
- Platform Etkileşimleri (MASVS-PLATFORM): Android bileşenleri (Activity, Receiver vb.) arası güvenli etkileşim.
- Kod Kalitesi ve Derleme Ayarları (MASVS-CODE): Güvenli derleme yöntemlerinin uygulanması.
- Tersine Mühendisliğe Karşı Direnç (MASVS-RESILIENCE): Kod karartma (obfuscation) ve root tespiti gibi korumalar.
Uygulamalı Analiz Eşleşmesi: Veri depolama gereksinimleri kapsamında kullanıcı adı, parola veya API anahtarı gibi hassas bilgilerin uygulama içerisinde düz metin (plaintext) olarak saklanmaması beklenir. Statik analiz sırasında Jadx veya MobSF kullanılarak bu tür hardcoded (kodun içine gömülmüş) bilgilerin kaynak kodlarında bulunup bulunmadığı kontrol edilir.
Ağ güvenliği kapsamında ise uygulamanın tüm uç noktalarla yalnızca HTTPS (TLS) üzerinden konuşup konuşmadığı, sertifika sabitleme (Certificate Pinning) uygulayıp uygulamadığı dinamik ve statik analiz süreçleriyle test edilir. Özellikle bankacılık, finans ve sağlık uygulamalarında bu gereksinimlere uyum yasal bir zorunluluk teşkil etmektedir.
Sonuç
APK analizi, Android uygulamalarının yaşam döngüsü boyunca güvenliğini değerlendirmede ve proaktif savunma geliştirmede kritik bir rol oynamaktadır. Hem statik hem de dinamik analiz yöntemlerinin birlikte kullanılması, gözden kaçabilecek zafiyetlerin minimuma indirilmesini sağlar.
Öne çıkan temel noktalar şunlardır:
- APK dosyaları Android uygulamalarının temel dağıtım formatıdır ve tüm varlıkları içinde barındırır.
- Statik analiz, uygulamayı çalıştırma riskine girmeden kod yapısını ve yapılandırma hatalarını görmeyi sağlar.
- Dinamik analiz, uygulamanın manipülasyonlara nasıl tepki verdiğini ve çalışma zamanı zafiyetlerini ortaya çıkarır.
- Jadx, MobSF ve Frida gibi araçlar modern analiz süreçlerinin vazgeçilmez endüstri standardı araçlarıdır.
- OWASP MASVS, bir uygulamanın güvenli kabul edilebilmesi için aşması gereken kurumsal ve uluslararası kontrol listesini sunar.
Mobil uygulamaların hayatımızdaki ve iş süreçlerindeki yeri katlanarak arttığı düşünüldüğünde, hem geliştiricilerin hem de siber güvenlik uzmanlarının bu standartları benimsemesi, veri ihlallerini önlemenin en etkili yoludur.
Kaynakça
- OWASP Mobile Application Security Verification Standard (MASVS) Resmi Dokümantasyon Portalı
- OWASP Mobile Security Testing Guide (MSTG) / MASTG Teknik İnceleme Kılavuzu
- Jadx Resmî GitHub Dokümantasyonu ve Kod Çözücü Kaynakları
- MobSF (Mobile Security Framework) Otomasyon Rehberi
- Frida Dynamic Instrumentation Toolkit Kullanıcı ve Hooking Kılavuzu
- Android Developers Documentation - Security and Privacy Best Practices
Sen de yaz, arşivde yerini al
AltaySec Arşiv'e katkı ver — uzmanlığını Türkçe siber güvenlik literatürüne kat.
Yazar Ol