Kitap: Windows İşletim Sistemlerinde Malware Analizi

22 Eyl 2022 - 452 sayfa
Kitapta Windows işletim sistemlerinde malware analizi konusu işlenmiştir. En temel kavramlardan başlanılarak adım adım malware analizinde gerekli tüm konular anlatılmaya çalışılmıştır. Konular sadece akademik düzeyde değil aynı zamanda uygulamaya dönük detaylı olarak hazırlanmıştır. İncelenecek örnekler arasında gerçek hayatta karşımıza çıkan fidye (ransomware) türü malware yazılımlar bulunmaktadır. Kitap herkesin anlayabileceği seviyede tutmak için Assembly kodlarına fazla girilmemiş ancak C/C++ kodları zaman zaman kullanılmıştır. Dolayısıyla okuyucunun başlangıç üstü seviyede yani temel C/C++ kodlarını anlayabilmesi gerekmektedir. Özellikle sanal makine kurulumu ve ayarların yapıldığı 7. bölüm ile örneklerin yapıldığı 8. bölümlerde resim sayısı yüksektir. Kitap boyunca kullanılan resimlerin çoğunluğunda çözünürlük yüksek tutulmuştur. Bu sebeple resimleri daha net görmek amacıyla resimlere yaklaşabilirsiniz. Resimlerin çokluğuna rağmen her detay atlanmadan okuyucuya açıklanmıştır. Kitap içerisinde anlatılan bölümleri desteklemek ya da kitabın akışı içerisinde olmayan ancak siber güvenlik açısından gerekli görülen bazı konular “ek bölümler” altında anlatılmıştır. Ek bölümlerde okuyucunun kitabın akışını takip etmesine gerek yoktur. Kitabın temel bölüm ve içerikleri şunlardır:

(Bölüm 1) Giriş; Kitabın içerisindeki bölümlerin tanıtıldığı ve çeşitli notların bulunduğu bölümdür. Ayrıca okuyucuya kitaptan en iyi şekilde nasıl yararlanılacağını anlatılmaktadır.

(Bölüm 2) Temel Kavramlar; Bu bölümde okuyucu ile aynı dili konuşabilmek için hacker, malware, malware analizi vb. gibi bazı temel kavramlar açıklanmıştır. Bu kavramlara sektördeki insanların vakıf olmasına rağmen sektöre yeni giren arkadaşların bazılarında durum farklı olabilmektedir.

(Bölüm 3) Windows Temel Kavramlar; Windows işletim sistemlerinde malware analizi yapabilmek için işin alfabesi olan temel konular işlenmektedir. Bu konuların bazıları daha detaylı olarak ilerleyen bölümlerde incelenecektir. Bu bölümde anlatılanlar ilerleyen bölümlerde altlık olarak kullanılarak konunun detaylarına girilmektedir.

(Bölüm 4) Windows API; Hem programlamada hem de malware analizlerinde kullanılan Windows programlama arayüzleridir. Programlamada nasıl kullanıldıkları anlamak malware analizinde statik ve dinamik uygulamalardaki metotların mantığı kavramak açısından önemlidir. Kullanıcıların konudan tamamen uzak olduğu varsayımı altında sıfırdan başlanarak “Windows API”, ”Windows Native API“ konuları anlatılmıştır. Bu bölümdeki amaç her bir Windows API fonksiyonu tek tek açıklamak değil, okuyucunun hayatta herhangi bir kaynakta karşılaştığı “Windows API” fonksiyonları kendisinin anlayabileceği bir seviyeye getirmektir. İlerleyen bölümlerde saldırılarda kullanılan “Windows API” ya da “Winows Native API” fonksiyonlarına ayrıca işlenecektir.

(Bölüm 5) Process, Thread ve Job Yapıları; Konu başlığından anlaşılacağı gibi process, thread, job, ETW (Event Tracing for Windows), WMI (Windows Management Instrumentation) yapıları açıklanmaya çalışılmıştır. Bazı yapılar için kullanıcı düzeyinden kernel düzeyine doğru inerek aslında bu yapıların gerçek manada nasıl çalıştıkları mümkün olan en sade biçimde anlatılmaya çalışılmıştır. Özellikle “Eprocess”, “Kprocess”, “Ethread”,“Teb” gibi veri yapıları çok fazla kaynak kodları içerisine girilmeden ancak detaylı şekilde okuyuculara anlatılmıştır. Özellikle malware analizinde orta ve ileri düzeyde uygulamalarda rastlayabileceğiniz bilgilerin anlaşılabilmesi için oldukça gereklidir.

(Bölüm 6) Saldırılarda Kullanılan Bazı Yöntemler; Daha önceki konularda okuyucuya aktarılan bilgiler kullanılarak saldırıda kullanılan bazı kodlar ve yöntemler anlatılmaktadır. Bu sayede malware analizinde ne aranması gerektiği, saldırılarda kullanılan “Windows API” ile çeşitli kütüphane fonksiyonları, ayrıca “Data Execution Prevention” (DEP), “Data Address Space Layout Randomization” (DASLR/ASLR) gibi kavramlar anlatılmıştır. Burada okuyucu bir miktar C/C++ kodları ile karşılaşmaktadır.

(Bölüm 7) Uygulamalar Öncesi Hazırlık; Sanal makinenin kurulması ve gerekli programların sanal sistem üzerine nasıl yükleneceğini anlatan bir bölümdür. Aynı zamanda 8. bölümde uygulamalarda kullanılacak olan malware yazılımlarının indirilmesi ve sanal makineden fiziksel makineye bulaşmasını önlemek için gerekli ayarlarında anlatıldığı bölümdür. Bu bölümü okumadan 8. bölümdeki uygulamalara geçmeyiniz.

(Bölüm 8) Uygulamalar; Bu bölüm önceki bölümlerde anlatılan birçok konuyu tamamlayıcı nitelikte ve uygulamalardan yeni şeyler öğrenebileceğiniz bir bölümdür. Toplam 8 adet uygulama özenle seçilmiştir. Başlangıçta basit gelen uygulamalar ilerleyen aşamalarda daha kompleks bir hal almaktadır. Bu uygulamalar arasında Python, AutoIt gibi script dillerinde hazırlanmış zararlılar olduğu gibi scamware, rootkit , fidye (ransomware) türü malware yazılımlar da mevcuttur. Bu bölümdeki uygulamalar olduğunca farklı türlerden seçilerek okuyucuya daha fazla sayıda araç ve uygulama yöntemi gösterilmiştir. “Upx” gibi malware yazılımları paketten çıkarma, .Net Framework’ü kullanılarak geliştirilmiş zararlı yazılımların dinamik disassembler işlemleri gibi skala geniş tutulmuştur. Analiz işlemlerinde mümkün oldukça Assembly kodlarına girilmemeye çalışılmıştır. Ancak bu bölümün son uygulamasında temel düzeyde olsa bazı işlemlerde kullanılmıştır. Bu sayede konuyla çok fazla bilgisi olmayan okuyucular için bile uygulamalar rahatlıkla kavranılabilecek düzeyde anlatılmıştır.

(Ek 1) Dijital İmzalar ve Sertifikalar; Kitabın akışında doğrudan uygulamalarla ilgili bir bölüm olmamasına rağmen siber güvenlik alanındaki bilinmesi gereken temel bilgiler içerisindeki önemli bir konudur. Malware analizindeki orta ya da ileri düzey uygulamalardaki bazı noktalar vurgulanmıştır. Ayrıca siber güvenlik alanındaki dijital imza ve sertifikalara bakış açısı ortaya konulmuştur.

(Ek 2) Karakter Kodlamaları; Bu bölüm Windows API konusunun işlendiği 4. bölümün öncesinde okunmalıdır. Hem malware analizi hem de adli bilişim açısından ilişkili olmasına rağmen doğrudan kitabın akışıyla ilgili değildir. Bu bölümde siber güvenlik açısından konuya temel bir giriş yapılmıştır. “Windows API” konusunun anlatıldığı bölümle birbirini tamamlayıcı niteliktedir. Ayrıca okuyuculara farklı bakış açıları sunan bazı uygulamalar da gösterilmiştir.

(Ek 3) Python Modül ve Paketleri; Bölümün adında Python adı geçse de aslında anlatılanlar Ruby modül ve paketleri, Javascript modül ve paketleri, Linux gibi açık kaynak yazılım depoları gibi çok daha genel ancak önemli bazı konular anlatılmıştır. Bunların başında açık yazılım depolarına bağımlı malware analizi açısından kullanılan araçların dezavantaj ve suistimal konuları işlenmiştir.

(Ek 4) Gizlilik ve Anonimlik; Malware analizi açısından ya da kitabın akışı içerisindeki herhangi yeri olmayan bir bölümdür. Tamamen yazarın bakış açısından okuyuculara sunulan ekstra bir bölümdür. Bu bölümde okuyucuların konuyla ilgili kafalarındaki bazı sorulara cevap verilmeye çalışılmıştır.

İÇİNDEKİLER

Bölüm 1) Giriş

Bölüm 2) Temel Kavramlar

A. Hacker

B. Malware

C. Malware Çeşitleri

D. Gizleme Tekniklerine Göre Malware Türleri

E. Malware Gizleme ve Karmaşıklaştırma İşlemleri

F. Malware Analiz Çeşitleri

Bölüm 3) Windows Temel Kavramları

A. Temel Kavramlar

-İşlem (Process)

-İş Parçacığı (Thread)

-Sanal Bellek (Virtual Memory)

-Dinamik Bağlantı Kitaplıkları (DLL, Dynamic Link Libraries)

B. Genel Sistem Mimarisi

-Kullanıcı Processleri (User Processes)

-Alt Sistem Dll’leri (Subsystem DLLs)

-Ntdll.dll

-Donanım Soyutlama Katmanı (Hardware Abstraction Layer -HAL)

-Servis/Hizmet Processleri (Service Processes)

-Win32k.sys

-Alt Sistem Processi (subsystem process - CSRSS.EXE)

-Sistem Processleri

-Hyper-V Hypervisor

-Executive

-Cihaz Sürücüleri (Device Drivers)

-Çekirdek (Kernel)

C. Microsoft Programlama Arayüzleri ve Frameworkler

Bölüm 4) Windows API

A. Giriş

-Sürüm

-Basit Bir Örnek

B. WinAPI Yazım Formatı-

C. WinApi’deki String Değişkenleri

-WinApi Kullanılan Fonksiyonlar ve Makrolar

D. WinApi Kullanılan Fonksiyonlarda Hataların Yakalanması

Bölüm 5) Process, Thread ve Job Yapıları

A. Process

B. Thread

C. Job

D. ETW (Event Tracing for Windows)

E. WMI (Windows Management Instrumentation)

Bölüm 6) Saldırıda Kullanılan Bazı Yöntemler

A. Giriş

B. Bazı Malware Saldırı Senaryoları

C. Bazı Malware Saldırı Senaryolarının Özeti

Bölüm 7) Uygulamalar Öncesi Hazırlık

A. Sanal Makinenin Kurulması

B. Bazı Ayarların Yapılması ve Gerekliliklerin Yüklenmesi

C. Flare VM Yüklenmesi

D. Bazı Analiz Programlarının Yüklenmesi

E. Malware Yazılımlar için Sanal Cihaz Ayarlarının Yapılması

Bölüm 8) Uygulamalar

  1. Uygulama

  2. Uygulama

  3. Uygulama

  4. Uygulama

  5. Uygulama

  6. Uygulama

  7. Uygulama

  8. Uygulama

Ek 1) Dijital İmzalar ve Sertifikalar

A. Temel Kavramlar

B. Dosya Özeti (Hash)

C. Gizli Anahtarlı Sistemler

D. Açık Anahtarlı Sistemler

E. Elektronik İmza

F. Dijital İmza ve Sertifikalar

G. Dijital İmza ve Sertifikalara Siber Güvenlik Açısından Bakış

Ek 2) Karakter Kodlamaları

A. Temel Kavramlar

B. Bazı Karakter Setleri

C. Bazı İlave Bilgiler

D. Karakter kodlamaları

D. Programlama Açısından Karakter Kodlamaları

E. Siber Güvenlik Açısından Karakter Kodlamaları

Ek 3) Python Modül ve Paketleri

A. Temel Kavramlar

B. Depolara Bakış

C. Siber Güvenlik Açısından Depolara Bakış

Ek 4) Gizlilik ve Anonimlik

A. Siber Güvenlik Açısından Gizlilik ve Anonimlik

Abdulkadir Güngör - Kişisel WebSite

Abdulkadir Güngör - Kişisel WebSite

Abdulkadir Güngör - Özgeçmiş

Github

Linkedin