Java Bayt Kod Hata Ayıklaması

Tarık Y. sağolsun 10 Ekim 2013 tarihinden bu yana kendisine gelen ve ekinde zararlı yazılım bulunan çoğu sahte e-postayı incelemem için benimle paylaşıyor. Kendisine gönderilen e-postalara bakıldığında, 2013 yılından bu yana aktif olarak java ile zararlı yazılım geliştiren (indirici/dropper) ve sahte e-postalar gönderen bir grubun bu e-postaların arkasında olduğunu anlamak çok zor değil. Antivirüs yazılımlarını atlatmak için çeşitli gizleme (obfuscator) araçlarından da faydalanan bu grup, her salgında ikna adına aşağıdaki gibi yeni senaryolar kullanmaktan çekinmiyor.

Java Bytecode Debugging

Zararlı yazılım geliştiricileri çoğunlukla indiricileri geliştirirken Java programalama dilinden faydalanıyor olmalarının en büyük sebebi, Java’nın yorumlanan (interpreted) bir programlama dili olmasıdır. Bu sayede CLASS dosyasına derlenen .JAVA uzantılı bir kod, Java Virtual Machine (JVM) tarafından çalışma esnasında yorumlanarak makine diline dönüştürülmektedir. Bu durum da JAVA programlama dili ile yazılan zararlı yazılımların Antivirüs yazılımları tarafından kimi durumlarda yorumlanamamasına sebebiyet vermektedir. Ayrıca JVM tarafından çalıştırılan JAR uzantılı yürütülebilir dosyalar veya CLASS uzantılı dosyalar, Ollydbg veya Immunity Debugger gibi hata ayıklayıcılar tarafından çalıştırılamaz dolayısıyla dinamik kod analizi ile analiz edilmesi, PE dosyalara kıyasla daha zordur.

Ancak yorumlanabilir diller, diğer dillerin aksine kaynak koduna geri çevrilebilmektedir (decompile). Zararlı yazılım analistleri için ilk bakışta bu büyük bir nimet gibi görünse de, bunu bilen zararlı yazılım geliştiricileri, Allatori gibi gizleme araçlarından (obfuscator) faydalanmaktadırlar. Böyle bir durumla karşılaştığınız zaman statik bayt kod analizi ile ilerlemek iyi bir tercih gibi görünse de, dinamik bayt kod analizinin yerini zaman ve pratiklik açısından tutmayacaktır.

Allatori gibi araçların özelliklerine baktığınız zaman analizi güçleştiren çeşitli özellikler ile donatıldığını görebilirsiniz dolayısıyla kaynak koduna çevirme ve dinamik bayt kod analizi konusunda sıkıntı yaşayacağınız bir gerçektir!

Örneğin aşağıdaki sahte e-posta ile gönderilen JAR dosyasını Java Decompiler aracı ile kaynak koduna çevirmeye çalıştığımızda kaynak kodunu görüntülemiyor olmamız bizi pek şaşırtmıyor.

Java Bytecode Debugging
Java Bytecode Debugging

Aynı şekilde Eclipse eklentisi olarak kullanılan ve bir bayt kod hata ayıklayıcısı olan Dr. Garbage Bytecode Visualizer aracı ile de JAR dosyasını çalıştırdığımızda bir hata ile karşılaşmamız da bizi şaşırtmıyor.

Java Bytecode Debugging
Java Bytecode Debugging
Java Bytecode Debugging

Aşağıdaki adımlardan sırasıyla geçerek hızlıca Dr. Garbage araçlarını yükleyebilir ve zararlı JAR dosyasını analiz edebilirsiniz.

Java Bytecode Debugging
Java Bytecode Debugging
Java Bytecode Debugging
Java Bytecode Debugging
Java Bytecode Debugging

Bu tür analizi zorlaştırmaya yönelik yöntemlerden faydalanan Java zararlı yazılımlarına karşı reJ isimli, Java bayt kodunu manipüle etmeye imkan tanıyan araçlardan faydalanabilirsiniz. Örneğin reJ aracı ile Ref Axess 5150228026.jar dosyasını incelediğimizde Main fonksiyonunda tanımlanan çok sayıda istisnanın (exceptions) şüpheli olduğu dikkatimizi çekiyor. İstisna listesini kısaltıp kayıt ettikten sonra bu Java dosyasını başarıyla Dr. Garbage’nin bayt kod hata ayıklama aracı ile analiz edebildiğimizi görüyoruz. Bundan sonrasi ise artık ilgili yerlere kesme noktası (breakpoint) koymaya ve analiz etmeye kalıyor.

Java Bytecode Debugging
Java Bytecode Debugging
Java Bytecode Debugging

Java ile geliştirilen zararlı yazılımları analiz etme konusunda elinizin, kolunuzun bağlı olmadığını bilmeniz adına yazdığım bu yazı, umarım sizler için faydalı olmuştur. Bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim.

image_pdfShow this post in PDF formatimage_printPrint this page
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like
Read More

e-Devlet Hacklendi mi?

If you are looking for an English version of this article, please visit here. Öncelikle yazının sonunda söyleyeceğimi başta söyleyeyim, “Hayır, hack-len-me-di!” Peki bu durumda vatandaş olarak rahat bir nefes alabilir misiniz ? Maalesef hayır. Bunun sebebini de yazının devamında okuyabilirsiniz. Zaman zaman hortlayan “e-Devlet Hacklendi!”, “e-Devlet verileri çalındı!”, “85…
Read More
Read More

WhatsApp Dolandırıcıları

If you are looking for an English version of this article, please visit here. Başlangıç Son günlerde hemen hemen WhatsApp uygulaması kullanan herkesi rahatsız eden yabancı cep telefonu numaralarından gelen çağrılardan, mesajlardan ben de yakın zamanda nasibimi aldım ve tabii ki diğer dolandırıcılıklarla ilgili yazılarımda (Kripto Para Dolandırıcıları, LinkedIn Dolandırıcıları,…
Read More
Read More

LinkedIn Dolandırıcıları

If you are looking for an English version of this article, please visit here. Uzun yıllardan beri sosyal ağları ve medyayı etkin kullanan bir siber güvenlik araştırmacısı olarak bağlantılarım arasında yer alanlarınız özellikle hafta içi LinkedIn ve Twitter üzerinden okuduğum ve beğendiğim siber güvenlik makalelerini, haberleri paylaştıklarımı farkediyorlardır. Twitter hesabımın…
Read More
Read More

Bad Bad USB

If you are looking for an English version of this article, please visit here. Her yıl, Ağustos ayında, ABD’nin Las Vegas kentinde düzenlenen geleneksel Black Hat Bilgi Güvenliği Konferansı‘nın sonuncusunda, Karsten NOHL ve Jakob LELL adındaki iki araştırmacı, BadUSB adında dikkat çekici bir sunuma imza attı. Bu sunumda kısaca, USB’de…
Read More