Konuyu Okuyanlar: 1 Ziyaretçi

Disk İmajı Alma: dd, dc3dd, Hash Doğrulama ve Zincir of Custody Notları

Disk İmajı Alma: dd, dc3dd, Hash Doğrulama ve Zincir of Custody Notları
[Resim: attachment.php?aid=263]

Selam,

Adli bilişimde her şey imajla başlar. Yanlış alınan bir imaj, üzerine kurduğunuz tüm analizi zayıflatır. Bu yazıda Linux'ta dd ve dc3dd ile disk imajı alma, hash doğrulama ve basit zincir of custody (delil zinciri) notlarını paylaşıyorum. Senaryo: kendi lab diskim /dev/sdb (USB bellek).

Neden ham imaj?
Canlı diskte gezinmek delili değiştirir (atime vb.). Salt okunur bağlama ve bit-bit kopya (forensic image) standarttır. Hedef: kaynak ile imajın hash'inin aynı olması.

Hazırlık
  1. Mümkünse donanım yazma engelleyici (write blocker) kullanın.
  2. Yoksa kerneli salt okunur bağlayın:
Kod:
sudo hdparm -r1 /dev/sdb # veya bind mount / blok cihazı RO sudo blockdev --setro /dev/sdb
Cihaz adını doğrulayın; yanlış disk üzerine yazmak felakettir:
Kod:
lsblk -o NAME,SIZE,MODEL,SERIAL,MOUNTPOINT

Klasik dd
Kod:
sudo dd if=/dev/sdb of=/mnt/evidence/case01.dd bs=4M status=progress conv=sync,noerror
  • bs=4M: blok boyutu; çok küçük yavaşlatır.
  • conv=noerror: okuma hatalarında durma, devam et (kötü sektörler).
  • status=progress: ilerleme (GNU dd).
Bitince:
Kod:
sync sha256sum /dev/sdb /mnt/evidence/case01.dd | tee /mnt/evidence/case01.sha256

[Resim: attachment.php?aid=264]

dc3dd: adli bilişim için geliştirilmiş dd
dc3dd hash'i işin içine gömer, log üretir:
Kod:
sudo dc3dd if=/dev/sdb of=/mnt/evidence/case01.dc3dd hash=sha256 log=/mnt/evidence/case01.log
Logda başlangıç/bitiş zamanı, hash ve hata sayıları yer alır. Mahkeme veya kurum içi incelemede bu log hayat kurtarır.

Alternatif modern araç: dcfldd veya ewf-tools (E01 formatı). Kurumsal tarafta çoğu laboratuvar E01/AFF tercih eder; ham dd eğitim ve hızlı lab için yeterlidir.

Hash disiplini
  • Kaynak ve imaj hash'i birebir aynı olmalı.
  • Hash algoritması: en az SHA-256 (MD5 tek başına artık yeterli sayılmaz).
  • Hash dosyasını imajla birlikte, ayrı bir kanıt notuna yazın.
  • Sonradan imajı kopyalarsanız yeni kopyanın hash'ini de alın; orijinal hash değişmez.
Kod:
sha256sum -c case01.sha256

Zincir of custody (basit şablon)
Her teslimatta kim, ne zaman, neden aldı yazılmalı. Minimal alanlar:
  • Dava / olay no
  • Cihaz seri no, model
  • İmaj dosya adı, boyutu, SHA-256
  • Alım tarihi (Europe/Istanbul), alan kişi
  • Saklama yeri (şifreli disk, erişim listesi)
Örnek satır:
Kod:
2026-10-17 14:05 TRT | Ahmet Y. | /dev/sdb -> case01.dc3dd | SHA256=abc... | Lab-Kasa-2

İmajı bağlamak (analiz için)
Kod:
sudo losetup -fP --show /mnt/evidence/case01.dd sudo mkdir -p /mnt/img sudo mount -o ro,noexec,noload /dev/loop0p1 /mnt/img
Her zaman ro. Analiz bitince:
Kod:
sudo umount /mnt/img sudo losetup -d /dev/loop0

Sık hatalar
  • if/of karıştırmak (hedef diski siler)
  • Hash almadan kopyayı dağıtmak
  • İmajı RW bağlamak
  • Canlı sistemde "temizlik" yapıp sonra imaj almak (çok geç)

Kaynaklar
  • NIST SP 800-86 (Guide to Integrating Forensic Techniques)
  • dc3dd / dd man sayfaları
  • SANS Forensics white paper'ları

Siz E01 mi yoksa ham dd mi tercih ediyorsunuz? Küçük lablar için deneyimlerinizi merak ediyorum.

Canlı sistemden toplama sırası
Disk imajı almadan önce (politika izin veriyorsa) uçucu kanıt: bellek (dumpit/winpmem/lime), ağ bağlantıları, oturum listesi. Klasik sıra: bellek -> ağ durumu -> disk. Tersi yapılırsa bellek içeriği değişir. Linux'ta LiME ile bellek, ardından disk dd. Her adımın hash ve zamanını deftere yazın.

Bulut diskleri
AWS EBS snapshot / Azure disk snapshot adli süreçte sık kullanılır. Snapshot'tan yeni volume yaratıp salt okunur bağlamak, çalışan instance'ı kapatmadan kanıt almayı sağlar. Snapshot ID, bölge ve IAM yetkisini zincir of custody'ye ekleyin.


Doğrulama senaryosu
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.

Lab disiplini
Ortamlar arasında (lab, staging, production) aynı yapılandırmayı kör kopyalamayın. Adresler, sertifikalar ve kimlikler farklıdır. Şablon kullanın, değerleri envanterden doldurun.

Runbook'a taşımak
İlgili log ve kanıtları olaydan sonra en az kurum politikasının öngördüğü süre kadar saklayın. Disk dolunca en eski güvenlik logunu silmek klasik hatadır; ayrı retention politikası tanımlayın.

Ölçüm ve alarm sağlığı
Yanlış pozitifleri susturmak ile körleşmek arasındaki çizgi incedir. Suppress kuralına gerekçe ve gözden geçirme tarihi yazın. Süresi dolunca yeniden değerlendirin.

Kapsam ve izin hatırlatması
Bu adımları change ticket olmadan production'da uygulamayın. Küçük görünen bir audit ayarı bile uygulama uyumluluğunu bozabilir. Önce staging, sonra kontrollü yayılım.

Yedekleme ve geri dönüş
Yılda en az iki kez masabaşı tatbikatı yapın: 'bu kontrol kırılırsa kim fark eder?' sorusunu sorunsuz cevaplayabilmelisiniz. Tatbikat notlarını wiki'ye ekleyin.

Log saklama süresi
Araç çıktısını ekran görüntüsü olarak bırakmak yerine makinece okunur formatta (JSON/CSV) arşivleyin. İki yıl sonraki denetimde arama kolaylaşır.

Yanlış pozitif yönetimi
Yetki ayrımı: bu kontrolü yapılandıran kişi ile alarmı triaj eden kişi mümkünse farklı olsun. Küçük ekiplerde olmasa bile en azından farklı hesap kullanın.

Değişiklik yönetimi ile ilişki
Sürüüm yükseltmelerinden sonra regresyon testi yapın. 'Aynı config' yeni sürümde farklı varsayılanlara bağlanmış olabilir. Release note'daki breaking change bölümünü okuyun.

Eğitim tatbikatı
Dış bağımlılık (feed, imza seti, konteyner imajı) için bütünlük doğrulaması yapın. İmzasız feed ile gelen kural seti tedarik zinciri riskidir.

Doğrulama senaryosu
Bu konuyla ilgili ek bir kontrol: değişikliği yaptıktan sonra en az bir negatif test ve bir pozitif test tanımlayın. Negatif test 'alarm boşyere düşmemeli', pozitif test 'bilinen kötü örneği yakalamalı' der. İkisini de kaydedin.

Uygulama notu
Bu rehberdeki komutları olduğu gibi kopyalamadan önce yolları, arayüz adlarını ve IP adreslerini kendi ortamınıza göre değiştirin. Dağıtım farkları (Debian/Ubuntu/RHEL/Windows sunucu) çıktı biçimini değiştirebilir; man sayfası ve resmi dokümantasyon birincil kaynaktır. Bir adım beklediğiniz sonucu vermezse önce yetki (sudo/Administrator), sonra sürüm, en son da yapılandırma dosyası sırasıyla bakın. Değişiklikleri geri almak için snapshot veya yapılandırma yönetimi (Ansible/Git) kullanın; 'elle bir dokundum' geçmişi denetimde kaybolur. Alarm ve log örneklerini ekip kanalında paylaşırken kişisel veri ve iç IP şemasını maskeleyin.
Yasal uyarı: Bu içerik eğitim amaçlıdır. Anlatılanları yalnızca kendi sistemlerinizde veya yazılı izin aldığınız sistemlerde uygulayın. Yetkisiz erişim ve sistemlere müdahale 5237 sayılı TCK'nın 243, 244 ve 245. maddeleri kapsamında suçtur.


Ek DosyalarEkran Görüntüleri
       
Cevapla



Hızlı Menü: