
Bana birçok yeni bilgiler öğreten eğitimin sizlere de fayda sağlaması amacıyla bu konuda yazmaya karar verdim. Keyifli okumalar dilerim.
Öncelikle belirtmek isterim ki; farklı ve geniş kitlelere hitap eden eğitim teorik bilgiler ve uygulama kısmı olmak üzere iki kısımda gerçekleşti. Bu sebeple bende sizlere zararlı yazılım analizi ile ilgili ilk olarak teorik bilgileri aktaracağım. Sonrasında eğitim ve araştırmalarımla yaptığım birkaç uygulamayı göstereceğim.
Zararlı yazılım analizi gerçekleştirebilmek için öncelikle zararlı yazılımın ne demek olduğunu ve türlerini bilmememiz gerekir. Zararlı yazılımı kısaca tanımlamak gerekirse; kullanıcının bilgisi ve kontrolü dışında hareket eden her türlü yazılımlardır.
Zararlı yazılımlar; e-posta ekleri, web sitelerindeki zararlı reklamlar, sahte yazılım yüklemeleri, virüslü USB veya harici sürücüler, virüslü uygulamalar ve metin mesajları gibi birçok zararlı içeriklerden bilgisayarlara bulaşabilmektedir.
Sık karşılaşılan zararlı yazılım türlerine aşağıdaki tabloda yer verdim.
En Çok Görülen ve Karşılaşılabilen Zararlı Yazılım Çeşitleri |
|
Virüs |
Kendi başına faal olmayan,
çalıştırılabilen programlara kendini ekleyen, eklendiği programların yapısını
değiştiren ve kendi kendini çoğaltabilen kötü amaçlı programlardır. |
Solucan(Worm) |
Kendi kendine kopyalanarak çoğalan kötü
amaçlı yazılım türüdür. Sistemin yapısını bozma ya da yavaşlatmaya yönelik
çalışırlar. Her bir cihazın güvenlik açıklarından faydalanarak ağlar
üzerinden yayılabilirler. |
Reklam Yazılımı(Adware) |
Bilgisayarlara bazı yazılımlarla
yerleşen ve istenmeyen reklam göstererek kullanıcıları farklı sitelere
yönlendiren zararlı yazılımlardır. |
Casus Yazılım(Spyware) |
Genellikle web siteleri üzerinden açık
portlardan sisteme girerek kullanıcının onayı ve bilgisi olmadan bir bilgisayardan
veri toplayarak bu verileri üçüncü şahıslara iletmek için tasarlanan
yazılımlardır. |
Dosyasız Zararlı Yazılım
(Fileless) |
Dosyasız zararlı yazılımlar dosya
sistemini doğrudan kullanmazlar. Dosyaları ve dosya sistemini kullanmak
yerine sadece belleği istismar etmek/bellekte yayılmak ya da registry
anahtarları gibi çeşitli işletim sistemi objelerini kullanarak sisteme zarar
verirler. Sıfır ayak izi saldırısı da denilebilir. |
Scareware |
Gerçek olmayan senaryolarla korkutan ve
yazılımı satın almaya teşvik eden yazılımların genel adıdır. Genellikle web
sitelerinde yönlendirme reklamları olarak karşımıza çıkar. |
Botnet |
Robot ve Network kelimelerinin
birleşiminden oluşur. Birçok bilgisayarın kontrolünün ele geçirildiği ve tüm
virüslü makinelerin uzaktan yönetebildiği zararlılardır. Botnet yazılımları
bulaştığı bilgisayardan verileri sızdırma yeteneğine de sahiptir. |
Phishing |
Kullanıcının özel bilgileri, şifreleri,
banka hesabı bilgileri veya herhangi bir sistemdeki oturum bilgilerini ele geçirmek
amaçlı hazırlanan yazılımlardır. |
Yukarıda zararlı yazılım türlerinden bahsettim. Şimdi zararlı yazılım analizini ele alalım. Zararlı yazılım analizi temel olarak 5 adımda gerçekleşir. Bu adımları aşağıdaki gibi sıralayabiliriz.
1. Giriş Noktası: Zararlı yazılımın sisteme hangi yolla bulaştığıdır. Herhangi bir zararlı yazılım web sitesi, phishing, usb cihazı vs.
2. Dağıtım: Zararlı yazılımın trafiği, java, flash player vb. uygulamaları kontrol eden sunucudan gelen bir işlemle başlar.
3. Exploit: Sistemde çalıştırılmak için ve ayrıcalığını yükseltmek için hazırlanan kod parçacıklarıdır.
4. Enfeksiyon: Başarıyla çalışan bir exploitin, 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.
5. Saldırı: Uygulama aşamasıdır.
ZARARLI YAZILIM ANALİZİ YAPABİLECEĞİMİZ ALANLAR
1. Windows Registry Analizi:Windows Registry, işletim sisteminin veya kurulu uygulamaların konfigürasyon bilgilerini ve seçeneklerini saklayan bölümdür. Zararlı kodlar registry kayıtlarını kendi amaçları doğrultusunda kullanırlar. Windows Registry kayıtlarını inceleyerek sistemimizde kontrolümüz dışında işlem gerçekleşip gerçekleşmediğini tespit edebiliriz.
Windows Registry kayıtları arasında 5 adet rootkey bulunur. Sistemimizde şüphelendiğimiz bir durum oluştuğunda bu “rootkey” leri inceleyebiliriz.
Başlat menüsüne “regedit” yazarak, kayıt defterine ulaşabiliriz.
1. 2.Msconfing Analizi:
Sistem açılışı esnasında hangi yazılımların otomatik olarak
başlayacağı bilgilerini gösteren programdır. Aynı zamanda başlatılan servisler,
üretici bilgileri ve servislerin durumu hakkında bilgi edinebilmemizi sağlar.
Bilgisayarımız açıldığında ilk çalışan programları burada görebilir
ve işlemlerimiz doğrultusunda yönetebiliriz.
Sistemimizin açılışında zararlı bir yazılımın çalışıp çalışmadığını
burada görebiliriz.
Başlat menüsüne “msconfing” yazarak, Görev Yöneticisine ulaşabiliriz.

3.Hosts Dosyası Analizi:
Linux, Windows gibi işletim sistemleri üzerinde “hostname”
verilerini “IP” adrese göre düzenleyen dosyadır. İçeriği tamamen düz metindir
ve burada yapılacak değişiklikler ile mevcut sistem farklı adreslere
yönlendirebilir.
C:\Windows\System32\drivers\etc
yolu ile “hosts” dosyasına ulaşabiliriz.
Host doyasını not defteri ile açtığımızda ikinci resimdeki gibi
çıktı elde ediyoruz. Burada # ile başlayan kısımlar açıklama kısımlarıdır. Eğer
burada # ile başlamayan bir veri varsa bu verilerin botnet olabileceği
düşünülerek farklı IP adreslerine yönlendirme yapıp yapmadığına bakılmalıdır.


1. 4.Dosya Sistemi Analizi:
Dosya sisteminde gerçekleşen değişikliklerin tespit edilmesi
önemlidir. var olan değişikliklerin
tespit edilmesi önemlidir. Özellikle belirli dizinler altına eklenen yeni
dosyalar incelenmelidir.
C sürücüsünde yer alan klasörleri açıp “Görünüm” sekmesinden
“Dosya adı uzantıları ve Gizli dosyalar” seçeneklerini işaretleyerek gizli
dosyaların ve uzantısı değiştirilmiş dosyaların var olup olmadığını tespit
edebiliriz.
2. 5.Kullanıcı Hesapları Analizi:
Zararlı yazılımların sisteme yeni bir kullanıcı oluşturabilir.
Bundan dolayı sistemde olan kullanıcı hesaplarını kontrol edilmesi gerekir.
Komut satırına “net localgroup” yazarak kullanıcı hesaplarına ulaşabiliriz.


Resim6: Güvenlik Kayıtları
Sizlere, bu bilgileri verdikten sonra şimdi zararlı yazılım analizinin gerçekleştirilmesi aşamalarından bahsedeceğim.
ZARARLI YAZILIM ANALİZİ TÜRLERİ
Zararlı yazılım analizi “statik analiz” ve “dinamik analiz” olmak
üzere 2 şekilde gerçekleştirilebilir.
Bu kısımda sizlere “statik” ve “dinamik” analizin ne olduğunu
anlatacağım.
Statik analizi zararlı yazılımın (Malware) sitem üzerinde
çalıştırılmadan kodlarına bakarak incelenmesi olarak tanımlayabiliriz.
Dinamik analizi ise zararlı yazılımın Sandbox gibi ortamlar üzerinde
çalıştırılarak davranışlarının çeşitli araçlarla analiz edilmesi olarak
tanımlayabiliriz.
Dinamik analiz sırasında zararlı yazılım aktif olarak çalıştırılacağı için önlem alınsa bile risklidir. Sistem üzerinde çalıştırıldığında sitemi bozabilir, verileri silebilir. Dinamik analiz gerçekleştirirken Sandbox, WM gibi yalıtımlı ortamlarda çalıştırılmalıdır.
Sandbox demişken açıklamak gerekir.
Sandbox, kötü amaçlı yazılımların(virüs, trojan, rootkit, bootkit vs.) çalıştırılarak(dinamik analiz), davranışlarının otomatik olarak analiz edildiği ortamlardır. Bu ortamlar; verilen örnekleri çalıştırarak arka planda dosya sisteminde, registry kayıtlarında, bellekte ne değişiklik yapıyor, ağ üzerinden hangi adresler ve protokollerle konuşuyor, hangi süreçleri ve API leri çağırıyor gibi başlıklar halinde toplayarak rapor halinde sunarlar.
Zararlı yazılım analizinde bizler için önemli noktalardan bir tanesi de hash değerleridir. Peki bu hash değeri(özet fonksiyonu) nedir?
Hash(özet) değeri, her girdi için sabit uzunlukta çıktı oluşturan tek yönlü bir fonksiyondur. Yani özet fonksiyonundan veri elde edilemez. Verinin bütünlüğünün bozulup bozulmadığının tespiti aşamasında çok önemlidir. Burada bir not eklemek istiyorum. Bir dosyanın ismi değişse bile içeriği değişmediği sürece hash değeri değişmez. Zararlı yazılım analizinde karışımıza çıkacak genel bilgileri verdikten sonra uygulama aşamasına geçelim.
ZARARLI YAZILIM ANALİZİ UYGULAMALARI
Zararlı yazılımların büyük oranı Windows sistemler üzerinde etkili
olduğu için analiz yaparken zararlı yazılımın etkili olduğu alanları daha iyi
tanıyabilmek adına sanal bir sunucuya Windows 10 işletim sistemi kurdum. Bu
sebeple tüm işlemlerimi sanal sunucudaki Windows 10 işletim sistemi üzerinde
gerçekleştirdim.
Zararlı yazılım analizi için tasarlanmış ücretsiz ve açık
kaynaklı, Windows tabanlı bir güvenlik dağıtımı olan “Flare WM” aracını sanal
makinemize indiriyoruz ve gerekli işlemleri yaparak kurulumunu yapıyoruz. Flare WM aracı içerisinde kategorilere
ayrılmış olarak 200 ün üzerinde tool vardır. Statik ve dinamik analizlerde,
network analizlerinde ve güvenlik açığı incelemelerinde kullanılacak birçok
uygulama içerisinde mevcuttur.
Flare Vm aracını https://github.com/fireeye/flare-vm sitesinden
zip dosyası olarak indirebilirsiniz.
Programın kurulumunu şu linkteki videoyu izleyerek yapabilirsiniz.
https://www.youtube.com/watch?v=Om9lX6QYAvE
Kurulumu tamamladıktan sonra FLARE klasörü içerinde zararlı
yazılım analizinde kullanabileceğimiz birçok tool kategorize şekilde hazır
oluyor. Her bir kategoride birden çok uygulama bulunmaktadır.

Zararlı bir kod içerdiğini düşündüğümüz dosyalarımızı veya
uygulamalarımızı buradaki ilgili toollar ile statik olarak analiz edebiliriz.
Şimdi sizlere birkaç uygulama göstereceğim.
1. 1.Uygulama
Sanal makinemde bulunan bir .exe dosyanın zararlı yazılım içerip içermediğini analiz etmek için Flare WM aracında bulunan “pestduio” toolu ile açtım. Bu exe dosyanın kaynak kodlarını, başlıklarını(header), hash değerini ve VirusTotal analizi sonuçlarını inceleyerek dosyanın zararlı yazılım içerip içermediğini tespit ettim.

Resim8: petstudio
Zararlı Yazılım Analizinde ilk akla gelen VirusTotal’dir. Peki bu
VirusTotal nedir?
VirusTotal, ücretsiz olarak dosya taramasına izin veren bir web
sitesidir. Çok sayıda anti-virüs yazılımlarındaki şartlara bağlı olarak
dosyanın içerisindeki zararlı olabilecek yazılımlar hakkında rapor verir.
1. 2.Uygulama
Günümüzde
birçok saldırı e-postalar üzerinden gerçekleşmektedir. E-posta ile bizlere
gelen eklerde zararlı yazılım içerebilmektedir. Bu zararlı yazılımların var
olup olmadığını tespit etmek için birkaç adımı uygulayabiliriz.
Burada şunu bilmek gerekir: Office dosyaları içerinde “exe dosyası”, “kaynak dosyası” ya da “javascript kodu” yoksa kendi başlarına bir zararlı faaliyet gerçekleştiremezler. Örneğin Word, pdf, excel veya powerpoint dosyalarının zararlı olabilmesi için içerisine zararlı yazılım eklenmiş olması gerekir.

Office dosyaları aslında birer
sıkıştırılmış dosyadır. Analiz yapmak istediğimiz Office dosyaları açıp
incelemeye çalıştığımızda içerisinde zararlı yazılım varsa aktif olacaktır ve
amacı doğrultusunda zarar verecektir. Dosyayı açmadan ve içerisindeki zararlı
yazılımı aktif etmeden incelemek mümkündür.
Office dosyalarının uzantısını
değiştirerek sıkıştırılmış dosya elde edebiliriz. Daha sonra bu sıkıştırılmış
formattaki dosyaları WinRar gibi programlarla ayrıştırarak içerisindeki tüm
verilere ulaşabiliriz. Böylece zararlı yazılımı aktif etmeden inceleme
yapabiliriz.
Örnek olarak; kk.doc dosyasını uzantısını .zip olarak değiştirdim. Zip dosyasını ayrıştırınca ilk resimdeki gibi dosyanın yapısını elde ettim. Daha sonra dosyanın içerik bilgisinin yer aldığı “Content_Types.xml” dosyasını not defteri ile açtım. Burada dosyanın içeriğine dair kodları analiz ederek zararlı bir kod içerip içermediğinin tespitini yaptım. Böylece bir dosyayı hiç açmadan varsa içerisindeki zararlı yazılımı aktif etmeden statik analiz gerçekleştirdim.

Resim9: Content_Types.xml
1. 3.Uygulama
E-posta ile bir Word dosyasının tarafımıza
geldiğini varsayalım.
Word dosyasını bilgisayarımıza
indirebiliriz. Ancak burada kesinlikle ve kesinlikle çift tıklayıp dosyayı
açamamalıyız. Eğer bu dosya da bir zararlı yazılım varsa çift tıklayıp
açtığımız an aktif olur ve zarar vermeye başlar.
Aşağıdaki adımları takip ederek bu
dosyanın zararlı bir yazılım içerip içermediğini tespit edebiliriz.
Küçük bir not eklemek isterim. Zararlı yazılımları çevrimiçi olarak analiz eden ortamlar(sandbox) vardır. Zararlı olduğundan şüphe ettiğiniz dosyalarınızın otomatik analizini yapabilmek için https://app.any.run ve https://sandbox.anlyz.io/ sitelerinde yer alan çevrimiçi Sandbox’ları kullanabilirsiniz.
Zararlı Yazılım Analizi Eğitimi için Sn. Dr. Ahmet Ali Süzen
hocama ve Bilişim Vadisi’ne teşekkürlerimi sunuyorum. Benim birçok yeni bilgi
elde ettiğim eğitimin sizlere de fayda sağlamasını amaçladım. Umarım faydalı
olur.
Heyecan ve merakla öğrendiğim bilgilerle derlediğim yazım
sizlerle, kendinizi geliştirmek istediğiniz yolda ışık olmasını dilerim. Sağlıkla
kalın.
Kaynaklar:
> Bilişim Vadisi- Zararlı Yazılım Analizi Eğitimi
> https://github.com/fireeye/flare-vm
> https://www.youtube.com/watch?v=Om9lX6QYAvE
> https://www.virustotal.com/gui/
Bir sonra ki eğitimden görüşmek dileğiyle, Güvenli ve Sağlıklı günler dileriz.
0 Yorumlar