Sabır Sınavı

Türkiye’nin en büyük finans kuruluşlarından birinin mobil uygulamasını test yapıyoruz. Bu bizim için hem çok güzel bir fırsat hem de gerçek bir sınav. Çünkü uygulamanın bizden önce onlarca defa test edildiği aşikâr. Güzel bir zafiyet çıkarmadan bu işi bırakmak istemiyorum.

Neyse ki yaz dönemi ve bu işe ayıracak zamanı bulabiliyorum. Android tarafta uygulamayı tersine mühendislik ile açıyorum ve incelemeye başlıyorum. Uygulamanın SSL Pinning (gelen giden trafiği görmeyi engelleyen bir mekanizma) koruması var ve onu atlatmak istiyorum. Aslında Frida ve Objection gibi araçlar var ama nedense zor yolu seçmek istiyorum.

Uygulama paketini dışarı aktarıyorum, üzerinde ufak bir kod değişikliği yapıyorum, sonra yeniden paketliyorum. Ardından yapay bir sertifika üreterek onunla imzalıyorum ve uygulamayı telefonuma yeniden kuruyorum. Yalnız uygulamanın içinde in-app protection mekanizması var, yani koddaki en ufak bir değişiklik ya da sahte sertifika kullanımı gibi bir durumu kontrol eden ekstra bir kod paketi.

Başka çarem olmadığını görüyorum, olayı psikopata bağlıyorum. Her bir adımla, ilgili smali kod parçacığını uygulama içinde buluyorum, siliyorum ya da değiştiriyorum, yeniden derleyip yeniden telefona yüklüyorum. Bu işlemi 500’ün üzerinde tekrarlıyorum. 12 gün boyunca hiç ara vermeden. Smali dili aslında donuk bir dil, hiçbir geri besleme alamıyorsunuz. Bunu aşmak için loglama mekanizmasını kendime özel yöntemler geliştiriyorum. Gerçekten çok sabır istiyor. Bir süre sonra uygulamanın Aktivasyonadımını tamamen devre dışı bırakabildiğimi görüyorum. Sonunda ise kendi profil sayfama ulaşabiliyorum. Ama bazı sayfa baya boş geliyor.

iPhone tarafında ise jailbreak yapılmış bir telefonda SSL Killchain ile SSL Pinning bypass yapmanın çok kolay olduğunu görüyoruz. Dolayısıyla hiç boğuşmadan sayfamıza ulaşıp trafiği kesebiliyor ve analizlere başlıyoruz. Bir de bakıyoruz ki başkasının profil sayfasını değiştirebiliyoruz. Bu o günün eğlencesi oluyor, kurumdaki arkadaşlar, başka yetkililerin profil resmini rakip futbol takımının amblemi ile değiştirmemizi istiyor ve yapıyoruz.

Bu ve bazı diğer ufak bulgularla raporumuzu sunuyoruz. Bizden bulgularımızı yazılım ekibiyle paylaşmamızı istiyorlar. Yazılım ekibinin başındaki arkadaş nedense ilk başta bize düşman gibi davranıyor, bulgumuzu da önemsiz göstermeye çalışıyor. Ancak konuştukça benim yazılım koduna ne kadar hâkim olduğumu anlıyor. Verdiğimiz emeği ve ciddi yaklaşımımızı anladıkça o da takdir etmeye başlıyor ve teşekkür ediyor. Ben yine de kendime bir ders çıkarıyorum ve bir pentest sonucunda yazılım ekibiyle mümkün oldukça doğrudan bir araya gelmeme kararı alıyorum.

Aklıma başarısının sırrını soran vezirine parmak ısırma testi yapan Timur geliyor. Konu ne kadar farklı olursa olsun, bazı gerçekler ve parametreler hiç değişmiyor.