Zararlı Yazılım Analiz Teknikleri

Yayınlayan
Doğuş Yalçın
Yayınlanma tarihi
26-02-2022
Okuma süresi
7 DK

Zararlı Yazılım Analiz Teknikleri

 

Bu yazımızda zararlı yazılımların analizinde izlenilen tekniklere değineceğiz. Bu yazı giriş seviyesinde olup, her tekniğin detaylı şekilde, görselleştirilerek, örnekler üzerinden incelenmesi gereklidir.

Zararlı Yazılım Nedir?

Zararlı yazılımlar, yazılma amacına göre çeşitli türlere ayrılırlar. Truva atı, solucan, rootkit, scareware, fidye ve casus yazılım gibi kullanıcıya, bilgisayara veya ağa zarar veren herhangi bir yazılım, zararlı yazılım olarak adlandırılır.

Zararlı Yazılım Analiz Teknikleri Nelerdir?

Zararlı yazılımlar üç temel analiz tekniği üzerinde incelenmektedir. Bunlar statik, dinamik ve hybrid analiz olarak adlandırılırlar. Ayrıca son yıllarda popülerleşen bellek analizi de bu teknikler arasına dahil edilmiştir. Statik analiz, zararlının çalıştırılmadan, hızlı bir şekilde hakkında bilgi toplanmasına verdiğimiz isimdir. Statik analiz sayesinde elimizdeki dosyanın zararlı olup olmadığını, dosya hakkındaki birtakım bilgileri hızlı bir şekilde öğrenebiliriz fakat zararlının gerçek amacını tam olarak öğrenemeyiz. Bu aşamada devreye dinamik analiz girer (dinamik analiz, davranışsal analiz olarak da bilinir). Zararlı yazılımın çalıştırılarak sistem üzerindeki etki alanı, gerçekleştirdiği işlemler, oluşturduğu işlemler, komuta kontrol sunucusu gibi IP adresleri hakkında bilgiler edinebiliriz. Dinamik analiz sırasında uygulanan tekniklerde tersine mühendislik konusuna da hakim olmamız gerektiği ve zararlıyı çalıştırdığımız ortamın bize ve ağa zarar vermemesi için tamamen izole olması gerektiği unutulmamalıdır. Hybrid analiz ise statik ve dinamik analizin bir arada gerçekleştirilmesi ile yapılan analiz tekniğidir. Diğer bir analiz türü olan bellek analizi zararlı yazılım bulaşmış sistemin ram imajı içerisinde zararlı hakkında araştırma yapılan analiz tekniğidir. Zararlı yazılımın tanımlanmasına ve enfekte olmuş sistemde yaptıklarını açıklamaya yardımcı olur. Ayrıca günümüzde malware analizini otomatize hale getiren sandbox adı verilen sistemler bulunmaktadır. Sandboxlar zararlıların statik ve dinamik analizini otomatize şekilde gerçekleştirirler ve rapor sunarlar. Ne yazık ki bir kaç tane sandbox yazılımı hariç çoğu sandbox yazılımı işletim sistemi içerisinde çalıştırdığı çeşitli ajanlar yüzünden (bunlar event/network monitoring ajanları, sanallaştırma servisleri vs. olabilir) kolayca anti analiz tekniği geliştirilebilir. Yani karşımızda güncel bir zararlı çıktığında bu sistemlerde her ne kadar anti anti analiz(anti anti analiz metotları, zararlı yazılımların analizi zorlaştırmak için kullandığı anti analiz metotlarını atlatmak için kullanılan yöntemlerdir.) yöntemi olursa olsun çalışmayacaktır. Bu durumda manuel analiz işlemlerine başlamamız gerekir. Yazının devamında statik analiz, dinamik analiz ve bellek analizi tekniklerine değineceğiz.

Temel Statik Analiz

Statik analizde kullanılabilecek ilk araç olan virüstotal, elimizdeki zararlı yazılımın imza tabanlı araştırmasını yapabileceğimiz bir platformdur. Yazılımın daha önceden bir imza veri tabanında bulunup bulunmadığını kontrol edebiliriz. Ardından yazılımın içerdiği stringlere bakarak hangi kütüphaneleri, DLL’leri vs. kullandığını görebiliriz. Zararlı yazılım yüksek ihtimalle paketlenmiş veya obfuscation (kod karmaşıklaştırma) yapılmış olarak karşımıza gelecektir. Bu nedenler içerisinde unpackera ait kodlar dışında mantıklı bir string göremeyeceğiz. Packerlar PE (Portable Executable) dosyaları sıkıştırmak için kullanılır. Böylece yazılım kodlarını gizleyebilir. Yazılımı analiz edebilmek için öncelikle paketten çıkarılması gerekir. Packerlar ve PE dosya yapısı hakkında daha detaylı bilgi almak için bu yazıyı takip edebilirsiniz. Yazılımın hangi packer (paketleyici) kullanılarak paketlendiğini bulmak için PEiD, DiE(Detect it Easy) gibi toolları kullanabiliriz. Ardından paketinden çıkarmak için unpackerlar araştırabiliriz. Paketten çıkardığımız yazılımımızı PEstudio aracında tarayarak indikatörlerini inceleyebiliriz.

IDA Pro gibi herhangi bir disassembler kullanarak kullanarak yazılımın assembly kodlarını okuyabiliriz ve anlamlandırabiliriz. Burada assembly programlama hakkında bilgi sahibi olmanız önem arz eder.

Temel Dinamik Analiz

Elimizdeki zararlı yazılım için uygun bir unpacker bulamadıysak bunu manuel olarak x86 dbg yardımıyla yapabiliriz. Zararlı yazılım çalıştırıldığı zaman belleğe unpack edilerek yüklenecektir. Bellekteki zararlı dosyası dump edildiğinde elimizde unpacked hali bulunacaktır. Elbette çoğu zararlı yazılım geliştiricisi anti dump tekniklerini kullanmaktadır. Bu tekniklere ve atlatma yöntemlerine başka bir yazımızda detaylı olarak değineceğiz. Dinamik analiz işlemini gerçekleştirirken elimizdeki zararlı PE dosyasını çalıştıracağımız için bu ortamın izole olması gerekmektedir. Aksi halde kendi sistemimize veya ağda bulunan sistemlere büyük zarar verebiliriz. Dinamik analiz yapmak için kullanmak üzere iki sanal makine yeterli olacaktır. Zararlının internet üzerinde yaptığı işlemleri ve komuta kontrol sunucuyla yaptığı haberleşmeleri görebilmek için bu gereklidir. Bunlardan birisi linux, herhangi bir sistem diğeri ise zararlının çalıştırılacağı işletim sistemi olmalıdır. Sanal makinaların ağ konfigürasyonları şu şekilde olmalıdır: Linux makine üzerindeki iki ağ kartı tanımlanmalı ve birisi NAT diğeri VM1 ağı olacak şekilde yapılandırılmalıdır. Zararlının çalıştırılacağı işletim sistemi üzerinde VM1 ağı tanımlanmalıdır. Böylece eğer zararlı yazılım internet üzerinden işlemler gerçekleştirecek olursa linux makinemizdan  iNetSim aracı ile dns spoof ederek oluşturduğumuz network simülasyonu ile internet trafiğini Wireshark aracı ile monitör edebiliriz veya internet kontrollerini atlatabiliriz. Ardından kullanılabilecek araçlardan biri olan Process Monitor, üzerinde filtre ayarlarında zararlının process name veya process ID’sini filtre olarak ekleyerek kayıt defteri, dosya sistemi değişikleri ve sistem üzerinde yaptığı tüm işlem ve değişikleri görebiliriz. Diğer bir araç olan Process Explorer’ı kullanarak zararlı yazılımın import ettiği DLL’leri, kullandığı API’leri görebiliriz. LordPE aracını kullanarak zararlının PE header ve sectionlarını görebiliriz. Ayrıca manipüle ederek yeni bir section oluşturabiliriz. Regshot kullanarak zararlının çalışmadan önceki ve çalıştıktan sonraki bellek dökümünü karşılaştırabiliriz.

Bellek Analizi

Daha çok adli vakalarda karşımıza çıkan bellek analizi zararlı yazılım analizinde de kullanışlı ve çeşitli faydalar sağlayan bir tekniktir. Kısacası enfekte olmuş bilgisayarın o anki ram imajı alınmasıyla çeşitli araçlarla incelenmesidir. İçerisinde zararlı yazılım çalıştığı tespit edilen veya incelenmek üzere zararlı yazılım çalıştırılan bilgisayarın bellek imajını almak için Win32dd / Win64dd, Memoryze, DumpIt , FastDump gibi araçları kullanabiliriz. Ardından elde ettiğimiz bellek imajı üzerinde memory forensic gerçekleştirirken Volatility, Memoryze gibi araçları kullanabiliriz. Volatility aracı bellek imajı analizi için python ile geliştirilmiştir. Bu araç sayesinde imajı alınmış belleğin içerisinde o anki çalıştırdığı processleri, sistemde çalıştırılan komutlar, bağlı olduğu ağ, dokümanlar, tarayıcı geçmişi gibi bilgiler elde edilebilir. Bu incelemeler yapılırken elde edilen verileri, analizi gerçekleştiren kişi tarafından doğru anlaşılıp yorumlanabilmesi ve raporlanması önemlidir. Böylece zararlı yazılımın arka planda gerçekleştirdiği işlemleri, kullandığı enjeksiyon tekniklerini, değişiklik yaptığı, oluşturduğu dosyaları ve processleri  görebiliriz. Volatility aracında connscan komutu ile bağlantıları, pslist komutu ile ramde o an çalışmış olan processleri görebiliriz ayrıca processin dumpını alabiliriz. Daha sonraki yazımızda örnek bir vaka üzerinde bellek analizi gerçekleştireceğiz ve her aşamada zararlı yazılım hakkında toplanabilecek bilgilere detaylı bir şekilde bakacağız. Volatility hakkında daha detaylı bilgi için burayı ziyaret edebilirsiniz.

Doğuş Yalçın

Diğer Blog Yazıları_

Sosyal Medya Kullanımının Riskleri
Sosyal Medya Kullanımının Riskleri
Infraskope Server ve Özellikleri
Infraskope Server ve Özellikleri
Kritik Sunucular Üzerindeki Aktivitelerin Loglanması
Kritik Sunucular Üzerindeki Aktivitelerin Loglanması
Kurumlarda Ağ Güvenlik Stratejileri
Kurumlarda Ağ Güvenlik Stratejileri
WPA-WPA2 Güvenlik Standartlarına Yönelik Saldırı: KRACK (KEY-REINSTALLATION-ATTACK)
WPA-WPA2 Güvenlik Standartlarına Yönelik Saldırı: KRACK (KEY-REINSTALLATION-ATTACK)
Log Yönetiminde Ajanlı/Ajansız Çözümler
Log Yönetiminde Ajanlı/Ajansız Çözümler
Herkesin aklındaki soru: Yapay Zeka Nedir?
Herkesin aklındaki soru: Yapay Zeka Nedir?
Discovery of DLL Hijack on Trend Micro AntiVirus+ | CVE-2018-18333
Discovery of DLL Hijack on Trend Micro AntiVirus+ | CVE-2018-18333
Web Cache Poisoning
Web Cache Poisoning
XML EXTERNAL ENTITY INJECTION AND OOB (OUT-OF-BAND) DATA RETRIEVAL
XML EXTERNAL ENTITY INJECTION AND OOB (OUT-OF-BAND) DATA RETRIEVAL
ARP Poisoning
ARP Poisoning
Cross-Site Request Forgery (CSRF) Zafiyeti
Cross-Site Request Forgery (CSRF) Zafiyeti
SSRF (Server Side Request Forgery)
SSRF (Server Side Request Forgery)
BlueBorne
BlueBorne
Server Side Template Injection Nedir?
Server Side Template Injection Nedir?
Linux Restricted Shell Atlatma Teknikleri
Linux Restricted Shell Atlatma Teknikleri
Discovery of Sandbox Escape on Comodo Container(Antivirus&Firewall)
Discovery of Sandbox Escape on Comodo Container(Antivirus&Firewall)
SDR-Sharp Kullanımı
SDR-Sharp Kullanımı
Log Yönetimi | Log Management | Veritabanı Log | Siem
Log Yönetimi | Log Management | Veritabanı Log | Siem
Cyber Kill Chain, Bir Siber Saldırının Yaşam Döngüsü
Cyber Kill Chain, Bir Siber Saldırının Yaşam Döngüsü
Phishing Nedir?
Phishing Nedir?
“GOLD” Affix Phishing Attack
“GOLD” Affix Phishing Attack
Sızma Testi ve Ödül Avcılığı Hizmetleri
Sızma Testi ve Ödül Avcılığı Hizmetleri
Güvenilir Olarak CAPTCHA Yapılandırılması
Güvenilir Olarak CAPTCHA Yapılandırılması
Basit Kriptolojiden Günümüze Evrilişi
Basit Kriptolojiden Günümüze Evrilişi
Dosya Sistem Analizinin Önemi
Dosya Sistem Analizinin Önemi
HTTP Request Smuggling (HTTP İstek Kaçakcılığı) Nedir?
HTTP Request Smuggling (HTTP İstek Kaçakcılığı) Nedir?
KVKK Kapsamında Veri Keşfi Maskeleme ve Şifreleme
KVKK Kapsamında Veri Keşfi Maskeleme ve Şifreleme
Sosyal Medya Kullanımının Riskleri
Sosyal Medya Kullanımının Riskleri
Sızma (Penetrasyon) Testi Nedir?
Sızma (Penetrasyon) Testi Nedir?
Start Up Kültürü
Start Up Kültürü
Sigma Kuralları ile SIEM Ürünlerinde Tehdit Avı
Sigma Kuralları ile SIEM Ürünlerinde Tehdit Avı
Kritik Altyapılar ve SCADA Güvenliği
Kritik Altyapılar ve SCADA Güvenliği
Zararlı Yazılım Analiz Teknikleri
Zararlı Yazılım Analiz Teknikleri
Uzaktan Çalışma Modellerinde Siber Güvenlik Riskleri
Uzaktan Çalışma Modellerinde Siber Güvenlik Riskleri
Pandemi Sürecinde Siber Güvenlik Riskleri
Pandemi Sürecinde Siber Güvenlik Riskleri
SOC Nedir ve SOC Merkezleri Nasıl Çalışır?
SOC Nedir ve SOC Merkezleri Nasıl Çalışır?
PHISHING Hakkında Her şey
PHISHING Hakkında Her şey
Sosyal Mühendislik Nedir?
Sosyal Mühendislik Nedir?
Siber Hijyen
Siber Hijyen
Adli Bilişim (Digital Forensic) Nedir?
Adli Bilişim (Digital Forensic) Nedir?
DHCP Spoofing Saldırısı Nedir, Nasıl Yapılır?
DHCP Spoofing Saldırısı Nedir, Nasıl Yapılır?
FAIL2BAN İLE SSH BRUTE FORCE SALDIRILARINI ÖNLEME
FAIL2BAN İLE SSH BRUTE FORCE SALDIRILARINI ÖNLEME
BULK EXTRACTOR ARACIYLA DİSK İNCELEME
BULK EXTRACTOR ARACIYLA DİSK İNCELEME
SolarWinds Vaka Analizi
SolarWinds Vaka Analizi
Frida ile SSL Pinning Bypass
Frida ile SSL Pinning Bypass
COOKİE Nedir? Nasıl Çalışır?
COOKİE Nedir? Nasıl Çalışır?
Bilgi Güvenliği Test ve Değerlendirmeleri Teknik Kılavuzu
Bilgi Güvenliği Test ve Değerlendirmeleri Teknik Kılavuzu
Dridex Bankacılık Trojanı Teknik Analiz Raporu (TR)
Dridex Bankacılık Trojanı Teknik Analiz Raporu (TR)
Adwind Rat Technical Analysis Report (ENG)
Adwind Rat Technical Analysis Report (ENG)
SOC Nedir, Firmalar İçin Neden Önemlidir?
SOC Nedir, Firmalar İçin Neden Önemlidir?
Blockchain Nedir?
Blockchain Nedir?
İşlemcilerin Koruma Mekanizması ve Koruma Mekanizmasının Atlatılması
İşlemcilerin Koruma Mekanizması ve Koruma Mekanizmasının Atlatılması
Active Directory Güvenlik İpuçları
Active Directory Güvenlik İpuçları
Nisan 2022 Siber Güvenlik Bülteni
Nisan 2022 Siber Güvenlik Bülteni
Mavi Takım Üyeleri İçin Windows Core Process
Mavi Takım Üyeleri İçin Windows Core Process
Kişiler İçin Bilgi Güvenliği Rehberi
Kişiler İçin Bilgi Güvenliği Rehberi
DDoS Nedir?
DDoS Nedir?
C Dilinde Dosya Yönlendirmeleri (IO Redirection)
C Dilinde Dosya Yönlendirmeleri (IO Redirection)
Microsoft Teams — Cross Site Scripting (XSS) Bypass CSP Report
Microsoft Teams — Cross Site Scripting (XSS) Bypass CSP Report
Siber İstihbarat ve Siber Tehdit İstihbaratı
Siber İstihbarat ve Siber Tehdit İstihbaratı
JWT Saldırıları
JWT Saldırıları
CVE-2022–36446 — Webmin 1.996 — Remote Code Execution (RCE — Authenticated) During Install New Packages
CVE-2022–36446 — Webmin 1.996 — Remote Code Execution (RCE — Authenticated) During Install New Packages