CyberFlow Logo CyberFlow BLOG
Soc L1 Izleme Endpoint Edr

Bellek Analizi ile Enjeksiyon ve Hooking Tespiti: Siber Güvenlikte Kritik Adımlar

✍️ Ahmet BİRKAN 📂 Soc L1 Izleme Endpoint Edr

Bellek analizi, siber güvenlikte zararlı yazılımların tespiti için kritik bir süreçtir. Eğitimin detaylarını keşfedin.

Bellek Analizi ile Enjeksiyon ve Hooking Tespiti: Siber Güvenlikte Kritik Adımlar

Bu blog yazısında, bellek analizi ve zararlı yazılım tespiti ile ilgili temel kavramları öğrenin. Enjeksiyon ve hooking tekniklerini anlamak için önemli noktaları keşfedin.

Giriş ve Konumlandırma

Siber güvenlik alanında, en güncel tehditler ve savunma mekanizmaları üzerine sürekli bir evrim gözlemlenmektedir. Bu bağlamda, bellekte çalışan zararlı yazılımların tespiti ve analizi, günümüz siber tehditleriyle başa çıkmada kritik bir rol oynamaktadır. Bellek analizi, içerdikleri bilgilerin yanı sıra uygulamaların çalışma mantığını da analiz etmek için önemli bir araçtır. Bununla beraber, bellek analizi yoluyla enjeksiyon ve hooking tespiti, siber güvenlik uzmanlarının, tehditlerini tanımlamaları ve güvenlik önlemlerini güçlendirmeleri açısından son derece değerli bir süreçtir.

Görünmez Tehditler

Günümüzde, bilgisayar sistemlerine yönelik saldırılar, çoğunlukla görünmez bir biçimde gerçekleşmektedir. "Dosyasız" olarak adlandırılan bu tür saldırılarda, zararlı kod doğrudan RAM üzerinde çalıştırılır ve işletim sistemi düzeyinde herhangi bir iz bırakmaz. Örneğin, bilgisayarda sadece 'notepad.exe' gibi masum bir uygulamanın çalıştığına dair bir izlenim yaratılır. Ancak, arka planda bu süreçlerin bellek alanında zararlı kodlar pusuda beklemektedir. Böylelikle, saldırganlar sistemin içine sızmak için etkili bir yol bulmuş olurlar.

Bellek Sızması

Bellek analizi uygulamaları, uzamsal ve çıkarımsal gözlemler ile bellek sızıntılarını ortaya çıkarabilir. Zarar görmüş bir sistemde, bellek içerisinde dolanan zararlı kodları tespit etmek zorlu bir süreç olabilir. Ancak, güvenlik araştırmacıları için bu analizler, potansiyel tehditleri tespit etmek ve engellemek için çok önemlidir. Belleğin bu şekilde incelenmesi, özellikle sistem belleğine, çalıştırılabilir kod parçalarını enjekte edenlerin tespit edilmesine olanak tanır.

Normal bir uygulama, belleğini yalnızca 'Okuma/Yazma' modunda kullanırken, zararlı yazılım bunu 'Yürütülebilir' hale getirmek zorundadır.

Enjeksiyon Sanatı

Saldırganlar, sistemdeki meşru süreçlerin hafızasına zararlı bir kod enjekte etmek için farklı teknikler kullanabilirler. Örneğin, "DLL Injection" yöntemi, zararlı bir kütüphanenin çalışan bir sürecin bellek alanına zorla yüklenmesi anlamına gelir. Buna ek olarak, "Process Hollowing" tekniği, bir meşru sürecin içindeki orijinal kodu silerek yerine zararlı kodu yerleştirmeyi içerir. Her iki yöntem de bellek analizi sırasında belirli izleme yöntemleriyle tespit edilebilir.

Yükleme ve İzinlerin Takibi

Bellek analizi, aynı zamanda sistemin güvenliğini sağlamak için kritik olan izinlerin ve yükleme paketlerinin takibini de sağlar. EDR (Endpoint Detection and Response) sistemleri, bellek üzerinde anormal yazma ve yürütme izinlerini izleyerek enjeksiyonları tespit eder. Bu tür sistemler, bellekte yer alan verileri sürekli olarak gözlemleyerek, kullanıcının bilgisayarında beklenmedik bir değişiklik olduğunda uyarıda bulunabilirler.

Fonksiyon Kancalama (Hooking)

Siber güvenlikte, "hooking" olarak adlandırılan teknik, bir uygulamanın sistem çağrılarını manipüle etme işlemini tanımlamak için kullanılır. Bir program, işletim sistemi API'sını kullanırken, bu işlem öncelikle zararlı kod tarafından ele geçirilir. Fonksiyon kancalama, zararlı yazılımların bir hedef uygulama tarafından yapılan işlemleri etkileme ve bu sayede bilgileri çalma veya manipüle etme yeteneği sağlar. Bellek analizi bu tür tekniklerin tespit edilmesi için kritik öneme sahiptir.

Sonuç Olarak

Bellek analizi, günümüz siber güvenlik ortamında kritik bir araçtır. Sadece saldırganların kullandığı enjeksiyon ve hooking gibi tekniklerin tespiti değil, aynı zamanda sistemin genel güvenliği ve güvenilirliği için bir gereklilik haline gelmiştir. Siber güvenlik uzmanları için bu yetenekleri anlamak ve uygulamak, zararlı yazılımlara karşı etkili bir savunma stratejisi geliştirmede temel bir adım oluşturmaktadır. Artık okuyucular, ilerleyen bölümlerde detaylı incelemelerle bu kavramların uygulamalarını ve etkilerini öğrenmeye hazır hale geldiler.

Teknik Analiz ve Uygulama

Görünmez Tehdit

Siber tehditlerin karmaşıklığı, özellikle bellek analizi yöntemleri ile daha da derinleşmektedir. "Dosyasız" saldırılar, zararlı kodun diske herhangi bir dosya yazmadan, doğrudan bilgisayarın RAM'inde çalıştırılmasını ifade eder. Bu tür saldırılar, siber güvenlik camiasında görünmez tehditler olarak nitelendirilir. Örneğin, bir izleme aracıyla sistemi analiz ettiğinizde yalnızca "notepad.exe" gibi masum bir sürecin çalıştığını görebilirsiniz. Ancak, bu sürecin belleğinde zararlı bir kod (shellcode) beklemektedir.

Bellek Sızması

Bellek sızması, bellek üzerindeki verilere izinsiz erişim sağlama anlamına gelir. Bu tür bir sızma, zararlı yazılımın, meşru bir uygulamanın bellek alanına gizlice yerleştirilmesi ile gerçekleşir. Bu işlem, özellikle process injection tekniği kullanılarak yapılır. Aşağıdaki kod örneği, bunun nasıl gerçekleştirilebileceğine dair kısmi bir temsil sunar:

#include <Windows.h>
// Meşru bir sürece DLL yüklemek için gerekli işlemleri başlatan basit bir örnek
void injectDLL(DWORD processID, const char* dllPath) {
    HANDLE processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);
    LPVOID pDllPath = VirtualAllocEx(processHandle, NULL, strlen(dllPath) + 1, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
    WriteProcessMemory(processHandle, pDllPath, (LPVOID)dllPath, strlen(dllPath) + 1, NULL);
    
    HANDLE threadHandle = CreateRemoteThread(processHandle, NULL, 0, (LPTHREAD_START_ROUTINE)LoadLibraryA, pDllPath, 0, NULL);
    WaitForSingleObject(threadHandle, INFINITE);
    VirtualFreeEx(processHandle, pDllPath, 0, MEM_RELEASE);
    CloseHandle(processHandle);
}

Bu kod, bir bellek sızıntısı oluşturarak zararlı bir DLL dosyasının mevcut bir sürece yüklenmesini amaçlamaktadır.

Enjeksiyon Sanatı

Enjeksiyon teknikleri, zararlı kod parçacıklarının bellek alanlarına yerleştirilmesinde kritik öneme sahiptir. Özellikle, DLL Injection, Process Hollowing ve Reflective Loading gibi yöntemler öne çıkmaktadır. Bu tekniklerin çalışma mantığı aşağıdaki gibidir:

  • DLL Injection: Zararlı bir kütüphaneyi (.dll), çalışan başka bir sürecin adres alanına zorla yüklemek.
  • Process Hollowing: Meşru bir süreci askıda başlatıp orijinal kodu silerek yerine zararlı kodu yazmak.
  • Reflective Loading: Bir DLL dosyasının bellekten yüklenirken diske hiç değmeden gerçekleştirilmesi.

Bu tekniklerin her biri, siber saldırgıların sistem üzerinde nasıl etkili olabileceği konusunda derin bir anlayış sağlar.

Yükleme Paketi

Bir zararlı yazılım yüklemesi, enjekte edilmiş kod ile başlar. EDR (Endpoint Detection and Response) sistemleri, bellek üzerinde anormal yazma ve yürütme izinlerini takip ederek bu tür enjeksiyonları tespit etme yeteneğine sahiptir. Bellek analizi yapılırken, şüpheli aktivitelerin izlenmesi gerekir. Örneğin, aşağıda EDR sistemleri için bir pseudo kod verilmiştir:

monitor memory_access {
    if (write_permission == TRUE && execution_permission == TRUE) {
        trigger alert("Anomalous memory access detected!");
    }
}

Bu tür bir mekanizma, sistemdeki olumsuz değişiklikleri derhal tespit etmek için önemlidir.

İzinlerin Takibi

Bellek analizi sırasında izinlerin takibi oldukça önemlidir. Normal şartlarda bir program, bellekte yalnızca "Okuma/Yazma" işlemleri yapabilirken, bir saldırgan bu alanı "Yürütülebilir" (Execute) hale getirmeyi hedefler. Bu noktada, EDR sistemleri, sistem çağrılarını izleyerek kritik izinlerin değişimini tespit eder.

Fonksiyon Kancalama

Sistem çağrılarının akışını değiştirmek için kullanılan tekniklere "hooking" denir. Bir program, belirli bir işlem gerçekleştirmek istediğinde, bu sürecin önüne zararlı bir kodun yerleştirilmesi sağlanır. Böylece, zararlı kod ilk önce çalıştırılır. Bu tür tekniklerin etkisini anlamak için aşağıdaki örneği inceleyebilirsiniz:

#include <Windows.h>
// Bir API'nin işleyişini etkileyen basit bir örnek
LONG WINAPI HookedFunction() {
    // Zararlı işlemler burada tanımlanır
    return 0;
}

void HookAPI() {
    // Orijinal API adresini kaydedin
    // API'nin adresini değiştirin
}

MODÜL FİNALİ

Bellek analizi ve enjeksiyon teknikleri, siber güvenlik alanındaki kritik becerilerdir. EDR sistemleri, bellek üzerinde anormal aktiviteleri tespit etme ve zararlı yazılımların yüklenmesini önleme konusunda önemli bir role sahiptir. Bu bağlamda, saldırı türlerinin ve bellek manipülasyon tekniklerinin detaylı analizi, siber güvenlik faaliyetlerinin başarısı için elzemdir. Analistlerin bu tür kavramları anlaması ve uygulamaları kendi güvenlik stratejilerinde oturtması, güvenlik risklerini minimize etmede bir adım daha ileri taşımaktadır.

Risk, Yorumlama ve Savunma

Görünmez Tehdit

Siber güvenlik dünyasında, bellek analizi, kötü niyetli yazılımların tespitinin ve analizin yapılmasının önemli bir parçasıdır. Enjeksiyon ve hooking (kancalama) gibi teknikler, saldırganların hedef sistemlerde görünmez bir şekilde hareket etmesine olanak tanıyan yöntemlerdendir. Bu tür tehditlerin tespiti, bir güvenlik uzmanının en temel yeteneklerinden biridir ve genellikle bellek analizine dayanmaktadır.

Kötü niyetli kodlar, disk üzerinde herhangi bir iz bırakmaksızın RAM'de çalıştırıldıklarından, tespit edilmeleri zordur. Bellek analizi yapılmadığı takdirde, sistem yöneticileri, kullanıcılarına ya da sistemlerinin entegre süreçlerine zararlı etkiler teşkil eden bu yazılımların varlığından habersiz kalabilirler.

Bellek Sızması ve Yanlış Yapılandırmalar

Bellek sızıntıları, sistemin bellek kullanımını etkileyen ve performans kaybına yol açan durumlar olarak tanımlanabilir. Bu sızıntılar, kötü yapılandırılmış yazılımlar veya çuvallamış kodlamalar nedeniyle oluşabilir. Sistem üzerinde bir tehdit tespit edildiğinde, bu tür anormalliklerin dikkatlice analiz edilmesi gerekir. Aşağıda bellek sızıntılarını tespit etmek ve bunların güvenlik anlamını yorumlamak için bazı teknikler açıklanmıştır:

# Bellek dökümleri (memory dumps) oluşturma
volatility -f memory_dump.raw --profile=Win7SP1x64 pslist

Yukarıdaki komut, bellek dökümü üzerinde çalışan süreçleri listeleyecektir. Eğer yazılımın beklenmedik süreçler çalıştığı tespit edilirse, bu durumda durumu ciddiye almak gerekir.

Enjeksiyon Sanatı

Enjeksiyon saldırıları, kötü niyetli yüklerin genellikle meşru süreçlerin bellek alanına gizlice yerleştirilmesi ile gerçekleşir. Saldırganlar, bu sayede sistemin güvenilir bir parçası olarak davranarak tespit edilmeden hareket edebilirler. Enjeksiyon türlerinden bazıları şunlardır:

  • DLL Injection: Kötü niyetli bir kütüphanenin (.dll), başka bir sürecin adres alanına zorla yüklenmesi.
  • Process Hollowing: Meşru bir sürecin içeriğinin silinip zararlı bir kodun yazılması.
  • Reflective Loading: DLL dosyasının diske hiç yazılmadan doğrudan bellekten yüklenmesi.

Bu teknikler, bellek üzerinde anormal yazma ve yürütme izinlerinin takip edilmesini gerektirir. EDR (Endpoint Detection and Response) sistemleri, bu izin değişikliklerini izleyerek gerçekleştirilmekte olan enjeksiyonları tespit etmeye çalışır.

# EDR örneği ile bellek izleme stratejisi
if process.permissions == "Execute":
    alert("Şüpheli yürütme izni tespit edildi!")

İzinlerin Takibi ve Fonksiyon Kancalama

Siber saldırganlar, sistem fonksiyonlarının akışını değiştirerek zararlı kodların çalışmasını sağlar. Bu, genellikle API hooking (API kancalama) ile gerçekleştirilir. Kancaralarak sistem çağrılarını bir tersine yönlendirmek, zararlı kodların daha sinsi bir şekilde çalışmasına olanak tanır.

Bu tarz bir ortamda, sistem yöneticileri API monitörleme tekniklerini kullanarak, hangi kritik sistem fonksiyonlarının çağrıldığına dair anlık verileri toplayabilir.

# API izleme stratejisi
api_monitoring_tool -monitoring on

Bu şekilde, kritik çağrılara müdahale ederek potansiyel tehlikeleri erkenden tespit edebiliriz. Özellikle, normalde çok sık kullanılmayan sistem çağrılarına dikkat edilmelidir.

Sonuç

Bellek analizi, siber güvenlikte kilit bir rol oynamaktadır. Enjeksiyon teknikleriyle sistemlere sızan zararlı yazılımlar, yalnızca bellek üzerinde kalmakla kalmaz, aynı zamanda sistemin güvenliğini tehdit eder. Yanlış yapılandırmalar ve bellek sızıntıları sorunu, sürekli izleme ve dikkatli analiz gerektirir. EDR çözümleri ve bellek izleme stratejileri ile bu tür tehditlerin zamanında tespit edilmesi sağlanabilir. Kısacası, bellek analizi ile yapılan yakından takip ve analiz çalışmalarının, siber güvenlikle ilgili risklerin yönetiminde kritik bir öneme sahip olduğunu söyleyebiliriz.