1 — Ne İşe Yarar Bu MFT ?

Enes Aydın
5 min readJul 23, 2018

--

MFT dökümanı üç parça halinde paylaşılacaktır.

Bu yazı dizisi ADEO DFIR ekibinin katkılarıyla hazırlanmıştır.

1- Ne İşe Yarar Bu MFT ?

2- $MFT Tablosunu Elde Etme Yöntemleri.

3- MFT Parse Araçlarının Karşılaştırılması ve Adli Bilişim Açısından Önemi.

ABSTRACT — Today, in the field of forensic science, disc analysis method is used to detect crime and event. As there are many different file systems, the analysis methods also differ. This article describes the Master File Table (MFT) on the NTFS file system.

I. ÖZET

Günümüzde adli bilişim alanında suç ve olayı tespit etmede disk analizi yöntemi kullanılmaktadır. Birçok farklı dosya sistemi bulunduğundan analiz yöntemleri de farklılık göstermektedir. Bu makalede NTFS dosya sistemi üzerinde bulunan Master File Table ( MFT )’ın adli bilişim boyutunda tanımı yapılmıştır.

II. GİRİŞ

MFT, NTFS dosya sisteminin temelidir. Sistemde bulunan tüm dosya ve dizinler hakkında bilgi içerir bundan dolayı her bir dosya MFT tablosunda en az bir girdi bulundurmaktadır. Her bir girdi 1KB boyutunda olmasının yanı sıra yalnız ilk 42 baytın tanımlanmış bir amacı vardır. Geri kalan bölüm attributeleri içermektedir. Buna örnek olarak bir attribute, sadece dosyanın ismini depolamak için kullanılabilir. Örnek bir MFT Girişi aşağıda belirtilmiştir.

Şekil — 1 — Örnek bir mft girişi.

Tabloda her bir girdinin benzersiz, ardışık 16 bitlik sıra numarası olup, sıfır’dan başlamaktadır. MFT’de aslında bir dosyadır ve dosya ismi $MFT ‘dir. Tablodaki ilk girdi MFT’nin diskteki konumu tutmaktadır. Microsoft MFT girişlerini oluşturduktan sonra bir daha silme işlemi gerçekleştirmemektedir, sadece içeriği temizlenmektedir. Yani, sıra numarası sürekli artmaktadır.

Şekil — 2

Bir MFT kaydında bulunanlar aşağıda belirtilmiştir.

1) Giriş Başlığı ( Entry Header )

2) Attributes ( Öznitelikler ) : Başlık ve içerik olarak ikiye ayrılmaktadır.

3) Kullanılmayan alan ( Unused Space )

MFT tablosundaki ilk 16 girdi sistemle ilgili metadata verilerini içeren dosyaların konumlarını tutmaktadır, metadata dosyaları $ ile başlar ve ilk harfi her zaman büyüktür. Dosyalar diskin kök dizininde saklanır.

Şekil — 3 Metadata Dosyaları

MFT büyük boş bir kutu gibidir. Alanı daha düzenli kullanmak için içerisinde küçük, farklı boyut ve şekillerde kutular bulunmaktadır. Bunu tıpkı aracın bagajını daha düzenli doldurmak gibi düşünebilirsiniz.

Attribute Başlıkları

Attribute türünü, boyutunu ve adını tanımlamaktadır. Attribute türü sayısal bir tanımlayıcı ile ifade edilmektedir, ek olarak bir MFT girişi aynı türden birden fazla attribute içerebilir. ( Bir girdinin birden fazla $DATA attribute’u içerebilmesi gibi.)

Attribute İçerikleri (Attribute Contents)

Attribute İçerikleri attributelere ait verileri depolamaktadır. Örneğin dosyanın içeriği ile ilgili bilgi barındıran $DATA attribute’u bu bölümde bulunmaktadır. Attribute İçeriği, dosyanın içeriğini barındırmamaktadır, diskteki konumunu tutmaktadır. (Verinin bulunduğu Cluster adresi) Fakat bazı durumlarda dosyanın içeriğini barındırabilmektedir. Bu bölümde bir istisna bulunmaktadır. Tarafımca yapılan testler sonucu varsayılan olarak içermesi gereken attributelerden geriye 600 baytlık alan kaldı ise veri bölümüne 600 bayt’lık dosya yazılabildiği, eğer ilgili dosya 600 bayttan büyükse diskte depolanmaya başlandığı ve $DATA attribute’u altında depolandığı cluster’ın adresi saklandığı görülmüştür. Bazı kaynaklarda 900 bayt üzerindeki verilen cluster’da saklandığı tanımlanmışken* , bazı kaynaklarda** bu değer 700 bayt olarak tanımlanmıştır. Wikipedia*** tarafından paylaşılan metinde ise eğer dosya adı çok uzun değilse, dosyanın ACL sahipliği yoksa ve dosya NTFS şifrelemesine tabi tutulmadıysa genellikle 700–800 bayt arası olan dosyaların MFT’de $DATA attribute’nda saklandığı söylenmektedir. Genel olarak bu değerde çeşitli istisnaların olduğu, çeşitli algoritmaların çalıştığı düşünülmektedir.

* Brian Carrier, File System Forensic Analysis

**How NTFS Works , Microsoft Technet

***https://tr.wikipedia.org/wiki/NTFS

Şekil — 4

Şekil — 4 görüldüğü gibi “mftrcrd64” yazılımı kullanılarak örnek bir dosya incelenmiştir.

Şekil — 5

Çıktı sonucu olarak dosyaya ait dört adet attribute olduğu ve hepsinden bir adet bulunduğu görülmüştür.

Şekil — 6

Şekil — 6’da görüldüğü üzere dosyanın içeriği cluster’da değilde $DATA attribute’u içerisinde tutulmaktadır.

2.1. Standart Attribute Tipleri

Şekil — 7

a)$STANDART_INFORMATION Attribute’u

Dosya hakkında standart bilgileri, sahiplik bilgilerini ve meta verilerini, buna ek olarak tarih ve zaman damgalarını da içermektedir. Tanımlayıcı kodu 16’dır. Bu Attribute içerisinde 4 adet zaman damgası bulunmaktadır.

Şekil — 8

b)$FILE_NAME Attribute’u

Dosya ve dizinin adını saklamaktadır buna ek olarak tarih ve zaman damgalarını içermektedir. Dosya adı değişken bir uzunlukta UTF-16 formatında saklanmaktadır. Bu attributede 4 adet zaman damgası bulunmaktadır.

Şekil — 9

2.2. MAC Zamanları ( MAC Times )

Şekil — 10

MAC(b) zamanları, belirli bir dosyanın en son değişiklik zamanı, oluşturma zamanı ( Tüm dosya sistemlerinde bulunmamaktadır. Dosyada yapılan metadata değişiklikleri sonrasında ilk oluşturma tarihini tutmaktadır. ), erişim zamanı, $MFT değiştirme zamanı bilgilerini tutmaktadır.

Bu bilgiler $STANDARD_INFO ve $FILE_NAME attributelerinde yer almaktadır.

$STANDART_INFO = Windows gezgini, fls ve yardımcı programlardan topladığı zaman damgasını depolar.

$FILE_NAME = Zaman damgaları sadece attribute değiştiğinde değişmektedir.

Her bir dosya MFT’de dört adet Standart Info için, dört adet Fıle Name için toplam sekiz adet zaman damgası bulundurmaktadır. İki attribute’nin temel farkı, Standart Info kullanıcı düzeyindedir ve kolayca değiştirilebilir fakat File Info zaman damgaları sadece sistem çekirdeği tarafından değiştirilebilir. Her işlem için ayrı kurallar vardır. Kurallar tablosu Şekil —11 de sunulmuştur. Bu tablonun detaylı tanımı ve testleri üçüncü bölümde yapılacaktır.

Şekil — 11

2.4. Yararlı Yazılımlar

[1] — https://github.com/jschicht/PowerMft

[2] — https://github.com/jschicht/MftRcrd

[3] — https://www.gettriforce.com/product/anjp-free/

III. KAYNAKLAR VE REFERANSLAR

[1] — https://www.kazamiya.net/en/fte/MFT

[2] — http://www.bluekaizen.org/inside-ntfs-discovering-the-master-file-table-mft-part2/

[3] — https://www.wikiwand.com/en/MAC_times

[4] — https://www.andreafortuna.org/cybersecurity/macb-times-in-windows-forensic-analysis/

[5] — http://cyberforensicator.com/2018/03/25/windows-10-time-rules/

Yazılarımdaki hatalı bölümler için benimle iletişime geçerseniz mutlu olurum.

--

--