Bu yazıda, Android işletim sisteminin akıllı telefonlarda ve tabletlerde yaygın bir şekilde kullanıldığını göz önünde bulundurarak, Android işletim sisteminde kötü amaçlı yazılımlarının tespit ve analizinin temel ilkelerini ele alacağız. Uzmanlar tarafından Android uygulama analizi için kullanılan ana araçlardan yola çıkarak mobil cihazlardaki casus yazılım benzeri uygulamaların bulunmasına ilişkin bir metodolojiden bahsedeceğiz.
Mobil cihazlar, bankacılık bilgileri de dahil olmak üzere çok sayıda önemli kişisel bilgi içerir ve bu nedenle siber suçluları cezbetmektedir. Örneğin akıllı telefonların ve tabletlerin teknolojik gelişimi iOS ve Android gibi mobil işletim sistemlerini popüler hale getirdi. Yüksek talep, çok sayıda işletim sistemi güvenlik açığı ve antivirüs koruması eksikliği siber suçluların mobil platformlar için virüslü yazılımlar geliştirmeye olan ilgisini uyandırdı. Sonuç olarak, adli bilişim uzmanları için yeni bir çalışma sahası ortaya çıktı.
1. Android kötü amaçlı yazılımlarının genel karakterizasyonu
2. Android casus yazılım tespiti
3. Anti-adli bilişim teknikleri ve karşı önlemler
4. Zararlı yazılım faaliyet izlerinin analizi
5. Sonuç
Android kötü amaçlı yazılımlarının genel karakterizasyonu
Android işletim sistemindeki uygulamaların çoğu Java programlama dili kullanılarak geliştirilmiştir. Programlar, 4.4 sürümünden itibaren AndroidRuntime ile sistemde yürütülmektedir.
Uygulamaların analizini yapabilmek için bir uzman öncelikle uygulamaların formatını anlamalıdır. Analiz edilecek uygulamalar APK formatında mobil cihaz hafızasında saklanır. Bir uygulamanın ilk önce derlendiğinin ve bunun ardından tüm dosyalarıyla birlikte APK dosyasına arşivlendiğinin fark edilmesi önemlidir. Bu dosya bayt kodları, kaynaklar, sertifikalar ve bildirim dosyası içeren bir ZİP arşividir. Kurulumdan sonra, APK dosyası sistemdeki belirli bir yere kopyalanır. Genellikle, sistem uygulamaları için konum /system/app, kullanıcı tarafından yüklenen uygulamalar için /data/app’tir.
Adli bilişim bağlamında, bir APK dosyası üç ana önemli bölüm içerir: imza, bayt kodu ve kaynaklar
İmza, APK dosyasının zarar görüp görmediğini anlamaya yardımcı olabilecek hash kodunu içerir. Ayrıca, uzman, incelenen bir cihazın hafızasında bir kötü amaçlı yazılım tespit işlemini hızlandırmak için zararlı yazılım imzalarını içeren uygulamaların imzalarını toplayıp eldeki hash kodu ile karşılaştırabilir.
Uygulamanın çalıştırılabilir kısmı, APK dosyasında bulunan classes.dex dosyasında depolanır ve tüm derlenmiş sınıfları bytecode şeklinde içerir. Java sanal makinesinin aksine, AndroidRuntime sanal makinesi kayıt tabanlı (registry-based) olduğundan, bayt kodunun işlemlere dönüştürüldüğü belirtilmelidir. Ayrıca, APK dosyası derlenmiş kod içerebilir (catalog lib).
Kaynaklar, uygulamanın çalıştırılamaz kısımlarıdır, örneğin kullanıcı arayüzü bileşenleri. Telefonların adli bilişim incelemesi bağlamında kaynakların en önemli kısmı AndroidManifest.xml‘dir. Bu dosya, uygulamanın yükleme aşamasında gerektirdiği izinler hakkında bilgi içerir. Bazı uygulamalar Android işletim sisteminin korumalı API dosyalarına erişmek için mesaj, rehber vb. kullanma izni ister. AndroidManifest.xml analizi, zararlı yazılım tespitinin en önemli adımıdır.
Android casus yazılım tespiti
Özel amaçlı zararlı yazılım tespit uygulamaları olmasına rağmen, karmaşık sorulara çözüm sunmazlar. Adli bilişim uzmanının görevi yalnızca bir kötü amaçlı yazılımı tespit etmek değil, aynı zamanda kodunu analiz etmek ve verilen zararı bulmak ve delillendirmek için zararlı aktiviteleri yeniden yapılandırmaktır.
Bir kötü amaçlı yazılımı tespit etmek için hash kodu kullanılabilir. Hash veritabanı, örneğin Google Play’de sunulan verilerden toplanabilir. Bir uygulamanın hash kodunun, veritabanındaki hash kodları ile eşleşmemesi, bu uygulamanın kötü amaçlı bir yazılım olduğunu gösterebilir. Bu belirtinin kesin bir sonuç çıkarmak için yeterli olmadığı açıktır. Derinlemesine analiz gereklidir.
İzin gereksinimi, Android yazılımlarının benzersiz bir özelliğidir. Kullanıcı onayı kurulum işlemi sırasında sadece bir kez istenmektedir. Birçok kullanıcı bu talebi çok önemsemez ve sonuç olarak, zararsız gibi görünen kötü amaçlı yazılım, ihtiyaç duyduğu her şeye erişir. Şüpheli izin isteği, kötü amaçlı yazılımın temel özelliklerinden biridir.
Anti-adli bilişim teknikleri ve karşı önlemler
Uzmanlar, Android zararlı yazılımlarda yaygın olarak kullanılan dört anti-adli bilişim tekniğine vurgu yapmaktadır:
- Zihin karıştırma
- Karakter dizileri şifreleme
- Ayrıştırmayı zorlaştırma
- Çevre doğrulama
Zihin karıştırma, geliştiricilerin bir uygulamanın işlevlerini güvenceye almasına izin veren bir tekniktir. Ancak bu teknik ile uygulama kodu, analiz yapılması ve algoritmaların anlaşılması zor olacak şekilde değişmektedir.
Uzman, kötü amaçlı yazılımın kodunu incelemeden önce ayrıştırmasını yapmak zorundadır. Ne yazık ki, decompilers uygulamaları mükemmel şekilde ayrıştırma yapamaz. Ayrıştırma işleminden sonra verilen kod genellikle eksiktir ve hatalara sahiptir. Ancak analiz edilmesi çok daha zor olsa bile bytecode her zaman doğrudur. Bunlar, uzmanların kötü amaçlı yazılımları analiz ederken hem ayrıştırılmış kodu hem de bytecode’u dikkate alması gerektiğini gösterir.
APK dosyasından bayt kodunu (.dex biçiminde) çıkarmak için ApkTool oldukça faydalıdır. Dex2Jar (ayrıştırma) ve JD-GUI (analiz) gibi araçların kombinasyonu, bir bayt kodunun Java kaynak koduna ayrıştırılması için kullanılabilir. Ayrıştırılmış Java kaynak kodunun düzenlenmesi gerekir: boş sınıfları kaldırmak, hataları düzeltmek, teknikleri, sınıfları, nesneleri vb. yeniden adlandırmak.
Kötü amaçlı yazılım dizileri, adli bilişim süreci için en değerli bilgilerin kaynağıdır. Dizi şifrelemeleri yapmak için, geliştiriciler XOR, Base64, ROT13 gibi basit teknikleri ve DES, AES gibi karmaşık olanları kullanır.
XOR tekniğiyle şifrelenmiş karakter dizisi çözümlemesi yapmak için Didier Stevens tarafından geliştirilen XORSearch aracı tercih edilen bir araçtır. Siber suçluların algoritmanın tespit edilmesini önlemek için farklı teknikler kullandığına dikkat etmek önemlidir.
Zararlı yazılım faaliyet izlerinin analizi
Zararlı yazılım aktivitelerinin analizi dinamik ve statik analiz olmak üzere iki şekilde ele alınır.
Davranışsal analiz olarak da adlandırılan dinamik analiz bağlamında, kötü amaçlı yazılımın sistemle etkileşime ilişkin bilgiler izlenir. Ne tür veriler topladığı, ne tür bir ağ bağlantısı kurduğu vb. dahil olmak üzere davranışsal özelliklerle ilgili bilgiler toplanır.
Dinamik (davranışsal) analiz yapmak için, örneğin Droidbox aracı kullanılabilir. Droidbox, kötü amaçlı yazılımlar ve sistemdeki etkinliği hakkında aşağıdaki bilgilerin toplanmasına olanak tanır:
- APK dosyası hash özeti (MD5, SHA-1 ve SHA-256 algoritmaları)
- Ağ üzerinden gönderilen ve alınan veriler
- Dosyaların okunması ve kaydedilmesi hakkında bilgi
- Çalışan hizmetler ve yüklü sınıflar
- Kullanıcı verilerinin toplanması ve gönderilmesi hakkında bilgi
- Uygulamanın aldığı izinler
- Android API kullanarak uygulama tarafından yapılan şifreleme işlemleri
- Gönderilen SMS ve telefon aramaları
Bu analiz adli bilişim uzmanına yukarıda belirtilen bilgileri içeren JSON formatında bir dizi dosya sağlayacaktır. Bu aracın Linux ve Mac OS X işletim sistemlerinde kullanıldığını belirtmek gerekir. Ancak uzmanların çoğu Windows işletim sistemi çalıştıran bilgisayarları kullanmaktadır. Bu sorunun çözümü sanal bir makine oluşturmak olabilir.
Statik analiz, zararlı yazılımın kodunu incelemeyi ifade etmektedir. Bu tür bir analizin asıl görevi, kötü niyetli aktiviteyi yürüten kodun parçasını belirlemektir.
Statik analiz yapmanın yaygın olarak kullanılan iki yolu vardır:
- ApkTool
- Dex2Jar ve JD-GUI kombinasyonu
ApkTool bir malware’in ayrıştırılmasını sağlar. Bu araç ile yapılan analiz, aşağıdakilerin elde edilmesine imkan tanır:
- Kötü amaçlı yazılım tarafından istenen izinler ve giriş noktaları hakkındaki bilgileri içeren Android Manifest dosyası
- Uygulamanın şablonunu tanımlayan XML dosyalarını ve uygulama için gerekli görüntü dosyalarını vb. içeren res kataloğu
- Notepad++ gibi syntax vurgulama özelliğine sahip metin editörü ile analiz edilebilen .smali dosyaları (operasyonel kod) içeren küçük bir katalog
Dex2Jar’ı kullanmak için, uzmanın kötü amaçlı yazılımın API dosyasını çıkarması ve daha sonra classes.dex dosyasını (bytecode) Dex2Jar aracılığıyla classes.dex.dex2jar.jar (java-code) haline dönüştürmesi gerekir. Java kodunu içeren dosyanın analizi JD-GUI programı ile yapılabilir.
Sonuç
Bu yazıda, Android telefonlardaki işletim sistemlerinde kötü amaçlı yazılımın tespit ve analizinin temel prensiplerini ele aldık. Telefon ve tablet gibi mobil cihazlara yüklenebilen uygulama analizi için kullanılan ana araçlardan bahsettik. Sonraki yazılarımızda ise zararlı yazılım analizi metotlarına ve araçlarına daha yakından bakacağız. Ayrıntılı analizin örneklerini sunacağız.
Cep telefonunuzdan silinen bilgilere ulaşmak mı istiyorsunuz? Açtığınız/açacağınz davada ya da size açılan karşı davada kullanmak üzere cihazınızı inceletmeyi mi düşünüyorsunuz?
Best Veri Kurtarma, uzman kadrosuyla bilgi sistemlerini ve mobil cihazları usüllere uygun olarak inceler. Kolay anlaşılır şekilde, görsellerle desteklenmiş olarak raporlar. Sorularınız ve Adli Bilişim başvurularınız için lütfen bizimle iletişime geçiniz.
Best Veri Kurtarma Merkezi
Biz “Kurtarılamaz” Demedikçe Hiçbir Veri Kurtarılamaz Değildir..