Entegratör mobil uygulamalarındaki biyometrik doğrulama (FaceID / Parmak İzi) manipüle edilerek 2FA bypass edilebilir mi?
2 Cevap
Evet; eğer özel entegratör mobil uygulaması zayıf bir mimariyle geliştirilmiş ve biyometrik doğrulamayı yalnızca istemci tarafında bir boolean (true/false) bayrak kontrolü olarak ele almışsa, siber saldırganlar veya sızma testi uzmanları tarafından Frida, Objection veya Xposed gibi dinamik enjeksiyon araçlarıyla 2FA mekanizması saniyeler içinde tamamen bypass edilebilir.
1. İstemci Taraflı Zafiyet: Boolean Hooking Saldırısı:
Güvensiz geliştirilmiş mobil uygulamalarda biyometrik akış şu hatalı mantıkla çalışır: Uygulama işletim sisteminin biyometrik API'sini (örneğin Android'de BiometricPrompt.AuthenticationCallback veya iOS'ta LAContext evaluatePolicy) çağırır. Parmak izi okunduğunda işletim sistemi uygulamaya onAuthenticationSucceeded geri çağrımını (callback) iletir. Uygulama da bu yanıtı alıp sunucuya 'biometric_success=true' parametresiyle bir HTTP POST isteği atar veya yerel bellekte sakladığı statik JWT belirtecini serbest bırakır. Cihaz root edilmişse veya Frida ile kancalanmışsa (hooking), saldırgan ilgili fonksiyonun dönüş değerini zorla true yaparak fiziksel parmak izi veya yüz taraması yapmadan 2FA adımını tamamen atlatır.
2. Kurumsal Standart: Donanımsal Kriptografik Anahtar Bağlama (Hardware-Backed Crypto):
Biyometrik doğrulamayı manipüle edilemez kılmanın tek yolu, biyometrik onayı donanımsal bir kriptografik işlemin anahtarı haline getirmektir. Bu mimari, akıllı kart mikrodenetleyicileri (CCID) ve FIPS 140-2 Level 3 HSM standartlarıyla birebir aynı mantıkta çalışır:
- İzole Donanım Alanı (Secure Enclave / Android StrongBox & TEE): Biyometrik eşleştirme ana işlemcide (CPU) değil, işletim sisteminden tamamen izole edilmiş kriptografik mikrodenetleyicide (Apple Secure Enclave veya Android Titan M / ARM TrustZone) gerçekleşir. Biyometrik ham veriler hiçbir zaman donanım dışına çıkamaz.
- Biyometrik Kilitli Asimetrik Anahtar Çifti: Kullanıcı uygulamayı ilk kurduğunda, donanım içerisinde donanımsal korumalı bir asimetrik anahtar çifti (örneğin ECDSA P-256) üretilir. Bu anahtarın özel bileşeni (private key), donanım düzeyinde
setUserAuthenticationRequired(true)bayrağı ile kilitlenir. Özel anahtarın kilidi yalnızca ve yalnızca başarılı bir biyometrik doğrulama anında geçici olarak (örneğin 5 saniyeliğine) açılır. - Meydan Okuma-Yanıt (Challenge-Response) Doğrulaması: Fatura onayı veya portal girişi istendiğinde, entegratör sunucusu rastgele ve tek kullanımlık bir kriptografik meydan okuma verisi (nonce/challenge) üretip mobil uygulamaya gönderir. Biyometrik sensör doğrulandığında, Secure Enclave donanımı bu nonce değerini private key ile imzalar. Mobil uygulama imzalanmış veriyi sunucuya iletir. Sunucu, elindeki genel anahtarla (public key) imzayı doğrular.
Bu kriptografik mimaride saldırgan Frida ile istemci tarafındaki tüm fonksiyonları manipüle etse bile, Secure Enclave donanımının içindeki private key'e erişemez ve sunucunun beklediği geçerli matematiksel imzayı üretemez. Böylece 2FA bypass girişimi sunucu tarafında anında reddedilir.
3. Bütünlük ve Güvenlik Katmanları (Defense-in-Depth):
Entegratör uygulamalarında ayrıca Google Play Integrity API ve Apple App Attest mekanizmaları entegre edilmelidir. Uygulamanın imza bütünlüğü bozulmuşsa, cihaz root/jailbreak modundaysa veya bellek kancalama (memory hooking) tespit edilirse uygulama anında oturumu sonlandırmalı ve HSM/API ağ geçidine güvenlik alarmı göndermelidir.
SOC perspektifinden mobil 2FA onaylarının arka uç telemetrisi sürekli izlenmelidir. Biyometrik bypass girişimlerini tespit etmek için SIEM ve EDR sistemlerinde şu kontroller tanımlanmalıdır:
- Frida ve Enjeksiyon İmzaları: Uygulama içi RASP (Runtime Application Self-Protection) ajanları üzerinden gelen telemetride
/proc/self/mapsaltındafrida-gadget.soveya standart 27042 portunun dinlendiği bilgisi düşer düşmez ilgili kullanıcının tüm oturumları iptal edilmelidir. - Nonce Zaman Aşımı Anomalisi: Sunucunun ürettiği kriptografik challenge ile mobil cihazdan gelen imzalı yanıt arasındaki süre 30 saniyeyi aştığında veya aynı challenge iki kez gönderildiğinde (replay attack), işlem engellenmeli ve olay müdahale kaydı açılmalıdır.
- İstemci TLS JA4 Uyuşmazlığı: Biyometrik imza paketini sunucuya post eden istemcinin TLS parmak izi ile uygulamanın kayıtlı mobil cihaz profili uyuşmadığında (örneğin istek bir Python betiğinden geliyorsa) 2FA doğrudan düşürülmelidir.