Geçtiğimiz sabah, bir arkadaşımın göndermiş olduğu bir e-posta gerçek anlamda beni hayrete düşürdü. E-posta, bir bankanın müşterileri için hazırlamış olduğu iki Java uygulaması ile ilgiliydi. Bu uygulamalardan biri cep telefonunda bankacılık işlemlerinin gerçekleştirilmesini sağlarken bir diğeri ise bireysel interaktif bankacılık işlemlerinde kullanılmak üzere “Tek Kullanımlık Şifre” üretilmesini sağlıyordu ve bu iki uygulamada resmi olarak Android işletim sistemini desteklemiyordu. Arkadaşım için e-postanın en can alıcı kısmı, bir forumdaki bir kişinin bu uygulamaları Android işletim sistemi ile uyumlu hale getirmesiydi. Kuşkusuz bu girişimin nedeni, Android işletim sistemi üzerine ilave program kurmadan Java uygulaması çalıştırılamıyor olması ve bankaların Android işletim sistemi ile uyumlu uygulamalar geliştirmiyor olmasıydı.
Bankalar tarafından müşterilerin kullanımına sunulan bu tür mobil uygulamalar genellikle Java destekleyen mobil cihazlarda ve IPhone/IPAD cihazlarında çalışmaktadır. Her ne kadar Android uygulamaları Java ile yazılıyor, javac derleyicisi ile derleniyor ve standart Java bayt kodu (bytecode) yani class dosyası oluşturuyorda olsa son adımda DEX formatına çevrilerek farklı bir dosya formatına bürünmekte ve Android işletim sistemi üzerinde çalışabilir hale gelmektedir. Android’in APK dosyasını Java’nın JAR dosyası, DEX dosyasını ise Java’nın class dosyası gibi düşünebilirsiniz.
Piyasada dex dosyasını class dosyasına, class dosyasını dex dosyasına çeviren programların bulunması ve ayrıca class dosyalarını decompile edebilen çok sayıda programın olması nedeniyle bir Java uygulamasının Android işletim sistemi ile uyumlu hale getirilmesi beni çok şaşırtmadı. (Internette ufak bir araştırma yapacak olursanız JAR paketini APK paketine çeviren web siteleri olduğunu bile görebilirsiniz.)
Beni asıl şaşırtan, herhangi bir kişi tarafından oluşturulan, doğruluğu ve güvenilirliği soru işareti olan bu paketlerin bir çok kişi tarafından indirilmiş ve cep telefonlarına kurulmuş olmasıydı. Özellikle cep telefonlarına bulaşan Zeus trojanının etrafı kasıp kavurduğu şu günlerde bu tür paketlerin sorgusuz sualsiz cep telefonlarına kuruluyor olması, farkındalığın ne boyutlarda olduğuna dair güzel bir örnekti.
Bunun üzerine bende paketi indirip kısaca bir göz atmaya karar verdim.
Pakette yer alan mesajda “Kötü bir amaç veya başka birşey asla güdülmemiş” ifadesi yer alıyordu. Ayrıca paketi hazırlayan kişi, paketin içine hediye olarak Angry Birds oyununu koymayıda ihmal etmemişti. Güvenlik ile ilgili haberleri takip ediyorsanız, geçtiğimiz günlerde Angry Bird oyununun kullanıcı bilgilerini kopyaladığına dair haberlere rastlamışsınızdır.
Paketin içinden çıkan APK dosyalarını açmak için uzantılarını ZIP olarak değiştirip açtığımda beklendiği gibi her bir paket içinden DEX ve ayrıca DAT uzantılı dosyalar çıktı. Hex editör ile şüpheli bir duruma karşı dosyalara kısaca göz attığımda mobil uygulamalara ait parametrelerin DAT uzantılı dosyalarda şifresiz olarak saklandığını gördüm. Açıkçası bu durum beni biraz şaşırttı çünkü dış dünya ile paylaşılan bir uygulamanın banka tarafından katmanlı güvenlik stratejisi ile hazırlanmış olmasını beklerdim. Ayrıca forumda mobil uygulama bağlantı adresinin elden ele dolaşmasıda bana pek doğru gelmedi en azından bankadan, uygulamaları indirtmeden önce müşterilerini doğrulamasını beklerdim.
Çok ileriye gitmeden göz attığım kadarıyla şüpheli bir durum ile karşılaşmadım ancak her bir DEX dosyasını analiz edene kadar bu iki dosyanında zararsız olduğunu söylemek çok doğru olmayacaktır. Sonuçta art niyetli bir kişi isterse DEX dosyalarını disassemble edebilir, bayt kodlarını değiştirerek bankacılık işlemlerini manipüle edebilir ve bunu Android uyumlu paket hazırladığını ileri sürerek masum insanları kolaylıkla ağına düşürebilir. Bu nedenle doğruluğundan ve güvenilirliğinden emin olmadığınız uygulamaları, özellikle ve özellikle bankacılık uygulamalarını cep telefonunuza kurmamanızı öneririm.
Bir sonraki yazıda görüşmek dileğiyle herkese sağlık ve mutluluk dolu bir yıl dilerim.