forensic-validator

Adli bilişim araç ve yöntemlerini doğrulamak için açık kaynak bir CLI aracı

tests MIT License Python 3.11+

Neden bu proje?

Adli bilişim incelemelerinde kullanılan araçların (imaging, hash doğrulama, carving vb.) doğru sonuç ürettiğini kanıtlamak, mahkemede kabul edilebilir bir sürecin temelidir. NIST'in Computer Forensics Tool Testing (CFTT) programı bu doğrulamayı endüstri çapında standartlaştırırken, bu proje aynı mantığı küçük ölçekte, öğrenme amaçlı olarak uygulamayı hedefliyor: bilinen bir girdiyle bir aracı çalıştır, çıktının beklenenle eşleştiğini kanıtla, sonucu kurcalamaya karşı korumalı şekilde kaydet.

Ne yapar?

#

Bütünlük doğrulama

Dosya ve disk imajları için MD5/SHA-1/SHA-256/SHA-512 hesaplama, karşılaştırma ve doğrulama.

Araç test framework'ü

NIST CFTT mantığıyla, dd/dc3dd gibi adli araçları bilinen girdilerle çalıştırıp beklenen sonuçla karşılaştırır.

Chain-of-custody defteri

Hash zincirli, kurcalamayı otomatik tespit eden append-only bir zincir-i emanet kaydı.

Nasıl çalışır?

dd / dc3dd
testsuite run
hash doğrulama
ledger (opsiyonel)

Hızlı başlangıç

git clone https://github.com/ahmetalan54801-oss/forensic-validator
cd forensic-validator
python3 -m venv .venv
.venv/bin/pip install -e .

.venv/bin/forensic-validator testsuite run examples/dd_suite.yaml

Kullanım örnekleri

Dosya bütünlüğü doğrulama:

forensic-validator hash compute dosya.img --algo sha256
forensic-validator hash compare orijinal.img kopya.img
forensic-validator hash verify dosya.img <beklenen_hash>

Sonucu chain-of-custody defterine kaydederek test suite çalıştırma:

forensic-validator testsuite run examples/dc3dd_suite.yaml \
  --ledger case001.jsonl --actor "ahmet"

Defteri görüntüleme ve kurcalanmadığını doğrulama:

forensic-validator ledger show --file case001.jsonl
forensic-validator ledger verify --file case001.jsonl

SSS

dd ile dc3dd arasındaki fark ne?

dc3dd, dd'nin standart bs=/count=/skip= parametreleri yerine kendi sözdizimini (ssz=, cnt=, iskip=, bufsz=) kullanır ve dahili hash hesaplama/loglama özelliği sunar — bu fark, proje geliştirilirken gerçek testlerle keşfedildi.

Ledger neden güvenli kabul ediliyor?

Her kayıt bir öncekinin sha256 hash'ini içerir; bu zincirden herhangi bir kayıt sonradan değiştirilirse ledger verify komutu zinciri yeniden hesaplayıp tutarsızlığı tespit eder.

Gerçek adli vakalarda kullanılabilir mi?

Hayır — bu bir öğrenme projesidir. Gerçek vakalar için NIST CFTT metodolojisi, ilgili mevzuat ve ISO/IEC 17025 gibi akreditasyon gereksinimleri esas alınmalıdır.

Örnek çıktı

# Test Raporu: examples/dc3dd_suite.yaml

**Sonuç: 6/6 test başarılı**

## [PASS] dc3dd bit-bit imaj alırken kaynak dosyayla aynı hash'i üretir
- exit_code: 0
...