Dosya Sistem Analizinin Önemi - Gais Security- Gais Siber Güvenlik Teknolojileri

Dosya Sistem Analizinin Önemi

Dosya Sistemi Analizi Önemi

Dosya sistem analizi, adli incelemelerde kullanılan inceleme programlarının arka planda yürüttüğü işlemler bütünüdür.   Dosyaları bulmak, silinen dosyaları kurtarmak ve gizli verileri bulmak gibi işlemler için bir dosya sistemini analiz etmek gerekir. Bu analizler çoğu zaman adli inceleme programları kullanılarak yapılsa da bazı durumlarda verilerin ham halini incelemek gerekebilir. Dosya sistemi seviyesinde gerçekleştirilebilecek adli analiz yapılabilmesi için ücretsiz hex editörleri veya The Sleuth Kit gibi biraz daha komplike olmayan yazılımlar kullanılabilir. Bu analizlerde dikkat edilmesi gereken hususlar verilerin nasıl okunacağının bilinmesidir. Bu yazımızda dosya sistem analizinde bilmemiz gerekenler ve bu incelemelerin nasıl yapıldığı uygulamalı görsellerle değinilmiştir.

HEX Editörü Nedir?

HEX Editörü, bilgisayar sistemlerindeki hexadecimal(on altılı sayı sistemi) formunda kodlanmış verileri; analiz edilmesine, görüntülemesine ve çalıştırılmasına yardımcı olan programdır. Bir hexadecimal dosya içeriğinde bilgisayarlar tarafından doğrudan kullanılabilen binary kodlar yer alır. HEX editörleri aynı zamanda byte editörü ve binary dosya editörü isimleriyle de bilinirler.

Sıradan bir HEX Editörü üç ana bölümden oluşur. Sol tarafta bit adreslerinin yer aldığı adres bölümü, merkezde hexadecimal görüntüleme ve sağ tarafta ise karakterlerin görüntülendiği alan konumlanır. Örnek bir hex editör çıktısı Resim 1’deki gibidir.

Volume(Birim) Nedir?

Bilgisayarın tanıyabileceği tek bir dosya sistemi kullanılarak erişilebilen bir depolama alanı bir birim olarak adlandırılır. Bu terim işletim sistemleri bağlamında kullanılır. CD'ler, DVD'ler ve sabit sürücünün bazı bölümleri volume olarak kabul edilebilir. İşletim sistemi bir birimi tanıdığında, o volume içindeki verilere erişilebilir. Yani volume bir işletim sisteminin veya uygulamanın depolama için kullanabileceği adreslenebilir sektörlerin toplamıdır. Bir volumdeki sektörler bir fiziksel depolama aygıtında ardışık sektörlerden oluşmak zorunda değildir. Yani birden fazla partitionun birleştirilmesi ile de bir volume oluşturulabilir.

Partition(Bölüm) Nedir?

Bir sabit disk sürücüsü, partition adı verilen çeşitli depolama birimlerine bölünebilir. Sabit disk sürücüsünde oluşturulabilen ana bölümler birincil, genişletilmiş ve mantıksal bölümlerdir. Bir partition bir volumdeki (birimdeki) ardışık sektörlerin toplamıdır. Bir Volume, bir veya birden fazla partitiondan meydana gelir. Eğer bir volume tek bir partitondan oluşuyorsa bu partitionu volume olarak da adlandırmak mümkündür. Bir partition sisteminin amacı, bir volumün düzenini belirlemektir. Bu nedenle, yalnızca gerekli veriler, her partition için başlangıç ve bitiş konumları arasındadır. Örnek görsel Resim 2’de bulunmaktadır.

Dosya Sistem Analizi Nedir?

Resim 2: Volume ve Partition Yapısı

Master Boot Record(MBR)

MBR, disk bölümlerini yönetmek için kullanılan, nispeten eski ancak günümüzde halen pek çok kullanıcı tarafından kullanılan sistemdir. Depolama  alanında organize edilen disk bölümlerine dair bilgiler de bu sistem tarafından tutulur. MBR ayrıca işletim sistemi için disk bölümlerini taramaya yarayan kodu barındırır. Bir MBR diski, en fazla dört adet birincil bölüme sahip olabilir. Daha fazla bölüm yaratmak için dördüncü bölüm genişletilebilir olarak ayarlanabilir. Bu sayede dördüncü bölüm bünyesinde daha fazla alt bölüm oluşturulabilir. Oluşturulan bu bölümler içinde ayrı bir bölüm tablosu oluşturulur. Bu işlem Resim3’deki gibi gerçekleştirilmiştir. MBR diskler, bölümler için 32-bitlik kayıt sistemi kullandığı için her bir disk bölümü için 2TB depolama sınırı vardır.

Dosya Sistem Analizi Nedir?

Resim 3: MBR Yapısı

GUID Partition Table Table(GPT) Nedir?

UEFI standardına sahip olan bu sistem, diskin bölümlerini düzenleyen en güncel sistemdir.  Yani UEFI tabanlı bir sisteminiz varsa MBR yerine GPT kullanılması gerekmektedir. MBR’nin aksine, GPT’de teorik olarak sınırsız bölüm oluşturulabilir.

GPT, depolama alanı olarak da MBR’den bir adım öndedir. MBR’de bulunan her bir bölüm için 2TB sınırı, GPT’de 9.44ZB gibi boyutlara ulaşabilmektedir. Elbette bu değer sadece teorik olarak mümkün. Zira Windows işletim sistemlerinde her bir bölümün maksimum kapasitesi 256TB olarak sabitlenmiştir.

Resim 4’de yer alan diyagramdan görebileceğiniz gibi, GPT diskler başta ve sonda olmak üzere iki GPT Header’a sahiptir. GPT’yi MBR’den daha kullanışlı yapan en önemli detaylardan biri ise bu diziliştir. GPT diskler, yedek header’ı sonda depoladığı için ana header zarar gördüğünde diskin kurtarılması çok daha kolay olur. GPT diskler ayrıca sorunları tespit etmek için CRC32 sağlama kullanır.

Diagramda dikkat çeken başka bir detay olan Protective MBR ise, BIOS tabanlı sistemlerin bu alanda bulunan bootloader ile GPT diskleri boot etmesine yarar. Ayrıca Protective MBR, GPT’ye karşı tanımsız olan disk araçlarının diske zarar vermesini engeller.

Dosya Sistem Analizi Nedir?

Resim 4: GPT Yapısı

Little Endian ve Big Endian Nedir?

Alfabelerde olduğu gibi sağdan sola ya da soldan sağa doğru yazım şeklini işlemciler de byte’ları saklarken önemli byte’ın solda veya sağda olmasına göre sınıflandırılır. Buna endianness da denir. Bu yapı Büyük Sonlu (Big-Endian) ve Küçük Sonlu (Little-Endian) olmak üzere ikiye ayrılır.

Little-Endian(Küçük Sonlu)

i386 ve devamı olan işlemciler Little-Endian kullanır.

Elimizde 0x34E2561A 4 Byte’lık Integer verimiz olsun. Veri diske kaydedilirken sağdan itibaren başlanarak 0x1A 0x56 0xE2 0x34 olarak saklanır. Yani veriler diske yazılırken tersen yazılır ve okuma işlemi gerçekleştirileceği zamanda yine tersten okunur.

Big-Endian(Büyük Sonlu)

Sun Sparc, Motorola 68K, PowerPC ve Java Sanal İşlemcisi (Java VM) Big-Endian kullanır.

0x7654139A verisi diske yazılırken soldan itibaren başlanarak 0x76 0x54 0x13 0x9A olarak saklanır. Yani veri yazma ve okuma işlemi sırasında olduğu gibi diskte tutulur.

Arap rakamlarında olduğu gibi (İngilizce veya Türkçede kullandığımız rakamlar) önemli byte’ın solda olduğu sıralamaya Big-endian denir. Önemli byte’ın en sağda olduğu sıralama ise Little-endian olarak adlandırılır.

Bütün işlemciler kendi sıralamasını seçmiştir. i386 ve klonu olan işlemciler Little endian’dır. Sun Sparc, Motorola 68K ve PowerPC big endian kullanır. Java Sanal İşlemcisi (Java VM) de big endian kullanır.

Farklı iki işlemcisi olan makineler birbirileri ile haberleşecekleri zaman (IPC), bu veri dönüşümünü yapmazlar ise haberleşemezler.

Bazı uygulamaların endian türü aşağıda ki gibidir..

  • Adobe Photoshop — Big Endian
  • BMP (Windows and OS/2 Bitmaps) — Little Endian
  • DXF (AutoCad) — Variable
  • GIF — Little Endian
  • IMG (GEM Raster) — Big Endian
  • JPEG — Big Endian
  • FLI (Autodesk Animator) — Little Endian
  • MacPaint — Big Endian
  • PCX (PC Paintbrush) — Little Endian
  • PostScript — Not Applicable (text!)
  • POV (Persistence of Vision ray-tracer) — Not Applicable (text!)
  • QTM (Quicktime Movies) — Little Endian (on a Mac!)
  • Microsoft RIFF (.WAV & .AVI) — Both
  • Microsoft RTF (Rich Text Format) — Little Endian
  • SGI (Silicon Graphics) — Big Endian
  • Sun Raster — Big Endian
  • TGA (Targa) — Little

Dos bölümlendirme tabloları, her MBR'de ve her genişletilmiş partionun ilk kısmında bulunur. Bu 512 baytlık yapı tüm MBR bölümlendirmelerinde aynıdır.

Bu 512 baytlık yapının ilk 446 baytı işletim sisteminin yüklenmesi için kullanılan “Boot” kodunu içerir. 446-461, 462-477, 478-493, 494-509 baytları arasında da partition tabloları bulunur, bu partition tabloları 16 baytla partition hakkındaki bilgileri tutar. Sektörün son iki baytında ise MBR imza değeri olan “AA55” değeri bulunur.

Dosya Sistem Analizi Nedir?

Resim 5: MBR Veri Yapısı

Partition Tablosunun Yapısı

Partion tablosunun ilk baytında o partitionun boot edilebilirir olup olmadığı tutulur. Bu bayt 80 değerini taşıyorsa o partition boot edilebilir demektir.

1-3 baytları arasında CHS (Cylinder Head Sector)’nin başlangıç adresi tutulur. CHS adresleri daha eski sistemlerde şarttır fakat yeni sistemler için gerekli değildir.

4. bayt partition tipini tutmak için kullanılır.

5-7 baytları arasında CHS’nin bitiş adresi tutulur.

8-11 baytları arasında LBA’nin başlangıç adresi tutulur

12-15 baytlarında da toplam sektör boyutu tutulur.

 

Dosya Sistem Analizi Nedir?

Resim 6: Partition Tablosunun Yapısı

Partition Türleri

Dosya Sistem Analizi Nedir?Dosya Sistem Analizi Nedir?

Resim 7: Partition Türleri

HEX Editör Yardımıyla Dosya Sistemi Analizi

Analiz sırasında kullanılan imaj dosyası İntel Core i5 ve Windows 10 işletim sistemine sahip bir imaj üzerinden gerçekleştirilmiştir. Yani okuma yapılırken Little endian göz önünde bulundurularak veriler ters çevrilerek okunmalıdır.

Bu imaj dosyasından hex editörle açıldıktan sonra görüntülenen ilk sektöründen elde edilen çıktısı yandaki gibidir.

Bu çıktıdan disk bölümlendirme bilgilerini okuyabilmek için yukarda verdiğimiz tanımlardan faydalanmamız gerekir.

 İncelenen imajın son iki baytının “AA55” imzasına sahip olduğunu fakat Little Endian ile kodlandığı için “55AA” değerini aldığı ve bu değerin MBR imzası olduğu bilinerek incelemeye başlanılabilir.

Dosya Sistem Analizi Nedir?

Resim 8: HEX Editör Yardımıyla Dosya Sistemi Analizi