Mobil uygulamanız, kurumunuzun en savunmasız dijital yüzeyidir, çünkü sunucularınızdan farklı olarak doğrudan saldırganın elindedir. Bir web uygulamasında kaynak kod sunucuda kalır ve dış dünya yalnızca yanıtları görür. Mobil uygulamada ise durum tersine döner: APK veya IPA dosyası kullanıcının cihazına indirilir, yani saldırganın da cihazına. Saldırgan uygulamayı parçalarına ayırabilir, içine gömülü API anahtarlarını okuyabilir, şifreleme mantığını tersine mühendislikle çözebilir ve yerel depolamada tutulan verileri inceleyebilir. Bütün bunları, sizin altyapınıza tek bir paket bile göndermeden yapabilir.

Üstelik mobil uygulamalar genellikle en hassas verileri taşır: kimlik bilgileri, oturum anahtarları, ödeme bilgileri, konum, sağlık verileri ve KVKK kapsamındaki kişisel veriler. Bir uygulama mağazasına yüklenen her sürüm, dünyanın herhangi bir yerindeki herhangi bir kişi tarafından indirilebilir, statik olarak incelenebilir ve dinamik olarak çalıştırılabilir. Bu nedenle mobil uygulama güvenlik testi, artık isteğe bağlı bir adım değil, ürünü piyasaya sürmeden önce tamamlanması gereken bir zorunluluktur.

DSET'in egemen yapay zeka güvenlik motoru KAOS, tam olarak bu sorunu çözmek için tasarlandı. KAOS, APK ve iOS uygulamalarını OWASP Mobile Application Security standartlarına göre uçtan uca analiz eder, her bulguyu bir kanıt (PoC) ile doğrular ve yanlış pozitif üretmeden raporlar. Bu yazıda mobil uygulamaların neden benzersiz biçimde açık olduğunu, OWASP MASVS ve MASTG çerçevesini, en sık görülen mobil riskleri ve KAOS'un APK ile iOS analizini nasıl yürüttüğünü ele alıyoruz.

Hızlı Cevap

Mobil uygulama güvenlik testi, bir Android (APK) veya iOS uygulamasını saldırganın bakış açısıyla statik ve dinamik olarak analiz ederek güvensiz depolama, gömülü sırlar, zayıf şifreleme, güvensiz iletişim ve açık bileşen gibi riskleri ortaya çıkarma sürecidir. DSET'in KAOS motoru bu süreci OWASP MASVS ve MASTG çerçevesine göre yürütür, 75'ten fazla uzman ajanla her saldırı yüzeyini tarar ve her bulguyu kontrollü bir sanal alanda kanıtla doğrular. Sonuç, yanlış pozitif içermeyen, her maddesi PoC ve düzeltme önerisiyle gelen, KVKK ve ISO 27001'e eşlenmiş bir mobil sızma testi raporudur.

Mobil Uygulamalar Neden Benzersiz Biçimde Açıktır

Mobil güvenliğin temel gerçeği şudur: ikili dosya saldırganın elindedir. Bir web uygulamasını saldıran kişi, sunucuya gönderdiği istekler ve aldığı yanıtlarla sınırlıdır. Mobil uygulamada ise saldırgan, çalıştırılabilir kodun tamamına sahiptir. APK dosyası aslında bir ZIP arşividir; içinden DEX bayt kodu, kaynaklar, sertifikalar ve manifest dosyası çıkarılabilir. iOS tarafında IPA dosyası benzer biçimde Mach-O ikili dosyaları ve kaynaklar içerir. Bu paketler indirildikten sonra saldırgan, hiçbir ağ gürültüsü üretmeden, kendi laboratuvarında istediği kadar zaman harcayarak inceleme yapabilir.

Bu durum, sunucu tarafında geçerli olan birçok varsayımı geçersiz kılar. İstemci tarafında saklanan hiçbir sır gizli kalamaz. Uygulama içine gömülü bir API anahtarı, bir şifreleme tohumu veya bir imzalama sırrı, yeterince motive olmuş bir saldırgan tarafından mutlaka bulunur. Aynı şekilde, yalnızca istemci tarafında uygulanan iş mantığı kontrolleri (örneğin "kullanıcı premium mu" denetimi) atlatılabilir, çünkü saldırgan kodu değiştirip yeniden imzalayabilir. Bu yüzden mobil uygulama güvenliği, hem ikili dosyanın içindeki sırları hem de uygulamanın konuştuğu arka uç API'lerini eşzamanlı olarak değerlendirmeyi gerektirir.

İkinci bir boyut, mobil ekosistemin parçalı doğasıdır. Android cihazları farklı sürümler, üreticiler ve güvenlik yamaları çalıştırır. Kök erişimli (rooted) veya jailbreak edilmiş cihazlarda uygulamanın çalışma ortamı tamamen saldırgan kontrolündedir. Bu nedenle ciddi bir APK güvenlik analizi, uygulamanın güvenli olmayan bir ortamda çalıştığı varsayımıyla yapılmalıdır.

Üçüncü bir boyut, mobil uygulamaların güncelleme hızıdır. Web uygulamalarında bir yamayı saniyeler içinde yayına alabilirsiniz; tüm kullanıcılar bir sonraki istekte düzeltilmiş sürümü görür. Mobil tarafta ise bir güvenlik düzeltmesi, mağaza onay süreçlerinden geçmeli ve ardından kullanıcıların uygulamayı güncellemesi beklenmelidir. Bu, kritik bir zafiyetin kullanıcıların cihazlarında günlerce, hatta haftalarca açık kalabileceği anlamına gelir. Dolayısıyla mobil uygulamalarda güvenliği yayın öncesinde sağlamak, yayın sonrasında düzeltmekten kat kat daha değerlidir. Mobil sızma testi tam da bu yüzden ürün yaşam döngüsünün erken bir aşamasına yerleştirilmelidir.

OWASP MASVS ve MASTG Çerçevesi

Mobil uygulama güvenlik testi, gelişigüzel bir kontrol listesi değildir. Sektörün ortak dili OWASP Mobile Application Security projesidir ve iki temel belgeden oluşur. Birincisi MASVS (Mobile Application Security Verification Standard), bir mobil uygulamanın karşılaması gereken güvenlik gereksinimlerini tanımlayan doğrulama standardıdır. İkincisi MASTG (Mobile Application Security Testing Guide), bu gereksinimlerin nasıl test edileceğini adım adım açıklayan test rehberidir.

MASVS, güvenlik gereksinimlerini mantıksal kategoriler altında toplar: depolama (verilerin cihazda nasıl saklandığı), şifreleme (kriptografik mekanizmaların doğru kullanımı), kimlik doğrulama ve oturum yönetimi, ağ iletişimi, platform etkileşimi, kod kalitesi ve dayanıklılık (tersine mühendisliğe karşı direnç). Bu yapı, testi rastgele zafiyet avından sistematik bir doğrulama sürecine dönüştürür. Bir uygulama "test edildi" demek yeterli değildir; hangi MASVS gereksinimlerinin hangi sonuçla doğrulandığı belgelenmelidir.

Bunun yanında OWASP Mobile Top 10, en yaygın ve en yüksek etkili mobil risk kategorilerini önceliklendirir: güvensiz veri depolama, güvensiz iletişim, yetersiz kriptografi, güvensiz kimlik doğrulama ve benzeri. KAOS, mobil bulgularını bu çerçevelere ve ayrıca her zafiyetin altındaki CWE (Common Weakness Enumeration) kimliğine eşler. Böylece bir bulgu yalnızca "güvensiz depolama" olarak değil, ilgili MASVS gereksinimi, Mobile Top 10 kategorisi ve kesin CWE numarasıyla raporlanır. Bu eşleme, raporun teknik ekipler tarafından doğrudan eyleme dönüştürülmesini sağlar.

En Sık Görülen Mobil Riskler

Mobil uygulamalarda tekrar eden bir dizi zafiyet ailesi vardır ve bunların çoğu, sunucu varsayımlarının istemciye taşınmasından doğar. İlk büyük aile güvensiz veri depolamadır. Geliştiriciler oturum belirteçlerini, kişisel verileri veya kimlik bilgilerini SharedPreferences, düz metin dosyaları, SQLite veritabanları veya iOS tarafında korumasız plist dosyalarında saklayabilir. Cihaza erişimi olan bir saldırgan veya kötü amaçlı bir uygulama, bu verileri okuyabilir.

İkinci aile gömülü sırlardır (hardcoded secrets). API anahtarları, üçüncü taraf servis kimlik bilgileri, şifreleme anahtarları ve imzalama sırları, uygulama koduna doğrudan yazıldığında ikili dosyadan çıkarılabilir. Bu, en sık görülen ve en hızlı sömürülen mobil zafiyetlerden biridir, çünkü tek bir string arama bile çoğu zaman sonuç verir.

Üçüncü aile zayıf veya yanlış kullanılan kriptografidir. ECB modu kullanımı, sabit kodlanmış başlatma vektörleri, eski algoritmalar (MD5, DES), zayıf rastgele sayı üreteçleri ve kendi şifreleme şemasını yazma girişimleri bu kategoriye girer. Doğru kriptografik ilkel bile yanlış kullanıldığında koruma sağlamaz.

Dördüncü aile güvensiz iletişimdir. TLS olmadan veri gönderimi, sertifika doğrulamasının devre dışı bırakılması veya sertifika sabitlemenin (SSL pinning) eksikliği, ortadaki adam saldırılarına kapı açar. Beşinci aile açık bileşenlerdir (exported components). Android manifest dosyasında gereksiz yere dışa açılmış Activity, Service, Broadcast Receiver veya Content Provider bileşenleri, diğer uygulamaların yetkisiz işlemler tetiklemesine olanak tanır. Altıncı aile tersine mühendislik ve kurcalamadır; obfuskasyon, kök tespiti veya bütünlük kontrolü olmayan uygulamalar kolayca değiştirilip yeniden paketlenebilir. Son olarak arka uç ve API ifşası, mobil güvenliğin en kritik ama en çok ihmal edilen boyutudur. İstemcide bulunan API uç noktaları, kimlik doğrulama akışları ve sunucu mantığı, mobil testin ayrılmaz bir parçası olarak değerlendirilmelidir.

Statik Analiz mi, Dinamik Analiz mi

Mobil güvenlik testi iki tamamlayıcı yaklaşım gerektirir. Statik analiz (SAST), uygulamayı çalıştırmadan ikili dosyayı ve kaynaklarını inceler. APK açılır, DEX bayt kodu çözülür, manifest okunur, kaynaklar ve sertifikalar denetlenir. Statik analiz gömülü sırları, zayıf kriptografi çağrılarını, açık bileşenleri ve güvensiz depolama desenlerini bulmada güçlüdür. Avantajı, kod yollarının tamamını görebilmesi ve çalıştırma ortamına ihtiyaç duymamasıdır.

Dinamik analiz (DAST), uygulamayı gerçek veya öykünülmüş bir ortamda çalıştırarak davranışını gözlemler. Çalışma zamanında hangi dosyaların yazıldığı, ağ trafiğinin nasıl şifrelendiği, oturum belirteçlerinin nasıl yönetildiği ve sertifika sabitlemenin gerçekten uygulanıp uygulanmadığı dinamik olarak görülür. Statik analizin tek başına yanıtlayamayacağı sorular, ancak uygulama çalışırken cevaplanır.

İki yaklaşımın birleşimi şarttır, çünkü her biri diğerinin kör noktasını kapatır. Statik analiz potansiyel bir zafiyeti işaret eder, dinamik analiz ise bunun gerçekten sömürülebilir olduğunu kanıtlar. Örneğin statik analiz, kodda bir şifreleme anahtarının sabit kodlandığını gösterebilir; ancak bu anahtarın gerçekten hassas bir veriyi koruyup korumadığı, yalnızca uygulama çalışırken o anahtarın hangi akışta kullanıldığı izlenerek anlaşılır. Aynı şekilde, manifestte dışa açık görünen bir bileşenin gerçek dünyada sömürülebilir olup olmadığı, ancak ona dinamik olarak istek gönderildiğinde netleşir. KAOS'un mobil değerlendirmesi, bu iki katmanı tek bir akışta birleştirir ve sonuçları çapraz doğrular. Bu, yapay zeka destekli otomatik zafiyet tarama yaklaşımının mobil alana taşınmış halidir.

KAOS APK ve iOS Uygulamalarını Nasıl Analiz Eder

KAOS, DSET'in egemen, yüzde yüz yerel ve sıfır API bağımlılığı olan yapay zeka güvenlik motorudur. Başka bir modelin etrafına sarılmış bir paketleyici değil, kendi yapay zekasıdır. Bu egemenlik mobil testte kritik bir avantaj sağlar: analiz edilen APK veya IPA dosyası, hiçbir dış buluta gönderilmez. Hassas bir uygulamanın ikili dosyası, üçüncü taraf bir servisin sunucularına yüklenmeden, tamamen yerel olarak işlenir. KVKK ve gizlilik açısından bu, vazgeçilmez bir özelliktir.

Mimari olarak KAOS, bir orkestratör (swarm) tarafından koordine edilen 75'ten fazla uzman ajandan oluşur. Mobil bir hedef geldiğinde swarm, APK ve iOS analizi için uygun ajanları görevlendirir. Bu ajanlar statik analizi yürütür: ikili dosyayı çözer, gömülü sırları arar, kriptografik kötüye kullanımı tespit eder, güvensiz depolama desenlerini bulur, dışa açılmış bileşenleri sayar, sertifika ve SSL sabitleme sorunlarını denetler ve uygulamanın konuştuğu API/arka uç uç noktalarını haritalar. KAOS yalnızca mobil ikili dosyayı değil, web, exe, tarayıcı uzantısı, dosya, binary ve web3/akıllı sözleşme dahil her saldırı yüzeyini uçtan uca tarayabilen bütünleşik bir motordur, dolayısıyla mobil uygulamanın arka uç API'sini de aynı derinlikte değerlendirir.

KAOS'u sıradan bir tarayıcıdan ayıran şey, çekirdek döngüsüdür: üret, doğrula, öğren. KAOS bir zafiyet adayı bulduğunda kendi istismarını (exploit) yazar, bunu bir kavram kanıtı (PoC) ile gösterir ve kontrollü bir sanal alanda canary çapaları kullanarak doğrular. Canary çapası, bulgunun gerçekten gerçekleştiğini ispatlayan benzersiz bir işarettir; bu sayede KAOS yanlış pozitif raporlamaz. Doğrulanan her bulgu, bir vektör hafızası aracılığıyla öğrenilir, böylece motor zamanla benzer durumları daha iyi tanır. KAOS'un bilgi tabanı 800.000'den fazla belge, tüm CVE kayıtları ve 17.000'den fazla GitHub deposundan beslenir. Bu motor hakkında daha fazla bilgi için KAOS sayfasını inceleyebilirsiniz.

Yanlış Pozitifsiz Doğrulama ve Raporlama

Geleneksel mobil tarayıcıların en büyük sorunu, gürültüdür. Yüzlerce "olası" bulgu üretirler ve güvenlik ekibi bunları manuel olarak elemekle haftalar harcar. KAOS bu sorunu çekirdek tasarımıyla ortadan kaldırır. Her bulgu, kontrollü sanal alanda canary çapalı doğrulamadan geçmeden rapora girmez. Bir bulgu doğrulanamıyorsa düşürülür, doğrulanıyorsa CONFIRMED damgasıyla işaretlenir. Bu, doğrulanmış, yanlış pozitifsiz güvenlik testi yaklaşımının mobil karşılığıdır.

Raporlama tarafında KAOS, her bulguyu bir PoC ve bir düzeltme önerisiyle birlikte sunar. Yani rapor yalnızca "burada bir sorun var" demez; sorunun nasıl tetiklendiğini gösteren somut kanıtı ve geliştiricinin doğrudan uygulayabileceği düzeltme yönergesini içerir. Raporlar Markdown, HTML, JSON ve SARIF biçimlerinde üretilebilir, bu da hem yöneticilerin okuyabileceği hem de CI/CD hatlarına ve hata izleme sistemlerine doğrudan beslenebilen bir çıktı sağlar.

KAOS'un kanıt odaklı yaklaşımının gücü, bağımsız bir kıyaslamayla doğrulanmıştır. KAOS, XBOW kıyaslamasının tamamını, 104 görevin 104'ünü tek bir koşuda çözmüştür; yani yüzde yüz başarı. Bu sonuç, motorun bulguları yalnızca işaret etmekle kalmayıp gerçekten istismar edip kanıtlayabildiğini gösterir. Mobil bağlamda bu, raporunuzdaki her maddenin spekülasyon değil, ispatlanmış bir gerçek olduğu anlamına gelir.

KVKK ve Kişisel Veri İşleyen Uygulamalar

Kişisel veri işleyen her mobil uygulama, KVKK kapsamındadır. Bir uygulama ad, telefon, konum, ödeme veya sağlık verisi topluyorsa, bu verilerin "uygun güvenlik düzeyi" ile korunması yasal bir yükümlülüktür. Güvensiz veri depolama yoluyla cihazda açıkta bırakılan kişisel veriler veya güvensiz iletişim nedeniyle şifrelenmemiş gönderilen bilgiler, doğrudan bir KVKK ihlali oluşturabilir. Mobil uygulama güvenlik testi, bu nedenle yalnızca teknik bir egzersiz değil, bir uyum gerekliliğidir.

KAOS, bulgularını KVKK ve ISO 27001 kontrollerine eşler. Bu, teknik bir zafiyetin doğrudan ilgili yasal ve standart gereksinimine bağlanması anlamına gelir. Örneğin yerel depolamada açıkta bırakılmış kişisel veri, hem teknik bir CWE ile hem de KVKK'nın veri güvenliği yükümlülükleriyle ilişkilendirilir. Bu eşleme, güvenlik raporunun yalnızca geliştiriciler için değil, uyum ve hukuk ekipleri için de doğrudan kullanılabilir olmasını sağlar ve denetim süreçlerinde kanıt niteliği taşır.

Sonuç olarak, kişisel veri işleyen bir mobil uygulama yayınlamadan önce, hem teknik zafiyetlerin hem de KVKK uyum boşluklarının kapatıldığından emin olmak gerekir. KAOS, bu iki ihtiyacı tek bir doğrulanmış raporda birleştirir. DSET'in sunduğu siber güvenlik hizmetleri kapsamında mobil uygulamanızı bu çerçeveyle test edebilirsiniz.

MASVS Doğrulama Seviyeleri ve Hangi Uygulamaya Hangisi

MASVS'in en pratik tarafı, her uygulamaya aynı sertlikte muamele etmemesidir. Standart, gereksinimleri seviyelere ayırır ve siz uygulamanızın taşıdığı riske göre hedef seviyeyi seçersiniz. İlk seviye, MASVS-L1, her uygulamanın karşılaması beklenen temel güvenlik hijyenidir. Burada konu, oturum belirteçlerinin güvenli saklanması, TLS'in doğru yapılandırılması, gömülü sırların temizlenmesi ve kriptografinin standart kütüphanelerle yapılması gibi maddelerdir. Bir alışveriş listesi uygulaması ya da basit bir haber okuyucusu için L1 çoğu zaman yeterli savunmadır.

İkinci seviye, MASVS-L2, savunma derinliğini artırır ve genellikle finansal, sağlık veya kimlik verisi işleyen uygulamalar için hedeflenir. L2'de sertifika sabitleme, anahtarların donanım destekli depolama (Android Keystore, iOS Keychain ve Secure Enclave) içinde tutulması, hassas verilerin bellekte gereğinden uzun kalmaması ve ekran görüntüsü ile pano sızıntılarının engellenmesi gibi daha katı maddeler devreye girer. Bir bankacılık uygulamasını L1 ile bırakmak, kapıyı kilitleyip pencereyi açık unutmak gibidir.

Üçüncü boyut MASVS-R, yani dayanıklılık (resilience) gereksinimleridir. Bunlar bir zafiyeti kapatmaz; saldırganın işini zorlaştırır. Kök ve jailbreak tespiti, hata ayıklayıcı (debugger) tespiti, kod obfuskasyonu, çalışma zamanı bütünlük kontrolü ve kurcalama tespiti bu başlığın altındadır. R gereksinimleri özellikle telif korumalı içerik, ödeme akışları ve oyun içi ekonomi taşıyan uygulamalar için anlamlıdır. Burada dürüst olmak gerekir: dayanıklılık katmanı mutlak koruma sağlamaz, yeterince ısrarlı bir tersine mühendis sonunda aşar. Amaç saldırıyı imkansız kılmak değil, saldırının maliyetini ödülünden yüksek hale getirmektir. KAOS bir mobil hedefi değerlendirirken hangi seviyenin uygun olduğunu uygulamanın işlediği veriden çıkarır ve bulgularını ilgili MASVS kategorisine bu seviye bağlamıyla eşler, böylece rapor "bu eksik" demekle kalmaz, "bu uygulama için bu seviyede eksik" der.

Android ve iOS Risklerinin Platform Bazlı Karşılaştırması

Mobil deyince çoğu kişi tek bir tehdit modeli düşünür, ama Android ile iOS'un saldırı yüzeyleri önemli noktalarda ayrışır. Android tarafında en belirgin fark, açık bileşen mimarisidir. Intent tabanlı bileşenler arası iletişim güçlüdür ama tehlikelidir: manifestte yanlışlıkla exported="true" bırakılmış bir Activity ya da Content Provider, başka bir uygulamanın yetkisiz veri okumasına veya işlem tetiklemesine kapı açar. iOS'ta bu sınıf risk büyük ölçüde yoktur, çünkü uygulamalar arası iletişim çok daha dar ve URL şemaları ile evrensel bağlantılar üzerinden denetimlidir. Buna karşılık iOS'ta URL şeması kaçırma ve doğrulanmamış evrensel bağlantılar kendi risklerini getirir.

Depolama tarafında iki platform farklı tuzaklar sunar. Android'de geliştiriciler sık sık SharedPreferences ve harici depolamayı kötüye kullanır; harici depolamaya yazılan her şey, eski Android sürümlerinde tüm uygulamalara açıktır. iOS'ta benzer hata, hassas veriyi Keychain yerine NSUserDefaults ya da korumasız bir plist dosyasında tutmaktır. Android Keystore ve iOS Keychain doğru kullanıldığında güçlüdür, sorun neredeyse her zaman geliştiricinin kolaya kaçıp düz dosyaya yazmasıdır.

Kök ve jailbreak boyutu da asimetriktir. Android ekosistemi parçalıdır; eski cihazlar, üretici katmanları ve yan yükleme imkanı, kök erişimli bir cihaza ulaşmayı kolaylaştırır. iOS daha kapalı bir bahçedir, ama jailbreak edildiğinde tüm korumalar tek seferde düşer. Platform güvenlik modeli açısından iOS'un kod imzalama ve uygulama korumalı alanı (sandbox) zorunluluğu daha katıdır, Android ise izin modeli ve arka plan servisleri konusunda daha esnek, dolayısıyla daha geniş bir saldırı yüzeyi sunar. Pratik sonuç şudur: aynı kod tabanını iki platforma derlediniz diye iki platform aynı güvenlik profiline sahip olmaz. KAOS her iki ikiliyi de kendi platform tehdit modeliyle değerlendirir, çünkü bir APK'da kritik olan açık Content Provider, IPA tarafında hiç var olmayabilir; buna karşılık IPA'da bir Keychain yanlış yapılandırması, APK'daki Keystore hatasından farklı bir kök neden taşır.

Statiğten Dinamiğe Mobil Test İş Akışı

İyi bir mobil değerlendirme rastgele araç çıktısı toplamaz, sıralı bir iş akışını izler. Birinci adım keşiftir: ikili dosya elde edilir, APK ise unzip edilip DEX'i jadx ile çözülür, IPA ise Mach-O dosyaları ayrıştırılır. Bu aşamada uygulamanın hedef SDK sürümü, istenen izinler, üçüncü taraf kütüphaneler ve manifest yapısı çıkarılır. Burada amaç hızlı bir zafiyet bulmak değil, uygulamanın ne yaptığını ve nereye dokunduğunu anlamaktır.

İkinci adım derinlemesine statik analizdir. Çözülmüş kodda gömülü sırlar (string ve entropi taraması), kriptografik çağrılar, güvensiz depolama desenleri, açık bileşenler ve sabit kodlanmış uç noktalar aranır. Bu adım, hangi davranışların çalışma zamanında doğrulanması gerektiğini belirleyen bir harita üretir. Statik analiz tek başına bir hüküm değil, bir hipotez listesidir.

Üçüncü adım dinamik analizdir. Uygulama köklü bir cihaz ya da öykünücüde çalıştırılır, Frame yakalama araçlarıyla çalışma zamanı davranışı gözlemlenir, dosya sistemine yazılanlar, oturum yönetimi ve şifreleme akışları izlenir. Burada statik aşamada işaretlenen şüpheler kanıta dönüştürülür ya da elenir. Dördüncü adım ağ ve sertifika analizidir: araya giren bir vekil (proxy) ile trafik incelenir, sertifika sabitlemenin gerçekten uygulanıp uygulanmadığı test edilir, başlıklar ve belirteç akışları gözden geçirilir.

Beşinci ve en sık atlanan adım arka uç değerlendirmesidir. Mobil istemci genellikle bir API'ye konuşur ve gerçek hassas mantık orada yaşar. İstemcide keşfedilen uç noktalar, kimlik doğrulama akışları, yetkilendirme kontrolleri ve nesne düzeyinde erişim (IDOR) zafiyetleri bu adımda test edilir. Bir mobil testi arka ucu kapsamadan bitirmek, buzdağının yalnızca su üstündeki kısmını ölçmektir. KAOS bu beş adımı tek bir akışta birleştirir; statik aşamanın çıktısı dinamik aşamayı yönlendirir, dinamik aşamanın bulduğu uç nokta arka uç testini besler ve her katman diğerini çapraz doğrular.

Yayın Öncesi Mobil Güvenlik Kontrol Listesi

Mobil ekipler için en değerli şey, mağazaya yüklemeden önce sistematik bir son kontroldür. Aşağıdaki maddeler bir uygulamayı yayına almadan önce mutlaka doğrulanmalıdır:

  • Sır temizliği: Koda gömülü API anahtarı, parola, imzalama sırrı veya özel uç nokta var mı? Sürüm derlemesinde hata ayıklama günlükleri ve test kimlik bilgileri kapatıldı mı?
  • Depolama: Oturum belirteçleri ve kişisel veri Keystore/Keychain ile mi korunuyor, yoksa düz dosyada mı? Yedeklemeye dahil edilmeleri gereken hassas veriler allowBackup ile yanlışlıkla dışarı sızıyor mu?
  • İletişim: Tüm trafik TLS üzerinde mi? Sertifika doğrulaması herhangi bir akışta gevşetildi mi? Hassas uygulamalar için sertifika sabitleme var mı?
  • Bileşenler (Android): Manifestte gerçekten dışa açık olması gereken kaç bileşen var? exported bayrakları tek tek gerekçelendirildi mi? İmza düzeyinde izinler kullanıldı mı?
  • Kriptografi: Tüm şifreleme platform kütüphaneleriyle mi yapılıyor? ECB modu, sabit IV, MD5 ya da DES kalmış mı? Anahtar türetme doğru mu?
  • Dayanıklılık: Uygulama köklü/jailbreak ortamı, hata ayıklayıcı ve kurcalamayı tespit ediyor mu? Bu kontroller sökülmesi kolay tek bir bayrak değil, çok katmanlı mı?
  • Arka uç: İstemcide görünen her uç nokta sunucu tarafında yetkilendirme yapıyor mu? Yalnızca istemcide uygulanan hiçbir iş kuralı kritik karar vermiyor değil mi?
  • Bağımlılıklar: Üçüncü taraf kütüphaneler güncel mi, bilinen CVE taşıyan sürüm var mı?

Bu liste bir formalite değildir. Maddelerin çoğu, gerçek dünyada ihlale dönüşmüş zafiyetlerin doğrudan karşılığıdır. KAOS bir mobil değerlendirme koştuğunda bu kontrol listesinin teknik karşılığını otomatik üretir ve her maddeyi ya CONFIRMED bir bulguyla ya da temiz geçtiğine dair bir kayıtla işaretler, böylece ekibiniz neyin doğrulandığını ve neyin hâlâ açık olduğunu net görür.

SSS

Mobil uygulama güvenlik testi web sızma testinden nasıl farklıdır?

Temel fark, saldırı yüzeyinin saldırganın elinde olmasıdır. Web testinde saldırgan sunucu yanıtlarıyla sınırlıyken, mobil testte uygulamanın ikili dosyası indirilir ve tersine mühendislikle incelenir. Bu nedenle mobil test, gömülü sırlar, yerel depolama, kriptografi kullanımı ve uygulamanın konuştuğu arka uç API'lerini eşzamanlı değerlendirir. Web testindeki birçok varsayım, istemci tarafında geçersiz olur.

KAOS hem Android APK hem de iOS uygulamalarını test edebilir mi?

Evet. KAOS, Android APK ve iOS uygulamalarını statik analiz, kriptografi kötüye kullanımı, gömülü sırlar, güvensiz depolama, dışa açılmış bileşenler, sertifika ve SSL sabitleme sorunları ile API/arka uç ifşası açısından analiz eder. Her iki platform da OWASP MASVS ve MASTG çerçevesine göre değerlendirilir ve bulgular aynı doğrulanmış raporlama hattından geçer.

Yanlış pozitifsiz raporlama gerçekten mümkün mü?

KAOS, her bulguyu kontrollü bir sanal alanda canary çapaları kullanarak doğrular. Bir bulgu kanıtlanamıyorsa rapora girmez, kanıtlanıyorsa CONFIRMED olarak işaretlenir. Bu üret, doğrula, öğren döngüsü sayesinde KAOS yalnızca gerçekten sömürülebilir zafiyetleri raporlar, böylece güvenlik ekibinizin elemeye harcadığı zaman ortadan kalkar.

OWASP MASVS neden önemlidir?

OWASP MASVS, mobil güvenliğin ortak dilidir ve testi rastgele bir zafiyet avından sistematik bir doğrulama sürecine dönüştürür. MASVS gereksinimleri ve MASTG test rehberi, bir uygulamanın hangi güvenlik kontrollerini karşılaması gerektiğini ve bunların nasıl test edileceğini tanımlar. KAOS bulgularını MASVS, OWASP Mobile Top 10 ve CWE'ye eşler, böylece rapor sektör standartlarıyla doğrudan eşleşir.

Verilerimiz analiz sırasında dışarı sızar mı?

Hayır. KAOS, yüzde yüz yerel çalışan, sıfır API bağımlılığı olan egemen bir motordur. Analiz edilen APK veya IPA dosyası hiçbir dış buluta gönderilmez, tamamen yerel olarak işlenir. Bu, hassas uygulamaların ikili dosyalarının üçüncü taraf servislere yüklenmesini gerektiren araçlara kıyasla, KVKK ve gizlilik açısından belirleyici bir avantajdır.

Sonuç

Mobil uygulamanız, indirilebilir olduğu için doğası gereği saldırgana açıktır. İkili dosya bir kez yayınlandığında, içindeki her sır, her şifreleme kararı ve her güvensiz depolama deseni incelenmeye açıktır. Bu gerçeği görmezden gelmek, kişisel veri işleyen uygulamalar için hem bir güvenlik hem de bir KVKK riskidir. Doğru yaklaşım, uygulamayı yayınlamadan önce OWASP MASVS ve MASTG çerçevesine göre, statik ve dinamik analizle, kanıt odaklı biçimde test etmektir.

KAOS, bu testi yanlış pozitif üretmeden, her bulguyu PoC ve düzeltme önerisiyle, KVKK ve ISO 27001'e eşlenmiş olarak sunar. 75'ten fazla uzman ajan, yüzde yüz yerel çalışma ve XBOW kıyaslamasında 104/104 ile kanıtlanmış kanıt üretme yeteneği, mobil uygulamanızı gerçek bir saldırganın bakış açısıyla değerlendirir. Mobil uygulamanızın güvenlik testini başlatmak için bizimle iletişime geçin veya tüm siber güvenlik hizmetlerimizi inceleyin.

Kaynaklar