Hızlı cevap: Volatility, bellek (RAM) dökümlerini inceleyen ücretsiz ve açık kaynak bir adli bilişim çatısıdır. Diskte hiç iz bırakmayan zararlı yazılımlar, şifreleme anahtarları, çalışan süreçler ve açık ağ bağlantıları yalnızca bellekte bulunur, bu yüzden bellek analizi modern incelemenin vazgeçilmez parçasıdır. Öğrenirken izlenecek yol şudur: bir eğitim dökümü indir, süreç listesini çıkar (pslist ve psscan), ağ bağlantılarına bak (netscan), gizlenmiş kod ara (malfind), şüpheli süreci dosyaya dök (dumpfiles, procdump) ve zaman çizelgesine bağla. Kritik kural: bellek dökümü cihaz kapatılmadan önce alınmalıdır, kapattığınız anda bu delil yok olur.

Bir olay müdahalesinde en sık yapılan hata cihazı kapatmaktır. İyi niyetle yapılır, "yayılmasın" diye fişi çekilir ve o anda soruşturmanın en değerli delili silinir. Fidye yazılımının şifreleme anahtarı, bellekte çalışan ama diske hiç yazılmamış zararlı kod, saldırganın açık oturumu, hepsi RAM'dedir. Bu yazı, bellek analizinin neden bu kadar kritik olduğunu ve Volatility ile nasıl öğrenileceğini anlatıyor.

Bellekte ne var, diskte ne yok

Disk kalıcıdır, bellek uçucudur. Bu basit ayrım şu sonuçları doğurur:

  • Dosyasız (fileless) zararlı yazılım. Modern saldırıların önemli bölümü diske dosya yazmaz, PowerShell ya da WMI üzerinden doğrudan bellekte çalışır. Disk incelemesi bunu göremez.
  • Şifreleme anahtarları. BitLocker, VeraCrypt ve fidye yazılımı anahtarları çalışırken bellekte tutulur. Cihaz açıkken alınan döküm, kilitli bir diski açmanın tek yolu olabilir.
  • Çalışan süreçler ve enjeksiyon. Meşru bir sürecin içine enjekte edilmiş kod yalnızca bellekte görünür.
  • Ağ bağlantıları. Saldırganın komuta sunucusuna açık bağlantısı o an bellektedir.
  • Panoya kopyalanan veri, çözülmüş parolalar, açık belgeler. Kullanıcının o an ekranda yaptığı iş bellekte durur.

Delil sırası: neden önce bellek

Uluslararası kılavuzlarda "uçuculuk sırası" (order of volatility) diye bir ilke vardır. En hızlı kaybolan delil önce toplanır:

  1. İşlemci kayıtları ve önbellek
  2. Bellek (RAM)
  3. Ağ durumu ve çalışan süreçler
  4. Geçici dosyalar
  5. Disk
  6. Yedekler ve arşivler

Pratikte kural şudur: cihaz açıksa ve yasal yetkiniz varsa, kapatmadan önce bellek dökümü alın. Disk imajı bekleyebilir, bellek bekleyemez. İmaj tarafı için FTK Imager ile imaj alma yazımıza bakabilirsiniz.

Bellek dökümü nasıl alınır

Volatility döküm almaz, dökümü inceler. Alma işi ayrı araçlarla yapılır:

Ortam Yaygın araçlar
Windows FTK Imager (Capture Memory), WinPmem, Belkasoft RAM Capturer, DumpIt
Linux LiME (Linux Memory Extractor), AVML
macOS osxpmem ve sürüme bağlı çözümler
Sanal makine Anlık görüntü (snapshot) ya da hipervizör bellek dosyası, en temiz yöntemdir

Sanal makinelerde bir incelik vardır: hipervizörden alınan bellek dosyası, misafir işletim sistemine hiç dokunmadan elde edildiği için en az müdahaleli yöntemdir.

Volatility 2 mi 3 mü

İki büyük sürüm vardır ve kafa karıştırır.

Volatility 2, Python 2 tabanlıdır. Profil (profile) kavramı kullanır: dökümün hangi işletim sistemi sürümüne ait olduğunu --profile=Win7SP1x64 gibi elle belirtirsiniz. Çok sayıda eski eklenti ve eğitim materyali bu sürüme göre yazılmıştır.

Volatility 3, Python 3 tabanlıdır ve profil yerine sembol tabloları kullanır, işletim sistemini büyük ölçüde kendisi tanır. Komut isimleri de değişmiştir: windows.pslist gibi ad alanı yapısı gelmiştir.

Yeni başlıyorsanız Volatility 3 ile başlayın. Ancak internette bulacağınız birçok eğitim ve yazının Volatility 2 sözdiziminde olduğunu bilin, komutlar birebir uyuşmayabilir.

Temel eklentiler ve ne işe yararlar

Aşağıdakiler bir incelemenin omurgasını oluşturur.

Eklenti Ne yapar Neden önemli
windows.info Döküm ve sistem bilgisini verir Doğru dökümle çalıştığınızı teyit eder
windows.pslist Süreç listesini bağlı listeden çıkarır Normal görünümü verir
windows.psscan Bellekte süreç yapısı tarar Gizlenmiş süreçleri bulur, pslist ile farkı şüphe işaretidir
windows.pstree Süreçleri ebeveyn çocuk ağacı olarak gösterir Word'ün PowerShell başlatması gibi anormallikler burada görünür
windows.cmdline Süreçlerin komut satırını gösterir Kodlanmış PowerShell komutları yakalanır
windows.netscan Ağ bağlantılarını ve dinlenen portları çıkarır Komuta sunucusu bağlantısı
windows.malfind Şüpheli bellek bölgelerini ve enjeksiyonu arar Dosyasız zararlıyı yakalar
windows.dlllist Yüklü DLL'leri listeler Yan yükleme (sideloading) tespiti
windows.handles Açık tanıtıcıları gösterir Hangi dosya ve anahtara erişildiği
windows.filescan Bellekteki dosya nesnelerini tarar Diskte silinmiş dosya izleri
windows.dumpfiles Bellekten dosya çıkarır Zararlı örneğini analize alma
windows.registry.hivelist Bellekteki kayıt defteri kovanları Kalıcılık mekanizmaları

Bir incelemenin mantığı

Eklentileri ezberlemek yerine soruyu takip edin:

  1. Ne çalışıyordu? pslist ile bak, sonra psscan ile karşılaştır. Aradaki fark gizlenmiş süreçtir.
  2. Kim kimi başlattı? pstree ile bak. Ofis uygulamasının komut satırı başlatması klasik bir uyarıdır.
  3. Ne komut çalıştı? cmdline ile bak. Base64 kodlanmış PowerShell burada yakalanır.
  4. Nereye bağlanıyordu? netscan ile bak. Bilinmeyen adrese giden bağlantı komuta kanalı olabilir.
  5. Enjeksiyon var mı? malfind ile bak. Yürütülebilir işaretli anonim bellek bölgeleri şüphelidir.
  6. Örneği çıkar. dumpfiles ile zararlıyı çıkarın ve hash'ini alıp tehdit istihbaratıyla karşılaştırın.

Alıştırma verisi ve öğrenme yolu

Bellek analizi ancak gerçek dökümlerle öğrenilir. Yasal ve ücretsiz kaynaklar:

  • Volatility Foundation örnek bellek imajları listesi
  • NIST CFReDS referans veri kümeleri
  • DFRWS yarışma dosyaları
  • Ali Hadi'nin yayınladığı senaryo tabanlı bellek dökümleri
  • Kendi laboratuvarınız: bir sanal makineye zararsız bir test aracı çalıştırıp dökümünü alın, sonra bulmaya çalışın

İlk ay: info, pslist, pstree, cmdline ile normal bir sistemin nasıl göründüğünü öğrenin. Anormali tanımak için önce normali bilmek gerekir. İkinci ay: psscan, malfind, netscan ile gizlenme tekniklerine geçin. Üçüncü ay: Bulgularınızı disk ve ağ delilleriyle tek bir zaman çizelgesinde birleştirin.

Yapılandırılmış bir program için DSET Akademi içeriklerine bakabilirsiniz.

Sık yapılan hatalar

  • Cihazı kapatmak. En pahalı hata. Uçucu delil geri gelmez.
  • Dökümü şüpheli makinenin kendi diskine yazmak. Delili bozarsınız. Harici ve temiz bir ortama yazın.
  • Hash almamak. Döküm de bir delildir, hash ile bütünlüğü kayda geçmelidir.
  • Yanlış sürüm ve profil. Volatility 2 komutlarını 3'te denemek en sık karşılaşılan başlangıç engelidir.
  • Tek eklentiye güvenmek. pslist temiz görünüyor diye sistem temiz demek değildir, psscan ile karşılaştırın.
  • Bulguyu bağlamsız raporlamak. "Şu süreç vardı" tek başına bir şey söylemez, ne zaman ve neyle birlikte olduğu önemlidir.

Sık sorulan sorular

Volatility bellek dökümü alabilir mi? Hayır, yalnızca inceler. Alma için WinPmem, FTK Imager, LiME gibi araçlar kullanılır.

Kapatılmış bir bilgisayardan bellek alınabilir mi? Hayır. Ancak hazırda bekletme dosyası (hiberfil.sys) ve takas alanı diskte bellek kalıntısı barındırabilir, bunlar disk incelemesiyle çıkarılır.

Şifreli diskin anahtarını bellekten çıkarmak mümkün mü? Cihaz açıkken ve disk kilidi açılmışken alınan dökümde anahtar bulunabilir. Bu, cihazı kapatmadan döküm almanın en somut gerekçelerinden biridir.

Volatility 2 ölü mü? Ölü değil ama geliştirme ağırlığı 3'e kaydı. Eski eklentilere ihtiyacınız yoksa 3 ile ilerleyin.

Linux ve macOS destekliyor mu? Evet, ancak sembol tablosu gereksinimi nedeniyle kurulum Windows'a göre daha zahmetlidir.

Bellek analizi tek başına yeterli mi? Değil. Bellek anlık bir fotoğraftır. Disk, ağ ve kayıt verileriyle birleştirildiğinde anlam kazanır.

Kaynaklar

Olay müdahalesinde ilk saatler belirleyicidir ve bellek en hızlı kaybolan delildir. Destek almak ya da ekibinize uygulamalı bellek analizi eğitimi planlamak için DSET ile iletişime geçin. Ankara Hacettepe Teknokent laboratuvarımızdan 7/24 olay müdahalesi veriyoruz.