Linux Sistemlerde Dosya Silme Kurtarma (Disk Forensics)

Bu yazı Linux sistemlerde temel seviyede dosya sistemleri, özellikleri ve  desteklenen dosya sistemleri üzerinde silinen dosyalarin geri getirilmesi ile ilgili bilgiler içermektedir.

 Ext2 Dosya Sistemi

Ext2 (second extended filesystem) bir linux dosya sistemidir. Hem ardışık hem de ayrı bloklar halinde diske yazma yapabilir. Maksimum dosya boyutu 2 TiB, dosya adı uzunluğu 255 bayt, bölüm boyutu 32 TiB olabilir. Dosya isimlerinde NULL karakterlere izin vermez. Linux, BSD, Windows ve Mac OS X işletim sistemlerinde desteklenir. Dosya sistemi seviyesinde şifreleme yapmaz. Dosya sistemi seviyesinde sıkıştırma ise sadece e2compr  eklentisi sayesinde yönetici verileri dışındaki dosyalara uygulanabilir.

Ext3 Dosya Sistemi

Ext3 (third extended filesystem) linux çekirdeği tarafından sıklıkla kullanılan günlüklü dosya sistemidir (journaled file system). Ext2 ye göre en büyük avantajı da budur. Yapılan değişikliklerin kaydını tuttuğundan, sistemin çökmesi veya elektrik kesintisi yüzünden temiz bir şekilde kapanmaması durumunda, sisteme gelecek zararları dosya sistemini kontrol etme gereksinimi duymadan hızlı bir şekilde giderir. Maksimum dosya boyutu 2 TiB, dosya adı uzunluğu 255 bayt, bölüm boyutu 16 TiB olabilir. Dosya isimlerinde NULL karakterlere izin vermez. Linux, BSD ve Windows işletim sistemlerinde desteklenir. Dosya sistemi seviyesinde sıkıştırma ve şifreleme yapamaz.

Ext4 Dosya Sistemi

Ext4 (fourth extended filesystem) Linux için bir günlüklü dosya sistemidir (journaled file system). Maksimum dosya boyutu 16 TiB, dosya sayısı 4 milyar, dosya adı uzunluğu 255 bayt, bölüm boyutu 1 EiB olabilir. Dosya isimlerinde NULL karakterlere izin vermez. Linux ve Windows işletim sistemlerinde desteklenir. Dosya sistemi seviyesinde sıkıştırma ve şifreleme yapamaz.

Linux’ta dosya silme(me) komutu “rm”

Tam olarak yaptığı şey dosya bağlantısını kaldırmaktır. Bu yüzden silindiği zannedilen dosyalar geri getirilebilir. Dosyaların geri getirilmesini zorlaştırmak için rm yerine shred komutu kullanımı önerilir. Yazının ilerleyen safhalarında geri döndürülemez silme işlemlerinden bahsedilecektir.

Kullanımı: rm  [SEÇENEK]  DOSYA

Bazı Seçenekler:
-f
Doğrulama istemeden silme işlemini gerçekleştirir.
-i
Silme işleminden önce emin olup olmadığımıza dair doğrulama ister.
-r
Bir dizini, içindeki diğer dizin ve dosyalarla birlikte siler.
-v
Silme işlemi sırasında tam olarak ne yaptığına dair bilgileri gösterir.
-I
Üç dosyadan fazla veya -r ile silme işlemlerinden önce doğrulama ister.
Örnek Kullanımlar:

1) Masaüstümdeki sil1, sil2, sil3, sil4 isimli dosyaları siliyorum. Üçten fazla dosya sildirdiğim için -I argümanı sayesinde benden doğrulama istiyor.

2) Masaüstümdeki sil isimli dizini, içindeki diğer dizin ve dosyalarla birlikte siliyorum. -I ile doğrulama istiyor, -v ile yapılan işlemi gösteriyor.

3) /Desktop/yedekler dizinindeki bütün pcap dosyalarını -i argümanı sayesinde  her seferinde  doğrulatarak siliyorum. Böylece son anda syn.pcap dosyasını silmekten vazgeçebilirim.

Scalpel ile Dosya Kurtarma

Aşağıdaki işlemler root olmak gerektirir.

Scalpel’i kurma:
Debian ve ubuntu tabanlı dağıtımlarda scalpel’i kurmak için:
apt-get install scalpel

Kurtarmak istediğiniz dosya türlerini seçme:

1) /etc/scalpel/scalpel.conf dosyasını istediğiniz bir düzenleyiciyle açın
2) dosya türünün bulunduğu satırın başındaki diyez (#) işaretlerini kaldırıp dosyayı kaydedin.

Dosyaları kurtarma:

1) Hangi disk bölümündeki silinmiş dosyaları arayacağınıza karar verin
/dev/sdc1 gibi
fdisk -l komutu karar vermenizde yardımcı olabilir.

2) Kurtarılan dosyaları hangi dizine kaydetmek istediğinize karar verin.
/root/Desktop/kurtarma gibi.
Not: Bu dizinin önceden oluşturulmadığına emin olun.
3) Dosya kurtarma işlemine başlayın
scalpel /dev/sdc1  -o /root/Desktop/kurtarma
Kurtarma işlemi bittikten sonra:Kurtarma dizininin içeriği:

Scalpel burada kurtarılan dosyalarla birlikte audit.txt dosyasını yaptıklarımızın bir özeti olarak oluşturur.
Daha ayrıntılı dosya kurtarma işlemleri için:

man scalpel

Foremost ile dosya kurtarma işlemleri:

Foremost nedir?

Dosyaların header ve footer bilgilerine bakarak dosyaları kurtarmaya yarayan bir konsol programıdır. Bu işleme genellikle “data carving” denir. Foremost, hem disk hem de imaj üzerinde çalışabilir. Scalper’e göre daha gelişmiş bir araçtır.

Bazı Seçenekler:

-t
Dosya türünü belirtme. (-t jpeg,pdf,png,zip …)
-i
Hangi diskte kurtarma işlemi yapacağını belirtme (varsayılan: stdin)
-a
Bütün dosya türlerinden arar. Bozuk dosyaları da çıkartır.
-w
Sadece audit dosyasını oluşturur, bulunan dosyaları diske yazmaz.
-v
Konsol ekranında yapılan işlemin bütün mesajlarını gösterir.
-o
Bulunan dosyaları nereye yazacağını belirtme (varsayılan: output)

Nasıl Yüklenir?
Debian ve Ubuntu tabanlı dağıtımlarda:
apt-get install foremost

Dosyalar Nasıl Kurtarılır?

1) Hangi disk bölümündeki silinmiş dosyaları arayacağınıza karar verin.
/dev/sdc1 gibi.  fdisk -l komutu karar vermenizde yardımcı olabilir.

2) Hangi dosya türlerini kurtarmak istediğinize karar verin.
jpeg,pdf,zip ve png gibi.

3) Kurtarılan dosyaları hangi dizine kaydetmek istediğinize karar verin.

/root/Desktop/kurtarma gibi.

4) Dosya kurtarma işlemine başlayın.
foremost  -t  jpeg,pdf,zip,png  -i  /dev/sdc1  -o  /root/Desktop/kurtarma  -v

İşlem tamamlandıktan sonra hangi dosya türünden kaç tane kurtarıldığını konsol ekranından veya foremost’un  veri kurtarma işleminin özeti olarak oluşturduğu  audit.txt dosyasından görebilirsiniz.

Extundelete ile Dosya Kurtarma
Extundelete nedir?

Birçok Linux dağıtımında yaygın olarak kullanılan ext3 ve ext4 dosya sistemlerinden veri kurtarmaya yarayan bir araçtır. Disk bölümünün günlüğünde tutulan bilgileri kullanarak silinmiş olan dosyaları kurtarmaya çalışır. Diğer dosya kurtarma araçlarından en büyük farkı hızı ve ext4 dosya sistemini desteklemesidir.

Nasıl yüklenir?
Paket Yöneticisinden:

apt-get install extundelete
yum install extundelete

Kaynak koddan: 

http://sourceforge.net/projects/extundelete/files/latest/download
tar vjxf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
./configure
make && make install

Temel Kullanım Seçenekleri:

–restore-all
Bütün bulduğu dosyaları geri getirmeye çalışır.
–output-dir ‘path’
‘path’ olarak belirtilen dizine kurtardığı dosyaları yazar.
–restore-file ‘path’
‘path’ olarak belirtilen dosyayı kurtarmaya çalışır.
–restore-files ‘path’
‘path’ olarak belirtilen dizinin içindeki dosyaları kurtarır.

Nasıl dosya kurtarılır?
1) Kurtarmak istediğiniz dosyaların bulunduğu sabit diski belirleyin
/dev/sdb2 gibi

2) Silinen dosyaların üzerine veri yazılmaması için diski sadece okunur yapın
mount -o remount,ro /dev/sdb2

3) Dosyaları kurtarmaya başlayabilirsiniz.

Örnek Kullanım:

1) Label adı denekdisk olan, /dev/sdb1 disk bölümündeki silinecekler isimli dizinin içeriği:

2) Bu dizini rm komutu ile sildikten sonra, silinen verilerin üstüne yazma işlemi olmaması için dosyaların silindiği diski hızlı bir şekilde sadece okunur yapıyorum.


3) Şimdi sıra dosyaları kurtarma aşamasına geldi. /dev/sdb2 sildiğim dosyaların bulunduğu disk bölümüydü. –restore-all argümanıyla bulduğu bütün dosyaları kurtarmasını sağlıyorum. –output-dir ile bulduğu dosyaları nereye yazacağını seçiyorum. Eğer belirtmezseniz varsayılan olarak o anda çalıştığınız dizine RECOVERED_FILES dosyası oluşturur ve bulduklarını yazar.

4) /media/yedekdisk dizinine oluşturulan RECOVERED_FILES dizininin içeriğini listeliyorum.

Linux’ta Shred ile Daha Güvenli Dosya Silme

Linux’ta dosyaları güvenli silmemize yarayan bir araçtır. Güvenli silmeden kasıt dosyaların pahalı donanımlarla bile geri getirilmesinin zorlaştırmasıdır. Günümüzde linux sistemlerde çoğunlukla günlüklü dosya sistemleri kullanılır. Günlüğe yazılan veriler kolayca erişilemediğinden silinmek istenilen dosyanın üzerine yazma işlemleri de kesin çözüm olamamaktadır. 


Pekii bu durumda ne işimize yarar shred? En azından diskinizde bulunan hassas bilgilerin herkes tarafından rahatlıkla ele geçirilmesine engel olur. USB diskinizi arkadaşınıza vermeden, bilgisayarı tamirciye götürmeden, sabit diskinizi internette satmadan önce shred ile güvenli dosya silme işlemleri yapmak bilgilerinizin korunmasında standart dosya silme ve disk formatlama işlemlerinden daha çok  yardımcı olur.

Seçenekler:

-f
Eğer gerekliyse dosya iznini yazılabilir olarak değiştirir.
-n
Dosyanın üstüne n kere yazma işlemi gerçekleştir. (Varsayılan 3)
-z
Shred işlemini gizlemek için son olarak dosya üzerine sıfırlar yazar.
-v
O anda yapılan işlemleri gösterir.
-u
Üzerine yazdıktan sonra dosyayı siler.

Örnek Kullanım:

1) Disk silme ve sıfırlama işlemlerine başlamadan önce sabit diskimizde hangi dosyalar var bakalım

2) İşleme başlamadan önce /dev/sdb2 bölümünün bağını kaldırıyorum. -n argümanıyla 20 kere üzerine veri yazma ve -z argümanıyla en sonunda sıfırlama işlemi yapacak. Sıfırlama işlemi genelde üzerine yazma yaptığımız anlaşılmasın diye yapılır. İşlemler gerçekleşirken -f argümanıyla yazma korumalı olan dosyaların iznini değiştirecek ve -v argümanıyla da olup biteni ekrana yazacak.

3) Extundelete aracıyla dosya kurtarıp kurtaramadığımıza bakıyoruz.

Sonuç:

Görünüşe göre shred aracı, hiçbir şeyi garanti etmese de, işe yarıyor. Eğer istihbarat örgütleri  tarafından aranan biri değilseniz Shred veya aynı işi yapan Scrub, Wipe gibi araçlar işinizi görür. Sabit diskine her an el konma ihtimali olan biri iseniz belki bu araçları kullanmanın yanında, günlüklü dosya sistemleri kullanmamak, tam disk şifrelemesi yapmak ve diskle işiniz bitince parçalayıp gaz döküp yakmak da bir çözüm olabilir.

Bekir Sıtkı Hacışahinoğlu <intern@bga.com.tr>