Hoşgeldin Misafir

Modern zararlı yazılımlar nasıl gizlenir? (Obfuscation teknikleri)

Stronger_Cracker

25 Tem 2022
6,408 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Selamun aleyküm,

Bu yazımızda modern zararlı yazılımların analiz edilmesini zorlaştırmak ve güvenlik sistemlerinden gizlenmek amacıyla kullandığı obfuscation teknikleri birlikte öğreneceğiz. Özellikle kod gizleme yöntemleri, kontrol akışı karmaşıklaştırma, string ve API gizleme teknikleri, executable packing, polymorphic ve metamorphic malware yapıları gibi yöntemlerin çalışma mantığı ele alıp ayrıca zararlı yazılımların analiz ortamlarından kaçmak için kullandığı anti-analysis yaklaşımları ve günümüzde yaygınlaşan fileless saldırı teknikleri de teknik açıdan yorumlayacağız. Değerli fikir ve görüşlerinizi konu altından belirtebilirsiniz. Başlayalım;

Obfuscation Kavramı ve Amacı Nedir ?​

Modern zararlı yazılımlar yalnızca zararlı bir işlevi yerine getirmek için değil, aynı zamanda güvenlik sistemlerinden mümkün olduğunca uzun süre gizlenebilmek için tasarlanır. Bu nedenle geliştiricileri, kodlarını analiz edilmesi zor hale getiren birçok teknik kullanır. Bu tekniklerin genel adı obfuscation (kod gizleme) olarak bilinir. Obfuscation, bir programın mantığını değiştirmeden kodun okunmasını ve anlaşılmasını zorlaştıran dönüşümlerin uygulanmasıdır. Amaç genellikle kodu tamamen gizlemek değil, reverse engineering, statik analiz ve antivirüs tespitini mümkün olduğunca zorlaştırmaktır.

Statik Analizden Kaçmak için Neler Yapılabilir ?​

Obfuscation’ın en yaygın kullanım alanlarından biri statik analizden kaçmaktır. Güvenlik araştırmacıları veya antivirüs motorları çoğu zaman bir dosyayı çalıştırmadan önce binary yapısını, stringlerini ve API çağrılarını analiz eder. Eğer zararlı yazılım bu bilgileri açık şekilde içeriyorsa kolayca tespit edilebilir. Bu nedenle modern malware geliştiricileri, bu verileri şifreleyerek, parçalayarak veya çalışma zamanında oluşturarak gizler. Böylece analiz araçları zararlı davranışı doğrudan göremez.

dES0zGQ.png



Dead Code Insertion (Gereksiz Kod Enjeksiyonu)​

Analizi zorlaştıran başka bir teknik ise dead code insertion yani işe yaramayan kod eklenmesidir. Bu yöntemde zararlı yazılımın içine aslında hiçbir işlevi olmayan kod parçaları eklenir. Bu kodlar programın gerçek mantığıyla ilgili değildir ancak binary’nin boyutunu büyütür ve kontrol akışını karmaşık hale getirir. Böylece analiz araçları gereksiz kod parçalarıyla uğraşırken gerçek zararlı davranışı bulmak zorlaşır.

Virtualization-Based Obfuscation​

Modern obfuscation teknikleri arasında en güçlü yöntemlerden biri virtualization-based obfuscation’dır. Bu yaklaşımda zararlı yazılım doğrudan işlemci komutlarıyla çalışmaz. Bunun yerine geliştirici kendi sanal makinesini oluşturur ve programın gerçek mantığını bu sanal makine için yazılmış özel bytecode içinde saklar. Program çalıştığında önce bu sanal makine başlatılır, ardından bytecode yorumlanarak gerçek işlemler gerçekleştirilir. Bu durum analiz sürecini oldukça zorlaştırır çünkü araştırmacının önce sanal makinenin çalışma mantığını anlaması gerekir.

Anti-Analysis​

Modern zararlı yazılımlar yalnızca kodlarını gizlemekle kalmaz, aynı zamanda analiz ortamlarını da tespit etmeye çalışır. Bu nedenle birçok malware anti-analysis teknikleri içerir. Program çalıştığında sistemde sanal makine olup olmadığını, debugger çalışıp çalışmadığını veya sandbox ortamında olup olmadığını kontrol eder. Eğer analiz ortamı tespit edilirse zararlı kod çalışmayabilir veya farklı bir davranış sergileyebilir. Bu yöntem güvenlik araştırmacılarının analiz sürecini daha da zorlaştırır.

Fileless Malware​

Günümüzde giderek yaygınlaşan bir yaklaşım fileless malware tekniğidir. Bu tür zararlı yazılımlar diske dosya bırakmak yerine doğrudan bellekte çalışır. PowerShell komutları, DLL injection veya process hollowing gibi yöntemler kullanılarak payload başka bir süreç içinde çalıştırılabilir. Disk üzerinde belirgin bir dosya bulunmadığı için geleneksel antivirüs sistemleri bu tür saldırıları tespit etmekte zorlanır.

Özellikle modern malware geliştiricileri obfuscation tekniklerini yalnızca kodu gizlemek için değil, analizi geciktirmek, güvenlik araçlarını atlatmak ve saldırının tespit edilme süresini uzatmak amacıyla kullanır. Control flow manipulation, packing, polymorphism, virtualization ve anti-analysis gibi yöntemler birlikte kullanıldığında zararlı yazılımın incelenmesi oldukça karmaşık hale gelir. Bu nedenle günümüzde siber güvenlik araştırmaları yalnızca statik analiz değil, davranış analizi, sandbox analizi ve bellek incelemesi gibi daha gelişmiş teknikleri de içermek zorundadır.

Konu ile alakalı bir YouTube videosu bırakıyorum, video bana ait değildir.