Malware Analizi Nedir? Basit Malware Analizi

Malware Analizi Nedir? Basit Malware Analizi

Herkese merhaba. Bu yazımda, Malware analizinden söz edeceğim. Teori bölümlerinin ardından bir zararlı yazılım üzerinde basitçe dinamik analiz gerçekleştirmeye çalışacağım. Keyifli okumalar dilerim.

Malware Nedir?

Öncelikle malware teriminden bahsedelim. Adından da anlaşılacağı üzere kötü bir amacı hedefleyen yazılımlardır. Malicious ve Software kelimelerinden bu terim ortaya çıkmıştır. Virüs, backdoor, rat,worms gibi yazılımlar malware olarak bilinir.

Malware kullanım amacı olarak, sistemlere bulaşarak birçok bilgiyi sızdırabilir. Bilgisayarınıza bulaşan bir backdoor ile kameranız ele geçirilebilir, şifreleriniz dump edilebilir veya kurumlar açısından düşünürsek eğer, paylaşılmasını istemediğiniz dosyalar sisteminize sızanların ellerine geçebilir.

Malware’in çalışma mantığını anlayabilmemiz için, saldırı yapısını incelememiz gerekmektedir. Bu yapıyı aşağıdaki gibi özetleyebiliriz;

  • Giriş Noktası: Malware’in sisteme hangi yolla bulaştığıdır. Herhangi bir zararlı web sitesi, phishing, usb cihazı vs.
  • Dağıtım: Malware trafiği, java, flash player vb. uygulamaları kontrol eden sunucudan gelen bir işlemle başlar.
  • Exploit: Sistemde çalıştırılmak için ve ayrıcalığını yükseltmek için hazırlanan kod parçacıklarıdır.
  • Enfeksiyon: Başarıyla çalışan bir exploit’in, erişimini sağlamlaştırmak ve uzaktan erişim ile dosya yükleme, indirme gibi işlemleri gerçekleştirmek için sisteme bir payload yüklemek.
  • Saldırı: Uygulama aşamasıdır.

Oldukça fazla malware çeşidi bulunmaktadır. Birçok platformda bu tür zararlı yazılımlar ile ilgili bilgiler okuyabilirsiniz. Burada worm, trojan, keylogger, ransomware gibi zararlı yazılımlardan tek tek bahsetmeyeceğim. Kısacası, malware kullanılarak oldukça fazla saldırı gerçekleşmektedir. Bu saldırıların önüne geçebilmek için malware analizi oldukça önemli bir hal almaktadır.

Malware Analizi Nedir?

Malware analizi, kötü niyetli yazılımların çeşitli araçlar ve yöntemler kullanılarak incelenmesine denir. Eğer bir malware in analizi yapılmaz ise o malware e karşı ne gibi önlemler alınacağı bilinemez ve böylece malware sürekli yayılmaya devam eder.

Son cümleye baktığımız zaman aslında malware analizinin önemini anlamaktayız. Gelen saldırıyı, kötü niyetli yazılımı inceleyemezsek ya da incelemezsek hem kendi açıklarımızı görememiş oluruz hem de zararlı yazılımlara karşı bir savunma geliştirememiş oluruz.

Malware tespiti konusunda antivirüs programları genel olarak başarılı görünse de artık günümüzde gelişmiş kötücül yazılımlar, antivirüsü bypass edebilmektedir. Antivirüsler, zararlı yazılımları yakalamak için veri tabanında bulunan imzaları karşılaştırarak denetim yaparlar. Fakat zararlı yazılımlar sürekli olarak geliştirilerek imzanın değişmesine neden olurlar. Bu şekilde de antivirüsü sürekli güncel tutmak gerekmektedir. Ayrıca encyrption, encoding, kod bulanıklaştırma gibi yöntemlerle de imza değiştirebilmektedir. Yani artık günümüzde antivirüsler yeterli olmamaktadır.

Bazı analiz tekniklerinden ve araçlarından söz edelim.

Statik Analiz

Statik analiz, malware in sistem üzerinde çalıştırılmadan kodlarına bakarak incelenmesidir. Yorum gerektirdiği için ciddi anlamda kod bilgisi gereklidir. İçerdiği kütüphane, fonksiyonlar, stringler görüntülenir. Statik analizde packing ve obfuscating kavramları önemlidir. Kısaca bahsetmek gerekirse packing için dosya sıkıştırma denilebilir. Bir zararlı yazılımı packlemenin asıl amacı ana kodu sıkıştırdıktan sonra, zararlı yazılım çalıştığında, sıkıştırılmış kodu hafıza içerisinde çözmektir. Bunu yapmasının amacı, malware analizini engellemek için kafa karıştırmaktır.

Obfuscation ise, kodun okunurluğunu bulanıklaştırmak, zorlaştırmaktır. Bir kodu ne kadar daha az okunabilir kılarsanız, anlaşılması da o kadar zorlaşacaktır. Encoding gibi düşünülebilir aslında. Diyelim ki elimizde “sergen” adında bir değişken var ve kod içerisinde “yfdjdfl23” şeklinde tutulursa eğer bu bir “obfuscated değişkendir” diyebiliriz.

Statik analizde kullanılan bazı programlar;

  • Strings, IDA, Dependency Walker, PEiD, JAD,Reflector, dnSpy, Deobfuscation Tool, Hashcalculator, md5checksum, PeStudio.
  • Disaasembler: Bu yazılımlar, programı disassembly işleminden geçirerek programın assembly kodu şeklinde gösterilmesini sağlar. Bu şekilde programın içerisindeki stringleri, çağrılan fonksiyonları ve programın akış şeklini rahatça görebilmemize olanak sağlar.

Dinamik Analiz

Malware in, debugger ile sistem üzerinde çalıştırılarak davranışlarını çeşitli araçlarla analiz etmektir. Sandbox gibi ortamlarda zararlı çalıştırıldığı sistem üzerinde etkileri incelenir. Bir nevi monitoring gibi düşünülebilir. Statik analizden farklı olarak, Malware in sistem içerisinde neler gerçekleştirdiğini daha iyi inceleyebileceğimiz sonuçları monitoring edebiliriz.

Dinamik analiz, önlem alınsa bile riskli bir yöntemdir. Sistem üzerinde çalıştırıldığında sistemi bozabilir, verileri silebilir. Dinamik analizi gerçekleştirirken Sandbox, VM gibi yalıtılımlı ortamlarda çalıştırılmalıdır.

Dinamik analiz yöntemine örnek olarak, zararlıyı çalıştırdıktan sonra wireshark ile dinleme ve izleme gerçekleştirerek, zararlının ağımızda neler yaptığını inceleyebiliriz.

Dinamik analizinde kullanılan bazı programlar ise; IDA,Ollydbg, Immunity Debugger (CTF lerde reverse enginering soruları içinde sıkça kullanılan tool), Windbg..

Örnek malware analizi uygulamasında da dinamik analiz yöntemini kullanacağız. Teorik bilgileri öğrendiğimize göre uygulamamıza geçebiliriz.

Örnek Malware Analizi

Malware’in ne olduğu, analiz yöntemleri ve araçlarını öğrendiğimize göre uygulamaya başlayabiliriz. Uygulamaya başlamadan önce, dinamik analiz yöntemi bölümünde söz ettiğim gibi bu yöntem zararlı çalıştırarak kullanıldığı için sisteminiz için risklidir. VM ve Sandbox lab ortamında bu uygulamayı denemenizi öneriyorum. Sanal makine ortamında da network ayarını “host-only” moduna getirip, deneme yapacağımız işletim sisteminin snaphot ını alabilirsiniz.

Örnek analizde, Windows 7 cihazında, Process Monitor araçlarından ve malware analistlerinin sıklıkla kullandığı Remnux üzerinde Inetsim ve Fakedns araçlarından yararlanacağız. Remnux sistemini https://remnux.org/ adresinden ova formatında indirip virtualbox üzerinde direkt kullanabilirsiniz.

İnceleyeceğimiz zararlı yazılımı betterbackdoor toolu ile kendim oluşturdum. Oluşturduğum backdoor, anti-virüs programlarına yakalanmadan çalışmaktadır. Lokalde çalışan bu zararlı, çalıştıktan sonra bir port aracılığıyla kendisini dinleyen kullanıcıya bağlanmaktadır. BetterBackDoor zararlısı ile ilgili yazıma https://sibertehdit.com/windows-10-sisteme-backdoor-olustururak-sizma/ adresinden ulaşabilirsiniz.

Uygulamaya Geçelim

Sanal makinemizde çalıştıracağımız malware i, asıl bilgisayarımızdan izole etmemiz gerekmektedir. Bu da aslında %100 güvenlik içeren bir durum değildir. Çünkü bazı malware çeşitleri çalıştıkları zaman, sanal makine ya da gerçek bir makine olduğunu anlayabilirler. Bu açıdan dinamik analizi gerçekleştirmeden önce statik analiz oldukça önemlidir. Neyse ki oluşturmuş olduğum backdoor bu tür işlere kalkışmıyor.

Remnux sistemini kurduktan sonra, zararlının network üzerinde neler yaptığını izlemek için inetsim ve fakedns i çalıştırmamız gerekmektedir. Ayrıca zararlıyı Windows cihazında çalıştıracağımız için, Windows cihazının DNS adresi bilgilerini, Remnux’un IP adresi olarak tanımlamamız gerekmektedir. Bu şekilde, zararlının yapmış olduğu network hareketlerini, isteklerini Remnux sisteminde inceleyebileceğiz.

Görüldüğü gibi, Remnux sisteminin IP adresi ile, Windows cihazımızın DNS adreslerini aynı olacak şekilde değiştirdik. FakeDNS ve Inetsim toollarını da Remnux üzerinde başlatabiliriz.

“fakedns” komutunu kullanarak, Windows cihazdan gelen DNS isteklerine cevap vermesi için FakeDNS aracı aktif edilir. Bu şekilde zararlının networkte istek gönderdiği adresleri rahatça tespit edebiliriz.

Zararlı yazılımın hareketlerini daha rahat izleyebilmek için sahte FTP, HTTP gibi servisleri “inetsim” komutunu kullanarak yapabiliriz. İki toolu Remnux üzerinde çalıştırdıktan sonra Windows cihazına geçiş yapabiliriz.

Process monitor aracını çalıştırdıktan sonra sistem üzerinde yapılan tüm işlemleri takip edebiliriz. Çok yoğun processler olduğu için, zararlıyı daha rahat gözlemleyebilmemiz için filtreleme işlemi gerçekleştirebiliriz. Oluşturduğum zararlının process ismine baktığım zaman “javaw.exe” olarak görünüyordu. Bu şekilde filtreleme işlemini gerçekleştirip sadece zararlının hareketlerini inceleyelim.

Filtreleme işlemi sonrası zararlının dosya hareketlerini incelediğimiz zaman, bazı işlemler gerçekleştirmektedir. “Create File”, “CloseFile”, “Read File” gibi… Hangi dosyaları oluşturup, okuduğuna daha ayrıntılı bakabiliriz.

Herhangi bir işlemin üzerine sağ tıklayıp “Stack” alanına ilerlediğimiz zaman ayrıntılı bir şekilde hangi processleri kullanarak işlem yaptığını, hangi dosyaları oluşturduğunu ve nereye oluşturduğunu gözlemleyebiliriz. Stack, program çalıştığı sırada geçici değişkenler, fonksiyon parametreleri, dönüş değerleri RAM’de tutulan alanlardır.

“QueryBasicInformation” processinin stack kısmını incelediğim zaman, zararlının “system32” içerisindeki dosyaları kullandığını ve çalıştırdığını gözlemleyebiliriz. Oluşturduğum bu zararlı herhangi bir antivirüse yakalanmadan, Windows sisteminin yerleşik uygulamalarını kullanarak çalışmaktadır. Bu sebeple tehlikeli bir virüstür diyebilirim.

Shell Aldıktan Sonrası

Process monitor üzerinde zararlının network hareketlerine baktığımız zaman, sürekli bir şekilde TCP soket bağlantısı aradığını gözlemlemekteyiz. “Reconnect” uyarısı verip tekrar tekrar TCP bağlantısı kurmaya çalışmaktadır. Betterbackdoor toolu ile oluşturduğum zararlıyı dinlemeye aldığım zaman ise sol tarafta gördüğünü “TCP Connect” uyarısını almaktayız. Bu da demek oluyor ki zararlı C&C ile bağlantıyı başarılı bir şekilde kurabilmiştir. Stack bölümünde bu process i detaylı bir şekilde incelediğimizde yine system32 altında bazı dll’leri çalıştırdığını görebiliriz. Yani bu exe’nin sistem üzerinde bir şeyler çevirdiği kesin 🙂

TCP bağlantısı ile shell aldıktan sonra, “help” komutu ile neler yapabileceğimize bakmaya çalıştığım “read file” aktivitesini kullanıp kurbanın sisteminde bulunan zararlıyı okuduğunu gözlemlemekteyiz. Aynı zaman birçok TCP isteği de göndermeye devam etmektedir. “ss” komutunu kullanıp kurbanın sisteminden ekran görüntüsü almayı denediğimizde bakalım process monitor de hangi işlemleri görebileceğiz?

Görüldüğü gibi, önce zararlıyı okuma işlemi gerçekleştirip daha sonra “create file” ile bir dosya oluşturup ekran görüntülerini hedefe eklemiş oldu. Son satırda da “CloseFile” bildirisini görebilmekteyiz.

Remnux üzerinde çalıştırdığımız fakedns aracının çıktılarında ise, zararlının yapmış olduğu istekleri görünmektedir. Wireshark ile portu dinlediğimizde de aynı çıktıyı almış olacaktık. Zararlı aslında lokalde çalıştığı için DNS i kullanma ihtiyacı yoktur. Bu nedenle inetsim ile başlatmış olduğumuz fake servisleri de kullanmayacaktır. Inetsim’in kayıtlarını incelemek isterseniz “/var/log/inetsim/report/” dizini içerisinde oluşan txt dosyasını okuyabilirsiniz. Ben inetsim dosyasını incelediğim zaman, zararlı lokalde çalıştığı için herhangi bir kayıt bulamadığımı söyleyebilirim.

Zararlının hareketlerini dinamik analiz yöntemi ile bu şekilde inceleyebildik. Toparlayacak olursak, zararlı sistem üzerinde sürekli bir okuma, dosya oluşturma gibi işlemler gerçekleştirmektedir. Ayrıca çalıştığı andan itibaren sürekli olarak TCP soket bağlantısı aramaktadır. C&C ü, zararlıyı dinlemeye başladığında ise TCP bağlantısını başarılı bir şekilde gerçekleştirdiğini gözlemledik. Zararlı, “system32” dosyası içerisindeki dll ve uygulamaları kullanarak legalmiş gibi davranmaktadır. Bu nedenle anti-virüslere yakalanmamaktadır. Ayrıca, tüm bu işlemler firewall aktifken gerçekleştirilmiştir.

Bu yazımda, malware analizi kavramından bahsedip, kendi oluşturduğum zararlı yazılımı, dinamik olarak basitçe analiz ettik. Bir sonraki yazımda görüşmek üzere.

Kaynaklar

https://www.solarwindsmsp.com/blog/malware-analysis-steps

https://www.sibertalimhane.com/zararli-yazilim-analizi/zararli-yazilim-analizi-part-3-dinamik-analiz/

https://okankurtulus.com.tr/2018/11/07/uygulamali-dinamik-zararli-yazilim-analizi/

Related Posts

Leave a Reply