Android işletim sisteminin akıllı telefonlarda ve tabletlerde yaygın olarak kullanılmasından dolayı bu cihazlarda malware zararlı yazılımlar da aynı oranda artmıştır. Malware zararlı yazılımların tespit edilmesi ve analizinin yapılması için çeşitli temel ilke ve araçlar kullanılmaktadır.
Mobil cihazlar, bankacılık bilgisi de dahil olmak üzere çok sayıda önemli kişisel bilgi içerir ve siber suçluları cezbeder. Mobil işletim sistemlerinin geliştirilmesi ile akıllı telefonların ve tabletlerin teknolojik gelişimi iOS ve Android gibi işletim sistemlerini popüler hale getirmiştir. İşletim sistemlerindeki güvenlik açığı ve antivirüs koruması eksikliği nedeniyle mobil platformlarda siber suçluların kötü amaçlı yazılımların geliştirilmesine olan ilgisini arttırmıştır. Bunun sonucunda adli bilişim uzmanlarına yeni bir inceleme alanı doğmuştur.
Android Malware'in Genel Özellikleri
Android işletim sistemindeki çoğu uygulama Java programlama dili kullanılarak geliştirilmiştir. Programlar, 4.4 sürümünden itibaren AndroidRuntime aracılığıyla sistemde yürütülmektedir.
Mobil cihaz uygulamaların analizini yapmak için adli bilişim uzmanın APK formatı hakkında bilgi sahibi olmalıdır. Uygulamalar APK formatında mobil cihaz hafızasında saklanmaktadır.
APK, kaynak dosya kodlarını, sertifikaları ve referans dosyasını içeren bir ZIP arşividir. Yükleme işleminden sonra, APK dosyası sistemdeki belirli bir konuma kopyalanır. Genellikle, sistem uygulamaları için konum / system / app ve kullanıcı tarafından yüklenen uygulamalar için ise / data / app'dir .
Adli işlemler bağlamında bir APK dosyası, imza, bayt kodu ve kaynaklar olmak üzere üç temel önemli bölümü içerir.
İmza, uygulamanın hasar görüp görmediğini öğrenmesine yardımcı olabilecek APK dosyasının bir karma toplamı içermektedir. Dahası uzman, incelenen bir aygıta ait bellekteki kötü amaçlı yazılım tespit işlemini hızlandırmak için kötü amaçlı yazılımların imzaları da dahil olmak üzere, başvuruların imzalarını toplayabilir.
Uygulamanın yürütülebilir kısmı, APK dosyasındaki.dex dosya sınıflarında saklanır ve bayt biçiminde derlenen sınıfların tümünü içerir. Bu sanal makine Java sanal makinesinin aksine kayıt tabanlı olduğu için, bayt kodunun AndroidRuntime sanal makinesinin talimatlarına dönüştürüldüğü belirtilmelidir. Ayrıca, APK dosyası derlenmiş kod içeriyor olabilir (katalog lib).
Kaynaklar, örneğin kullanıcının arabiriminin bileşenleri gibi uygulamanın yürütülebilir olmayan kısımlarıdır. Kaynakların en önemli kısmı, adli işlemler bağlamında, AndroidManifest.xml'dir. Bu dosya, uygulamanın kurulum adımında gerektirdiği izinler hakkında bilgi içerir. Bazı uygulamalar, Android işletim sisteminin korunan API dosyalarına erişebilmek için mesajların, kişilerin vb. kullanım iznini istemektedir. İncelenen dosyanın analizi, kötü amaçlı yazılım tespitinin en önemli adımıdır.
Android malware algılama
Özel kötü amaçlı yazılım tespit uygulamaları olduğu gerçeğine rağmen, bu makale soruna tam olarak çözüm sunmamaktadır. Adli bilişim uzmanının görevi sadece bir malware tespit etmek değil, aynı zamanda kodunu analiz etmek ve kötü niyetli olayları yeniden oluşturmaktır.
Hash, bir kötü amaçlı yazılım tespit etmek için kullanılabilir. Hash veritabanı, örneğin, Google Play'de temsil edilen verilerden toplanabilir. Bir uygulamanın karma toplamının veritabanındaki herhangi bir karma ile uyuşmaması, bu uygulamanın bir kötü amaçlı yazılım olduğunun bir göstergesi olabilir. Açıklamanın, kesin bir sonuç elde etmek için yeterli olmadığı açıktır: ayrıntılı analiz gereklidir.
İzin gereksinimi, Android yazılımının benzersiz bir özelliğidir. Yükleme işlemi sırasında talebin sadece bir kez yapılması gerektiği belirtilmelidir. Birçok kullanıcı bu gereksinimi görmezden gelir ve sonuç olarak, zararsız görünen zararlı yazılım, ihtiyaç duyduğu her şeye erişir. Şüpheli izin isteği, bir kötü amaçlı yazılımın temel özelliklerinden biridir.
Adli önlem alma teknikleri ve önlemleri
Uzmanlar, Android malware'in analizi için en yaygın kullanılan dört anti-bilisim tekniğini kullanılırlar. Bunlar; şaşırtma, dizeleri şifreleme, ayrıştırma direnci ve çevre doğrulamasıdır.
Obfuscation, geliştiricilerin bir uygulamanın işlevlerini güvence altına almasını sağlayan bir tekniktir ancak kodları, analizini yapmak ve algoritmalarını anlamanın zor olacağı şekilde değiştirilecektir.
Uzman, kodu ayrıştırmadan önce kötü amaçlı yazılımın bir kopyasını çıkarmak zorundadır. Ne yazık ki, decompilers uygulamaları oluşturulan kopyayı mükemmel olarak derleyemez. Çözülme işleminden sonra sağlanan kod genellikle eksik ve hatalıdır. Ancak bayt kodu, analiz edilmesi çok daha zor olmasına rağmen her zaman doğru sonuçlar vermektedir. BU DURUM kötü niyetli yazılımların analizinde bayt kodu hesaba katması gerektiğini göstermektedir.
bykodeu (.dex biçiminde) ayıklamak için APK dosyasından örneğin ApkTool'u kullanabilir. Dex2Jar (decompilation) ve JD-CUI (analysis) gibi araçların bir bileşimi, bir bayt kodunun Java kaynak koduna ayrıştırılması için kullanılabilir. Ayrıştırılmış Java kaynak kodu düzenlenmeli: boş sınıfları kaldırmak, hataları düzeltmek, teknikleri, sınıfları, nesneleri yeniden adlandırmak vb. gerekebilir.
Adli işlemler için en değerli bilginin kaynağı bir malware dizgesidir. Dizeleri şifrelemek için geliştiriciler, XOR, Base64, ROT13 (varyasyonları, örneğin ROT15 dahil) ve DES ve AES gibi gelişmiş teknikler gibi basit teknikleri kullanır.
XOR tekniği ile şifrelenmiş dizelerin tanımlanmasını sağlamak için Didier Stevens tarafından geliştirilen XORSearch aracını kullanabilir.
Siber suçluların algoritmanın algılanmasını önlemek için farklı teknikler kullandıklarına dikkat etmek önemlidir.
Base64 tarafından şifrelenmiş dizeleri okunaklı hale getiren çok sayıda program ve çevrimiçi hizmet vardır. Şifre çözme işlemini gerçekleştirmek zor olmasa da, bir uzman için zor olabilir. Örneğin, kötü amaçlı yazılım geliştiricileri Base64 alfabesinde sembol düzenini değiştirdiyse ve standart deşifrelere ilişkin çalışmaları engelleyebilirler.
ROT13 - ele aldığımız diğerlerine göre en basit algoritmadır. Ancak şifre çözme işlemini daha zor hale getirebilecek değişiklikler bulunmaktadır. Kötü amaçlı yazılım geliştiricileri, 13 harfi değil 15'i döndüren ROT15 gibi bu algoritmayı kullanabilir. 15. Bazı kötü amaçlı yazılımlar, yalnızca belirli mobil cihaz türlerinde işlev görecek şekilde yazılır. Bu tür uygulamalar sadece sistem özelliklerini değil aynı zamanda uluslararası mobil abone kimliğini de (IMSI) kontrol eder. Bir aygıt veya emülatör, uygulamanın gereksinimlerini karşılamıyorsa uygulama çalışmaz; dinamik analizi engeller. Bu tekniğe karşı bir önlem bulunmaktadır. Uzmanın zararlı yazılım kodunu değiştirmesi gerekmektedir.
Kötü amaçlı faaliyet izlerinin analizi
Uzmanlar, dinamik ve statik olmak üzere iki analiz yöntemini kullanırlar.
Bazen davranışsal analiz olarak adlandırılan bir malware dinamik analizi bağlamında, uzmanlar, sistem ile etkileşim hakkında bilgi, hangi tür veri toplar, ne tür ağ bağlantısı kurdu vb. de dahil olmak üzere davranışsal özellikleri incelerler.
Dinamik (davranışsal) analiz yapmak için uzman, örneğin Droidbox aracını kullanabilir. Kötü amaçlı yazılım ve sistemdeki etkinliği hakkında aşağıdaki bilgileri toplamaya izin verir:
- APK dosyası karma toplamı (MD5, SHA-1 ve SHA-256 algoritmaları);
- Ağ üzerinden gönderilen ve alınan veri hakkında bilgi;
- Dosyaların okunması ve kaydedilmesi hakkında bilgi;
- Çalışan servisler ve yüklü sınıflar hakkında bilgi;
- Kullanıcının verilerinin toplanması ve gönderilmesi hakkında bilgi;
- Başvurunun aldığı izinler hakkında bilgi;
- Android API kullanan uygulama tarafından yapılan kripto işlemleri hakkında bilgi;
- SMS ve telefon görüşmeleri hakkında bilgi.
Analiz, uzmanlara yukarıda belirtilen bilgileri içeren bir dizi JSON formatında dosya sağlayacaktır. Karşılaştığımız aracın Linux ve Mac OS X işletim sistemlerinde kullanıldığını belirtmek gerekir; ancak uzmanların çoğu Windows işletim sistemlerini çalıştıran bilgisayarları kullanmaktadır. Bu sorunun çözümü, sanal makinenin oluşturulması ve işletim sisteminin kurulması olabilir veya uzman Santoku Linux dağıtımını kullanabilir.
Bu dağıtım ile malware'in statik analizi, kodunun analizini yapar. Bu analiz türündeki temel görev, kötü amaçlı etkinliği yürüten kod bölümünü tanımlamaktır.
Statik analiz yapmak için yaygın olarak ApkTool ve Dex2Jar ve JD-GUI kombinasyonları kullanılmaktadır..
ApkTool, bir kötü amaçlı yazılımı kaldırmaya izin verir. Analiz, aşağıdakileri içeren birkaç dosya ve katalog içeren bilgiyi uzmana sağlayacaktır:
- Android Manifest dosyası, kötü amaçlı yazılım tarafından istenen izinler ve giriş noktaları hakkındaki bilgilerle ilgili bilgileri içerir;
- Uygulamanın şablonunu ve uygulama için gerekli resim dosyalarını açıklayan XML dosyalarını içeren bir res kataloğudur.
- Metin editörü, örneğin Notepad ++ ile analiz edilebilen .smali dosyalarını (operasyonel kodu) içeren bir smali kataloğudr.
Dex2Jar'ı kullanmak için, uzmanın malware'in API dosyasını çıkartması ve sonra classes.dex dosyasını (bayt kodu), Dex2Jar yoluyla classes.dex.dex2jar.jar (java-code) 'ya dönüştürmesi gerekir. Java kodunu içeren dosyanın analizi JD-GUI programıyla yapılabilir.
Sonuç
Bu makalede, Android işletim sistemi malwareinin algılanması ve analizinin ana ilkelerini tartıştık. Android uygulamaları analizinde kullanılan temel araçlar hakkında bilgi verilmiştir.
Mobil cihazlarda ayrıntılı kötü amaçlı yazılım incelemesini yaptırmak için Bigdata ile iletişime geçiniz.