Volatility, bir bilgisayarın RAM'inden (geçici bellek) alınan görüntüyü inceleyerek dijital delil çıkaran açık kaynaklı bir bellek adli analiz (memory forensics) çerçevesidir. Python ile yazılmış bu araç; çalışan süreçleri, ağ bağlantılarını, belleğe gizlenmiş zararlı kodları ve daha fazlasını diske hiç dokunmadan doğrudan bellekten ortaya çıkarır.
Bir sistem kapatıldığında RAM'deki bilgi kaybolur. İşte bu yüzden bir olay incelemesinde bellek, en değerli ama en kırılgan delil kaynaklarından biridir. Bu yazı, yeni başlayanlar için Volatility'nin ne olduğunu, nasıl kurulduğunu ve ilk analizin nasıl yapıldığını sade bir dille anlatıyor.
Bellek adli analizi (memory forensics) nedir?
Bellek adli analizi, bir bilgisayarın RAM içeriğinin bir kopyasını (bellek görüntüsü / memory dump) alıp incelemeyi ifade eder. Diskteki dosyalar kalıcıdır, ama bir programın çalışırken tuttuğu şifreler, açık ağ bağlantıları, şifresi çözülmüş veriler ve sadece bellekte yaşayan (fileless) zararlı yazılımlar yalnızca RAM'de bulunur. Bu bilgiler sistem kapanınca kaybolduğu için, canlı bir sistemden hızlıca alınan bellek görüntüsü olay müdahalesinde kritik değer taşır.
Volatility ne işe yarar?
Volatility, ham bir bellek görüntüsünü alır ve onu insanların okuyabileceği bilgilere dönüştürür. Örneğin görüntü alındığı anda hangi süreçlerin çalıştığını, hangi süreçlerin ağa bağlandığını, komut satırında ne yazıldığını ve belleğe enjekte edilmiş şüpheli kod parçalarını listeleyebilir. Bu sayede bir analist, "bu makinede tam olarak ne olmuş?" sorusuna somut delillerle yanıt verir. Volatility bir saldırı aracı değil; olay müdahalesi ve dijital adli bilişim (DFIR) için kullanılan bir savunma ve inceleme aracıdır.
Volatility 2 ile Volatility 3 arasındaki fark nedir?
İki büyük sürüm vardır. Volatility 2, Python 2 tabanlıdır ve her analizde işletim sistemine özel bir "profil" belirlemeni ister. Volatility 3 ise Python 3 ile yeniden yazılmıştır, profil yerine sembol tablolarını otomatik kullanır ve komut yapısı daha nettir. Yeni başlıyorsan Volatility 3 ile başlaman önerilir; ancak internetteki eski CTF ve eğitim materyalleri çoğunlukla Volatility 2 komutlarını içerir, bu yüzden ikisini de tanımak işine yarar.
| Özellik | Volatility 2 | Volatility 3 |
|---|---|---|
| Python sürümü | Python 2 | Python 3 |
| Profil gerekir mi? | Evet (örn. Win7SP1x64) | Hayır, sembol tabloları otomatik |
| Eklenti adı | pslist | windows.pslist |
| Durum | Bakım azaldı, hâlâ yaygın | Güncel geliştirilen sürüm |
| Yeni başlayan için | Eski içeriklerle uyum | Önerilen başlangıç noktası |
Volatility nasıl kurulur?
Volatility 3, GitHub deposundan indirilip Python bağımlılıklarıyla birlikte çalıştırılabilir. Sistemde Python 3 ve git kurulu olması yeterlidir. Kurulumu kendi test makinende veya sanal makinede yapman en güvenlisidir. Aşağıdaki adımlar temel kurulumu gösterir:
git clone https://github.com/volatilityfoundation/volatility3
cd volatility3
pip3 install -r requirements.txt
python3 vol.py -h
Alternatif olarak pip3 install volatility3 komutuyla da kurabilirsin. Kurulumun doğru olduğunu python3 vol.py -h çıktısındaki eklenti listesinden anlarsın.
Analiz için bellek görüntüsü (RAM dump) nasıl alınır?
Volatility bir görüntü oluşturmaz; hazır bir bellek görüntüsünü analiz eder. Görüntüyü almak için ayrı araçlar kullanılır: Windows'ta WinPmem, DumpIt veya FTK Imager; Linux'ta LiME veya AVML sık tercih edilir. Yeni başlayanlar genellikle eğitim amaçlı hazır örnek görüntülerle pratik yapar, çünkü canlı sistemden görüntü almak yalnızca yetkin olduğun makinelerde yapılmalıdır. Bir görüntü elde ettikten sonra dosya yolunu -f parametresiyle Volatility'ye verirsin.
Volatility ile ilk analiz nasıl yapılır?
İlk adım genellikle görüntünün hangi işletim sistemine ait olduğunu tespit etmektir. Ardından çalışan süreçleri listeleyip şüpheli olanları ararsın. Volatility 3 ile temel akış şöyledir:
# Görüntü hakkında genel bilgi
python3 vol.py -f bellek.raw windows.info
# Çalışan süreçleri listele
python3 vol.py -f bellek.raw windows.pslist
# Süreçleri ağaç yapısında göster (ebeveyn-çocuk ilişkisi)
python3 vol.py -f bellek.raw windows.pstree
# Ağ bağlantılarını incele
python3 vol.py -f bellek.raw windows.netscan
# Süreçlerin çalıştırıldığı komut satırlarını gör
python3 vol.py -f bellek.raw windows.cmdline
# Belleğe enjekte edilmiş şüpheli kodu ara
python3 vol.py -f bellek.raw windows.malfind
Volatility 2 kullanıyorsan önce imageinfo ile profili bulur, sonra her komuta --profile eklersin: örneğin python2 vol.py -f bellek.raw --profile=Win7SP1x64 pslist. Mantık aynıdır, sadece söz dizimi farklıdır.
Hangi Volatility eklentileri en çok kullanılır?
Volatility'nin gücü eklentilerinden gelir. Yeni başlayanların en sık kullandığı eklentiler süreç, ağ ve zararlı kod incelemesine odaklanır. Aşağıdaki tablo temel eklentileri ve ne işe yaradıklarını özetliyor:
| Eklenti (Volatility 3) | Ne yapar? |
|---|---|
| windows.info | Görüntünün işletim sistemi ve sürüm bilgisini verir |
| windows.pslist | Çalışan süreçleri listeler |
| windows.pstree | Süreçleri ebeveyn-çocuk ağacı olarak gösterir |
| windows.psscan | Gizlenmiş/sonlanmış süreçleri de bulur |
| windows.netscan | Ağ bağlantılarını ve portları listeler |
| windows.cmdline | Süreçlerin komut satırı argümanlarını gösterir |
| windows.malfind | Belleğe enjekte edilmiş şüpheli kod bölgelerini bulur |
| windows.dlllist | Süreçlerin yüklediği DLL'leri listeler |
Tipik bir inceleme akışı şöyledir: önce windows.info ile ortamı anla, pstree ile süreç ilişkilerini gör, alışılmadık bir alt süreç fark et, netscan ile o sürecin ağ bağlantısı var mı bak, ardından malfind ile kötü niyetli kod izi ara. Her komutun çıktısı bir sonraki sorunu şekillendirir.
Volatility öğrenirken nelere dikkat etmeli?
Yasal ve etik uyarı: Bellek adli analizini yalnızca kendi test/laboratuvar ortamında, sana ait sistemlerde veya açık yetkin olan durumlarda uygula. Başkasına ait bir bilgisayarın belleğini izinsiz almak ve incelemek hukuka aykırıdır. Öğrenmek için en güvenli yol, sanal makinelerde kendi oluşturduğun görüntüleri ve eğitim amaçlı yayınlanmış örnek dosyaları kullanmaktır. Volatility bir savunma/inceleme aracıdır; onu bir saldırı için değil, olayları anlamak ve savunmayı güçlendirmek için öğren.
Pratik yapmak istersen, adli bilişim ve bellek analizi konuları CTF yarışmalarında sık karşına çıkar. Kendini denemek için pratik.altaysec.com.tr üzerindeki ücretsiz CTF egzersizlerine göz atabilir, tarayıcı içinde çalışan güvenlik laboratuvarları için labs.altaysec.com.tr adresini kullanabilirsin.
Sık Sorulan Sorular
Volatility ücretsiz mi?
Evet. Volatility, Volatility Foundation tarafından geliştirilen açık kaynaklı ve ücretsiz bir çerçevedir. Kaynak kodu GitHub'da herkese açıktır, ticari lisans satın almana gerek yoktur. Hem bireysel öğrenme hem de profesyonel adli bilişim çalışmalarında yaygın olarak kullanılır.
Volatility 3 için profil gerekir mi?
Hayır. Volatility 2, her analizde işletim sistemine özel bir profil (örneğin Win7SP1x64) belirtmeni isterdi. Volatility 3 bu ihtiyacı ortadan kaldırdı; sembol tablolarını otomatik olarak eşleştirir. Bu yüzden yeni başlayanlar için Volatility 3 daha az sürtünmeli bir başlangıç sunar.
Volatility hangi işletim sistemlerini destekler?
Volatility, Windows, Linux ve macOS bellek görüntülerini analiz edebilir. Ancak eklenti ve olgunluk seviyesi işletim sistemine göre değişir; en olgun ve en çok belgelenmiş destek Windows tarafındadır. Linux ve macOS analizi için uygun sembol tabloları gerekebilir.
Bellek görüntüsünü nasıl alırım?
Volatility görüntü oluşturmaz, sadece analiz eder. Görüntü almak için Windows'ta WinPmem, DumpIt veya FTK Imager; Linux'ta LiME veya AVML gibi araçlar kullanılır. Yeni başlıyorsan görüntüyü kendi sanal makinende almanı veya eğitim amaçlı hazır örnek görüntülerle çalışmanı öneririz.